Skip to content

fix(continuation): #988 fast-follow — spawn-init cap-notice (P2-2) + maxPendingWork config-docs baseline (P2-3)#991

Merged
scribe-dandelion-cult merged 2 commits into
frond-scribe/20260609/assembly-token-wiringfrom
codeagent/988-trivial-sweep
Jun 11, 2026
Merged

fix(continuation): #988 fast-follow — spawn-init cap-notice (P2-2) + maxPendingWork config-docs baseline (P2-3)#991
scribe-dandelion-cult merged 2 commits into
frond-scribe/20260609/assembly-token-wiringfrom
codeagent/988-trivial-sweep

Conversation

@scribe-dandelion-cult

Copy link
Copy Markdown

Fast-follow for the two trivial Codex P2s on #988 (the flood-guard, merged). Neither blocks the merged code; both are corpus-hygiene.

P2-2 — spawn-init lane cap-notice fires before the zero-scheduled early-return

src/agents/command/attempt-execution.ts: in the spawn-init / turn-1 path, when a session was already at the pending/chain/cost cap before a multi-continue_work response, scheduleContinuationWorkBatch returns scheduledCount: 0 with a positive cappedCount — but the early-return on zero-scheduled exited above the cap-notice emit, so the spawn-init lane stayed silent on the cap-drop (unlike main-reply + followup, which surface it — the #985-residual symmetry that 8858d25b802 partially closed).

Fix: emit the multi-election cap-notice before the zero-scheduled early-return → the never-silent symmetry now holds across all three election-paths (subagent-init / main-reply / followup). +2 tests (RED-verified).

P2-3 — maxPendingWork config-docs baseline regen

#988 added the public config key maxPendingWork but did not regenerate docs/.generated/config-baseline.sha256, so pnpm config:docs:check was failing (baseline stale since 2026-06-08 across core/channel/plugin). Fix: regenerated the baseline → config:docs:check now passes.

Help-text note (fork resolved): the workorder suggested adding field help-text "matching siblings," but the continuation-cap siblings (maxChainLength / costCapTokens / maxDelegatesPerTurn) have no .describe()/help/label and none are in the schema.help.quality TARGET_KEYS gate — so maxPendingWork already matches the family shape. Added no asymmetric help (it would diverge from the cap-family). Symmetric help for the whole cap-family is a separate optional polish, out of this fast-follow's scope.

Gate status

  • Targeted shard attempt-execution.continue-work-opts GREEN (9/9, incl the 2 new P2-2 tests).
  • pnpm config:docs:check PASSES (P2-3).
  • tsgo core + core-test rc=0.
  • Full-suite: 6 shards failed — all known pre-existing baseline-env (model-selection / secrets / imessage / telegram / memory / deadcode-pnpm); my changed surfaces 100% green.

Review

🪨 Rune + 🌊 Ronan (continuation-lifecycle review-pair). Off assembly tip 3084bf16fc; merges clean (no overlap with the parallel #989-P2-1 reset-gate lane).

Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com

frond-scribe and others added 2 commits June 10, 2026 18:54
…arly-return (#988 P2-2)

The spawn-init / turn-1 lane (scheduleSpawnInitContinueWorkWake) emitted the
multi-election cap-notice AFTER the `scheduledCount === 0` early-return, so a
session already at the pending/chain/cost cap before a multi-continue_work
response (scheduledCount:0, cappedCount>0) stayed silent — even though each
tool call already reported status:"scheduled". The main-reply (agent-runner)
and followup (followup-runner) lanes both surface this partial cap-drop.

Move the cap-notice emit above the early-return so the never-silent symmetry
holds across all three election lanes for the scheduledCount:0 && cappedCount>0
case. Multi-election only, preserving single-work behavior.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ccumulated schema drift (#988 P2-3)

#988 added the public config key agents.defaults.continuation.maxPendingWork to
the zod schema but did not regenerate docs/.generated/config-baseline.sha256, so
`pnpm config:docs:check` failed on any checkout with deps. The baseline had also
not been regenerated since 2026-06-08 (fc6400e), so several intervening
schema-surface changes (qqbot command toggle, tui host-footer gate, imessage,
codex, continuation maxPendingWork) had accumulated as drift across the core,
channel, and plugin baselines.

Regenerate the baseline via `config:docs:gen` (deterministic, env-normalized)
so the hash reflects the current schema surface and `config:docs:check` passes.

No help-text/describe added for maxPendingWork: its continuation cap siblings
(maxChainLength, costCapTokens, maxDelegatesPerTurn) carry no .describe()/help/
label and are not in the schema.help.quality TARGET_KEYS gate, so maxPendingWork
already matches the sibling shape. Adding asymmetric help to only this key would
diverge from the family.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@scribe-dandelion-cult scribe-dandelion-cult merged commit 602e20b into frond-scribe/20260609/assembly-token-wiring Jun 11, 2026
129 of 143 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant