Changes touching this path

  • the child slot of Refit::minted_edges is read against the executor, and the range-diff Handle becomes a newtype. each declared edge now names its child as MintedChild::Supersedes or MintedChild::Copies, and every_minting_refit_declares_what_its_executor_records drives edit, split, squash, absorb (at the root of history and above it), duplicate, move --onto and move --before through the real verbs and reads the graph back: every declared edge was recorded, child and parents, and every recorded edge was declared unless each of its parents is a version the same refit recorded and none is the working change it leaves, which is the reason the minted_edges doc gave for leaving edges out, now held by a test. the premise was half right: split was never wrong, since its lower change records the draft as its predecessor (workspace.rs already pinned that), but duplicate named the source as the child, absorb at the root declared nothing, and edit declared only the first parent of a merge target while DagRepo::reopen_change records all of them, so the plan now carries every parent. duplicate --after @ now refuses naming a copy of the source. the doc and CONTEXT.md sentence calling edges between versions one refit mints out of scope by construction is corrected, since move and reorder keep the rebuilt draft the working change. Handle is a struct with private fields, so outside range_diff the handles function is the one way to build one, with a compile_fail probe and a positive control. red with the fixes undone: duplicate naming a superseded source (0 passed, 2 failed), absorb declaring nothing at the root (1 passed, 2 failed), the reopen declaring its first parent only (9 passed, 1 failed); red under mutation: reorder declaring one step fewer (0 passed, 2 failed), squash naming its source as the child (0 passed, 2 failed), the undeclared-edge rule blinded in the checker (1 passed, 1 failed), and Handle fields made public (1 passed, 1 failed). no migration, no wire or format byte moves, and no forge or relay byte moves, so this owes no deploy. the workspace suite is green (3923 passed over 123 binaries, 7 ignored) (#1849) 35d9a3e3 · dbf3dbe6…

Renames are not followed. loot's tree maps a path to an address, so a rename is a delete and an add. This list is the history of the name, not of the bytes.