Commit Graph

4244 Commits

Author SHA1 Message Date
Vincent Koc
4a6592808a merge: refresh main before Google Live landing
* origin/main:
  fix(test/ui): prevent shared history pollution (#117348)
  fix(openrouter): apply image request transport policy (#117336)
  perf(gateway): skip clean transcript workers (#117342)
  test(testing): assert relay smoke readiness
  fix(testing): activate relay live smoke transport
  feat(channels): record account lifecycle facts and retire inferred health vocabularies (#117300)
  fix(canvas): remove unsupported snapshot delay hint (#117326)
  refactor(agents): fold cache TTL pruning into prompt projection (#117313)
  fix(canvas): honor paired-node invocation deadlines (#117316)
  fix(system-agent): make exit-and-run-a-terminal guidance surface-correct (#114633)
  fix(ai): assistant text blocks are run together on replay (#115743)
  refactor(agents): canonicalize subagent execution state (#117267)
2026-08-01 18:40:55 +08:00
Peter Steinberger
4982b399e6 fix(test/ui): prevent shared history pollution (#117348)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-01 03:39:19 -07:00
Vincent Koc
b993cf1b99 refactor(talk): centralize Google Live cleanup errors 2026-08-01 17:42:18 +08:00
Vincent Koc
9c6132ef8c test(talk): type activation cancellation callback 2026-08-01 17:34:50 +08:00
Vincent Koc
63cb1e9d2e fix(talk): handle reentrant Google activation cancellation 2026-08-01 17:29:15 +08:00
Vincent Koc
dbd2f7266e merge: refresh main before Google Live validation
* origin/main:
  fix(update): keep rolled-back Git installs runnable (#117294)
  refactor(ui): centralize chat outbox projections (#117284)
  fix(sessions): preserve target rows during legacy migration (#117272)
  fix(security): detect multiline skill prompt injection (#117254)
  fix(qa): lease credentials for Telegram startup proof (#116842)
  refactor(memory): unify session ingestion (#117293)
  fix(channels): strip internal tool text in Reef and Zalo Personal (#112621)
  fix(ui): keep newer Appearance choices after delayed theme imports [AI-assisted] (#117292)
  fix(inference): simplify lifecycle and preserve Codex tool identity (#117298)
2026-08-01 17:20:32 +08:00
Vincent Koc
476991a523 test(talk): cover Google Live video teardown 2026-08-01 17:20:20 +08:00
Vincent Koc
d4a477908c test(talk): cover Google Live startup transitions 2026-08-01 17:20:20 +08:00
Vincent Koc
c5372430b3 fix(talk): gate Google Live activation on setup 2026-08-01 17:20:17 +08:00
Peter Steinberger
66ff7b6e94 refactor(ui): centralize chat outbox projections (#117284) 2026-08-01 02:16:38 -07:00
Vincent Koc
1e49c188c5 fix(talk): refresh Google Live setup timeout lifecycle 2026-08-01 17:07:21 +08:00
Peter Steinberger
d585c0c1ec fix(ui): keep newer Appearance choices after delayed theme imports [AI-assisted] (#117292)
* fix(ui): fence stale custom theme imports

* test(ui): split custom theme ownership coverage

* fix(ui): fence external theme import ownership

* fix(ui): separate theme import activation ownership

* fix(ui): bind theme imports to authoritative intent

* refactor(ui): own custom theme import lifecycles

* test(ui): refresh memory helper routing expectation

* test(ui): emit custom theme race verdict
2026-08-01 02:07:10 -07:00
Vincent Koc
03698f9888 fix(talk): merge bounded browser voice lifecycle (#117216)
* origin/pr-117216:
  fix(talk): satisfy lifecycle test contracts
  fix(talk): make transport startup transactional
  fix(talk): cancel pending media acquisition
  fix(talk): retire pending transport on overflow
  fix(talk): reserve replacement ownership first
  fix(talk): separate pending and active transports
  fix(talk): make transport replacement transactional
  fix(talk): release owner after startup failure
  fix(talk): fence late browser voice events
  fix(talk): bound browser transcript ownership
2026-08-01 16:58:24 +08:00
Vincent Koc
53d5cf370c test(ui): align model setup e2e with recovery flow 2026-08-01 16:28:48 +08:00
Vincent Koc
42dde2bf86 test(ui): align reconnect assertions with selected model 2026-08-01 16:12:36 +08:00
Vincent Koc
46598b6966 improve(ui): simplify local provider recovery 2026-08-01 15:38:41 +08:00
Vincent Koc
c4eda63d21 fix(talk): satisfy lifecycle test contracts 2026-08-01 15:34:44 +08:00
Vincent Koc
b7b37847c8 fix(talk): make transport startup transactional 2026-08-01 15:25:50 +08:00
Vincent Koc
5394bb1069 fix(talk): cancel pending media acquisition 2026-08-01 15:25:47 +08:00
Vincent Koc
91e86a329c fix(talk): retire pending transport on overflow 2026-08-01 15:01:35 +08:00
Vincent Koc
b85062825b fix(talk): reserve replacement ownership first 2026-08-01 14:59:18 +08:00
Vincent Koc
0a58b58666 fix(talk): separate pending and active transports 2026-08-01 14:55:41 +08:00
Vincent Koc
106773977a fix(talk): make transport replacement transactional 2026-08-01 14:49:04 +08:00
Vincent Koc
835f12ef47 fix(talk): release owner after startup failure 2026-08-01 14:42:36 +08:00
Vincent Koc
e7a19a8784 fix(talk): fence late browser voice events 2026-08-01 14:39:31 +08:00
Vincent Koc
8fdcdaba76 fix(talk): bound browser transcript ownership 2026-08-01 14:39:27 +08:00
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