The workflow crate carried ~2,650 lines with no production consumer:
replay.rs (WorkflowReplayExecutor, used only by one js_authoring test),
review_repair.rs (ReviewRepairLoop, only re-exported) and
experimental_search.rs (WorkflowSearchSpec, 0 external hits). Readers took
them for live infrastructure. They are deleted.
The replay executor was the only producer of WorkflowRunStatus::ReplayDiverged,
so the variant, mark_replay_diverged, and the tui arms that mapped it
("replay_diverged" in the workflow tool, workflows manager and panel) go too.
It was a crate-only executor that never ran in a shipped build, so no persisted
run record can carry that status.
The js_authoring test that used the replay executor now checks the compiled IR
itself: it passes Fleet validation, keeps its id, lowers to a parallel branch
of the three audit leaves, and the reduce step reads exactly those leaves.
Two isolated Runtime Chat prompts already differed. The engine now owns
ISOLATED_CHAT_SYSTEM_PROMPT (the relay's stricter text), and the relay sends
it. The engine test asserts the provider request's system prompt equals the
relay's, which failed before this change.
The legacy YOLO alias list ("yolo" | "4" | "bypass" | ...) was copied in four
places. AppMode::is_legacy_bypass_alias is now the one predicate, used by
AppMode::parse, runtime_policy, runtime_threads and /mode.
Docs (WORKFLOW_EXPERIMENTAL_SEARCH, WORKFLOW_AUTHORING, MODEL_LAB, the
best-of-n skill and workflow) now describe the search spec as a proposal and
no longer as shipped code.
Tests (built with dev-cargo.sh test --lib --no-run, then the unittest
binaries run with these filters):
- codewhale-workflow `js_authoring`: 10 passed, 0 failed
- codewhale-config `retired_output_mode app_mode:: retired_inline`: 7 passed, 0 failed
- codewhale-tui (shared filter set incl. isolated_runtime_chat, isolated_chat,
runtime_policy, legacy_yolo, legacy_bypass, tools::workflow::,
workflow_panel, workflows_manager): 241 passed, 0 failed
cargo check -p codewhale-{workflow,lane,config,cli,tui} --all-targets: clean.
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
Land the in-flight experimental-search slice as a real, honest v0.9.4
piece: a provider-neutral WorkflowSearchSpec authoring + freeze boundary
(parse/validate, preregistration hashes over baseline/requested+resolved
model/public evidence/evaluator, deterministic candidate ids and
admission batches) plus the operate best-of-N recipe's structured
'search' strategy (2-16 independent worktree candidates with
responseSchema contracts and a read-only judge). The module explicitly
remains an authoring boundary, not a runtime: hard_gates/score commands
are parsed and validated only, and docs say so.
Fixes found during the takeover operation:
- The checked-in recipe test failed against the real driver contract
(parse_task_options lets prompt win over description, so fake-driver
needles never matched and replies fell back to non-JSON). The recipe
now puts the full instruction in the single driver-visible description
and pins the prompt-wins contract with a new test.
- Queue claims verified against the runtime: the Workflow host's
per-run concurrency gate (Semaphore, 16 live) is where larger
populations wait; docs now name the gate instead of vague 'queues
through Fleet'. WORKFLOW_SEARCH_MAX_CONCURRENT documents 16 as today's
default with a cross-reference (a crate cycle prevents importing the
host constant).
- TournamentOrdering (ScoreThenCost) and the 1,000-agent validation
test bump retained from the slice.
Verified: cargo test -p codewhale-workflow -p codewhale-workflow-js
--locked green (250 + 16 + 9 + 49).
(cherry picked from commit f3e3232ef2)
Signed-off-by: Hmbown <[email protected]>
Integrate the underwater TUI, message-first Operate, Fleet and Workflow reliability, expanded model/provider catalog, exact custom-route restoration, docs-first site, localization, packaging, and release metadata for the v0.9.0 candidate.
Harden endpoint-bound credential provenance, approval and goal UX, Fleet attempt fencing and crash recovery, large-workspace mention discovery, Kimi budgeting, and release asset/version gates. Include the stopship Fleet and Workflow fixtures used by release dogfood.
Verified with workspace fmt/check/clippy/tests on Rust 1.88, release-script and npm suites, 18-crate publish dry run, production web build, Docker build check, secret scan, dependency audit, and protected-state hash validation.
Remove public benchmark docs/scripts and the shipped SWE-bench CLI surface from the CodeWhale repo; benchmark work belongs outside this release repo.
Trim public docs that routed users into private maintainer runbooks, remove stale deleted-doc links, tone down release-facing copy, update CodeWhale crate descriptions, and expose the residue ledger as /debt while keeping quiet legacy dispatch compatibility.
Verification:\n- cargo fmt --all -- --check\n- git diff --check\n- ./scripts/release/check-versions.sh\n- cargo check -p codewhale-tui --bin codewhale-tui --locked\n- cargo test -p codewhale-tui --bin codewhale-tui --locked command_registry\n- cargo test -p codewhale-tui --bin codewhale-tui --locked every_command_alias_dispatches_to_a_handler\n- cargo test -p codewhale-cli --locked