Release v0.116.0
Sep 23, 2026
Accept a quote on a customer's behalf, Network Topology becomes an opt-in partner module, three new MSP business reports (SLA attainment, time & billability, AR aging) that run per customer or across every org, and a broad billing, ticketing, and security fix sweep.
Quoting & Billing
- Techs can now accept a quote on a customer's behalf — record how it was accepted (phone, in person) and who signed, attach evidence, and the invoice issues automatically. Closes the gap where a customer had to click through the portal themselves.
- A matching 'Decline on behalf' action records a customer decline with an optional reason.
- Optional customer-notice email on an accept-on-behalf acceptance, configurable in Partner Billing Settings.
- Retired labour-rate fields are now rejected outright with a clear error instead of being silently accepted and dropped.
- Several stale-write races in billing now refuse instead of silently succeeding — editing or deleting an already-changed time entry, ticket part, or time-entry row now errors instead of reporting false success.
- Invoice line descriptions no longer bake in a confusing '(billed X of Y worked)' note, and invoice delete-preview totals round correctly.
Network Topology & Reporting
- Network Topology is now a real Partner Settings → Modules toggle instead of a switch nobody could reach — turn it on for a partner from Settings → Modules, with the device Topology tab showing a clear empty state and enable link until you do.
- Three new business reports for running your MSP: SLA attainment (how often tickets met their response and resolution targets), technician time & billability (hours worked vs. billed per tech, including techs who logged nothing), and AR aging (open invoices bucketed by age, with a reconciliation line).
- Run any of them for a single customer or partner-wide across all your orgs at once — suspended and archived customers are left out, and each report says so. Generate on demand or on a schedule, as PDF or CSV.
- Money is never mixed across currencies: billable value is priced per time entry in its own currency, and every total is shown per currency.
- Business reports are MSP-staff only — customer org users never see them, and each report checks you hold the matching read permission (e.g. invoices for AR aging). The Reports page picker for them arrives in the next release; this release ships the report engine, scheduling, and PDF output.
AI & Security
- AI session turn limits set in Settings → AI Usage now actually take effect, instead of every session silently defaulting to 50 turns no matter what was configured.
- Metric anomaly detection now groups repeated anomalies into episodes that auto-resolve once the metric clears, with safeguards so a real anomaly can't skew its own baseline, and anomaly accuracy stats now count only human-reviewed outcomes. Still off by default.
- Tightened several AI-tool and contract-action authority checks so an over-privileged AI session or contract action is denied rather than allowed through.
Ticketing & Mailbox
- An inbound customer reply now correctly reopens a resolved ticket.
- Microsoft 365 mailbox tickets now capture the full email body instead of a 255-character preview, and email attachments now import onto the ticket.
- DNS content filtering (streaming, social media, gambling, adult content) no longer raises a false high-severity 'DNS threat' alert every hour — only genuine threat categories alert.
Disk Cleanup & Agent Reliability
- Disk Cleanup's OS-native cleaners now require an agent on 0.116.0, not just 0.115.0, after lab-found hang and miscount fixes — an older agent gets a clear 'update the agent' message instead of running the affected cleaners.
- The retired Windows cleanup option is reachable again in the Disk Cleanup selection list, and cleanup run history renders correctly.
- Agent reliability scoring no longer miscounts unrelated log lines as memory or disk problems, and Windows System-log errors are now classified as hardware or software issues instead of one bucket.
- Device status now flips to 'Offline' immediately when an agent disconnects, and only fires that notification once — instead of double-firing or getting stuck showing 'Online'.
The headline this release is closing a real workflow gap: a tech can now accept — or decline — a quote on a customer’s behalf, right from the quote detail page. Record how it was accepted (a phone call, an in-person signature), attach evidence if you have it, and the invoice issues automatically, with an optional notice email to the customer. Previously the customer had to click through the portal themselves, which meant “the customer verbally agreed on Tuesday” had nowhere to go.
Network Topology, which shipped in v0.115.0, is now actually reachable — it lives behind a Partner Settings → Modules toggle instead of a switch nobody could find. Business Reports gets its first three reports built for running the MSP itself: SLA attainment, technician time & billability, and AR aging. Run them for one customer or across every org you manage in a single pass, on demand or on a schedule, as PDF or CSV — with billable value priced per entry in its own currency so nothing gets summed across currencies. (The in-app picker for these arrives next release.) AI sessions get a real enforcement fix — a configured max-turns budget now actually limits a session instead of silently defaulting to 50 turns regardless of what you set.
Beyond that, this release is a broad fix sweep: billing stale-write races now refuse instead of silently succeeding, ticketing correctly reopens tickets on customer reply and imports mailbox attachments, DNS content filtering stops raising false threat alerts, and Disk Cleanup’s OS-native cleaners get a round of lab-found hang and miscount fixes (which is why they now require an agent on 0.116.0). No breaking changes and no new required environment variables in this release — see the GitHub release notes for full self-hosting and upgrade detail.