Skip to main content

Changelog — Weeks of May 11 & May 18, 2026

New features and improvements

Agents & Tools

  • 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.
  • Fixed PSA URLs missing https:// causing double-slash failures.

Autotask

  • Fixed Autotask agendas missing scheduled tasks — now queries ServiceCallTaskResources in addition to ServiceCalls.
  • Fixed Autotask TicketNotes / TimeEntries failing on large ticket counts due to URL overflow — queries are now batched.
  • Fixed Autotask billingCode showing as a raw field name — now labeled "Work Type" in dropdowns.

Halo PSA

  • Fixed Halo "priority escalated" event being treated as a create instead of an UPDATE.

Dispatch

  • Fixed dispatch hallucinating shifts on technicians' off-days — Not-Working days are now stamped on agenda separators.
  • Fixed dispatch volunteering a schedule entry when scheduling wasn't enabled.
  • Fixed dispatch using server-local midnight instead of the client's local midnight for assignment_history_window=0.
  • Fixed dispatch treating TENTATIVE calendar events as free when allow_update is off — they're now respected as busy.
  • Fixed Phase 1 custom-instructions categorization silently dropping PTO entries.
  • Fixed CAS conflicts crashing dispatch runs — they're now retried via LLM conversation continuity.
  • Fixed batch dispatch crashing the whole batch when one ticket hit a calendar slot conflict — exceptions are now isolated per ticket.
  • Fixed silent get_technician_context failures when no DB profile existed for a PSA user.

Integrations

  • Fixed ITGlue alerts firing on the first transient retry — alerts now require a previous run to have also failed.
  • Fixed Hudu and ITGlue feature sync intervals running too often — now bounded to once a day.

Sandbox

  • Fixed sandbox bash short-circuiting in test mode and producing no preview output — the sandbox proxy now gates writes, so reads run for real.

Phone Agent

  • Fixed phone-agent subscription double-creation — creation is now idempotent and reattaches SetupIntent payment methods correctly.
  • Fixed phone numbers remaining active after a Phone Agent subscription lapsed — numbers are now deactivated on lapse.

Public API

  • Fixed PSA/RMM-not-configured endpoints returning 500 instead of 404.

Workflows & Triggers

  • Fixed workflow ticket merge crashing on circular merges.
  • Fixed corrupt action config crash-looping the workflow — bad config is now caught at execution time and returned as a validation error.