Integrate CodeWhale v0.9.1 runtime and release surface#4675
Conversation
Add `print_agent_runtime_contract_metrics` to `crates/tui/src/core/engine/tests.rs` so the rendered system prompt, mode runtime instructions, and tool catalog can be measured from the same binaries that ship. Introduce `scripts/measure-runtime-contract.py` to drive both ignored metric tests and emit a single JSON receipt. Fix `scripts/measure-tool-catalog.py` to also search stderr, where the Rust test emits the `TOOL_CATALOG_METRICS` marker with `--nocapture`. No model-facing behavior changes.
Add docs/RUNTIME_SIMPLIFICATION_DESIGN.md with the final minimal model-facing tool surface, rejected alternatives, compatibility plan, prompt simplification outline, and validation matrix. No code changes yet.
Collapse the model-facing native surface into File, Git, Run, and Web while keeping legacy handlers as hidden replay aliases. Move operational recipes into tool descriptions, preserve Plan and sub-agent authority boundaries, and record the measured prompt/catalog reduction.
Do not render or reserve layout for an active session with no graph-owned work. Preserve the existing disconnected and error diagnostics, and cover stale-cache and side-rail behavior with regressions.
Keep the Blue Stage direction while centering the released runtime, its real terminal capture, explicit boundaries, install path, and community. Describe the work as a bounded task-to-verified-change path and keep the implementation dependency-free. Harvested from PRs #4545 and #4587 by @Hmbown. Co-authored-by: Hunter Bown <hmbown@gmail.com>
Let contributors verify the deploy contract without possessing production Cloudflare credentials. The normal deploy check remains fail-closed.
Attach production-rendered English and Chinese desktop/mobile receipts and record GitHub freshness, exact implementation SHAs, verification, and the intentional no-deploy boundary.
Document the exact v0.9.1 binary, isolated PTY inputs, capture digest, and test results used to verify that a fresh session no longer reserves an empty Work surface.
Keep the shared evidence path byte-identical to the empty-Work branch so the independently reviewable lanes merge without an add/add conflict.
|
Current CI handoff (2026-07-21): Web Frontend / Lint & Type Check fails only at the facts drift gate. The merge build reports web/lib/facts.generated.ts toolCount committed=62, fresh=66. Regenerate from the final branch state with cd web && npm run prebuild, inspect the generated diff, commit only the intended fact outputs, and rerun the web checks. Do not sweep the pending screenshot/evidence asset edits into that commit until #4670 visual review confirms the real canonical capture. |
|
Second CI handoff: the core Lint job fails the co-author credit gate on preserved public-surface commits e37df06 and 5087269. Hunter Bown hmbown@gmail.com needs a valid .github/AUTHOR_MAP alias to 101357273+Hmbown@users.noreply.github.com (or equivalent machine-readable trailers without losing history). Commit 5087269 also contains a Harvested from PR ... by @Hmbown note that needs machine-readable credit. Preserve contributor history; do not squash or silently delete the credit text. |
What changed
Integrates the v0.9.1 runtime simplification, empty-Work fix, and public release surface onto current main. It also adds the final TUI color grammar: cool mode colors on the composer mode edge and warm permission colors echoed between the composer permission edge and shell header.
Why
This gives contributors one current integration branch to test instead of asking them to reconstruct three release lanes, while keeping mode and permission state visually legible.
Validation
Notes
The working tree also contains separate uncommitted screenshot/evidence asset updates. They are intentionally excluded from this PR branch tip pending final real-screenshot review.