Skip to content

Tidiness backlog: worktree fleet reconcile (93 registered) and six D:\ root strays #2931

Description

@kyle-sexton

Durable record of two machine-tidiness items that need a human decision. Both are evidence-gathering-complete enough to act on; neither should be actioned by an agent unattended, because a prior cleanup lane was stopped mid-flight by the repo owner and a prior disk-hygiene session destroyed a deliverable another session needed.

1. Worktree fleet — 93 registered, 27 dirty

The criterion, which matters more than the list

Do not use git merge-base --is-ancestor origin/main <branch> to decide whether a worktree's work has landed. It is structurally broken for this repo and two blind verifiers confirmed it independently. The repo is squash-merge only (allow_squash_merge=true, allow_merge_commit=false, allow_rebase_merge=false), so a squash synthesizes a new single-parent commit and the branch's own commits are never ancestors of main. The criterion is unsatisfiable for exactly the population it selects — it reports "not merged" for every merged branch.

Use instead: a merged-PR record plus a git ls-remote SHA match, so the worktree is known to hold the work that landed rather than later unpushed work on top of it.

An audit using that criterion reached 31 SAFE candidates with a blind verifier mid-run before it was stopped. That list was not persisted and needs re-deriving.

Mandatory carve-outs

Five repo-level stashes exist, all from July, all predating current work — inspect before any prune, since a stash cannot be pushed and is invisible to a casual glance.

2. Six D:\ root strays

All six were created 2026-08-16 by session 67f27d86 ("Claude Code Proxy"), which is still running (PID 30028). The synthetic skeleton in them is claude-code-proxy; each lane is a git archive extract at a real commit. That session's own handoff records six PRs open and six verifier agents lost mid-run.

directory finding disposition
lane-j-mut-base both independent checks: no unique data, 139 files ref-reachable in the ODB owner's handoff calls it disposable — safe to delete
lane-j-mut-mainbase same safe to delete
lane-v157-ext 5 mutant files existed nowhere else; now captured durably (see below) recoverable — prefer holding until PR #157 has a verdict
lane-v159-mut no unique data, 139/139 in ODB hold until PR #159 verified
lane-v159-repro no unique data, 0 archive members missing from ODB hold until PR #159 verified
spike operator deliverable do not delete

Two things worth knowing before any hygiene pass touches these:

  • D:\spike\phase2-spike\venv was already destroyed once by an earlier disk-hygiene session and had to be rebuilt. The owning session's handoff explicitly forbids deleting it.
  • The owning session tried to clean up lane-j-mut-* itself and the drive-root guard hook blocked it. The "abandoned artifact" appearance is blocked self-cleanup, not neglect — worth considering when tuning that guard, since it currently prevents sessions from tidying their own drive-root scratch.

lane-v157-ext's unique delta is captured at claude-code-proxy/.work/lane-v157-ext-mutant-diffs-capture.md, verified to round-trip: each patch applied to a fresh m0 base copy and cmp'd against the mutant, 5/5, then the fenced blocks re-extracted and confirmed byte-identical to those patches. Note one correction recorded there — m1 is not a one-line edit; it relocates a call block roughly 24 lines earlier.

Why this is filed rather than done

Removal is irreversible and this machine's history shows tidy-ups destroying live work twice. The evidence is assembled so the decision is a single pass rather than an investigation.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions