Commit Graph

4215 Commits

Author SHA1 Message Date
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