Peter Steinberger
73ae583263
refactor(tasks): simplify subagent activity tracking ( #122198 )
...
* refactor(tasks): simplify subagent activity tracking
* fix(android): single-source subagent activity expiry clock
* chore(i18n): refresh native source baseline
2026-08-11 12:30:49 -07:00
Peter Steinberger
3d76246792
refactor: eliminate final export name collisions ( #122083 )
...
* refactor: resolve final export name collisions
* refactor: update remaining collision rename consumers
* style: format rebased auth helpers
* test: update remaining session entry mocks
* test: update remaining runtime mock exports
* test: update delivery info path mock
* refactor: reconcile combined collision sweeps
* chore: regenerate collision and sdk baselines
2026-08-11 11:18:24 -07:00
Peter Steinberger
e390781534
refactor: burn cross-directory export name collisions ( #121893 )
...
* refactor: name subsystem logger exports
* refactor(test): distinguish exported test doubles
* refactor: consolidate canonical owner helpers
* refactor: give cross-domain helpers distinct names
* chore(lint): ratchet collision debt baselines
* fix(test): complete collision rename consumers
* fix(test): update remaining collision mock consumers
* fix(test): update transcript reader mock export
* refactor: keep embedded logger name at its owner
* fix(test): align embedded logger mock with owner
* refactor: name shared assistant phase extraction
* fix(ui): update assistant phase extractor import
* chore(generated): refresh collision and SDK baselines
* style(test): format merged plugin mocks
* chore(sdk): refresh API content hashes
2026-08-11 06:50:22 -07:00
Peter Steinberger
e6b356f35a
fix(tasks): stream Codex subagent activity ( #121899 )
...
* fix(tasks): stream Codex subagent activity
* fix(tasks): honor registry access boundary
2026-08-11 00:32:08 -07:00
Peter Steinberger
fa03d9b913
refactor: consolidate coercion helpers ( #121366 )
...
* refactor: consolidate coercion helpers
* fix: remove duplicate coercion imports
* fix: preserve serialized coercion guard
* chore: ratchet coercion helper carve-outs
* fix(test): keep gauntlet subprocess startup lean
* fix: preserve imported session timestamp semantics
* fix: preserve catalog timestamp string semantics
* chore: align plugin SDK surface ratchet
* fix: preserve trajectory and SDK string contracts
* fix(test): preserve QA record assertion semantics
* fix: complete standalone record guard rename
* refactor(cron): use canonical string coercion
* fix(acpx): preserve Pi timestamp parsing
* test(channels): adapt custody test harnesses
* test(telegram): classify media harness as test support
* test(acpx): split timestamp contract coverage
* test(channels): support generated custody contracts
* chore: ban the full coercion helper name set
Extends the declaration guard to all eleven consolidated helper names and
renames the cron schedule-identity readNumber wrapper to readScheduleInteger
so the banned generic name cannot regrow.
* fix(scripts): repair release-validation guard drift and lint cause
Restores the renamed isJsonRecord guard in assertTrustedWorkflowHarness after
main added isRecord call sites in parallel, and attaches the caught YAML error
as the thrown error cause (preserve-caught-error was red on main).
* fix: preserve Claude timestamp string semantics
* fix: preserve persisted timestamp string semantics
* fix: preserve date-first timestamp contracts
* fix(openai): harden delegation failure formatting
* chore: close coercion helper guard gaps
* test(openai): model non-error delegation rejection
* chore: refresh plugin SDK API contract
* fix(tasks): use canonical string field reader
* fix(ai): use canonical provider error field coercion
* fix(browser): migrate native bootstrap coercion
* docs(plugin-sdk): clarify text record export compatibility
* fix(gateway): normalize approval execution identity
* test(outbound): isolate message action poll harness
2026-08-11 00:02:18 -07:00
Peter Steinberger
b985d5a1ed
feat: stream live subagent progress in task events ( #121549 )
...
* feat(tasks): stream live subagent activity
* fix(tasks): correlate edit activity from start events
* fix(gateway): sanitize live task activity
* test(reply): align custody harnesses with lifecycle
* fix(outbound): preserve post-send recovery evidence
* fix(types): align reply harnesses with current contracts
* fix(tasks): preserve activity liveness and SDK parity
* test(sdk): avoid unsafe task summary assertion
* chore(contracts): refresh Plugin SDK API baseline
2026-08-10 18:37:58 -07:00
Peter Steinberger
dd2aedf08f
refactor: burn export name collision debt ( #121767 )
...
* refactor(tasks): disambiguate lifecycle helpers
* refactor(channels): clarify account and id helpers
* refactor(media): separate SDK facades from cores
* refactor(auto-reply): consolidate command helpers
* refactor(cli): disambiguate registration helpers
* refactor(gateway): clarify runtime and test helpers
* chore(scripts): burn resolved collision debt
* fix(refactor): update remaining core callers
* fix(refactor): update remaining UI callers
* chore(plugin-sdk): refresh API baseline
2026-08-10 18:17:13 -07:00
Peter Steinberger
6dc77a37d9
refactor(agents): render failover user copy from one reason-keyed module ( #121717 )
...
* refactor(agents): centralize failover user copy
* refactor(agents): route failure callers through user copy
* refactor(qa): carry typed reply failure markers
* refactor(agents): keep failover copy import-light
* refactor(agents): pass structured failure copy context
* refactor(agents): isolate copy rendering from runtime state
* refactor(agents): separate copy rendering from sanitization
* refactor(agents): keep failover copy internals private
* fix(qa-channel): type failure markers on bus sends
* style(agents): brace failover copy conditions
* test(qa-lab): avoid map spread in failure cases
* chore(plugin-sdk): refresh failover closure hashes
* fix(agents): preserve generic runner fallback
* fix(qa): preserve text-only failure markers
* test(qa): type failure delivery fixture
2026-08-10 16:43:51 -07:00
Peter Steinberger
1ced7441eb
refactor(agents): move announce, completion, recovery, and registry families into concept directories ( #121553 )
...
* refactor(agents): move announce family into subagents/announce/
* refactor(agents): move completion and main-session recovery families
* refactor(agents): move registry family into subagents/registry
* refactor(agents): update registry state type imports
* style(agents): format moved subagent imports
* test(agents): preserve isolated registry test routing
* fix(scripts): recognize relocated subagent announce seams
2026-08-10 16:06:39 -07:00
Peter Steinberger
815494955d
feat: stream live edit diff progress ( #121528 )
...
* feat(agents): stream live edit diff progress
* fix(agents): keep live diff state internal
* fix(lint): remove unused import breaking main lint
* perf(agents): throttle live diff parsing
2026-08-10 02:38:25 -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
cb50289e28
fix(agents): keep removed background processes alive until exit ( #113860 )
...
* fix(agents): keep removed processes live until exit
* test(agents): isolate process registry lifecycle coverage
* chore(plugin-sdk): refresh API closure baseline
2026-08-09 06:04:40 -07:00
Peter Steinberger
c9b346e216
fix(sessions): fence transcript writes by admitted run ( #121003 )
...
* fix(sessions): fence transcript writes by admitted run
* fix(agents): break terminal outcome import cycle
* test(sessions): cover writer fence propagation
* fix(sessions): complete admitted writer fence
2026-08-09 03:32:01 -07:00
Peter Steinberger
e7a9f33d89
refactor(core): adopt normalization-core leaf helpers across production ( #120350 )
...
* refactor(core): adopt normalization-core leaf helpers across production
* fix(ci): keep plugin contract source-resolvable
* fix(errors): preserve adapter-owned error fields
* fix(errors): short-circuit existing errors before stringifying
* fix(errors): skip throwing structured getters
* ci: retrigger checks on current base
* fix(errors): guard structured error enumeration
* fix: harden error detail copying
2026-08-08 12:00:49 -07:00
Vincent Koc
1be662aa9d
test(tasks): cover TaskFlow registry lifecycle ( #118983 )
2026-08-04 06:38:41 +08:00
Vincent Koc
622b5eaf8e
test(tasks): add durable task operations QA ( #118943 )
2026-08-04 05:20:12 +08:00
Vincent Koc
d29b9ad083
test(tasks): cover plugin-managed flows ( #118919 )
2026-08-04 04:51:00 +08:00
joshavant
d0439b9ce0
fix: distinguish dismissed task delivery
2026-08-03 02:48:34 -05:00
joshavant
649d7d99f1
fix: route task publication through runtime facade
2026-08-03 02:48:34 -05:00
joshavant
c5d275f8d6
refactor: internalize completion delivery seams
2026-08-03 02:48:34 -05:00
joshavant
d9393bd3cb
fix: make subagent completion delivery durable
2026-08-03 02:48:34 -05:00
Peter Steinberger
d7f909c5f8
test(tasks): reuse registry state fixture ( #118522 )
...
Co-authored-by: Peter Steinberger <steipete@mac-studio-sf2.local >
2026-08-02 23:15:21 -07:00
Peter Steinberger
3a555d5956
refactor(agents): centralize terminal lifecycle outcomes ( #118254 )
...
* refactor(agents): centralize terminal lifecycle outcomes
* fix(agents): preserve terminal projection contracts
* refactor(agents): split terminal error boundary
* test(gateway): align stale lifecycle projection
2026-08-02 19:17:30 -07:00
Peter Steinberger
88d6a2c8d6
perf(gateway): reduce sessions.list read amplification under streaming load ( #118207 )
...
* perf(gateway): reduce sessions list read amplification
* test(gateway): stabilize title batch perf proof
* fix(gateway): satisfy sessions list CI contracts
* perf(gateway): reuse warm batch title fields
* fix(gateway): satisfy strict title cache types
* test(gateway): use transcript write scope in cache test
* fix(gateway): fence session list cache on active runs
* refactor(infra): extract agent run registry
* fix(infra): keep run-registry context types module-local
2026-08-02 16:08:07 -07:00
Peter Steinberger
14322647cd
fix(tasks): keep process listener singleton ( #117766 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-01 20:19:35 -07:00
Peter Steinberger
34348d8af3
fix(cron): link active tasks to execution transcripts ( #117679 )
...
* fix(cron): link tasks to execution sessions
Fixes #117678
* fix(tasks): preserve canonical cron cancellation state
2026-08-01 16:54:37 -07:00
Peter Steinberger
17eafa7162
fix(tasks): retain blocked flows until they end ( #117606 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-01 13:10:11 -07:00
Peter Steinberger
4d6a63b7ee
fix(tasks): validate notification policy before persistence ( #117554 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-01 12:18:11 -07:00
Peter Steinberger
e4d1b7e0d3
refactor(plugins): move plugin contributions into the registry bundle ( #117372 )
...
* refactor(plugins): move plugin contributions into the registry bundle
* fix(plugins): guard embedding owner union and drop unused test-util imports
* fix(plugins): break registry facade import cycles
* fix(plugins): remove obsolete registry snapshot seams
* test(gateway): preserve plugin runtime mock exports
* test(auto-reply): install builder registry in diagnostics fixture
* test(plugins): activate registry-backed capability fixtures
2026-08-01 06:57:01 -07:00
LZY3538
57f8240800
fix(tasks): clone only the requested task page ( #114277 )
...
* fix(tasks): clone only paginated task records
* fix(tasks): keep page queries registry-owned
* fix(tasks): keep update timestamp helper private
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-07-29 01:35:42 +08:00
Peter Steinberger
124911aee0
fix: prevent cron and Workboard lifecycle regressions ( #114865 )
...
* fix: harden cron and Workboard lifecycle races
* fix: use canonical card identity for Workboard drops
2026-07-27 23:17:15 -04:00
Peter Steinberger
fafe7d9dad
fix: prevent cron and Workboard execution races ( #114808 )
2026-07-27 20:33:53 -04:00
Peter Steinberger
313daad549
perf(gateway): warm handler families and cache identity avatars ( #114754 )
...
* perf(gateway): warm handler families and cache identity avatars
* chore: drop changelog edit (release-generation-owned)
* fix(ci): regenerate protocol models, satisfy knip, absorb sidecar drift
- commit regenerated Swift GatewayModels for the additive cron.list param
- split the avatar data-url cache into assistant-avatar-cache.ts so its
factory has a production consumer (knip production scan)
- de-export prewarm family names/type; test now drives fake families only
- postReadySidecarCount 2 -> 3: main added a post-ready sidecar in parallel
2026-07-27 19:37:13 -04:00
Peter Steinberger
37182b9050
refactor(channels): declare thread addressing as a channel trait ( #114245 )
...
* refactor(channels): declare thread addressing as a channel trait
* fix(tasks): require declared thread capability for direct parent-review delivery
* docs(tasks): record the no-target-parsing tradeoff at the delivery gate
2026-07-26 23:05:13 -04:00
Peter Steinberger
4859d524ed
refactor(tasks): classify harness-owned subagent rows without plugin ids ( #113964 )
...
* refactor(tasks): classify harness-owned subagent rows without plugin ids
* refactor(plugin-sdk): require taskKind for harness-owned subagent runtimes
* docs(tasks): record harness-ownership invariant at the predicate
* test(plugin-sdk): declare harness task kind in scope fixtures
2026-07-25 18:41:13 -07:00
Peter Steinberger
b233faa057
refactor(tasks): split task registry internals ( #113279 )
...
* refactor(tasks): split task registry internals
* test(tasks): align registry ownership boundary
2026-07-24 02:09:04 -07:00
Peter Steinberger
ce1db4e94e
refactor(tasks): reduce task registry test duplication ( #113239 )
...
* test(tasks): consolidate task registry fixtures
* test(tasks): keep fixture helper behind boundary
2026-07-24 00:51:15 -07:00
Peter Steinberger
6f29fc88e9
refactor(sessions): migrate pure readers to read-only session accessors ( #112568 )
...
* refactor(sessions): migrate pure readers to read-only session accessors
* test(sessions): teach mocks and declarations the read-only accessors
* test(sessions): align remaining harnesses with read-only accessors
2026-07-22 01:16:35 -07:00
mikasa
a6960f864d
fix(tasks): reset omitted lifecycle start time ( #104278 )
...
* fix(tasks): reset omitted lifecycle start time
* fix(events): require lifecycle start timestamps
* fix(tasks): persist accepted zero start times
* test(gateway): timestamp lifecycle fixture
* fix(tasks): preserve finite lifecycle timestamps
Restore the contributor finalization fixes after rebasing: preserve accepted timestamps on non-finite terminal input and update the remaining lifecycle fixtures.
Co-authored-by: mikasa0818 <0668001030@xydigit.com >
* refactor(events): share lifecycle start validation
Keep host and bundled-plugin finite timestamp admission on one predicate while respecting the agent-events line budget.
Co-authored-by: mikasa0818 <0668001030@xydigit.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-21 01:12:52 -07:00
Peter Steinberger
4ff2cdd215
fix(sessions): reconcile client-abandoned running sessions on restart ( #111699 )
2026-07-20 19:39:41 -07:00
Peter Steinberger
09963412d1
fix(exec): track background commands as tasks ( #110468 )
2026-07-18 08:51:23 +01:00
wm0018
8c292ccd7d
fix(cron): batch pending-media snapshot in session reaper to avoid O(SxT) loop ( #105903 )
...
* fix(cron): batch pending-media lookup in session reaper to avoid O(SxT) loop
* fix(cron): make pending-media snapshot lazy to avoid regressing idle sweeps
* fix(cron): defer unsorted pending-media snapshot
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-18 00:23:44 +01:00
Peter Steinberger
56791a4806
improve: speed up async lifecycle test suites ( #110117 )
...
* test: speed up async lifecycle suites
* test: speed up gateway health waits
* test: speed up cron notification waits
2026-07-17 22:24:21 +01:00
Peter Steinberger
a9f82837a1
feat: inspect background tasks across web and mobile ( #109150 )
...
* feat: add background task details across clients
* fix: refresh background task clients and translations
* fix: keep background task details fresh
* fix: ignore deleted background task details
* refactor: split background task rendering
* fix: use canonical background task ids
* refactor: extract background task view types
* fix(apps): regenerate task localizations
* fix(ios): remove unused task screen import
* fix(apps): refresh task localization inventory
2026-07-16 13:08:42 -07:00
Peter Steinberger
6f8c759b4c
refactor(cron): share task history timestamp ( #108914 )
2026-07-16 03:55:39 -07:00
mushuiyu886
4b9c78a674
fix(cron): preserve same-id history across stores ( #108730 )
2026-07-16 03:28:11 -07:00
clawsweeper[bot]
15a304d6e1
fix(agents): wake owning session after generated-media direct delivery ( #108024 )
...
* fix(agents): wake owning session after generated-media direct delivery
When a background media generation (image/music/video) completes but the
requester's agent turn cannot be woken, delivery falls back to sending the
media straight to the channel. The owning session never learned about it,
leaving the attachment orphaned with no agent follow-up.
Queue a system event plus a scoped heartbeat wake after both direct
fallback paths (announce delivery and the shared background lifecycle) so
the agent continues the conversation in its own voice. Subagent requester
sessions skip the heartbeat since their completions route via announce.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
* fix(agents): persist generated media session handoffs
Co-authored-by: Molty <steipete@gmail.com >
* chore: prune max-lines baseline
* fix(agents): harden durable media handoffs
* fix(agents): charge media retries once
* chore: refresh max-lines baseline
* fix(agents): persist delivery settlement cleanup
* fix(agents): fence interrupted media delivery
* fix(agents): fence durable handoff admission
* fix(agents): reconcile terminal handoffs at retry limit
* fix(agents): align durable handoff types
* test(agents): type durable handoff fixtures
* fix: satisfy session delivery lint
* fix: avoid payload map spreads
* fix: satisfy durable handoff gates
* test: align generated media handoff expectations
* fix: avoid serializing session recovery state during load
---------
Co-authored-by: Molty <steipete@gmail.com >
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-07-15 12:54:12 -07:00
Peter Steinberger
c41f46260c
test(tasks): update registry boundary seams ( #108347 )
2026-07-15 07:52:36 -07:00
Peter Steinberger
3d76a4af92
refactor(deadcode): privatize runtime test seams ( #108338 )
...
* refactor(sessions): privatize runtime test seams
* refactor(commitments): privatize extraction test seams
* refactor(flows): privatize doctor health seams
* refactor(tasks): privatize registry test seams
* build(commitments): bundle Docker test support
* chore(deadcode): shrink runtime export baseline
2026-07-15 07:27:10 -07:00
Peter Steinberger
f1e2e5bc25
fix: clear stale task and OAuth doctor warnings ( #108123 )
...
* fix(doctor): repair taskflow and oauth warnings
* chore: keep release changelog out of PR
2026-07-15 01:03:53 -07:00