Summary
Parent: #467 / #463. Tracking only — not a follow-up implementation.
Issue #467 estimated 250–500 lines and required material scope growth to become a separate issue. The prove-and-lock branch (task-3-prove-herdr-only, 21 files, 612 insertions / 201 deletions versus task-2-delete-twocode-runtime, excluding generated bindings) is larger because #467 also required the repo-walk audit (herdr_only_audit.rs, 443 insertions), rewriting DROP-by-name tests onto the sqlite catalog allowlist, and clearing leftover live session-layer vocabulary from current-state docs, AGENTS.md copies, production comments, and tests. There is no Task 4 on this plan.
What grew
src-tauri/crates/service/tests/herdr_only_audit.rs (new repo-walk lock: Local adapter, spawn deps, env/CLI backend selection, sqlite session/profile authority, word-boundary session-layer token, constructed runtime-switch name)
src-tauri/tests/integration_pty_db.rs → src-tauri/tests/integration_sqlite_schema.rs (live sqlite allowlist; no dropped-table grep)
src-tauri/crates/infra/src/db.rs (init_db / current-schema asserts → catalog allowlist)
src-tauri/crates/service/src/runtime.rs / runtime/herdr.rs (leftover live identifiers; sqlite_session_ids allowlist)
src-tauri/crates/service/tests/docs_client_mode.rs + src/features/terminal/lib/terminalTransport.test.ts (current IPC/DTO names; no deleted-name absence list)
- production comments:
session.rs, handler/shell.rs, fixture dsr-da.json keys
- docs / AGENTS.md / CLAUDE.md copies (
docs/architecture.md Design Decisions + anti-pattern lock pointer)
All of that is the Task 3 audit and vocabulary cleanup plus tests and docs. It is not a new #463 task: no website/ / openspec/ sweep; no #466 namespace work; leftover gaps #396/#397/#398/#399/#401 stay open; no Local adapter / spawn crate / env-flag backend; pin stays v0.9.0; lib.rs still does not name HerdrRuntimeSync.
Decision
Keep the extra coverage in Task 3. Splitting the audit walker, the sqlite allowlist rewrite, or the current-state vocabulary cleanup into a later issue would leave the Herdr-only lock incomplete. Do not invent Task 4. Do not fold #466 or leftover capability gaps into this branch.
No production work belongs on this issue.
Summary
Parent: #467 / #463. Tracking only — not a follow-up implementation.
Issue #467 estimated 250–500 lines and required material scope growth to become a separate issue. The prove-and-lock branch (
task-3-prove-herdr-only, 21 files, 612 insertions / 201 deletions versustask-2-delete-twocode-runtime, excluding generated bindings) is larger because #467 also required the repo-walk audit (herdr_only_audit.rs, 443 insertions), rewriting DROP-by-name tests onto the sqlite catalog allowlist, and clearing leftover live session-layer vocabulary from current-state docs, AGENTS.md copies, production comments, and tests. There is no Task 4 on this plan.What grew
src-tauri/crates/service/tests/herdr_only_audit.rs(new repo-walk lock: Local adapter, spawn deps, env/CLI backend selection, sqlite session/profile authority, word-boundary session-layer token, constructed runtime-switch name)src-tauri/tests/integration_pty_db.rs→src-tauri/tests/integration_sqlite_schema.rs(live sqlite allowlist; no dropped-table grep)src-tauri/crates/infra/src/db.rs(init_db/ current-schema asserts → catalog allowlist)src-tauri/crates/service/src/runtime.rs/runtime/herdr.rs(leftover live identifiers;sqlite_session_idsallowlist)src-tauri/crates/service/tests/docs_client_mode.rs+src/features/terminal/lib/terminalTransport.test.ts(current IPC/DTO names; no deleted-name absence list)session.rs,handler/shell.rs, fixturedsr-da.jsonkeysdocs/architecture.mdDesign Decisions + anti-pattern lock pointer)All of that is the Task 3 audit and vocabulary cleanup plus tests and docs. It is not a new #463 task: no
website//openspec/sweep; no #466 namespace work; leftover gaps #396/#397/#398/#399/#401 stay open; no Local adapter / spawn crate / env-flag backend; pin stays v0.9.0;lib.rsstill does not nameHerdrRuntimeSync.Decision
Keep the extra coverage in Task 3. Splitting the audit walker, the sqlite allowlist rewrite, or the current-state vocabulary cleanup into a later issue would leave the Herdr-only lock incomplete. Do not invent Task 4. Do not fold #466 or leftover capability gaps into this branch.
No production work belongs on this issue.