Repository navigation
Every copy of the repository now has a ticket, a fate and a proven end. This release carries 3.21.0 (the feature) and 3.21.1 (a fix to its tests).
The problem: folders copied to protect the original — work sites, reviews, rehearsals — were born well and never ended; they multiplied under different names, and work drifted into them.
What changes:
- The original keeps the register of its copies (
copy open): each one has a ticket (the decision the double stop produces), a fate decided up front, a return date and an exit slip laid in the copy. - Returning a copy is proven (
copy return): everything it holds — files, ignored folders, index, references, stash, commits a reflog still reaches, what.gitkeeps — is back in the original or abandoned by name. copy checkreads a copy just before any erasure;copy cleanupwrites the script the owner runs — the controller never erases anything itself.copy moveandcopy closefollow moves and ends.- A work item does not close, and a version is not tagged, while a registered copy is still open (
COPIES_RETURNEDaudit); being late is only a warning. - Reading a copy runs nothing it names: no file monitor, no transport, no signature check. A partial clone, a special file or a hidden copy are refused.
3.21.1 fixes the tests only: four tests assumed the template's journal and licence, which a derived project does not have. Found while rehearsing the upgrade of a real project, where they failed before testing anything; that project, upgraded with this core, runs the suite without a single failure.
Review: an independent code review (ten holes), a code review by a second AI (six findings), then three successive controls; each defect is closed by a test. 221 tests, 38 of them new in these two versions.