Summary
Parent: #472 / #466. Tracking only — not a follow-up implementation.
Issue #472 estimated 250–500 lines and required material scope growth to become a separate issue. The version-policy rewrite is larger because #472 also required protocol-floor classification (not exact pin), PATH herdr preference vs sidecar fallback, old-server / newer-compatible / PATH-vs-sidecar fake-herdr proofs, inversion of exact-pin live-server tests, and a user-visible toast of the fail-closed herdr update string without a Settings health page.
Approximate churn on task-2-version-policy vs task-1-attach-user-session (b39371f): 650 insertions / 26 deletions (10 files).
What grew
src-tauri/crates/infra/src/herdr/process.rs (protocol >= 22 floor, old-server herdr update message, fake-herdr old/new reuse tests)
src-tauri/crates/infra/src/herdr/mod.rs (--version floor, PATH lookup helpers, pin stays v0.9.0)
src-tauri/crates/service/src/runtime.rs (PATH preferred over sidecar; old PATH does not start sidecar; isolated PATH/XDG tests)
src/features/terminal/hooks.ts / src/features/profiles/hooks.ts (existing sonner surface for the fail-closed string)
- Current-state sentences in
docs/herdr-integration.md, docs/architecture.md, docs/configuration.md
The extra lines are tests and the binary-preference / version-policy #472 asked for. Production still does not implement Task 3 (bidirectional e2e + sharing-contract rewrite). The sidecar pin remains v0.9.0; latest is still refused.
Decision
Keep the extra evidence in Task 2. Splitting PATH preference, the old-server fail-closed proof, or the toast surface into a later issue would leave #472's acceptance criteria unproven.
Do not fold Task 3 into task-2-version-policy. No production work belongs on this tracking issue.
Summary
Parent: #472 / #466. Tracking only — not a follow-up implementation.
Issue #472 estimated 250–500 lines and required material scope growth to become a separate issue. The version-policy rewrite is larger because #472 also required protocol-floor classification (not exact pin), PATH
herdrpreference vs sidecar fallback, old-server / newer-compatible / PATH-vs-sidecar fake-herdr proofs, inversion of exact-pin live-server tests, and a user-visible toast of the fail-closedherdr updatestring without a Settings health page.Approximate churn on
task-2-version-policyvstask-1-attach-user-session(b39371f): 650 insertions / 26 deletions (10 files).What grew
src-tauri/crates/infra/src/herdr/process.rs(protocol >= 22 floor, old-serverherdr updatemessage, fake-herdr old/new reuse tests)src-tauri/crates/infra/src/herdr/mod.rs(--versionfloor, PATH lookup helpers, pin stays v0.9.0)src-tauri/crates/service/src/runtime.rs(PATH preferred over sidecar; old PATH does not start sidecar; isolated PATH/XDG tests)src/features/terminal/hooks.ts/src/features/profiles/hooks.ts(existing sonner surface for the fail-closed string)docs/herdr-integration.md,docs/architecture.md,docs/configuration.mdThe extra lines are tests and the binary-preference / version-policy #472 asked for. Production still does not implement Task 3 (bidirectional e2e + sharing-contract rewrite). The sidecar pin remains v0.9.0;
latestis still refused.Decision
Keep the extra evidence in Task 2. Splitting PATH preference, the old-server fail-closed proof, or the toast surface into a later issue would leave #472's acceptance criteria unproven.
Do not fold Task 3 into
task-2-version-policy. No production work belongs on this tracking issue.