mirror of
https://github.com/codewhale-hq/Codewhale.git
synced 2026-11-13 04:29:24 -10:00
Credential-rejection retraction of the unanswered question had stopped
working: turn preparation now records runtime messages (workspace
instructions, constitution, MCP rosters) after the user message, so the
"nothing after the question" check never held. The mark is now
UnansweredUserMessage { index, content_sha256 } (core/turn.rs); a
retraction requires the same message at the same index with the same
content hash, and only internal runtime-handoff messages after it, which
go with the question. project_instructions is now an internal runtime
handoff kind. The mark is no longer Copy (it carries a String); callers
borrow or clone it.
Existing tests re-pinned to the lean surface and history delivery:
eager-set pins, the hooks category table, shell guidance phrases, the
representative runtime-context fixture (instructions and skills absent
from every system stage), the skill-discovery baseline (no discovery at
prompt assembly), repin, edit-last-turn, interactive counts, preflight
(+1 workspace-instructions record), SSE replay count, the scout surface
and the stopship workflow brief (grep_files eager), and the MCP
no-servers test (disabling MCP after a roster withdraws it once).
Verified on macOS, hermetic HOME (scripts/dev-test.sh engine):
- targeted lean batch incl. credential_rejection, an_answered_question,
a_rewritten_session, edit_last_turn, preflight_guard,
representative_runtime, sse_turn_recovery, fresh_forked,
no_configured_mcp_servers, preview::: 237 passed, 2 failed before the
preflight re-pin (host-only record) ; lazy_boot_* passes alone.
- full engine lib: 7095 passed, 13 failed (wait timeouts under a
concurrent TUI build; re-run recorded on CW-7923), 13 ignored.
The earlier engine-full-c5 failures for edit_last_turn, fresh_forked and
preflight came from this Mac's real ~/.codewhale and ~/.agents/skills
leaking into a non-hermetic run, not from the product.
Not claimed: hosted CI verdict.