Commit Graph

78555 Commits

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