Peter Steinberger
e63bd3e9a4
fix: make gateway stress results reflect real concurrency ( #121677 )
...
* fix(qa): preserve gateway rpc concurrency
Amp-Thread-ID: https://ampcode.com/threads/T-019fec02-d170-73eb-aec8-b364ab706745
Co-authored-by: Peter Steinberger <steipete@gmail.com >
* fix(agents): clean detached session lifecycle
Amp-Thread-ID: https://ampcode.com/threads/T-019fec02-d170-73eb-aec8-b364ab706745
Co-authored-by: Peter Steinberger <steipete@gmail.com >
* fix(gateway): classify metadata startup sequencing
Amp-Thread-ID: https://ampcode.com/threads/T-019fec02-d170-73eb-aec8-b364ab706745
Co-authored-by: Peter Steinberger <steipete@gmail.com >
* fix(types): heal main test typecheck
Amp-Thread-ID: https://ampcode.com/threads/T-019fec02-d170-73eb-aec8-b364ab706745
Co-authored-by: Peter Steinberger <steipete@gmail.com >
* fix(qa): type gateway rpc request mock
Amp-Thread-ID: https://ampcode.com/threads/T-019fec02-d170-73eb-aec8-b364ab706745
Co-authored-by: Peter Steinberger <steipete@gmail.com >
* fix(qa): preserve terminal transport state
Amp-Thread-ID: https://ampcode.com/threads/T-019fec02-d170-73eb-aec8-b364ab706745
Co-authored-by: Peter Steinberger <steipete@gmail.com >
* test(gateway): allow qa transport owner
Amp-Thread-ID: https://ampcode.com/threads/T-019fec02-d170-73eb-aec8-b364ab706745
Co-authored-by: Peter Steinberger <steipete@gmail.com >
* test(ui): isolate attachment handoff lifecycle
Amp-Thread-ID: https://ampcode.com/threads/T-019fec02-d170-73eb-aec8-b364ab706745
Co-authored-by: Peter Steinberger <steipete@gmail.com >
---------
Co-authored-by: Amp <amp@ampcode.com >
2026-08-10 19:54:55 +00:00
Peter Steinberger
8a5978154f
fix(ui): handle keyboard context menu shortcuts ( #121628 )
...
* fix(ui): handle keyboard context menu shortcuts
* fix(ci): repair shared validation regressions
* fix(ci): repair setup admission lint
* fix(ci): settle setup admission tests
2026-08-10 12:39:22 -07:00
Peter Steinberger
55afad26c0
test(ci): align owner and lifecycle expectations
2026-08-10 11:47:43 -07:00
Peter Steinberger
aa33c63c5b
chore(lint): clear sort mutation, spread fallback, and error-cause findings
...
toSorted/flat in the labeler coverage test, drop no-op empty-object spread
fallbacks in the telegram command-menu e2e config, and attach the caught
cause when rewrapping the trusted-workflow parse error.
2026-08-10 10:25:31 -07:00
Peter Steinberger
b2bb148407
fix(types): heal package acceptance checks
2026-08-10 09:55:54 -07:00
Peter Steinberger
63776cf5a0
fix(mcp): honor Windows PATH key casing in doctor ( #121595 )
2026-08-10 09:55:41 -07:00
Peter Steinberger
896592b747
test(vitest): give config creators nameable return types
...
A vitest/vite type bump made inferred creator return types reach
vite-internal names (TS4058/TS4082), failing check-test-types repo-wide.
Annotate the scoped/extension config roots and the spread-rebuilding
creators with ViteUserConfig; also drop an unused workflow read, mutating
sorts, and an untyped record index left by 1f591bba56 .
2026-08-10 09:35:51 -07:00
Peter Steinberger
25a9a2e020
fix(ci): guard empty QA-live filter token join in release checks
...
An all-QA live_suite_filter leaves repo_filter_tokens empty; joining the
empty array under set -u aborts the scheduling script on bash <4.4.
Default the expansion and update the workflow-content assertion.
2026-08-10 09:35:51 -07:00
Peter Steinberger
ed39f6540f
fix(release): keep evidence reads on cached gh ( #121619 )
2026-08-10 07:40:55 -07:00
Vincent Koc
1f591bba56
fix(release): bound validation retries and soak
2026-08-10 22:31:32 +08:00
Peter Steinberger
3b3c540896
refactor: remove dead branches and test-only helpers ( #121345 )
...
* refactor: remove dead branches and test-only helpers
* fix: preserve codex cleanup error causes
* fix: preserve gateway error code compatibility
* chore: update plugin sdk api baseline
* docs: fix live cache runner path
2026-08-10 06:47:43 -07:00
Peter Steinberger
f286928210
refactor(agents): type the reply failover seam and carry structured attempts ( #121551 )
...
* refactor(agents): carry structured fallback attempts
* refactor(agents): preserve typed failover delivery metadata
* refactor(auto-reply): consume canonical failover classification
* fix(auto-reply): preserve typed failure copy
* fix(auto-reply): keep failover facets internal
* fix(agents): remove stale failover exports
* chore(plugin-sdk): refresh API baseline
* fix(delivery): repair queue and pending-final settlement
* fix(lint): keep delivery queue within line budget
* fix(ci): refresh baselines after main rebase
* test(outbound): assert ambiguous send payload directly
* refactor(reply): follow upstream custody revert
2026-08-10 06:16:46 -07:00
Peter Steinberger
572fab0b5b
fix(auto-reply): handle uppercase file URLs when staging media ( #121521 )
2026-08-10 04:26:32 -07:00
Peter Steinberger
e37614c83f
refactor(plugin-sdk): replace hash manifest with JSONL contract ( #121473 )
...
* refactor(plugin-sdk): use JSONL API baseline contract
* chore(plugin-sdk): add generated JSONL API baseline
2026-08-10 03:49:17 -07:00
Peter Steinberger
8e1c238c1c
fix(cron): prevent invalid timestamps from stranding jobs ( #121394 )
...
* fix(cron): harden scheduling timestamp boundaries
Amp-Thread-ID: https://ampcode.com/threads/T-019fe949-92e4-76bd-8cfa-aea44fcfaebe
* test(prompts): refresh cron tool snapshots
Amp-Thread-ID: https://ampcode.com/threads/T-019fe949-92e4-76bd-8cfa-aea44fcfaebe
* test(cron): keep config revision fixture Date-valid
Amp-Thread-ID: https://ampcode.com/threads/T-019fe949-92e4-76bd-8cfa-aea44fcfaebe
* refactor(cron): consolidate scheduling lifecycle
Amp-Thread-ID: https://ampcode.com/threads/T-019fe949-92e4-76bd-8cfa-aea44fcfaebe
* refactor(cron): keep task history dependencies acyclic
Amp-Thread-ID: https://ampcode.com/threads/T-019fe949-92e4-76bd-8cfa-aea44fcfaebe
* fix(cron): canonicalize timestamp auto-disable
Amp-Thread-ID: https://ampcode.com/threads/T-019fe949-92e4-76bd-8cfa-aea44fcfaebe
* test(cron): verify startup overflow notifications
Amp-Thread-ID: https://ampcode.com/threads/T-019fe949-92e4-76bd-8cfa-aea44fcfaebe
* chore(ci): repair main baseline gates
Amp-Thread-ID: https://ampcode.com/threads/T-019fe949-92e4-76bd-8cfa-aea44fcfaebe
---------
Co-authored-by: Amp <amp@ampcode.com >
2026-08-10 03:20:23 -07:00
Peter Steinberger
c034670b72
fix(codex): keep authenticated user identity in agent turns ( #121511 )
...
* fix(codex): preserve authenticated sender context
* test(codex): type sender recorder fixture
* fix(codex): scope sender context to user turns
2026-08-10 02:54:04 -07:00
Vincent Koc
27d2af2298
fix(qa): await gateway artifact startup ( #121453 )
...
Punchcard-Session: amber-workshop-workshop-36
2026-08-10 17:53:07 +08:00
Dallin Romney
0296785c5f
fix(ci): validate frozen extended-stable candidates ( #120986 )
...
* fix(ci): support frozen extended-stable validation
* fix(ci): avoid map spread in release config projection
* refactor(ci): use suite config mutation for frozen candidates
* fix(ci): keep frozen candidate config private
* refactor(qa): expose config mutation
* fix(qa): preserve config mutation in runtime pairs
2026-08-10 17:40:46 +08:00
Pavan Kumar Gondhi
c9d39979f2
fix(ci): read dependency guard state from trusted metadata [AI] ( #121505 )
...
* fix(ci): bind dependency guard state to head
* test(ci): isolate dependency guard state forgeries
2026-08-10 14:32:49 +05:30
Vincent Koc
a994d2ad5f
fix(qa): provide protocol base to evidence runs ( #120710 )
...
Co-authored-by: Dallin Romney <6581799+RomneyDa@users.noreply.github.com >
Punchcard-Session: amber-workshop-workshop-36
2026-08-10 16:59:58 +08:00
Peter Steinberger
560d172ae7
chore(scripts): prevent new wrapper shadowing ( #121456 )
...
* chore(scripts): prevent wrapper shadowing
* chore(scripts): refresh wrapper baseline
2026-08-10 01:40:44 -07:00
Ayaan Zaidi
4b0151682e
refactor(commitments): remove inferred follow-up subsystem
...
Remove hidden follow-up extraction, heartbeat delivery, CLI, docs, and supporting tests/tooling. Existing commitment records remain inert pending separately approved cleanup.
Co-authored-by: Ayaan Zaidi <hi@obviy.us >
2026-08-10 13:48:32 +05:30
Peter Steinberger
5b478bb64f
fix(windows): shorten home paths case-insensitively ( #121455 )
2026-08-10 00:59:32 -07:00
Peter Steinberger
f6298bf84d
fix(workers): preserve disappeared-worker failures across restarts ( #121122 )
...
* fix(workers): persist placement terminal failures
* fix(workers): refresh placement protocol clients
* refactor(workers): isolate error formatting
* fix: integrate cloud terminal state with current main
* chore(plugin-sdk): refresh API baseline
* refactor(ui): inline one-use cloud terminal-reason banner helper
Keeps the Control UI startup JS bundle inside its 317 KiB gzip budget
(the helper + type-only import tipped it by 16 bytes).
* refactor(ui): trim terminal-reason lookup to type-erased optional access
Recovers the last gzip byte of the Control UI startup budget
(324609 B vs the 324608 B limit).
2026-08-10 00:36:52 -07:00
Peter Steinberger
145ec3778f
refactor(agents): consolidate failover classification into one substrate ( #121341 )
...
* refactor(agents): consolidate failover classification substrate
* chore(agents): align failover refactor guards
* fix(agents): preserve leading 429 status handling
* perf(agents): retain lazy failover hook gating
* chore(agents): refresh failover guard artifacts
2026-08-09 23:58:44 -07:00
Peter Steinberger
8bb1fe4d7e
fix(acp): drain runtime handles on gateway shutdown ( #121359 )
...
* fix(acp): drain runtime handles on gateway shutdown
* refactor(acp): isolate manager shutdown lifecycle
* style(acp): brace lifecycle guard
* fix(acp): cancel active turns before shutdown drain
* fix(acpx): reap process tree before wrapper close
* fix(test): diagnose surviving Vitest process groups
* fix(test): type process completion signals portably
* fix(test): reap orphaned live Docker workers
* fix(test): preserve child signal typing
* fix(gateway): retain ACPX through manager drain
* test(gateway): type deferred ACP disposal exactly
2026-08-09 23:55:19 -07:00
Vincent Koc
f4987deb94
fix(ci): support frozen validation scripts ( #121458 )
2026-08-10 14:49:51 +08:00
Peter Steinberger
23d1eca455
refactor(sessions): enforce transcript writer fence in sqlite sync ops ( #121316 )
...
Fold the writer-claim fence into the four sync write ops at their
definition sites, collapse the logical-layer fence wrappers to plain
re-exports, delete the session-accessor.sqlite middle barrel (the only
unfenced escape hatch), and retarget its 26 importers to the focused
defining modules. replaceSessionEntrySync intentionally stays unfenced:
its two production callers own their freshness guards and its return
carries no rebound signal. Net -106 production LOC, behavior-neutral.
Part 1 of the session-accessor dual-layer collapse.
2026-08-09 23:16:57 -07:00
Dallin Romney
e422317cce
fix(qa): record blocked SSH evidence ( #121011 )
...
Extracted from #120588 at 2d0fdeb61fa06f9fa97b9626bb5a2f9016e45202.
2026-08-10 13:42:48 +08:00
Peter Steinberger
3156b67708
ci(labeler): fix dead rules, cover all plugin dirs, drop vendored artifacts ( #121348 )
...
* ci(labeler): fix dead rules and cover unlabeled plugin dirs
* chore: drop vendored swabble workflow and empty ActivityWidget asset catalog
2026-08-09 22:28:02 -07:00
Peter Steinberger
8ee945b907
refactor(channels): flatten channel-turn dispatch naming layers ( #121308 )
...
* refactor(channels): flatten channel turn dispatch naming
* docs(plugin-sdk): narrow inbound reply compat guidance
* docs(channels): point stale references at turn defining modules
* fix(channels): preserve dispatch contracts after flattening
* chore(plugin-sdk): ratchet surface budgets after flattening
* chore(channels): ratchet removed export collisions
* fix(plugin-sdk): restore inbound reply compat exports
Restore eight still-existing legacy callable re-exports from canonical SDK seams and cover the deprecated package subpath with a table-driven compatibility test.
Raise the public export, callable export, and deprecated export budgets by exactly eight; the three maintainer-authorized zero-consumer symbols remain removed.
* test(channels): split channel turn kernel coverage
Replace the oversized kernel test with independently mocked delivery, pipeline, and finalize suites, preserving all 51 tests while removing the max-lines suppression and stale ratchet entry.
* chore(plugin-sdk): refresh inbound reply API hash
* fix(ci): align channel turn review fixes
Restore the test-local DeliveryResult type removed during the split.
Ratchet the public export, callable export, and deprecated export budgets by exactly seven: six channel-inbound plus one channel-outbound legacy re-export.
2026-08-09 22:22:46 -07:00
Dallin Romney
cdca4c18bb
fix(qa): activate Telegram startup plugin ( #121010 )
...
Extracted from #120588 at 2d0fdeb61fa06f9fa97b9626bb5a2f9016e45202.
2026-08-10 13:15:58 +08:00
Peter Steinberger
d6ee4c3570
fix(test): isolate gateway network proof ports ( #121389 )
...
Amp-Thread-ID: https://ampcode.com/threads/T-019fe995-c7ec-74f2-aaa7-9c48fe9aa4ac
Co-authored-by: Amp <amp@ampcode.com >
2026-08-09 22:10:40 -07:00
Peter Steinberger
ff10db092b
ci(mantis): extract shared request-resolution, ref-trust, and reaction workflows ( #121339 )
...
* ci(mantis): extract shared request, trust, and reaction workflows
* ci(mantis): drop caller-less params from shared resolve workflow
* test(mantis): read candidate-override parsing from shared resolve workflow
2026-08-09 22:04:27 -07:00
Peter Steinberger
864414c5fd
fix(media): recognize uppercase attachment file URLs ( #121362 )
2026-08-09 21:49:12 -07:00
Peter Steinberger
6c1879e5e7
fix(scripts): recognize relocated subagent-registry lifecycle seam in audit ( #121363 )
2026-08-09 20:22:20 -07:00
Peter Steinberger
8430fc0e3b
refactor(agents): move spawn family into subagents/spawn ( #121350 )
...
* refactor(agents): move spawn family into subagents/spawn
* refactor(agents): keep spawn imports within lint budget
2026-08-09 19:51:29 -07:00
Peter Steinberger
188a248449
fix(test): restore root-matrix unit-fast cleanup ( #121356 )
2026-08-09 19:44:44 -07:00
Peter Steinberger
f44c5e2e5e
fix(plugins): surface manifest-only bundled capabilities ( #121354 )
...
Use a manifest-first inventory with independent coverage for manifest-only bundled capabilities.
Retire the undocumented thread-ownership plugin while Doctor removes stale references.
Document Talk voice and persist only provider-scoped voice selection.
Closes #121353
2026-08-09 19:43:49 -07:00
Peter Steinberger
88fc335323
fix(ci): support frozen script entrypoints ( #121208 )
...
* fix(ci): support frozen script entrypoints
* fix(ci): route frozen plugin tests through package script
* fix(release): support compiled candidate test helpers
* fix(release): support compiled upgrade helpers
* fix(release): mount trusted upgrade runtime
* fix(release): preserve trusted tsx resolution
2026-08-10 10:31:21 +08:00
Peter Steinberger
da0fad6718
fix(usage): expand Windows footer template paths ( #121303 )
2026-08-09 19:29:10 -07:00
Vincent Koc
4ee008a026
fix(qa): reuse one immutable Docker candidate ( #121253 )
...
Punchcard-Session: amber-workshop-workshop-36
Co-authored-by: Dallin Romney <6581799+RomneyDa@users.noreply.github.com >
2026-08-10 10:14:24 +08:00
Peter Steinberger
e61ba9c1ea
fix(scripts): fall back to local check:changed lanes on full Crabbox provider outage ( #121323 )
...
Recognize Crabbox workload-routing provider exhaustion as a pre-dispatch backend outage so check:changed runs its documented local fallback.
The observed full provider-chain outage previously exited 2 without running local lanes.
The existing command-exit veto still runs first, so a remote run that actually executed and failed remains fail-closed.
2026-08-09 19:06:01 -07:00
Peter Steinberger
64695e5024
chore: detect export name collisions ( #121300 )
...
* chore(scripts): add export-name-collision check with debt baseline
* chore(scripts): allowlist per-module test-hook export idiom
* chore(scripts): recognize const forwarders, harness files, and JS sources in collision check
2026-08-09 18:58:28 -07:00
Peter Steinberger
1c95854163
refactor(media): fold per-kind alias shells into per-concern modules ( #121302 )
...
* refactor(media): fold per-kind alias shells into per-concern modules
* test(ci): retarget media test inventories after shell fold
2026-08-09 18:19:38 -07:00
Peter Steinberger
cfe6ebcd1e
fix(scripts): anchor hydrated tsx at checkout root ( #121149 )
...
Resolve pnpm's configured modules directory from the checkout root before TypeScript boot, preserving both environment spellings and canonical checkout/common-worktree fallbacks. Use Node package self-resolution from the hydrated tsx package so nested wrappers cannot change relative path semantics.
2026-08-09 17:15:27 -07:00
Peter Steinberger
055a2dc6ce
feat: continue dashboard sessions from CLI URLs ( #120893 )
...
* feat(cli): ingest session targets
* refactor(ui): remove gateway scope shim
* docs(cli): document session targets
* fix(cli): classify session target failures
* fix(cli): keep session target result private
* fix(cli): simplify timeout option warning
* build: declare session URL contract dependency
* fix(cli): parse bare session URL options symmetrically
* fix(cli): preserve command-owned URL arguments
* build: keep session URL contract build-only
* fix: address session URL review findings
* test: preserve session key mock exports
* fix: keep session URL helpers internal
* fix(tui): preserve URL agent for global sessions
* fix(tui): keep URL agent input internal
* fix(gateway): reconcile websocket protocol owner
* fix(attach): preserve global session agent ownership
* fix(attach): enforce global owner at grant boundary
2026-08-09 16:44:25 -07:00
Peter Steinberger
3bdfd60caa
fix(media): accept mixed-case local file URLs ( #121226 )
2026-08-09 16:40:55 -07:00
Peter Steinberger
bd6c6aaef2
refactor(ws): consolidate raw WebSocket payload decoding ( #121268 )
...
* refactor(ws): consolidate raw data conversion
* fix(scripts): keep gateway client source-loadable
* refactor(ws): share plugin frame decoding
2026-08-09 16:32:18 -07:00
Peter Steinberger
ce53f7e82e
refactor(agents)!: remove the session write lease ( #121113 )
...
* refactor(agents): remove session write lease
* refactor(plugin-sdk): deprecate session write lease
* refactor(doctor): remove session lock checks
* test(agents): remove session lease fixtures
* test(agents): align writer rebound assertion
* refactor(infra): remove retired session lock exports
* test(tooling): preserve embedded abort race shard
2026-08-09 15:30:48 -07:00