0f8902c49b
Document all 7+ BLOCKER+HIGH fixes, breaking-change-free additions (public exports), known issue for delegated child-session fallback (PR #3825 deferred to v4.2.1), and internal-only changes. Closes L14
3.3 KiB
3.3 KiB
Changelog
All notable changes to this project are documented in this file.
The format follows Keep a Changelog.
[4.2.0] - 2026-05-16
Added
- prompt-async-gate: new shared safety primitive (
src/shared/prompt-async-gate.ts) withpromptAsyncAfterSessionIdle,promptAfterSessionIdle,releasePromptAsyncReservation,DEFAULT_PROMPT_ASYNC_POST_DISPATCH_HOLD_MSpublic exports. Routes 13+ internal hook callers through reservation-based duplicate-injection prevention. Seedocs/reference/prompt-async-gate-rfc.md. - Background-agent: extracted
ParentWakeNotifiermodule for parent-wake coalescing (preparatory refactor; manager.ts integration in same release). - First-prompt watchdog for stuck subagents (closes #3952 by way of #4051).
- Subagent quota abort fast-path when no fallback is configured (closes #4006).
Fixed
- prompt-async-gate: add dispatch timeout via
Promise.race, fix post-dispatch reservation hold on throw, harden prefix release to require:suffix (BLOCKER-1, BLOCKER-2, HIGH-6, HIGH-7 partial). - model-suggestion-retry: release reservation before suggested-model retry attempt (regression caused by post-dispatch hold landing).
- session-recovery: schema-compatible synthetic tool results (PR #4053 supersedes #3866).
- tool-pair-validator: schema-compatible synthetic results for background sessions (PR #4032).
- claude-code-hooks: accumulate modifiedInput on allow/deny/ask exit paths (PR #3299 area, multiple commits).
- runtime-fallback: dedupe overlapping continuations, preserve provider-specific retries, classify localized provider errors.
- team-mode: skip tmux layout when opencode server unreachable (closes #3894).
- delegate-task: honor user fallback_models when category primary is unreachable.
- background-agent: detect stalled active sessions, coalesce rapid idle parent notifications, retry transient missing output tasks.
- todo-continuation: remove activity-based stagnation bypass, clean up idle event diagnostics.
- AGENTS.md: strengthened prompt-injection danger warning with root-cause analysis, gate semantics, forbidden patterns, and required tests.
Changed
- TypeScript audit: prompt-async-route-audit migrated from regex to TypeScript AST walker, catching destructuring, bracket call, optional chaining, and type-cast aliased bypass patterns (HIGH-5).
- Public surface:
createPluginModuletest seam moved fromsrc/index.tstosrc/testing/create-plugin-module.ts(HIGH-8). Plugin default exportpluginModuleis unchanged. - CI: removed sharded test runner; now uses plain
bun testin a single process (test-discipline.md added to enforce no-setTimeout-in-tests). - Background-agent: manager.ts internal parent-wake state delegated to
ParentWakeNotifier(HIGH-9).
Known Issues
- Delegated child-session early-failure fallback (PR #3825 reverted). Delegated subagents that fail on the very first
promptAsyncmay not advance to fallback models. Seedocs/reference/known-issues.md. Reland targets v4.2.1.
Internal
- New
.sisyphus/rules/test-discipline.mdrule: forbidssetTimeout(resolve, N)andawait sleep(N)in test bodies unless time itself is the SUT. - mock.module lifecycle audit test (
src/shared/mock-module-lifecycle-audit.test.ts) added to catch unpaired mocks (H10). - Public exports for prompt-async-gate primitives - MINOR semver bump justified.