v1.2.95
Changelog (Current Version)
This file contains the changes for the current version only. The full history of all versions lives in docs/en/changelog.md.
v1.2.95
✨ New Features
-
Durable CLI Runs
- CLI
runPrintnow persists canonical durable runs viaagentruntime.ExecutionRuntime, aligning the CLI path with WebUI, channels, and ACP lifecycle tracking.
- CLI
-
UDP Runtime Lease Bus
- Added best-effort UDP
SessionLeaseBusfor local-process wake-up on runtime lease and run-state changes. - Uses directed loopback broadcast with deduplication; SQLite leases and durable rows remain the sole authority.
- Added best-effort UDP
-
Per-Run Provider/Model Selection (API & Web UI)
POST /v1/responsesruns accept an optionalproviderfield; qualifiedprovider/modelIDs are parsed and validated (with a structured mismatch error when the provider does not own the model).- The run executes with the requested provider's agent built through the shared
SessionRuntime; run policy snapshots and request fingerprints now record the provider. /v1/modelsnow reports each model's provider.
🔧 Improvements
-
Event Broker Resync
- Event broker now exposes
SubscribeWithResync; subscriber overflow closes the WebSocket so the client reconnects and replays durable SQLite cursors.
- Event broker now exposes
-
Runtime Lease Heartbeat
- Lease heartbeat now retries transient SQLite failures for a bounded interval and publishes
acquired/released/lostnotifications.
- Lease heartbeat now retries transient SQLite failures for a bounded interval and publishes
-
Session Capabilities (Sandbox/Browser/Web Search)
SessionRuntimegainsCapabilitySnapshot,ConfigureCapabilities, andSetCapabilityOption; browser and web-search capabilities persist viasession_capabilitiesand replay on load, with core tools synchronized accordingly.- ACP sessions restore persisted capabilities and additional directories under the runtime lease; sandbox remains process-policy-owned.
-
Web UI Provider-Aware Model Picker
- New searchable
ModelPickercomponent with modality icons (text/image/audio/video/file) replaces the old model menu. - Chat composes a provider-cascading model catalog from
/v1/modelsplus configured providers, so selecting a provider narrows to its models and submits the provider with each run.
- New searchable
-
ACP Session Extension Methods
- Added
session/forkandmothx/session/setTitlehandling, workspace-window negotiation (cwd/additional directories), a cascade delete across fork lineage, and anavailable_commands_updatenotification. - Optional editor context is injected as a bounded, untrusted context block; loading historical sessions with a released runtime lease no longer rewrites persisted bindings.
- Added
🐛 Bug Fixes
- Background Run Optimistic Concurrency
- Reloaded the shared session manager after durable admission so the background coordinator appends the user message to the new leaf instead of failing its optimistic concurrency check.
✅ Tests
- Acquired the runtime lease in
TestResponsesRunAPIAbandonMarksInterruptedToolsWithoutRetrybefore inspecting the abandoned tool record, matching the production recovery caller pattern. - Added ACP tests: loading a historical session with a released lease must not persist defaults, directory updates under the runtime lease, and title changes on historical sessions.
- Added serve tests for per-run provider selection, provider/model mismatch, and qualified-model parsing.