Phase 1: The checkout path is the only identity #480

Merged
mph merged 5 commits from IW-476-phase-01 into IW-476 2026-08-29 16:38:23 +00:00
Owner

Phase 01 implementation for IW-476.

Files

Browse changed files: https://code.iterative.works/iterative-works/iw-cli/-/blob/IW-476-phase-01/

Phase 01 implementation for IW-476. ### Files Browse changed files: https://code.iterative.works/iterative-works/iw-cli/-/blob/IW-476-phase-01/
A herdr workspace had two identities: the checkout path of the worktree it
holds, and its display label. It now has one — the checkout path.

- HerdrLookup.byLabel, resolve's label fallback and has's label disjunct are
  deleted. This is reachable code removed deliberately, not a dead-code sweep:
  has is a disjunction rather than a fallthrough, and resolve's fallback ran
  whenever candidatePath returned None.
- currentName is removed from the TerminalWorkspaceOps port and its four
  implementations. It declared one signature with two meanings — tmux returned
  an addressing name every port method accepts, herdr returned a display label
  none accepts. Open.scala asks isCurrent instead.
- LiveHerdrOps.candidatePath derives a path instead of looking one up, so
  iw start can ask whether a workspace already holds a directory it is about
  to create.
- has loses its now-unused label parameter, so the deleted disjunct cannot
  return without a signature change. Taken against the phase context's
  deferral, on Michal's decision after two reviewers raised it.

Code review: 6 skills, 0 critical, 5 warnings — all fixed. Three were comments
the diff left actively false; one was a real coverage gap for has, now pinned
by a test proved RED.

The manual herdr checklist is deferred to the final PR by Michal's decision,
so this phase ships manually unverified. No automated tier reaches the herdr
path, and OpenHarnessTest stays green by construction rather than as evidence.

Issue: IW-476

🤖 Generated with Claude Code
chore(IW-476): register phase 1 code review artifact
All checks were successful
CI / contract (pull_request) Has been skipped
CI / compile (pull_request) Successful in 1m40s
CI / format (pull_request) Successful in 9s
CI / lint (pull_request) Successful in 9s
CI / dashboard-build (pull_request) Successful in 1m28s
CI / test (pull_request) Successful in 10m33s
470f4afc9c
chore(IW-476): update review-state for phase 01
All checks were successful
CI / contract (pull_request) Has been skipped
CI / format (pull_request) Successful in 11s
CI / lint (pull_request) Successful in 12s
CI / compile (pull_request) Successful in 1m27s
CI / dashboard-build (pull_request) Successful in 1m5s
CI / test (pull_request) Successful in 10m0s
e2a16b25ee
mph merged commit d548046f71 into IW-476 2026-08-29 16:38:23 +00:00
mph deleted branch IW-476-phase-01 2026-08-29 16:38:23 +00:00
Sign in to join this conversation.
No description provided.