What's new

Release notes

Every update to TriArch. Pick a release to see what changed.

August 8, 2026

v2026.8.7.0510

โœจ New

๐Ÿ’ณ Buy, track, and manage service request credits
Agencies can purchase prepaid service request credits directly from Settings, with credits used automatically as reviews are launched and a clear prompt to top up when your balance runs low. A new page shows your full credit purchase history with downloadable invoices.

๐Ÿ“ง Verify your email during sign-up
The registration form now supports entering an emailed verification code, with a "resend code" option.

๐Ÿค– Your AI assistant now reads far more document types
AI-powered document workspaces can pull text from PDFs, images (JPG, PNG, TIFF, HEIF), Word, Excel, PowerPoint, and HTML files โ€” not just plain text โ€” using a more accurate extraction engine. Uploaded drawings can also have their scale notation (e.g. "1/4" = 1'-0"") automatically detected and read, laying the groundwork for automated drawing review.

๐Ÿ’ฌ Ask the AI assistant about a specific request's own documents
While viewing a service request, the CodeAdvisor assistant can now answer questions using that request's own submittals, corrections, and linked files, while keeping every request's documents fully separate from one another and from general chat.

๐Ÿ—‘๏ธ Delete notifications and contacts you no longer need
You can delete individual or bulk-selected in-app notifications from a redesigned list with paging and search. You can also delete a contact outright โ€” if it's still linked to other records, you'll get a clear explanation of what needs to be removed first instead of a failure.

๐Ÿ›ก๏ธ Guardrails that catch setup mistakes before they happen
Only one Project Owner is allowed per project, with a clear message if you try to add a second. When configuring a service definition's review steps, you'll now be warned if the combined step time would exceed the permit's overall validity window.

๐Ÿ“Š A more capable host admin dashboard
Platform admins can filter tenant growth and KPI charts by date range, see trend changes on each KPI tile, and check live system health (database, cache, queue, background jobs, email, and file storage) instead of a static list of installed modules.

๐ŸŽ‰ Richer new-tenant onboarding
Setting up a new agency tenant can now include custom notification email content, and the default emails you receive (request created, fee waived, review launched, etc.) include clearer next-step guidance.

๐Ÿงพ Download your payment receipt from a service request
Applicants can now download a receipt for the intake fee or any activity fee directly from the request's Fees section, not just from internal payment history.

๐Ÿ’ช Improvements

๐Ÿ’ฐ Review credits are clearer to buy and use
The credit purchase and launch experience (now labeled "Review credits") has been reworked: you'll see a clear confirmation after buying credits, low/zero-balance messaging, and a "top up" prompt explaining why the Launch Review button is blocked when you're out of credits โ€” instead of the action just failing. The launch confirmation now also shows the credit cost up front, and credit amounts always display with a proper "$" symbol. Credits are now only checked and used when you actually launch a review, not while you're still drafting a request.

๐Ÿงญ More roles see the navigation they're entitled to
Operations Manager, Reviewer, Intake Clerk, and Read-Only roles โ€” not just Agency Admin โ€” now correctly see the Contacts, Projects, Documents, and Request Forms links in the sidebar that match their existing access. The Payments menu (plans, payment requests, gateway settings) is now available to contractors too, not just agencies.

โœ‰๏ธ Clearer, more personal notification emails
Every request-related email โ€” submitted, updated, status changed, fee requested or waived, reviewer assigned or removed, decision made โ€” now greets you by name and includes the tracking number, date, and a working link, and no longer risks showing the wrong recipient's details. Coordinators who launched a review are now notified of status changes too, and resubmitted corrections get their own distinct notification. Outbound emails now show your agency's real name in the branding instead of generic placeholder text.

๐ŸŽš๏ธ Subscription plans enforce fair usage limits
Tenants are assigned a plan tier based on account type, with AI assistant usage limits enforced (with a clear upgrade message when you hit them). Admin screens hide plan settings that don't apply to your tenant type, and sidebar links to features your plan doesn't include are no longer shown.

โšก Bulk reviewer assignment is safer and faster
Assigning reviewers to multiple activities at once now happens as a single all-or-nothing action, so a failure partway through no longer leaves some activities assigned and others not โ€” and the error message now names the specific activity that failed. Document folder lookups are also faster for tenants with a large number of requests, and coordinators who can launch reviews but don't manage credits can now see the team's review-credit balance.

๐Ÿ“ Downloads have clearer file names
Reports, certificates, and merged document packages now download with descriptive names (including the activity and tracking number) instead of generic names like "package.pdf".

๐Ÿ” Lists are easier to scan
The Service Requests list now shows the actual project name (with jurisdiction underneath) instead of just an address, and drops a redundant contractor column. Reviewers without full launch access see a count of just their own assigned open requests. The Contacts list now shows a single "Organisation" column instead of separate address/company fields, and the Projects list shows the real jurisdiction name. Projects and Service Requests lists also share a more consistent, polished style.

๐Ÿ“ˆ Operations dashboard is clearer and more accurate
The workflow funnel now shows fewer, clearer stages (Intake, Review, Approved, Closed), the "open requests" count correctly includes incomplete and on-hold requests, the closed-requests metric is labeled "Closed" instead of the confusing "Issued," and daily charts now align to your local timezone instead of drifting a day near midnight.

๐Ÿ” Consistent password fields and accurate version display
Login and registration password fields now share the same show/hide toggle icon, the registration form no longer flashes a premature "required" error on the verification code field, and the footer shows the actual running app version instead of a hardcoded label.

๐Ÿ™… Spam protection can now be configured properly
The public contact form's spam protection (reCAPTCHA) now uses your real site keys instead of hardcoded test keys, and works correctly across the public site.

๐Ÿž Fixes

๐Ÿ–ฅ๏ธ Full-screen document editing no longer hides dialogs
Opening a toolbar dialog (like Insert Table) after switching to full-screen mode no longer leaves it silently invisible.

๐Ÿ’ต Invoicing bills the right contact, at the right time
Invoices now correctly resolve the designated Project Owner as the billing contact instead of relying on an outdated "primary contact" flag, and a service request must be fully closed before it can be billed โ€” previously in-progress requests could be invoiced too early. A confusing "A/E only" label under the license number field has also been removed, and an overflowing project/address column on the Service Requests list has been fixed.

๐Ÿ’ณ Payment and credit purchase flows are more reliable
After buying service request credits, you're correctly returned to your settings page with the purchase confirmed. Payment history "download receipt" links now reliably open a working PDF. Intake fee payments are now safely recorded even if something goes wrong immediately after payment completes, and a broken email template for one tenant can no longer stall notifications for every tenant for hours.

โœ… Storefront submission confirmation is accurate
If your payment succeeded but your request is still being finalized, the confirmation page now shows "payment received โ€” finalizing" and updates automatically once your tracking number is ready, instead of implying the submission failed or requiring a manual refresh. Storefront-created timestamps are also now recorded correctly rather than in server-local time.

๐Ÿ”’ Access control gaps closed on Control Room pages
Invoices, Invoice Runs, and related Control Room pages now correctly enforce permission checks โ€” previously some were reachable without the right access, or without being logged in at all. A security gap that could have allowed forged AI-workspace session access has also been closed.

๐Ÿ“„ Documents and notifications behave correctly
One failed document during indexing no longer rolls back the rest of the batch โ€” each document's success or failure is now tracked and reported individually. Document packaging screens now start with the correct file selection state (with an accurate "selected" count) instead of pre-selecting the wrong files. Submitted notifications now show the correct applicant name, and the notification bell dropdown in Control Room no longer fails to open or close properly.

๐ŸŽจ Display and search fixes
The Active status badge on the Projects list now shows its own correct color instead of matching "Submitted." Date-range searches on service requests now correctly include the full last day of the selected range. Dashboard cards no longer spill outside their borders on narrower screens. The API documentation page works correctly again after a conflicting setting broke part of it.

๐Ÿ”ง Smaller fixes
The Georgia jurisdiction abbreviation now correctly shows "GA" instead of "GE." Creating a contact from the standalone Contacts page no longer requires selecting a Role unless you're adding it within a project.