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