Repository navigation
0.10.2 candidate: endpoint-scoped catalog, tiered pricing and release verification - #6968
Conversation
…ERGE Handoff snapshot for cloud takeover. Endpoint-scoped catalog facts, exact tiered pricing, regenerated models.dev seed (2026-10-12), plus fixes for the 21 full-suite failures it introduced (reasoning ladders, tier cache rates, usage breakdowns, aggregator suffix match, status baseline). Evidence at snapshot: fmt/check-versions/locale/provider/dead-code clean; tui pricing 97 passed, models_dev 21 passed, feature_registry 2 passed, cargo check -p codewhale-cli clean; focused 36/36 pass. Known red: codewhale-config 797 passed, 2 failed (openrouter_custom_endpoint_preserves_qwen37_alias, resolver_direct_owned_row_match_survives_casing_mismatch — constrain the new suffix match). Full TUI suite not yet rerun after fixes. Slice 2 notes, PR landings, and crate-size gate still outstanding. Stop at ready-to-tag; no tag/publish authorized here. Refs #6396
…t endpoints The #6396 handoff added a suffix match in RouteResolver::scope_selector so a bare saved selector (`deepseek-v4-pro`) resolves to the sole provider-owned namespaced wire id (`deepseek/deepseek-v4-pro`). It ran for every provider class, so it also rewrote selectors on custom endpoints (which classify as LocalOrCustom and must pass the caller's id through) and pre-empted the StrictDirect casefold match on Z.ai/DeepSeek. The match now applies only when the class is Aggregator. A custom base URL already classifies as LocalOrCustom, so custom endpoints keep bare pass-through, and StrictDirect keeps its casefold behavior. Evidence (non-root user, scripts/with-hermetic-test-home.sh, RUST_MIN_STACK=8 MiB): - cargo test -p codewhale-config --lib --locked: test result: ok. 801 passed; 0 failed; 1 ignored (was 797 passed; 2 failed at the handoff: openrouter_custom_endpoint_ preserves_qwen37_alias, resolver_direct_owned_row_match_survives_casing_mismatch) - cargo test -p codewhale-config --locked: configured_models 9 passed, doctests 1 passed - As root, private_directory::endpoint_admission_refuses_linked_component_... and xai_credentials::unix_store_rejects_symlinked_root_component_... fail; the same binary passes both as a non-root user. Environment, not code. Refs #6396 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YCbYZQhRvzf3jQZA1cNhcP
…tence CHANGELOG 0.10.2 (root and the synced crates/tui copy stay identical): - Date 2026-10-10 -> 2026-10-13. - Added: `codewhale account computers files` (416e2e7); GET /v1/goals with orphan omission and status-bound cursors (d8fba1e, 25046c0); approval history target/summary/standing_rule (826020f, 72a5eaf); automation revision preconditions and Idempotency-Key (774689a, bd2a7b4). - Changed: Full Access skips the Auto-Review floor (bdcc8cf); file_search default-active (#6934); Runtime session grants persist and resume only on an authenticated thread resume (e537df5). - Fixed: live /network allow|deny (#6928) and the authority fold that keeps a managed or Fleet denial from widening (0379673, 5a2fa01); the #6553-#6560 audit fixes (4e35b30). - Known limits: Computer Use preview qualification (87cdaea); heuristic approval-history redaction. docs/features.toml `since`: the rows whose code first shipped in v0.10.1 (chatgpt-plan-sign-in, orcarouter-sign-in, plugin-oauth-providers, profile-constitution: each row's introducing commit is an ancestor of v0.10.1) say 0.10.1; account-computer-files, claude-plan-sign-in and plugin-shell-install say 0.10.2. merch-interest stays "unreleased": it is a community-website feature with no release surface. docs/RUNTIME_API.md and its zh_hans mirror said session grants live in memory and a restart forgets them. Since e537df5 they are stored in approval_grants.json and stay suspended after a restart until an authenticated resume; an unreadable store holds no grants. web/data/*.generated.json regenerated with web/scripts/derive-facts.mjs. Evidence: - scripts/release/check-versions.sh and --require-dated-release: "Feature release-note receipts OK: 8 linked issue reference(s) checked in v0.10.1..HEAD." / "Version state OK: workspace=0.10.2, npm=0.10.2, npm-binary=0.10.2, lockfile in sync." - scripts/sync-changelog.sh --check clean; 0.10.2 sections diff identical. - node web/scripts/check-facts.mjs: OK; git diff --check clean. Refs #6396 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YCbYZQhRvzf3jQZA1cNhcP
The #6396 seed (models.dev, fetched 2026-10-12) dropped the `toggle` option from Moonshot `kimi-k3`: the bundled row now says K3 is always-thinking (low/high/max). normalize_for_route clamps against that provider-wide row on every route that has no exact-route row, so a Moonshot provider pointed at a custom gateway turned the user's Off into the catalog default (High). reasoning_effort_normalizes_each_exact_k3_route_without_neighbor_leakage failed on exactly that: "a neighboring gateway must not inherit direct-platform always-thinking semantics". The ladder itself is model metadata and still applies on a custom endpoint (reasoning_effort_preserves_grok_46_ladder_only_on_exact_xai_route keeps Medium on a gateway). Whether a gateway can switch thinking off is not, so on an endpoint outside the provider's official family (provider_base_url_is_official; Custom routes keep their own declared rows) a requested Off stays Off instead of being clamped. Direct K3 and Kimi Code K3 keep their explicit route branches above this point. A first attempt that dropped the provider-wide fallback on non-official endpoints fixed K3 but broke the Grok gateway ladder (15279 passed, 1 failed); this narrower guard satisfies both. Evidence (non-root, scripts/dev-test.sh tui -> cargo nextest run -p codewhale-tui --lib --locked, hermetic HOME, proxy env stripped, tini subreaper): - Before: Summary 15280 tests run: 15279 passed (1 slow), 1 failed, 26 skipped (the K3 test above). - After: Summary [454.858s] 15280 tests run: 15280 passed (1 slow), 26 skipped. Includes route_runtime unpinned_spawn_route_is_conservative_and_returns_ exact_wire_id, tools::subagent providerless_spawn_model_gate_rejects_known_ foreign_route_before_spawn, and all tools::test_runner tests. - Container-only failures seen in a first run with the cloud proxy env (child_env proxy credentials, mcp::{http_client,oauth,sse} loopback, fleet::host reaping under a non-reaping PID 1) all pass once the proxy env is stripped and a subreaper is present; fleet::host alone: 25 passed. Refs #6396 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YCbYZQhRvzf3jQZA1cNhcP
…usals The #6396 slice moved `codewhale model resolve <model> [--provider X]` from ModelRegistry to the endpoint-scoped route resolver and dropped the registry call. The route resolver passes unknown and aggregator-class ids through, so the diagnostic stopped failing closed: `glm-5.2 --provider moonshot` and an unknown id on Z.ai printed `resolved:` and exited 0, and a route refusal (`k3` on the direct Moonshot endpoint) aborted the command instead of being reported. Five crates/cli/tests/model_resolve_provenance tests went red; the handoff ran only `cargo check -p codewhale-cli`, not these tests. The hypothetical branch now does what crates/app-server/src/chat_completions.rs already does: ModelRegistry::resolve gates the requested id inside the selected provider (same call and error text as before the slice), and the route resolver stays authoritative for the wire id, canonical model, limits and capabilities it adds. A route error is printed as `route_error:` and the command still exits 0, matching the runtime-route branch above it. No test assertion changed. Evidence (non-root, hermetic HOME, proxy env stripped, tini subreaper; target/debug/codewhale rebuilt first, as CI does): - Before: cargo nextest run -p codewhale-cli --locked: 541 tests run: 536 passed, 5 failed (model_resolve_provenance) - After: Summary [27.189s] 541 tests run: 541 passed, 0 skipped - Rebuilt binary: unknown id on zai and glm-5.2 on moonshot exit 1 with "model '<id>' is not available from provider '<p>'"; k3 on direct Moonshot prints resolved: k3 plus the runtime's route_error; kimi-k3 and GLM-5.3 resolve with canonical_model. Refs #6396 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YCbYZQhRvzf3jQZA1cNhcP
`cargo clippy --workspace --all-targets --all-features --locked -- -D warnings
-A clippy::uninlined_format_args -A clippy::too_many_arguments
-A clippy::unnecessary_map_or` (CI's Lint job) failed on codewhale-tui with:
- collapsible_if in client/anthropic.rs: the route-facts budget lookup is now
one let-chain; same conditions, same body.
- needless_borrow in runtime_api.rs: from_catalog_offering(offering).
No behavior change.
Evidence: the same clippy command now finishes with no warnings or errors
("Finished `dev` profile ... in 10m 21s", exit 0); cargo fmt --all -- --check
clean.
Refs #6396
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YCbYZQhRvzf3jQZA1cNhcP
…issues Checked each claim against the code at 2f0cac7: - "`task_shell_start` is removed; use `bash` with `background=true`" was wrong: the model-visible `bash` schema has no `background` field and sets additionalProperties false (crates/tui/src/tools/shell.rs input_schema; docs/TOOL_SURFACE.md "Long-running work"). The note now says only that `task_shell_start` is removed; the sentence before it already describes the automatic move to the background. - #6923: the body retry delay (9dd6b4b) is used only when the 429 is classified RateLimited. LlmError::from_http_response classifies any 400/402/403/429 whose body says "exceeded your current quota" with plan and billing guidance as QuotaExhausted, which is never retried (llm_client/mod.rs has_explicit_quota_phrase; pinned by llm_client/tests.rs explicit_400_402_and_429_quota_responses_are_typed_and_non_retryable). Gemini's free-tier rate-limit 429 uses that wording, so the reporter's case still ends the turn. The Fixed line now describes what changed, and a Known limit states what did not. - #6955: a session whose current branch alone is over 8 MiB is still refused (session_manager.rs load_session_snapshot_with_limit); the note says so. - #6933 had no line although the model-visible catalog changed: fim_edit is registered only when can_request_fim_completion holds (Chat Completions, not OpenCode Zen; tools/registry.rs with_fim_tool), and the default DeepSeek Flash route resolves to Responses (route/tests.rs resolver_routes_only_official_deepseek_flash_over_responses). Added it, and the docs/PROVIDERS.md FIM cell (and zh_hans mirror) no longer says Flash has DeepSeek beta FIM. Evidence: scripts/release/check-versions.sh and --require-dated-release ("Feature release-note receipts OK: 8 linked issue reference(s)"; "Version state OK"); scripts/sync-changelog.sh --check up to date and the two 0.10.2 sections are identical; node web/scripts/check-facts.mjs OK after derive-facts; git diff --check clean. Refs #6923, #6933, #6955 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YCbYZQhRvzf3jQZA1cNhcP
…proval Founder approved the normal approval path for a Windows command the scanner cannot classify. Keep the captured classification failure and its direct reason, but do not label it an npm-launcher kill or a hard safety gate. Auto-Review can consult its reviewer; Ask and Never keep their ordinary approval machinery. Actual unbounded Node image kills retain their existing reviewing-mode hold and Full Access still bypasses the floor. Verified on macOS against the frozen combined source slice: - Existing focused TUI tests: 81 tests run: 81 passed, 15230 skipped (79 approval tests and 2 modal/caret tests; skips are filter exclusions). - npm test: 1312 passed; 0 failed; 7 skipped. - npm run check:web: passed, including latest-release and production build. - cargo fmt --all -- --check, git diff --check, dated version and changelog synchronization checks: passed. Windows target was already installed. Cross-target check failed in ring's C build because Windows assert.h is unavailable on this Mac; this is not Windows type-check or execution proof. Hosted Windows CI remains required. No new test functions or code comments added; existing tests were updated. Refs #6963
Bracketed paste prioritized history search ahead of an open view, allowing text to change the covered query. Respect modal ownership before that path. Extend the existing modal-input check with committed CJK paste and key data; record this and the Windows approval clarification in the 0.10.2 notes. Terminal-owned IME preedit and Windows native acceptance remain unverified. Verified on macOS against the frozen combined source slice: - Existing focused TUI tests: 81 tests run: 81 passed, 15230 skipped (79 approval tests and 2 modal/caret tests; skips are filter exclusions). - npm test: 1312 passed; 0 failed; 7 skipped. - npm run check:web: passed, including latest-release and production build. - cargo fmt --all -- --check, git diff --check, dated version and changelog synchronization checks: passed. Windows target was already installed. Cross-target check failed in ring's C build because Windows assert.h is unavailable on this Mac; this is not Windows type-check or execution proof. Hosted Windows CI remains required. No new test functions or code comments added; existing tests were updated. Refs #2323, #6963
…nance Record the founder-approved 0.10.2 exception for substantive contributor thanks, status, answers and questions. Keep the outside-release rule and review-workflow boundary explicit. The workspace-level control was updated separately and is not copied into the product repository. Distinguish the current vendored codewhale-ratatui 0.1.2 package from its original 0.1.0 upstream snapshot so historical hashes remain provenance. The exact vendored package passed cargo publish --dry-run --locked with --allow-dirty: the tarball built and upload was aborted by dry-run mode. No crate was uploaded. Final publication still requires the frozen candidate and founder authorization; the 29-crate dry run waits on that dependency. Evidence: npm test 1312 passed; 0 failed; 7 skipped, check:web passed; version/changelog/fmt/whitespace checks passed. No runtime source changes.
Combine SparkofSpike's preserved PR head 0b5042a with the release candidate so hosted verification covers its classifier and the approved normal-approval policy together. There are no merge conflicts; the existing engine assertion changes are identical on both sides. Credit the contributor and reporter in the release notes. Landing order: PR #6929 must merge as its own contribution before #6968 is squash-merged. This merge does not land either PR on main or authorize release. macOS combined-source verification: - 81 tests run: 81 passed, 15230 skipped (focused filter exclusions). - The exact classifier change at 0b5042a: 89 tests run: 89 passed, 147 skipped (filter exclusions); focused all-target Clippy passed. - Unchanged web/npm source retains the preceding verified slice's gate: npm test 1312 passed; 0 failed; 7 skipped; npm run check:web passed. - Formatting, whitespace, dated versions and synchronized changelogs pass. - The notes/credit update followed the Rust run; it changes no Rust source. Windows execution is pending hosted CI on this combined candidate. The prior Mac MSVC cross-check could not compile ring without Windows SDK assert.h; it provides no Windows type-check evidence. Native Windows acceptance is open. Refs #6929 Refs #6963
Pin the current canonical Pi adapter, distinguish login registration from Codewhale inference identity, and state experimental qualification accurately. Keep the feature's runtime behavior unchanged while its release choice remains open. Pi compatibility does not establish account eligibility or authorization. Verification on macOS, source 9fa1cca plus these two documentation files: npm test: 1312 passed; 0 failed; 7 skipped. Node receipts: 101 + 19 + 413 + 7 passed; Vitest: 772 passed. npm run check:web: passed. git diff --check: passed. No Rust change, live Claude login, Windows execution or publication performed. DeepSeek via Codewhale supplied a bounded read-only review; findings were checked against source and provider documentation, not treated as acceptance. Refs #6932
Refs #6963. Contributor head passes 89 classifier tests, 0 failed, and focused all-target Clippy on macOS. Unchanged npm/web gate remains 1312 passed, 0 failed, 7 skipped. The merge is conflict-free; hosted Windows verification is pending for this changed head.
F4 disabled VT mouse modes but left the Windows console mouse flag set. Crossterm resume then wrote the already-set flag, so ConPTY did not emit another enable transition. Release the Windows capture state before the existing direct VT resets; recovery can now turn it on again. Keep the PTY resets for mintty. No new product tests or code comments. Thanks @SparkofSpike for distinguishing terminal scrollback from transcript scrolling. Refs #6652. Windows 11 ARM / Windows Terminal 1.24.12741.0, ordinary Hunter session: checksum-verified published v0.10.1 reproduces working transcript wheel, F4 to Notepad, failed wheel after return while PageUp works, then restored wheel after /inline followed by /fullscreen. The editor probe measured inputMode 159 (0x9f), mouse=true, raw=false. The affected external-editor source is byte-identical between v0.10.1 and the pre-fix candidate. This proves the old defect and recovery path, not the patched executable or the reporter's separate hours-long slowdown. Patched Windows build and interactive acceptance remain pending; hosted Windows CI is the gate. macOS focused existing editor suite: Summary [0.587s] 13 tests run: 13 passed, 15298 skipped (filtered). No failures; cargo fmt --all -- --check and git diff --check passed. npm test: 1312 passed, 0 failed, 7 skipped: node suites 101/0, 19/0, 413/0 (7 skipped), 7/0; Vitest 772 passed. npm run check:web passed, including latest-release, facts and build.
Use independent OAuth state and the existing constant-time callback check. Both TUI entry points queue one event-loop login, pause the sole input pump, respect queued cancellation, restore terminal modes and resume input before activating the admitted login. Preserve existing client registration and experimental status; this is not provider permission or a valid grant receipt. Actual POSIX CLI/slash/picker malformed-input checks:3 passed, 0 failed. Both TUI cases restore raw input, retain an empty composer, then render new input. Browser opening disabled; no valid credential/token/provider exchange. Windows console handoff and live grant remain unverified for this change. Refs #6932 Validation ran once against the complete frozen batch on cf7199b; exact file/binary hashes are retained in FINAL_BATCH_FROZEN_SOURCE_2.json and LOCAL_CLI_BUILD_RECEIPT.json. Unchanged evidence is reused per slice. Actual nextest summary: 170 tests run: 170 passed, 15157 skipped (outside selected filter); 0 failed. npm totals: 1312 passed, 0 failed, 7 skipped; Vitest actual line: Tests 772 passed (772). check:web, fmt and CI-flag all-target/all-feature TUI Clippy PASS. No new product tests/comments. Final-head hosted Windows/full CI and release packaging remain required.
An accepted body retry delay at or below120 seconds permits retrying the ambiguous quota/plan/billing429. Separate raw body evidence survives error sanitization for both HTTP callers. Explicit account/billing/credit and subscription quota codes remain terminal; a header alone cannot reclassify. Preserve header precedence for the actual delay. Remove the unused migrated helper and adapt seven existing test call signatures without changing asserts. Actual normal CLI synthetic loopback:7 cases passed, 0 failed. The temporary limit used2 byte-identical requests258 ms apart and succeeded; six durable quota cases each used1request and failed with empty output/success=false. The fixture scorer was corrected to inspect JSON output rather than the success marker echoed in prompt; original output/receipts retained, no execution repeated. Cache-isolated existing tests passed in170-test batch; that ambiguous retry case and live Gemini/Windows were not manually run. Thanks @Statter for the concrete quota-worded Gemini report. Refs #6923 Validation ran once against the complete frozen batch on cf7199b; exact file/binary hashes are retained in FINAL_BATCH_FROZEN_SOURCE_2.json and LOCAL_CLI_BUILD_RECEIPT.json. Unchanged evidence is reused per slice. Actual nextest summary: 170 tests run: 170 passed, 15157 skipped (outside selected filter); 0 failed. npm totals: 1312 passed, 0 failed, 7 skipped; Vitest actual line: Tests 772 passed (772). check:web, fmt and CI-flag all-target/all-feature TUI Clippy PASS. No new product tests/comments. Final-head hosted Windows/full CI and release packaging remain required.
Propagate compaction I/O error kind/detail instead of swallowing it. If a source remains oversized, describe the measured compaction outcome without claiming its active conversation alone must exceed the limit. Actual bounded Runtime history fixture passed:9 MiB source, blocked archive 409 with accurate wording and all 4 journal entries retained, then restored archive yielded1512 byte source plus 3 archived entries with exact lossless union and1 message resume.0 model POSTs. Initial long-path fixture failed before runtime startup at the macOS socket-length guard; corrected isolated SSD path exercised the actual bounded route. No private histories or Windows packaged recovery run. Thanks @7jrxt42BxFZo4iAnN4CX for the archive report. Refs #6955 Validation ran once against the complete frozen batch on cf7199b; exact file/binary hashes are retained in FINAL_BATCH_FROZEN_SOURCE_2.json and LOCAL_CLI_BUILD_RECEIPT.json. Unchanged evidence is reused per slice. Actual nextest summary: 170 tests run: 170 passed, 15157 skipped (outside selected filter); 0 failed. npm totals: 1312 passed, 0 failed, 7 skipped; Vitest actual line: Tests 772 passed (772). check:web, fmt and CI-flag all-target/all-feature TUI Clippy PASS. No new product tests/comments. Final-head hosted Windows/full CI and release packaging remain required.
Bind static import qualification to each actual PE machine and preserve raw dump/hash/error receipts on failure. Check CLI aliases, optional delivered host, NSIS setup/payload executables and actual embedded System/nsDialogs DLLs before artifact upload. Unknown pairs/ordinals, malformed or empty tables, nonzero delay tables and mismatched profiles fail closed. x64 historical positive:411 qualified imports; v0.10.1 negative:454 examined, rejected DeriveCapabilitySidsFromName as expected. ARM debug453/453resolved on actual Win11 build 26300; no older ARM minimum inferred. Historical NSIS setup/System/nsDialogs163/19/54static imports pass; x86 ordinal17 is bound to SDK/export InitCommonControls identity. These are static contract receipts, not a complete Windows API allowlist or final1607 startup/install proof. Generated uninstaller, installed VC closure and exact final package/native owner acceptance remain required. Native build budget210 minutes. Existing workflow contract:155 paths,11 event cases x 12 steps,13 hermetic checks,7 targets/34 assets PASS. actionlint with actual CI flags PASS. Python parsed; independent complete frozen import/source review PASS. Hosted release guard has not run yet. Thanks @LmeSzinc for the 1607 import surface diagnosis that motivated this release gate. Refs #6962 Refs #6953 Validation ran once against the complete frozen batch on cf7199b; exact file/binary hashes are retained in FINAL_BATCH_FROZEN_SOURCE_2.json and LOCAL_CLI_BUILD_RECEIPT.json. Unchanged evidence is reused per slice. Actual nextest summary: 170 tests run: 170 passed, 15157 skipped (outside selected filter); 0 failed. npm totals: 1312 passed, 0 failed, 7 skipped; Vitest actual line: Tests 772 passed (772). check:web, fmt and CI-flag all-target/all-feature TUI Clippy PASS. No new product tests/comments. Final-head hosted Windows/full CI and release packaging remain required.
The cf7199b macOS job spent29m10s building CLI and125m18s building tests, then hit165 minutes with15,204 completed PASS and no FAIL/TIMEOUT results; there was no complete suite summary. Set finite native210 minute budgets consistently and omit both dev/test debug metadata on the macOS test lane so build profiles share reusable inputs. Assertions, complete tests, test deadlines and retry settings are unchanged. No empty rerun commit. Existing workflow/npm contract gate passes; actual actionlint CI flags pass. No claim that the timed-out candidate job passed or the new head CI ran. Validation ran once against the complete frozen batch on cf7199b; exact file/binary hashes are retained in FINAL_BATCH_FROZEN_SOURCE_2.json and LOCAL_CLI_BUILD_RECEIPT.json. Unchanged evidence is reused per slice. Actual nextest summary: 170 tests run: 170 passed, 15157 skipped (outside selected filter); 0 failed. npm totals: 1312 passed, 0 failed, 7 skipped; Vitest actual line: Tests 772 passed (772). check:web, fmt and CI-flag all-target/all-feature TUI Clippy PASS. No new product tests/comments. Final-head hosted Windows/full CI and release packaging remain required.
Separate x64 compatibility target1607, ConPTY API1809 and current Terminal 2004 requirements. State actual ARM26300 evidence without inventing a minimum ARM build. Preserve final1607 install/startup, generated uninstaller/VC closure, package/native-owner and live Claude grant/registration gates explicitly. Document actual first-turn file_search/load_skill schema in English/Chinese, correct optional Gemini/compaction notes and refresh generated projections. Dated version/changelog sync, workflow contract, source budgets and web facts pass. No claim of final package or oldest-OS acceptance. Specific reporter credits preserved; source fixes still target unreleased0.10.2. Refs #6962 Refs #6932 Refs #6923 Refs #6955 Validation ran once against the complete frozen batch on cf7199b; exact file/binary hashes are retained in FINAL_BATCH_FROZEN_SOURCE_2.json and LOCAL_CLI_BUILD_RECEIPT.json. Unchanged evidence is reused per slice. Actual nextest summary: 170 tests run: 170 passed, 15157 skipped (outside selected filter); 0 failed. npm totals: 1312 passed, 0 failed, 7 skipped; Vitest actual line: Tests 772 passed (772). check:web, fmt and CI-flag all-target/all-feature TUI Clippy PASS. No new product tests/comments. Final-head hosted Windows/full CI and release packaging remain required.
…ndencies Cargo now reports a separate build_directory. Read archive sizes there, with its older target_directory fallback, so dev-cargo preflight cannot measure stale canonical target/package archives. Exclude extension-host/node_modules explicitly: four ignored dist files otherwise entered a clean TUI package and marked its publication provenance dirty. Verification on macOS, source cd15db8 plus these two owned paths: - npm test: Node 540 passed; 0 failed; 7 skipped. Vitest 772 passed. Combined 1312 passed; 0 failed; 7 skipped. - npm run check:web: PASS. - Existing crate-size check through dev-cargo: all 2 requested current archives under 10485760 bytes; TUI 9.00 MiB, CLI 0.35 MiB. - cargo package -p codewhale-tui --list --locked --allow-dirty: 956 members; no extension-host/node_modules entries. - git diff --check: PASS. No production Rust changed. Prior no-upload 29-crate verification built every tarball successfully, but its size report inspected stale files and TUI included ignored dependencies. Strict clean-commit no-upload verification and final Windows packaged/CI acceptance remain gates; this commit does not claim them. Refs #6910
The existing Ctrl-T fixture put Models.dev metadata into the ModelsDev snapshot but tagged it as endpoint-owned Live with a fabricated fingerprint. The exact route guard rejects that row. Removing the provider-wide reasoning fallback exposed the malformed fixture in d83 Ubuntu CI: 19,031 passed; 1 failed; 34 skipped. The complete failed log and ordinal audit remain retained. Use ModelsDevLive provenance, matching the existing catalog importer. Both original expected ladders and every two-lap/effective-tier assertion stay unchanged. No production code, test function or code comment was added or weakened. Verified on macOS at d83 plus this frozen existing-test-only edit: Summary [ 0.204s] 5 tests run: 5 passed, 15306 skipped Finished test profile in 2m 02s; existing __eh_frame linker warning retained. fmt and diff checks passed. Unchanged JS and generated-doc inputs retain the earlier npm 1,312 passed; 0 failed; 7 skipped and web checks, with their original source boundary. Production inputs and d83 hosted Clippy9m25s proof are unchanged; current-head hosted CI/Lint still required. This new commit has no Windows, final-package or live-provider acceptance claim. Local proof: artifacts/release-0102-takeover-20261013/release-gates/d83-ctrl-t-fixture-repair/LOCAL_ACCEPTANCE.json in the shared workspace. Refs #6396, #6650
The steering API may truthfully return a queued count0 after its two-second observation limit. Two existing tests assumed an in-band delivered count1. Observe the matching turn.steered and completed-item receipts before asserting exact durable count1. Preserve the mock commitment/text, turn identity, interruption, terminal status and every existing event assertion. Production waits and settlement are unchanged; no new test functions or code comments. Local frozen macOS default-feature steering checks: Summary [ 1.904s] 5 tests run: 5 passed, 15306 skipped 5 passed; 0 failed; 15306 outside the filter. fmt and diff checks pass. The existing __eh_frame linker warning remains unsuppressed. Unchanged JS evidence reused at its recorded source boundary: npm1312 passed;0failed;7skipped and check:web passed. Prior98 hosted Clippy7m15 is historical; new-head CI remains required. Original98 Windows CI failed:18300passed(1leaky),1failed,27skipped; all18301unique result ordinals retained. Owner-crash recovery passed there. This repair has not yet run on Windows. The old log does not establish which settlement stage was delayed or a production defect. Refs #6968
Land contributor queued-steer receipt fix as its own PR. Actual own-head hosted checks: macOS19033 passed/0failed/33skipped; Ubuntu19030/0/34; Windows18297passed(including1leaky)/0failed/27skipped, with bothchangedsteeringcases andownerrecoveryPASS. Literal rootmergegatePASS; full reviewsread, no dependents, sourcebranchretained. Finalassembled0.10.2 candidate/nativepackage QA remains separate. Refs #6968
Land the contributor change as its own PR with the original authored commit preserved. Root merge gate literally PASS; current reviews, required checks, source/base, dependents and branch preservation verified. Actual own-head hosted native summaries: 2026-10-13T15:47:06.6798300Z Summary [ 456.877s] 19035 tests run: 19035 passed (2 slow), 33 skipped 2026-10-13T16:07:31.9069122Z Summary [1093.565s] 19032 tests run: 19032 passed (5 slow), 34 skipped 2026-10-13T16:29:02.7013722Z Summary [1130.961s] 18301 tests run: 18301 passed (1 leaky), 27 skipped Named owner recovery passed on all three. Existing Windows browser-launcher leak is retained where present. Current merge-SHA and final assembled0.10.2 candidate/package acceptance remain separate. Source branch retained; no issue closure or tag/publication. Refs #6968
…heir-no-proxy Land the contributor change as its own PR with the original authored commit preserved. Root merge gate literally PASS; current reviews, required checks, source/base, dependents and branch preservation verified. Actual own-head hosted native summaries: 2026-10-13T22:27:48.2990130Z Summary [ 965.899s] 19035 tests run: 19035 passed (2 slow), 33 skipped 2026-10-13T17:10:54.9009369Z Summary [ 987.150s] 19032 tests run: 19032 passed (4 slow), 34 skipped 2026-10-13T17:22:17.2571366Z Summary [1021.328s] 18301 tests run: 18301 passed (1 leaky), 27 skipped Named owner recovery passed on all three. Existing Windows browser-launcher leak is retained where present. Current merge-SHA and final assembled0.10.2 candidate/package acceptance remain separate. Source branch retained; no issue closure or tag/publication. Refs #6968
…are-ceiling Land the contributor change as its own PR with the original authored commit preserved. Root merge gate literally PASS; current reviews, required checks, source/base, dependents and branch preservation verified. Actual own-head hosted native summaries: 2026-10-12T16:54:38.2345790Z Summary [ 437.121s] 19033 tests run: 19033 passed (2 slow), 33 skipped 2026-10-12T17:13:34.5155380Z Summary [1030.592s] 19030 tests run: 19030 passed (4 slow), 34 skipped 2026-10-12T17:53:19.4941687Z Summary [1220.379s] 18297 tests run: 18297 passed (1 slow, 1 leaky), 27 skipped Named owner recovery passed on all three. Existing Windows browser-launcher leak is retained where present. Current merge-SHA and final assembled0.10.2 candidate/package acceptance remain separate. Source branch retained; no issue closure or tag/publication. Refs #6968
Integrate main3929bcee after own-PR merges #6967, #6974, #6975 and #6966. Preserve stronger matching steer receipt, HTTP projection and identity assertions; retain one contributor provider-table auth marker in the atomic save. Keep all15 loopback guards and three independent/event watchdog corrections. Credit @Lstarsky0 and @gaord in release notes; original authored commits and source branches are preserved. Actual frozen macOS default-feature result: Summary [ 1.439s] 23 tests run: 23 passed, 15288 skipped All23 unique result ordinals are PASS. npm:540 Node +772 Vitest passed;0 failed;7 skipped. npm run check:web, versions, changelog sync, fmt and diff passed. Source hashes unchanged throughout. Existing __eh_frame linker warning retained. No new product test functions/comments or gate waivers. Old failed/cancelled CI evidence remains; complete new-head hosted CI/Windows owner recovery and final packages are pending. No provider inference or release/publication. Refs #6968 Refs #6972
Keep the contributor API and its original authored commit on its own PR. Trace actual project-context and exact hook-approval consumers: persisted trust does not remove project instructions/history, and hooks require separate digest approval. Correct both response messages and EN/ZH owning docs; remove the two now-false explanatory comment blocks; update the existing runtime-api registry summary and default-config limitation. Source review, Rustfmt parse/format check and TOML registry validation passed. No product test was run for this branch correction; fresh exact-head hosted CI and Runtime authorization/trust acceptance remain required. No new agent test or code comment. Maintainer update brought actual main fixes with original commits preserved. Refs codewhale-hq#6959 Refs codewhale-hq#6968
…lerates-git-race Preserve the contributor's existing cleanup test correction and original authored commit. Transient Git failure is pending only within the bounded observer; strict final worktree and branch checks remain. Root literal PASS source/full native CI/review/dependent/branch guards recorded. Actual exact own-head hosted summaries: 2026-10-14T02:07:19.5002730Z Summary [ 825.896s] 19035 tests run: 19035 passed (2 slow), 33 skipped 2026-10-14T00:46:02.7912461Z Summary [ 692.573s] 19032 tests run: 19032 passed (2 slow), 34 skipped 2026-10-14T01:26:21.4468643Z Summary [1121.431s] 18301 tests run: 18301 passed (1 leaky), 27 skipped Owner crash reentry passed on all three. The hook-output cleanup case is Unix-only and passed on macOS/Ubuntu; the portable cleanup case passed Windows too. Existing Windows browser-launcher LEAK retained. Resulting main/candidate/packages remain separate qualification. Source branch retained; no issue closure/tag/publication. Refs #6968
Observe the existing pending-model Notify before final deadline acceptance. Caller setup precedes a real5s deadline;15s outer watchdog. Earlycompletion/missingphase stillfailswithdiagnostics, allpartialanswer/iteration/usage/context/terminalreceipt assertions retained. Onlyexistingfixture changed; productionbytes andoriginalaggregateusageassertion unchanged, no newtestfunction/comment. ActualMaclocal atfrozenECD+V3: Summary [10.187s]42 testsrun:42passed,15284skipped, includingcorrectedpendingphasefixture. Correctedhunksmatchownforktest; inheritedusageassertion retained. npm1312passed/0failed/7skipped andweb passedatpriorV2unchangedJSboundary; notfullfork/Windows/distpass. OriginalWindows18300passed(1LEAK)/1failed/27skip preserved, clipboardacceptance succeeded. FreshownheadCIgate required beforemerge. OriginalPR/commits/branch retained. Refs codewhale-hq#6943. Refs codewhale-hq#6968.
…ace leases Preserve both original @gaord commits and source branch. Keep owner/store/profile/bootstrap/auth/worker guards; kernel contention never authorizes inode replacement. Counted handles and asynchronous cleanup retain the lease; PrivateDirectory protects selected paths and identities. Windows creation success returns validated RW/noDELETE handle while failure cleanup keeps exact DELETE authority. RuntimeAPI/state-namespace/Unix-derived endpoint limits remain explicit; original9lease/6selector/4socket tests retained. Actual local frozenECD+V3 evidence:42testsrun42passed15284skipped; appserver19testsrun19passed158skipped; registry1passed0failed1filtered; productionCLI andscopedClippyPASS. ActualUnixmanual4PASS/0FAIL,9authGETs,5ownedprocessesreaped,networkNOT_MEASURED/noinference. V2config12/0 andnpm1312/0/7web unchanged exceptcfgtesthelper; originalsource/failures retained. ClippypostcheckEAGAIN recovered with source guard andcached0.80sactual0; initialstale-binary/manualPython failures are artifact-only, preserved. Localproof coversmatched10fullfiles andsameownedhunks in4forkbaselinevariants; it is NOT thiswholeownforktree/newWindows/fullnative/distproof. Fresh exact ownhead hostedCI/review required beforemerge. No newagenttestfunction/comment, no tag/publication/deletion. Refs codewhale-hq#6924. Refs codewhale-hq#6968.
Folds 26 main commits (incl. #6924 Runtime stores/workspace drivers, #6977, #6943, #6959, #6958, #6956) into PR #6968's lane. The only conflicts were web/data/agent-docs.generated.json and features.generated.json, regenerated with web/scripts/derive-facts.mjs (check-facts OK, version 0.10.2). Verified: scripts/dev-cargo.sh check --locked -p codewhale-tui --all-targets finished in 9m00s with no errors. nextest -p codewhale-tui --lib on the overlap filter (runtime_api|rlm::turn|runtime_threads|workspace_lease|snapshot): 902 passed, 0 failed, 14427 skipped (80.1s). Full suite left to hosted CI. Branch exception: founder-authorized 2026-10-15 for this lane, recorded in CW/coordination/BRANCH_EXCEPTIONS.md. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NBKbhx19BRbZtvWK8rVKjz
There was a problem hiding this comment.
If your organization's extra usage balance is empty, an organization admin can add extra usage credits at claude.ai/admin-settings/usage. If its monthly spend limit was reached, an admin can raise it on the same page. If neither applies, contact Anthropic support.
Once extra usage is available, someone with write access to this repository can comment @claude review on this pull request to trigger a review.
Four rustls advisories published 2026-10-14 (ECH-rejection data leak, pre-auth Brotli certificate decompression allocation, ServerHello key-exchange downgrade, Debug impls exposing TLS secrets) fail the Security audit and cargo-deny jobs on main and on the 0.10.2 candidate (PR #6968). Lockfile-only patch bump. Evidence: cargo audit - only the existing allowed bincode warning; cargo deny check advisories - ok; scripts/dev-cargo.sh check --locked --workspace finished (6m30s) with no errors. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NBKbhx19BRbZtvWK8rVKjz
…0.2 candidate Lockfile and one search.rs hunk; no conflicts. Both verified on main (2fb7215, c6bcf78). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NBKbhx19BRbZtvWK8rVKjz
c6bcf78 added workspace.canonicalize() inside the closure passed to run_blocking_grep. That private helper exclusively invokes the closure with tokio::task::spawn_blocking(search). The lexical budget checker does not recognize this wrapper, so main CI 38723587654 reports three sites against a budget of two even though the new operation is already off the Tokio worker. Record this one existing protected site; no Rust code, assertions, production deadline or general checker behavior changes. Verification on main 6ad6b26 plus this one-file change: - Before: search.rs path_canonicalize sites 3 > budget 2. - After: blocking-call budget: 539 sites across 165 files, within budget. - Existing blocking checker tests: Ran 34 tests, OK (0 failed). - npm test: 540 Node + 772 Vitest = 1312 passed, 0 failed, 7 skipped. - npm run check:web: passed, including production web build. - git diff --check: passed. Eight concurrent CW-7414 TUI paths remain unstaged and byte-identical to the takeover snapshot. Their Rust build was left undisturbed. This script-only correction has no new native, hosted-CI or release proof. Refs #6149, #6968
Preserve candidate source and the main blocking-budget correction plus reviewed terminal fixtures, relay fixture, provider-list alignment and Android confined-file fix. Resolve only changelog and generated agent-doc conflicts. Preserve printf033 credit and the candidate release notes; regenerate the packaged changelog and agent docs from their existing owners. Object-level review confirms all115 candidate paths and22 newer-main paths preserve their respective source blobs except four combined documentation files. The three manual resolutions contain no production edits. Existing15-release changelog generation,26-topic/52-source doc derivation and diff whitespace checks pass. All four old review findings are fixed in unchanged candidate source with caller evidence recorded. Fresh exact resulting-head native/web/CodeQL CI remains pending. Earlier candidate CI is historical evidence, not qualification of this merge. No tag, publication or release claim. Canonical main and peer native-build inputs remain unchanged. Refs #6968 Signed-off-by: CodeWhale Bot <bot@codewhale.net>
The release-wide feature-note gate finds no #6841 receipt for the already carried 6ad6b26 / CW-7033 implementation. Add the missing 0.10.2 note and sync the TUI changelog. Preserve the October 13 date, existing entries and credit, and the known nested-denial Fleet accounting limitation. Validation on exact base 6eeafcd and captured proposal inputs: - Existing release-note check v0.10.1..6eeafcd: before exit 1 for missing #6841; after PASS, 9 linked issue references checked. - Existing sync-changelog.sh --check: PASS, TUI slice up to date. - git apply --check --whitespace=error-all: PASS. - Exactly 2 files, 8 additions, 0 deletions; removing the 4-line note from each proposal restores its original blob byte for byte. No full version check, npm gate, native build/test, resulting-head CI, package or Windows VM acceptance was run in this artifact-only preparation. Refs #6841, CW-7033 Signed-off-by: CodeWhale Bot <bot@codewhale.net>
Retain the original candidate and contributor histories while qualifying the combined source in parallel with original PRs #6985 and #6989. Both contributor PRs must still land as themselves before this candidate's conditional squash. The source-navigation work in draft PR #6393 is excluded pending its author's scope decision and successful qualification. Include current main 248634f: worker ownership and late completion receipts, stale approval/input settlement, shared mock authority, isolated fixture workspaces, macOS LLVM setup and Windows clipboard launch diagnostics. Carry @henrikdukefoss's Standard Compute descriptor with Unknown billing and @shenjackyuanjie's OHOS Ninja selection and ungated CLI hashing unchanged. Resolve CI/credit/generated-document intersections, synchronize approval documentation with Engine execution IDs and captured input, and narrow the Windows 10 1607 statement to verified dynamic lookup behavior. Verification: object-only merge and authored/generated-document review; 72 feature rows and 26 documentation topics preserved; git diff --check passed. No build or native/npm test was run on this combined source. Prior source receipts remain separate; hosted exact-head qualification is required. Canonical main and its index remain unchanged. No publication is authorized. Signed-off-by: Hunter Bown <hunter@shannonlabs.dev>
Carry main 51c00f2 without changing the original PR-specific source. Pin the no-host-tools metric fixture through its existing test-only capability seam and remove echo/grep pipe races from mobile smoke. Main repair verification: 2 focused existing Rust tests passed; full tool catalog JSON unchanged; default CLI build and all 9 mobile HTTP assertions passed; npm 1312 passed, 0 failed, 7 skipped; check:web, scoped rustfmt, ShellCheck, Bash syntax and diff checks passed. Original isolated mobile launch failed socket-path length before assertions; corrected only the launcher and reran the same binary. Fresh resulting-head hosted native qualification remains required; no old-source CI result is relabeled. Only the three inherited probe paths differ from the previous PR head. Both histories are retained. No new test, publication or branch cleanup. Refs CW-6439 Signed-off-by: Hunter Bown <hunter@shannonlabs.dev>
Record the Standard Compute and OHOS contributor heads through #6989 while preserving the complete candidate source tree at 4a27e34. The five shared release documentation and credit conflicts retain the already reviewed candidate blobs, including both original contributor credits. No source content changes. This prevents a final intake merge conflict. The original #6985 and #6989 PRs still merge as themselves before the conditional #6968 squash. Existing test receipts remain attached to their original heads and unchanged source tree; this new commit awaits fresh required CI before merge admission. No tests were repeated locally for the identical source tree. Signed-off-by: Hunter Bown <hunter@shannonlabs.dev>
Brings in #6985 (Standard Compute), #6989 (OHOS), the CW-6880 mobile approval-card fix, the CW-7427 queue notice and logging fix and the G1 stdio MCP handoff, so the candidate's CI qualifies the tree the squash will produce. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NBKbhx19BRbZtvWK8rVKjz
There was a problem hiding this comment.
If your organization's extra usage balance is empty, an organization admin can add extra usage credits at claude.ai/admin-settings/usage. If its monthly spend limit was reached, an admin can raise it on the same page. If neither applies, contact Anthropic support.
Once extra usage is available, someone with write access to this repository can comment @claude review on this pull request to trigger a review.
Brings in b5e270b (the TUI accepts MCP status from a replacement engine), so the squash produces exactly the tree this candidate's CI qualifies. The merge is textually clean, and the merged tree has no spawn_tui_engine call with the old signature. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NBKbhx19BRbZtvWK8rVKjz
This 0.10.2 candidate makes model admission, catalog facts and exact tiered pricing specific to the selected endpoint. It repairs Windows command approval/input/recovery, Claude login state, temporary quota-worded rate limits and oversized-session diagnostics, and integrates Runtime worker ownership and late completion receipts. 0.10.2 has not shipped.
Current candidate and intake
Candidate head: 9985a6f0fa, tree
4a27e34712f12d5ac44a2d2c3f4802307a4f1747. This ancestry refresh merges the reviewed stacked contributor headdeb491c4intoa42813ff. The five shared documentation/credit conflicts retain the exact candidate blobs; the entire candidate source tree is byte-for-byte unchanged. Both original contributor histories and credits are preserved.The original contributor PRs must still land as themselves before this candidate's conditional squash. The candidate now contains their current source heads as ancestors. #6989 carries #6985’s source for parallel qualification of their combined tree; merge order remains #6985, then #6989, then this candidate. Neither original PR is claimed merged by this update.
9f5ed8ebb674d12afb7276ce0bbf4519444c7c1d93132146retained. Fresh checks pending. No live provider or commercial qualification.deb491c44bb4bcf9b4dbfb0b9c5b3cde601a17efc59004afretained. Windows clipboard gate failed before native tests; exact startup cause is unknown and a bounded same-head retry is held until the workflow finishes. This is an intake dependency failure, not a result of this candidate’s separate native job. Linux-SDK checking is not Windows-host SDK or OHOS-device acceptance.#6393 remains excluded. Its contributor returned it to draft for unpublished navigation/measurement work; scope clarification is pending. Existing historical Aditya credit remains intact; no new #6393 feature or release claim was imported.
Current qualification
The
51c00f23repair addresses the inherited Windows metric-fixture failure observed on #6989's prior head and the mobile smoke pipeline failure on candidate282e1948. The metric fixture uses the existing test-only host-capability pin across platforms; the smoke assertions avoid an upstream broken pipe underpipefail. Production host discovery, catalog budgets, equality assertions and test deadlines remain unchanged. Original failure logs remain attached to their exact heads.The three-file repair was validated locally on macOS before committing
51c00f23: 2 existing focused Rust tests passed, the complete extracted tool catalog equals the existing budget with no identity/cap changes, the production CLI binary built, 9 mobile HTTP smoke assertions passed, andnpm test && npm run check:webpassed 1,312 tests with 0 failures and 7 skipped (540 Node + 772 Vitest). The first isolated smoke launch exceeded macOS's socket-path limit before HTTP assertions; correcting only the artifact launcher then passed all 9 assertions with the same compiled binary. Both attempts are retained. These are focused local results on the main repair, not full native qualification of this combined candidate head.Fresh candidate checks are pending on
9985a6f0fa. All three native suites and required gates must complete for the refreshed head before merge admission. The immediately precedinga42813ffrun, on the identical source tree, completed all 9 mobile HTTP smoke assertions and 772 Web Frontend tests successfully. Those receipts retain their actual old-head identity; the ancestry update does not convert them into fresh-head status checks. No overall candidate PASS is claimed, and local macOS checks do not replace hosted Windows or packaged acceptance.Prior source-specific evidence remains available: candidate
282e1948passed local npm/check:web (1,312 passed, 7 skipped), all 55 Runtime metrics exactly at budget and the production CLI compile check. Its hosted Lint also passed the actual Runtime/persistence gates. Those results retain their original source identity; the full 55-metric measurement was not repeated as part of51c00f23's focused repair. Earlierfe7e1fc7full native and clipboard receipts likewise qualify that earlier head only.The retained source review found no Rust merge conflicts; candidate implementation, contributor changes, Engine execution-ID/input documentation and all 72 generated feature rows are preserved. macOS LLVM setup and candidate debug-profile settings remain. Windows startup diagnostics do not establish a startup cause or fix. Actual Windows 10 1607 startup/Native-host acceptance remains unverified; the release wording is limited to dynamic API lookup and the unsupported LPAC result.
CodeQL alerts #562–565 remain open and undismissed. The four reported function bodies were rechecked against the current candidate source tree and are byte-identical to the earlier bounded static triage. That counterevidence did not justify a source repair; it is not exhaustive security acceptance or a fresh hosted CodeQL analysis.
Carried changes and contributor credit
5ebb2c14f8: PowerShell call operators, quoted ampersands and combined redirection retain destructive-command detection. Thanks also to @jayanthvee for the detailed #6963 diagnosis.Eight original PRs merged during this takeover: #6979, #6982, #6984, #6983, #6873, #6917, #6965 and #6807. The latter four retain ancestry for already-carried or explicitly superseded source. Pet reconciliation #6807 leaves main's source tree unchanged, preserves shared Stage/mode controls and supersedes the old unconditional override; skipped native jobs provide no new native/default-parity proof. All source branches are retained.
Remaining release gates
codewhale-ratatui0.1.2 is already published; do not republish it.The founder's conditional squash approval does not authorize tagging, package/release publication or deployment. Latest public release remains v0.10.1. Ownership and evidence are on CW-6439.
Windows reports #6986 (paste), #6987 (shell binding) and #6981 (compaction/busy state) remain open. The first two have relevant source fixes already in v0.10.1; reporter-equivalent and packaged acceptance remain distinct. No issue-specific reproduction or fix for #6981 is established. The current clipboard fixture does not cover raw-key fallback, trailing blank lines, Windows 10 1607, ARM64 or installers. Real-session resume/fork, IME/preedit, long-running scroll and login journeys remain acceptance work.
Refs #6396
— Written by GPT-6 (AI agent) on behalf of the maintainers.
Update 2026-10-16 03:45 UTC — head ba01538 (Claude Opus 5.5, after GPT-6's session ended)
/new(CW-7430 G1).— Written by Claude Opus 5.5 (AI agent) on behalf of the maintainers.
Update 04:10 UTC: head 704d435 merges main again to bring in b5e270b, the TUI fix that accepts MCP status from a replacement engine. It overlapped three candidate files; the merge was textually clean, and no call site uses the old
spawn_tui_enginesignature.Engine main is frozen until this squash, so the squash tree equals this head's tree.
— Claude Opus 5.5 (AI agent)