Peter Steinberger
ad409a8285
fix(ui): preserve session, tool, archive, and focus ownership ( #117191 )
...
* fix(ui): unify tool, session, and keyboard interaction owners
* refactor(ui): separate archived session regression coverage
* test(ui): isolate memory plugin mutation mock registries
---------
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-07-31 22:45:53 -07:00
Peter Steinberger
4a27e2d3aa
fix(ui): keep canvas lease renewals lifecycle-owned and timer-safe ( #117173 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-07-31 19:55:29 -07:00
Peter Steinberger
7e78de747b
refactor(ui): replace duplicated locale bundles with canonical translation memory ( #117157 )
...
* refactor(ui): generate locale bundles from canonical translation memory
* fix(ui): keep server-only locale config out of browser test helpers
2026-07-31 19:40:27 -07:00
Peter Steinberger
91aff8089c
fix(ui): retire stale Gateway event-log observers ( #117169 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-07-31 19:39:29 -07:00
Peter Steinberger
1e0f62ebfe
refactor(ui): unify filtered session list ownership ( #117158 )
2026-07-31 19:14:51 -07:00
thomas.szbay
5f91afabc7
fix(ui): preserve emoji agent avatar initials ( #104912 )
2026-07-31 18:55:02 -07:00
Peter Steinberger
89394978e0
fix(ui): recover moving sessions across paged gateway rosters ( #117016 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-07-31 17:45:08 -07:00
Peter Steinberger
0ae516da1f
fix(ui): clear hidden session selection before bulk deletion ( #117015 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-07-31 17:42:26 -07:00
Peter Steinberger
3c81eb4925
fix(ui): scope Gateway reconnect lineage to its target ( #117125 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-07-31 17:38:17 -07:00
Peter Steinberger
7dd74db836
fix: preserve completion delivery and truthful agent session state ( #117119 )
2026-07-31 17:35:14 -07:00
Peter Steinberger
5d6f21122c
fix(ui): canonical plugin settings, reconnect, and freshness ownership ( #117047 )
...
* fix(ui): unify memory and plugin config mutation ownership
* test(ui): prove committed memory refresh failures in Chromium
* fix(ui): preserve concurrent memory mutation outcomes
* test(ui): prove model setup reloads after reconnect
* test(ui): await mocked reconnect handshake before restoring model
* fix(ui): own model setup connection generations
* test(ui): use valid setup gateway hello fixtures
* test(ui): synchronize memory mutation owner regressions
* fix(ui): bind memory restart notices to executing gateway process
* fix(ui): scope setup and memory state to gateway connections
* fix(ui): prevent stale memory restart notice ownership
* fix(ui): separate gateway refresh warnings from restart notices
* test(ui): await current memory catalog before reconnect actions
* fix(ui): clear shared memory refresh warnings after authoritative updates
* test(ui): click the visible memory add-on switch host
* test(ui): assert canonical gateway refresh error text
* test(ui): align gateway fixtures and dead-code ownership
---------
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-07-31 17:30:46 -07:00
Peter Steinberger
e857d8e5c6
fix(ui): preserve Gateway opening timeout diagnostics ( #117078 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-07-31 17:14:30 -07:00
Peter Steinberger
8ea6c43754
fix(ui): prevent stale sidebar sessions after switching filters ( #117090 )
2026-07-31 17:05:16 -07:00
Vincent Koc
ee9a658a7d
fix(ui): persist per-agent settings changes ( #117107 )
...
Closes #117046
Per-agent model, tool, skill, and node-binding edits in the Control UI were written to the retired `agents.list` shape, so the strict Gateway schema rejected them. Save failures could then be hidden by an immediate roster refresh.
Route all affected writers through the canonical keyed `agents.entries` resolver, preserve authored keys, reject unsafe keys, align adjacent cron and swarm readers, and keep failed saves dirty with the Gateway error visible in the active panel.
Validated with the exact Testbox changed gate, full CI, 314 focused UI tests, 11 Playwright scenarios, 42 Gateway config tests, clean autoreview, and ClawSweeper review.
2026-08-01 07:49:55 +08:00
Peter Steinberger
7bae24760b
refactor(ui): make sessions and navigation reliable across reconnects ( #117103 )
...
* refactor(ui): consolidate connection ownership and split control shell
* fix(ui): keep terminal session contract with reconciliation owner
2026-07-31 16:36:47 -07:00
Peter Steinberger
9a499d3c1b
fix(ui): restore queued messages to the correct agent after reconnect ( #117084 )
...
* fix(ui): unify queued chat ownership across reconnects
* fix(ui): remove obsolete chat outbox codec exports
2026-07-31 16:24:26 -07:00
Peter Steinberger
4278760caf
fix(ui): make session controls and failures accessible ( #117019 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-07-31 15:14:07 -07:00
Peter Steinberger
4976eb38ab
fix(ui): honor Gateway readiness abort and subscription ownership ( #117048 )
...
* fix(ui): keep canceled gateway waits retired
* test(ui): bind Gateway readiness test helper callback
* test(ui): isolate server locale preference singleton
---------
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-07-31 15:06:55 -07:00
Peter Steinberger
e4568f6bdd
fix(ui): isolate gateway observer lifecycles ( #117017 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-07-31 14:19:20 -07:00
Vincent Koc
f64807de7a
fix(ui): scope array header metadata
2026-08-01 02:59:04 +08:00
Vincent Koc
969f505d94
fix(ui): keep array section defaults visible
2026-08-01 02:52:18 +08:00
Vincent Koc
9057209ada
refactor(ui): share collection default presentation
2026-08-01 02:33:56 +08:00
Vincent Koc
da0134d225
fix(ui): keep default provenance proof type-safe
2026-08-01 02:24:17 +08:00
Vincent Koc
2bbb24de7b
test(ui): prove default-valued preference reset sync
2026-08-01 02:17:53 +08:00
Vincent Koc
6aaaf6dea7
Merge main into fix/control-ui-settings-defaults
...
* origin/main: (42 commits)
fix(auto-reply): avoid false overload attribution on stalled replies (#116959 )
fix(auth-profiles): scope model_not_found cooldown to the failing model (#116768 )
fix(agents): expose embedded preparation latency (#116936 )
fix(macos): preserve localized setup fallback
fix: repair canonical session keys with doctor (#116703 )
fix(gateway): preserve plugin-only session change events (#116948 )
fix(media): recognize AIFF attachments across audio workflows (#116907 )
fix(openai): recover missing terminal response output (#116910 )
fix(telegram): preserve outbound media metadata and rejected photos (#116886 )
fix(agents): preserve bounded truthful subagent outcomes (#116932 )
improve(setup): clarify local provider actions
fix(cron): preserve scheduler truth across edits and delivery (#116923 )
fix(openai): finalize Chat tool calls from authoritative terminals (#116922 )
fix(ui): recover session observers across reconnects (#116887 )
fix(qa): verify requested scenarios and reject silent character runs (#116912 )
fix: agent turns survive unavailable optional web credentials (#112522 )
fix(sessions): preserve transcript and child ownership (#116897 )
fix(ui): preserve chat stream ownership and accessible rendering (#116929 )
fix(media): preserve display metadata and attachment formats (#116928 )
fix(together): preserve immediate video outcomes and image references (#116913 )
...
2026-08-01 02:13:35 +08:00
Vincent Koc
cd2c9a2ed4
fix(ui): preserve reset provenance for invalid defaults
2026-08-01 02:13:24 +08:00
Vincent Koc
0e24d596c0
improve(setup): clarify local provider actions
2026-08-01 00:26:40 +08:00
Vincent Koc
fefd083043
fix(ui): retry transient preference sync failures
2026-08-01 00:24:32 +08:00
Peter Steinberger
dd2062be4c
fix(ui): recover session observers across reconnects ( #116887 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-07-31 09:20:10 -07:00
Peter Steinberger
a0ad31fe8a
fix(sessions): preserve transcript and child ownership ( #116897 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-07-31 09:16:13 -07:00
Peter Steinberger
79f3474836
fix(ui): preserve chat stream ownership and accessible rendering ( #116929 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-07-31 09:14:07 -07:00
Vincent Koc
bdfd24ec07
Merge main into fix/control-ui-settings-defaults
2026-08-01 00:13:28 +08:00
Colin Johnson
e909e56635
fix(ui): prevent new-chat controls overlapping on mobile ( #116607 )
2026-07-31 10:08:50 -04:00
Shakker
2f80f87c32
test: avoid allocation-heavy case setup ( #116837 )
2026-07-31 13:51:59 +01:00
Shakker
25324606c7
test: cover every sharing mutation phase
2026-07-31 13:51:59 +01:00
Shakker
5bb23a6882
chore: format sharing mutation tests
2026-07-31 13:51:59 +01:00
Shakker
1915ca0e8f
test: cover stale sharing mutation completion
2026-07-31 13:51:59 +01:00
Shakker
776304975c
fix: fence sharing mutations to their connection
2026-07-31 13:51:58 +01:00
Peter Steinberger
67943535b1
fix(ui): make plugin and session controls keyboard accessible ( #116820 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-07-31 05:48:44 -07:00
Peter Steinberger
18cd6ee654
fix(ui): own model provider config mutation lifecycle ( #116829 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-07-31 05:20:27 -07:00
Peter Steinberger
28744126fc
fix(ui): restore mobile navigation and accessible usage filters ( #116751 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-07-31 05:01:46 -07:00
Peter Steinberger
9812380f10
fix(ui): coalesce profile identity refresh ( #116764 )
...
* fix(ui): coalesce profile identity refresh
* style(ui): format profile refresh e2e
2026-07-31 05:00:21 -07:00
Peter Steinberger
708c4d68dc
fix(ui): preserve chat attachments and run ownership ( #116752 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-07-31 04:59:06 -07:00
Peter Steinberger
c75e435e30
fix(ui): scope agent cron jobs and surface model catalog failures ( #116771 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-07-31 04:47:31 -07:00
Peter Steinberger
988e1974b0
fix(ui): preserve scoped session state across updates ( #116772 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-07-31 04:43:32 -07:00
Peter Steinberger
95df2dfd6a
fix(ui): preserve Skills credentials and serialize configuration updates ( #116749 )
...
* fix(ui): preserve skill credentials and serialize updates
* refactor(ui): extract skill config mutation ownership
---------
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-07-31 04:26:18 -07:00
Peter Steinberger
b4e10e8a90
fix: preserve markdown formatting around media attachments ( #116786 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-07-31 04:20:39 -07:00
Vincent Koc
22911713e5
Merge pull request #116734 from vincentkoc/fix/talk-pcm-output-budget
...
* commit 'b2b3515e04e9780e7c76a6533c35a6c384ed638e':
fix(ui): reject oversized Talk audio before decoding
fix(ui): cancel overflowing realtime Talk playback
fix(ui): bound realtime Talk PCM playback ownership
2026-07-31 19:11:24 +08:00
Vincent Koc
5b7f514c94
fix(chat): explain chat-only model limits
2026-07-31 18:43:47 +08:00
Vincent Koc
9b736a42c6
feat(models): expose tool support to clients
2026-07-31 18:43:47 +08:00