Peter Steinberger
9214e6381d
refactor(discord): consolidate interactive response handling ( #119448 )
2026-08-04 21:01:32 -07:00
Peter Steinberger
2b003f186d
refactor(memory-wiki): reuse canonical plugin normalization ( #119449 )
2026-08-04 20:55:58 -07:00
Peter Steinberger
752dd2b5b8
refactor(cli): consolidate repeated command registration ( #119434 )
2026-08-04 20:51:32 -07:00
Cuttingwater
f0a74970ec
fix(system-agent): apply approved proposal exactly once ( #119389 )
...
Co-authored-by: Chris Davidson <chris.davidson.47@gmail.com >
2026-08-04 23:48:18 -04:00
Peter Steinberger
39bbd8afd3
refactor(sessions): consolidate transcript and state helpers ( #119435 )
2026-08-04 20:45:41 -07:00
Peter Steinberger
2692954c72
refactor(infra): consolidate service paths and usage rollups ( #119433 )
2026-08-04 20:39:53 -07:00
Syu
b316c9cacf
fix(channels): honor explicit preview streaming settings
...
Explicit Telegram and Discord preview modes now override inherited block streaming while explicit channel block settings remain authoritative.
Co-authored-by: Syu <zhuqimo@gmail.com >
2026-08-05 09:04:49 +05:30
Peter Steinberger
ad37e91fbb
refactor(telegram): consolidate outbound contracts and targets ( #119438 )
2026-08-04 20:33:45 -07:00
Peter Steinberger
b5d99c1f06
fix(qa): retry transport cleanup and always stop owned labs ( #119442 )
2026-08-04 20:31:28 -07:00
Yuval Dinodia
3bda007ca4
fix(mcp): guard stdio stdout frame parsing against oversized-buffer crash ( #119379 )
...
…rash
An MCP server whose stdout frame exceeds the SDK ReadBuffer 10 MiB cap makes
ReadBuffer.append throw synchronously inside the child stdout data callback.
The handler had no try/catch, so the error escaped as an uncaughtException and
took down the host process, killing every concurrent session. The frame size is
driven by tool-result data a lower-privileged sender can influence, not by the
operator who chose the server.
Wrap append and processReadBuffer in the same try/catch the upstream SDK
transport uses: route the error to onerror and close the transport so the MCP
runtime handles it as a server disconnect. This matches the existing stdin
(#75438 ) and stderr (#99803 ) guards in this file; stdout was the missed path.
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-08-04 22:29:30 -05:00
Peter Steinberger
c4dccc614d
refactor(auto-reply): centralize delivery deduplication and routing ( #119436 )
2026-08-04 20:29:21 -07:00
Peter Steinberger
b5237ac86a
fix(qa): preserve scenario isolation in serial suites ( #119439 )
2026-08-04 20:26:47 -07:00
Vincent Koc
e35d22807e
perf(xai): lazy-load optional capability runtimes ( #119374 )
...
Punchcard-Session: coral-workshop-workshop-3f
2026-08-05 11:26:40 +08:00
Peter Steinberger
767dc7019d
refactor(browser): consolidate browser CLI and normalization helpers ( #119432 )
2026-08-04 20:26:21 -07:00
Peter Steinberger
bf1bdb429e
fix(qa): require ready transport accounts ( #119431 )
2026-08-04 20:23:31 -07:00
Peter Steinberger
a5ebadc293
refactor(media): share image and video geometry normalization ( #119416 )
2026-08-04 20:23:25 -07:00
Vincent Koc
9371dddcdb
fix(config): preserve plugin metadata for missing config ( #119421 )
...
Restore plugin metadata for valid missing-config snapshot reads while preserving scan-free plain reads and fail-closed invalid snapshots.
2026-08-05 11:22:42 +08:00
Jason (Json)
ab7b3ffd1f
fix: retry delivery when outbound adapter is unavailable ( #119371 )
...
* fix(outbound): preserve pre-dispatch retryability
* test(outbound): assert lazy runtime sender
* fix(feishu): preflight direct message runtime
* test(gateway): preserve scoped registry fixture
2026-08-04 21:22:07 -06:00
Vincent Koc
fd1662f49c
fix(cli): retire invalid secret flags and prove doctor recovery ( #118926 )
...
* test(qa): add doctor CLI recovery coverage
* test(qa): secure doctor exec SecretRef proof
* test(qa): gate doctor systemd recovery proof
* test(qa): normalize doctor terminal output
* test(qa): close doctor probe sockets
* test(qa): classify doctor probe as foreign
* test(qa): track doctor probe sockets
* test(qa): retain doctor instance narrowing
* test(qa): preserve observed doctor recovery proof
* test(qa): keep doctor recovery on stable dist
* test(qa): honor Windows exec ACL blocking
* test(qa): use canonical home for systemd recovery
* test(qa): follow bounded gateway recovery
* test(qa): accept lifecycle service label
* test(qa): align doctor recovery contract
Punchcard-Session: crisp-lantern-orchard-nv
* docs(secrets): remove retired provider bypasses
Punchcard-Session: crisp-lantern-orchard-nv
* test(qa): isolate doctor recovery target
Punchcard-Session: crisp-lantern-orchard-nv
* fix(cli): retire invalid secret provider flags
Punchcard-Session: crisp-lantern-orchard-nv
* test(qa): isolate doctor supervisor mode
Punchcard-Session: crisp-lantern-orchard-nv
* fix(plugins): remove dead secret path bypass
Punchcard-Session: crisp-lantern-orchard-nv
* chore: drop release-owned changelog entry
Punchcard-Session: crisp-lantern-orchard-nv
* test(qa): isolate doctor sudo scope
Punchcard-Session: crisp-lantern-orchard-nv
* fix(secrets): remove dead path bypass
Punchcard-Session: crisp-lantern-orchard-nv
* test(qa): isolate systemd user bus
Punchcard-Session: crisp-lantern-orchard-nv
2026-08-05 11:20:23 +08:00
Peter Steinberger
0ef1911192
refactor(signal): share outbound and reaction transport ( #119415 )
2026-08-04 20:19:33 -07:00
Peter Steinberger
a8caab5c3d
refactor(plugin-sdk): remove unused private QA helpers ( #119437 )
2026-08-04 20:16:07 -07:00
Peter Steinberger
1f3d45b76f
refactor(plugins): consolidate lifecycle hook dispatch ( #119429 )
2026-08-04 20:11:22 -07:00
Vincent Koc
17ef7771a6
fix(ci): stabilize TUI PTY proof ownership ( #119420 )
...
* fix(ci): stabilize TUI PTY proof ownership
Punchcard-Session: cobalt-brook-meadow-m9
* fix(test): align TUI PTY event typings
Punchcard-Session: cobalt-brook-meadow-m9
2026-08-05 11:08:56 +08:00
Peter Steinberger
23c7981a73
test(system-agent): reduce suite setup overhead ( #119424 )
...
* test(system-agent): reduce suite setup overhead
* test(system-agent): type-check TUI call ordering
---------
Co-authored-by: Peter Steinberger <steipete@mac-studio-sf2.local >
2026-08-04 20:08:53 -07:00
Peter Steinberger
866dade246
fix(ui): keep session rail pill status from overlapping the headline ( #119397 )
2026-08-04 20:06:26 -07:00
Vincent Koc
1ee0564b09
fix(discord): avoid doctor runtime loading ( #119391 )
...
* fix(discord): publish doctor capability metadata
Punchcard-Session: amber-workshop-river-yr
* fix(doctor): read packaged channel metadata
Punchcard-Session: amber-workshop-river-yr
2026-08-05 11:05:35 +08:00
Peter Steinberger
22de30f998
fix(media): decouple playback cache retention ( #119417 )
2026-08-04 19:57:48 -07:00
Peter Steinberger
847e6eea8e
fix(slack): infer upload filename extensions from MIME types ( #119399 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-04 19:57:10 -07:00
Peter Steinberger
03cbc2cad5
refactor(channels): unify configured binding resolution ( #119414 )
2026-08-04 19:55:09 -07:00
Peter Steinberger
4707934b30
refactor(google-meet): unify gateway and tool dispatch ( #119413 )
2026-08-04 19:52:26 -07:00
Peter Steinberger
c8730c748c
test(state): reuse legacy database fixtures ( #119423 )
...
* test(state): reuse legacy database fixtures
* test(state): use tracked temp fixture
---------
Co-authored-by: Peter Steinberger <steipete@mac-studio-sf2.local >
2026-08-04 19:50:57 -07:00
Vincent Koc
1b499e2c3c
fix(reset): preserve bootstrap guidance for dynamic models ( #119179 )
...
Punchcard-Session: silver-valley-valley-dt
2026-08-05 10:45:23 +08:00
mushuiyu886
e8eb765ab7
fix(chutes): honor serving context limits ( #119196 )
2026-08-04 19:42:54 -07:00
Peter Steinberger
5ffd2dfbc3
refactor(status): consolidate scan projections and lazy loaders ( #119412 )
2026-08-04 19:41:40 -07:00
mikasa
722dfb3d64
fix(status): status --all slows down with missing plugins ( #119203 )
...
* fix(status): avoid repeated discovery for missing channels
* fix(status): batch missing plugin repair hints
* fix(status): type missing plugin channel ids
* fix(status): preserve required channel ids
* fix(status): keep batch hint type internal
* fix(status): preserve batch repair laziness
---------
Co-authored-by: daily-fix[bot] <daily-fix[bot]@users.noreply.github.com>
Co-authored-by: Patrick Erichsen <patrick.a.erichsen@gmail.com >
2026-08-04 19:41:31 -07:00
Peter Steinberger
02f7ed0f51
refactor(gateway): consolidate usage reporting and caches ( #119409 )
2026-08-04 19:37:36 -07:00
Serghei
9c61076f66
perf(gateway): keep reload and recovery machinery off gateway cold start ( #119094 )
...
The run loop primes cli/gateway-cli/lifecycle.runtime.ts before installing
signal handlers, so every symbol that hub re-exports loads before the HTTP
listener binds. Two of those re-exports resolved through forwarding modules:
gateway/server-reload-handlers.ts also re-exports the hot-reload and managed
reloader modules, and agents/main-session-restart-recovery.ts also re-exports
its -runtime sibling. ESM evaluates the whole forwarding module, so priming the
hub pulled both graphs onto the cold-start path.
Re-export each symbol from the module that defines it instead.
abortPendingChannelReloads lives in gateway/server-reload-contracts.ts, whose
own imports are all type-only, and markRestartAbortedMainSessions lives in
agents/main-session-restart-recovery-marking.ts. Both retargets resolve to the
same module instances, so shared reload-generation state and behavior are
unchanged, and the eager priming that protects signal handlers from dist chunk
rotation stays in place.
Add a CLI-lane import-boundary test so these re-exports cannot be routed back
through a forwarding module, and point the two run-loop test mocks at the
defining modules.
2026-08-04 19:37:05 -07:00
mushuiyu886
c6be75957f
fix(cli): align TaskFlow controller columns for wide text ( #118801 )
2026-08-04 19:31:55 -07:00
Peter Steinberger
195b0ea3fa
fix: make startup migration restart guidance install-neutral ( #119406 )
2026-08-04 19:28:27 -07:00
Vincent Koc
392e1c0620
fix(ci): preserve cache warmer shard envelopes ( #119403 )
...
Punchcard-Session: amber-orchard-valley-s4
2026-08-05 10:20:55 +08:00
Dinesh H Suthar
50c7444edf
fix(sessions): preserve compatible auth profiles on model changes ( #117550 )
...
* fix(model-picker): preserve compatible auth profiles
* chore(plugin-sdk): refresh API baseline
* fix(model-picker): keep profile policy core-owned
* fix(model-picker): preserve profiles across auth aliases
* chore(plugin-sdk): update public surface budgets
* fix(model-picker): honor explicit profile clearing
* fix: preserve compatible auth profiles on model changes
* perf: reuse prepared auth profile metadata
* docs(plugin-sdk): document direct model persistence fallback
* test: expose auth snapshot in directive mock
Co-authored-by: Ayaan Zaidi <hi@obviy.us >
Co-authored-by: Dinesh Suthar <dineshsld20@gmail.com >
2026-08-05 07:40:00 +05:30
Vincent Koc
9f8270dedc
fix(qa): stop zombie-only gateway process groups ( #119396 )
...
Punchcard-Session: amber-orchard-valley-s4
2026-08-05 10:07:28 +08:00
Vincent Koc
6a8e11e63c
fix(qa): repair release validation scenarios ( #119150 )
...
* fix(qa): repair parity and matrix media setup
Punchcard-Session: silver-valley-valley-dt
* test(qa): accept token-budgeted compaction suffix
Punchcard-Session: silver-valley-valley-dt
* test(qa): scope request diagnostics
Punchcard-Session: silver-valley-valley-dt
* test(qa): prove thread-memory causality
Punchcard-Session: silver-valley-valley-dt
* test(qa): configure Matrix image generation and fail fast
Punchcard-Session: silver-valley-valley-dt
* fix(qa): require memory get before thread recall
Punchcard-Session: silver-valley-valley-dt
* fix(qa): unify mock provider dispatch
Punchcard-Session: silver-valley-valley-dt
* fix(qa): repair Anthropic IDs and compaction causality
Punchcard-Session: silver-valley-valley-dt
* fix(qa): authenticate compaction wire causality
Punchcard-Session: silver-valley-valley-dt
* fix(qa): preserve Responses tool item identity
Punchcard-Session: silver-valley-valley-dt
* fix(qa): scope restart heartbeat proof
Punchcard-Session: silver-valley-valley-dt
* test(qa): assert causal traces before delivery
Punchcard-Session: silver-valley-valley-dt
* fix(qa): validate code mode completion evidence
Punchcard-Session: silver-valley-valley-dt
* test(qa): split causal catalog checks
Punchcard-Session: silver-valley-valley-dt
* style(qa): format matrix scenario tests
Punchcard-Session: silver-valley-valley-dt
2026-08-05 09:56:06 +08:00
Peter Steinberger
8d2996937f
fix(ui): clear split-pane questions after answers and cancellations ( #118787 )
...
* fix(ui): reconcile question outcomes across gateway projections
* fix(ui): preserve question outcomes after pane disposal
---------
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-04 18:28:19 -07:00
Peter Steinberger
ed31a4dd79
fix(slack): authorize reaction and message reads before applying limits ( #118736 )
...
* fix(slack): bound reaction users in message actions
* test(slack): validate encoded reaction request bodies
* fix(slack): keep reaction user limits in action owner
* fix(slack): authorize message reads before validating limits
---------
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-04 18:12:59 -07:00
Vincent Koc
8f2850d83e
fix(ci): isolate cache warmer configs ( #119381 )
...
Punchcard-Session: amber-orchard-valley-s4
2026-08-05 09:12:28 +08:00
Sarah Fortune
c56eaca14b
fix(slack): Fix bad escaping in slack tool commentary ( #119373 )
...
* fix(slack): preserve Markdown in progress drafts
* fix(slack): retain escaping for tool progress
* fix(slack): scope progress line escaping
* fix(slack): preserve progress formatting by source
* test(slack): assert plan refresh rendering
* test(slack): keep progress regression coverage scoped
* update tests
---------
Co-authored-by: Sarah Fortune <sarah.fortune@gmail.com >
2026-08-04 18:10:25 -07:00
Josh Avant
618fba92bf
feat(audit): add execution identity inspection ( #117034 )
...
* feat(audit): add opt-in execution identity inspection
* fix(audit): gate recovery identity retention
* fix(audit): keep recovery identity type private
* test(audit): type internal recovery fixture
* test(audit): split recovery identity coverage
* docs(audit): define operator read trust boundary
* test(qa): register identity scenario child
* fix(audit): enforce shared identity retention bounds
* fix(audit): seal public ingress identity boundary
* fix(audit): keep ingress guard lint-clean
* fix(gateway): preserve advertised method order
* chore(protocol): sync advertised method order
* fix(protocol): encode audit selector invariants
* test(audit): prove exact execution guard
* fix(audit): keep identity storage lazy
2026-08-04 20:05:15 -05:00
Peter Steinberger
58025dd33c
fix(fs): adopt fs-safe 0.5.2 untrusted filename sanitization ( #119363 )
...
* fix(fs): adopt fs-safe 0.5.2 untrusted filename sanitization
* fix(media): classify pre-open identity drift as access denial
* chore(checks): refresh SDK baseline and env-var budget for fs-safe adoption
* test(media): compact sanitizer cases under max-lines
* fix(agents): keep workspace symlink contract under fs-safe 0.5.2
* fix(infra): align path normalization and atomic-write proofs with fs-safe 0.5.2
* fix(fs): keep operator symlink contracts on config, control-ui, skills, hooks
* fix(fs): restore sandbox and session-lock contracts under fs-safe 0.5.2
* test(claws): expect symlink diagnostic for tampered plan parents
* fix(agents): canonicalize apply-patch mutations through contained aliases
* test(agents): split alias-update regression into focused file
---------
Co-authored-by: Peter Steinberger <steipete@mac-studio-sf2.local >
2026-08-04 17:53:44 -07:00
Vincent Koc
9518564e30
fix(ci): preserve release evidence across reruns ( #119380 )
...
Punchcard-Session: silver-valley-valley-dt
2026-08-05 08:43:25 +08:00