Deferred under Brett Heap's close-out direction of 2026-10-06 from the Opus adversarial review of PR #174 (head 499d2ab). The three must-fix rows (trailer adoption, unmarked sandboxes, cross-estate claims) are fixed in #174 itself; these are not.
| # |
class |
file:line @499d2ab |
scenario |
one-line fix |
| 4 |
data loss, niche |
_loss_plan 2973 |
a commit named only by a per-worktree ref (refs/worktree/*, refs/bisect/*, refs/rewritten/*) is not in the loss plan: tree removed, ref gone, not on origin, not in a bundle |
add those refs to the worktree's candidates |
| 5 |
data loss, niche |
_wip_rescue 3319 |
a partially staged version (index differs from HEAD and the working file) is lost: the WIP snapshot overwrites it |
also bundle write-tree of the real index when it differs from the snapshot |
| 6 |
A11 partial |
_deps_partial 2735 |
dependents outside the estate root are not searched; a --shared dependent outside the root is left with a broken alternates pointer after --include-foreign removal |
walk each registered lane's estate root and $HOME (bounded), or count any out-of-root dependent as a partial search |
| 7 |
A1 sibling |
Helper.call 455, fetch_register 587 |
an inherited LANES_NO_GIT=1 (or a LANES_REPO elsewhere) makes the helper read a register the sweep's fetch never moves, so a lane re-bound on another host reads as here and the tree is removed |
under --yes drop LANES_NO_GIT, LANES_REPO, LANES_DIR, LANES_FILE from the helper's environment, or refuse |
| 8 |
A8 sibling |
:3227, branch_items 4181 |
the remote branch is deleted while an OPEN PR uses it as its BASE (GitHub retargets only for a MERGED PR; the dependent is closed instead) |
never delete a remote branch while any OPEN PR's baseRefName equals it |
| 9 |
B6 partial |
act 2875, _register_items |
B6 holds for trees only: scratch, branch, cache and sandbox items all act before any of their register lines is attempted |
note each item as acted on; stop at the first NOT WRITTEN |
| 10 |
|
:4394 |
pytest-of-$USER/* and run.sh roots have no minimum-age check although the docstring says they do |
apply sandbox_min_age_minutes to every kind |
| 11 |
|
expiry_rows ~4516 |
*-ignored.tar.gz and scratch-*.tar.gz archives are only copies yet expire after 90 days; a bundle of untracked files never expires |
ledger rows for those tars, or document the asymmetry |
| 12 |
A7 residual |
:2589 |
a remote branch with no PR and no Lane: trailer at its tip (a person's branch) still gets the lane's commits pushed onto it |
with no trailer and no PR, use a rescue branch |
| 14 |
nits |
|
register_text rewrites , inside the verbatim --word; any directory named venv is treated as a virtual env without checking for pyvenv.cfg |
|
Also from the merge preview: the gate's --include-scratch turns on the whole-estate walk, about 17 s per lane-end on Eagle (defer with #176).
Probe scripts: this lane's session scratchpad probes/probe174*.py (may not survive the session).
Lane: openRepoTools-3
Deferred under Brett Heap's close-out direction of 2026-10-06 from the Opus adversarial review of PR #174 (head 499d2ab). The three must-fix rows (trailer adoption, unmarked sandboxes, cross-estate claims) are fixed in #174 itself; these are not.
_loss_plan2973refs/worktree/*,refs/bisect/*,refs/rewritten/*) is not in the loss plan: tree removed, ref gone, not on origin, not in a bundle_wip_rescue3319write-treeof the real index when it differs from the snapshot_deps_partial2735--shareddependent outside the root is left with a broken alternates pointer after--include-foreignremoval$HOME(bounded), or count any out-of-root dependent as a partial searchHelper.call455,fetch_register587LANES_NO_GIT=1(or aLANES_REPOelsewhere) makes the helper read a register the sweep's fetch never moves, so a lane re-bound on another host reads as here and the tree is removed--yesdropLANES_NO_GIT,LANES_REPO,LANES_DIR,LANES_FILEfrom the helper's environment, or refuse:3227,branch_items4181baseRefNameequals itact2875,_register_items:4394pytest-of-$USER/*and run.sh roots have no minimum-age check although the docstring says they dosandbox_min_age_minutesto every kindexpiry_rows~4516*-ignored.tar.gzandscratch-*.tar.gzarchives are only copies yet expire after 90 days; a bundle of untracked files never expires:2589Lane:trailer at its tip (a person's branch) still gets the lane's commits pushed onto itregister_textrewrites,inside the verbatim--word; any directory namedvenvis treated as a virtual env without checking forpyvenv.cfgAlso from the merge preview: the gate's
--include-scratchturns on the whole-estate walk, about 17 s per lane-end on Eagle (defer with #176).Probe scripts: this lane's session scratchpad
probes/probe174*.py(may not survive the session).Lane: openRepoTools-3