Added a Web Fetch tool — agents can pull allowlisted public pages (Neo docs, Microsoft Learn, vendor KBs) with SSRF guards and HTML-to-Markdown conversion.
Sandbox bash scripts now run in test mode — the proxy gates writes, so scheduled and agentic workflows produce real preview output instead of "[TEST MODE] Command not executed".
Split time logging into two tools — log_time_estimate for the AI's own work estimate and add_time_entry for the technician-visible entry — so the two never collide.
Other technicians on a ticket are now notified when a TIL request is handled by a teammate.
Agentic runs now record the full LLM input on every step for after-the-fact forensic review.
Trigger context (what kicked off the run, and which workflow if upstream) is now exposed to agents via EXECUTION_CONTEXT.
Workflows & Triggers
Added a Note Added trigger — fires whenever a non-Neo author adds a note, useful for Autotask project tickets and any flow where the customer reply trigger doesn't apply.
Pause/Resume is now available on any scheduled workflow from the dashboard.
ServiceNow
Image attachments on ServiceNow incidents now flow into agent context (by-reference and ticket-level).
Agents can now send customer emails on ServiceNow via the native Email REST API (EMAIL_VIA_PSA).
Agents can now set close_code and close_notes on close — satisfies ServiceNow's "Make close info mandatory" data policy in a single PATCH.
Added GET_COMPANY_LOCATIONS and ADD_TIME_ENTRY to the ServiceNow toolbox.
ServiceNow webhook payload now carries author attribution, work_notes, and display values for choice/reference fields — agents see the same data humans see.
Added a yellow "Reconnect" banner with one-click refresh when a ServiceNow OAuth refresh token expires, separated from full credential edit.
Picklist (sys_choice) values are now validated before being written, so invalid options never reach ServiceNow.
OAuth onboarding auto-resolves the user sys_id instead of asking the admin to paste it.
Dispatch
Parallel-dispatch optimistic locking is now enabled for all clients — Redis CAS arbitration, peer soft-hold visibility in the agenda, and a Layer 3 PSA pre-write recheck across ConnectWise, Autotask, and Halo prevent two parallel runs from double-booking the same slot.
Dispatch agendas now include richer technician context (workload, recent activity, expertise) so the LLM picks better assignees.
PSA-specific dispatch settings are now hidden per tenant based on the PSA in use, removing irrelevant fields from the UI.
Chat Agent
New chat sessions are now auto-titled from the first message — no more sidebar full of "Untitled".
Assistant messages now support thumbs up/down feedback, persisted per user.
Reloading a chat session now replays the full reasoning, tool, and TIL trace with collapsible tool cards; TIL approve/decline works directly from the reloaded trace.
Public API
Added agents create/update/run-now, integrations sync status, dispatch-decisions, settings, schemas, performance, insights, phone agent, and artifacts endpoints under /public-api/*.
Added a self-served OpenAPI 3.1 doc at GET /public-api/openapi.json covering every public endpoint.
Read-only API tool calls no longer require a technician instruction plan when read access is enabled.
Notifications
PushPress (pwpush) password sends are now routed to regional servers — US clients use us.pwpush.com so password payloads stay in-region.
Teams/Slack/email notifications now use content-aware dedup so a single agentic run can send multiple distinct messages instead of collapsing into one.
Bug fixes
Agents & Tools
Fixed triage status options not re-scoping when a workflow moves a ticket to a different ConnectWise board.
Fixed the triage CC field ignoring MSP emails provided via custom instructions.
Fixed add_time_entry writing duplicate PSA entries on retry within a single run.
Fixed master agent losing the current time on continuation runs and answering with a stale clock.
Fixed workflow prompt edits not reaching in-flight conversations — edits now apply on the next turn instead of waiting for a new session.
Fixed agents accepting EMAIL_VIA_PSA on PSAs that don't support it — non-ServiceNow PSAs now return a clear error.
Fixed runtime-generated PowerShell secrets being lost on TIL approval.
Fixed add_internal_ticket_note being called repeatedly per ticket per run.
Fixed agents using stale custom-field IDs after a board change in the same run.
ConnectWise
Fixed ConnectWise note creation failing on non-ASCII characters — now retries without notifications instead of erroring.
Fixed CW PATCH crashing on merged or corrupted tickets — those tickets are now skipped per-entity instead of halting the workflow.
Fixed CW get_ticket_config returning 500 on deleted tickets — now returns 404.
Fixed CW client-facing notes triggering CC fan-out to every contact.
Fixed CW update_time_entry blowing up on already-closed time entries.
Fixed CW on-prem 404 when paginating past the last page of ticket notes.
Fixed CW database errors being treated as fatal — they're now retried as transient PSA 500s.
Fixed CW contacts sync 500s from .NET dictionary ordering — list is now ordered by id.