Peter Steinberger
b080dd1e76
refactor: consolidate coercion contracts ( #122458 )
...
* refactor: consolidate coercion contracts
Centralize exact string, record, numeric, date, Boolean, argument, and structured-error coercions while preserving call-site semantics.
Migrate canonical-name collisions and deprecated internal SDK bypasses, deleting 55 net production/tooling lines. Expand declaration ownership enforcement to 101 allowed helpers and add a narrow export-completeness audit.
* fix: preserve standalone script coercions
Keep copied Control UI tooling self-contained and retain the trusted release harness module-relative source seam when the harness runs against an old target cwd.
2026-08-11 23:26:37 -07:00
Peter Steinberger
f104ce8b09
refactor(agents): fold subagent lifecycle into one controller ( #121972 )
...
* refactor(agents): fold lifecycle factories into SubagentLifecycleController
* refactor(agents): make composition root explicit
* fix(agents): atomic terminal-discard for dismissed deliveries
* fix(agents): preserve lifecycle build boundaries
* fix(agents): satisfy lifecycle static gates
* refactor(agents): move lifecycle context types out of the controller module to break the architecture cycle
2026-08-11 03:06:55 -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
aba8f10bc3
fix(agents): stop reporting undelivered subagent results as delivered ( #121837 )
...
* fix(agents): record intentional non-delivery truthfully
* fix(agents): stop reporting sinkless cron completions as delivered
The inactive-cron guard runs before requester-agent dispatch. Its regression now asserts the recorded intentional non-outcome before verifying that queue, gateway, and message sends remain untouched.
* test(agents): migrate announce outcome fixtures
* chore: drop changelog edit per repo policy
2026-08-10 22:04:29 -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
Vincent Koc
7321c44246
fix(agents): isolate spawn benchmark samples ( #119859 )
2026-08-06 18:10:35 +08:00
Vincent Koc
c37ba84f66
perf(agents): index subagent recovery ownership ( #119793 )
...
* perf(agents): benchmark indexed recovery ownership
* perf(agents): index recovery owner lookups
2026-08-06 10:08:04 +08:00
Vincent Koc
b4e82951e7
perf(agents): isolate concurrency benchmark workers ( #119749 )
2026-08-06 06:49:36 +08:00