Repository navigation
@agent-native/core@0.130.0
Minor Changes
-
279e855: Add a first-class CLI flow for installing community-maintained Agent Native templates from public GitHub repositories, including app selection from community workspace repositories.
-
279e855: Render compact data exports and durable workspace files as private downloads directly in agent chat.
-
279e855: Point org members at their own workspace when they land on a different deployment.
Orgs can now record a
workspaceUrl(Settings → Team, owner/admin). Members who
open a shared hosted app from the template catalog see a notice offering to take
them to their team's workspace instead of an app that looks empty, and the org
switcher shows which host they are currently on. Opt-in per org — nothing
changes for orgs that don't set it, and it offers a choice rather than
redirecting.
Patch Changes
- 279e855: Let a browser explicitly sign out of the shared
AUTH_DISABLEDdevelopment account so preview users can choose a real account. - 279e855: Add comment author editing to the Clips template corpus.
- 279e855: Retry transient SQLite locks while a fresh local app enables WAL during startup.
- 279e855: Prevent frontend action calls from failing with 405 errors when a mutating action declares PUT or DELETE and the caller uses the default mutation transport.
- 279e855: Prevent sketch wireframes from overflowing the browser call stack when layout measurements contain non-finite coordinates.
- 279e855: Fix the chat client telling users "the agent connection kept failing" when a
turn was actually stopped byMAX_TOTAL_TRANSIENT_CONTINUATIONS, the
whole-turn ceiling on client re-POSTs ofauto_continue. That cap only ever
binds turns that were making real progress the whole time, so blaming a
connection failure named the wrong cause. It now reports its own message:
the turn hit the limit on how many times it could be automatically
continued, and suggests retrying as a single, narrower request. - 279e855: Stop reporting
$ai_generationtoken/cost figures as literal0when the
engine never returned a usage report — every run aborted for no-progress
before any provider response arrived was indistinguishable from a real
empty-input call, which made it impossible to size the input of failing
runs.input_tokens,output_tokens,total_tokens,cache_read_tokens,
cache_write_tokens,cost_cents_x100,cost_usd, and their$ai_*
equivalents are now omitted from the tracking event instead of coerced to
zero when the engine never reported usage. Also addstime_to_first_token_ms,
measuring elapsed time from run start to the first non-heartbeat engine
event, omitted (not zeroed) when no such event ever arrived. - 279e855: Emit an
agent_run_terminalanalytics event for every terminal agent run
(completed, errored, aborted, or truncated at a continuation boundary),
reusing the same best-efforttrack()seam that already carries
$ai_generationintoanalytics_events. Run cutoffs — budget exhaustion,
loop limits, aborts, and thetruncatedcontinuation status — were
previously visible only in each app's operationalagent_runstable and
absent from analytics entirely. The event carriesrun_id,thread_id,
turn_id,status,terminal_reason,error_code,error_detail,
dispatch_mode,abort_reason, andduration_ms;model/engine/
attempt_countare forwarded through the new optionalStartRunOptions
fields, now populated by every built-instartRuncaller (main chat,
agent teams, harness runs, integration webhooks, the Google Docs poller,
and recurring jobs) with the resolved model actually sent to the engine —
never the raw client-requested one.userIdis left unset everywhere: no
caller in this codebase has an opaque (non-email) user id available at its
startRuncall site. Emission fires only after the run's terminal status
and thread_data are durably persisted, and a missing or failing tracking
provider can never affect the run. - 279e855: Keep a failed or stopped run visible on the turn it belongs to. The assistant
turn now carries a collapsed inline marker built from the persisted run-error
metadata (with the run duration when known), so the failure survives the next
prompt instead of only existing in the transient recovery banner. The banner
still owns the run it is showing, so the same failure is never announced twice. - 279e855: Default MCP connections to personal OAuth, keep personal MCP setup available to organization members, hide unusable organization controls, and honor app preset filters in ejected UIs.
- 279e855: Prevent queued chat prompts from replaying after navigation or remounting the chat.
- 279e855: Recover AI SDK provider network failures after its internal retry wrapper preserves the final transport error.
- 279e855: Fix document bridge injection when page scripts contain closing-tag or dollar-sign literals.
- 279e855: Correct the Dispatch setup docs to match the current workspace picker.
- 279e855: Fix
/_agent-native/opensilently dropping aSet-Cookiestaged duringgetSession()(e.g._sessionquery-param promotion) when it built a bare 302Response, so an authenticated redirect could still leave the browser signed out. ExportredirectWithStagedCookiesso other routes can reuse the fix. - 279e855: Add
isLoopbackRequestto the request context and agetRequestIsLoopback()reader. The action-route handler captures the real socket peer (viagetRequestIPwithoutx-forwarded-for, so headers cannot spoof it) while the h3 event is still in scope, letting code below the HTTP layer distinguish a local-dev caller from a remote one. Used by Design to let/visual-editwork without a login on a localhost-backed design while keeping remote viewers read-only. - Updated dependencies [279e855]
- @agent-native/toolkit@0.10.12