feat/up!: require an active harness-pool generation, no fallback to the legacy install #108
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/up-require-active-generation"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #102, first step of the pre-1.0 Phase 4 cutover tracked in #107. Breaking. wraptool up no longer falls back to the per-image or legacy harness install when the selected harness has no active pool generation for the target platform. All three container runtimes now stop with one shared error that names the platform key and the fix, run wraptool harness install name, or wraptool harness sync name --platform key if it is already locked, and a pointer whose generation is missing on disk or names an invalid generation id gets its own line. The check runs in runUp before the token is provisioned, the bind is changed or the shared server starts, so a failed up leaves no server, no worktree record and no .mcp.json behind, and the bring-ups keep a cheap re-check. The devcontainer runtime takes its platform key from the Docker daemon via #106 and prints that notice once. Two more refusals land with the same rule, a declared runtime mount that is missing or not read-only now stops up with the exact mounts snippet to add instead of a notice, because a writable mount lets the harness rewrite its own locked binary and the per-image binary is no longer a fallback. The legacy fallback plans, their deprecation notices and the half-gone and gc'd legacy error branches are deleted, the mixed-state expose of legacy bin and lib beside runtime stays when a live pointer exists until #107 removes it. Every fallback test was converted to an error assertion, none deleted, the full container entry string is pinned byte for byte again, and new runUp-level tests cover each runtime, the mount refusals and the daemon key. Two adversarial reviewer rounds, eleven mutations killed. Design sections 12.1, 12.2 and 16 and the 1.0 note's section 3.5 are updated with the reversal dated today, four docs pages and CLAUDE.md follow, CHANGELOG Changed entry marked breaking, run wraptool harness install name once after upgrading. 🤖 Generated with Claude Code