Changes touching this path

  • a save writes the custody rows before the graph, the manifest, the keyring and the escrow and then the graph, where the graph came first and 5244a69 put the manifest between it and the keyring, so a save that failed at the manifest or the keyring after a finalize, a migrate or a maroon re-seal under a fresh key left a signed node in the graph and its key unsaved; now it leaves keys no node names and the retry writes the node, and a load, which reads the graph before the keyring, reads that pair in the reverse of the save as #778 asks. pinned: a_save_that_fails_at_the_manifest_leaves_no_node_naming_an_unsaved_key and a_save_that_fails_between_the_keyring_and_the_graph_leaves_the_keys_and_no_node, red before the change (0 passed and 2 failed) and under named mutations, each restored: the old order (0 and 2), and the graph between the keyring and the escrow (1 and 1); the rtqpwklo pins stay green. a later grant replaces a manifest row that had expired when it was granted, in Manifest::record and in the save merge, which keeps a row whole where it took the times of one row and the grantor of the other, so a row a failed save left with no key and that then expired no longer names its grantor as entitled to maroon the key a later grant filed, or hides the path that grant opened. pinned: a_later_grant_replaces_a_row_expired_by_then, a_merge_keeps_the_later_grant_over_a_row_expired_by_then_whole and a_later_grant_replaces_an_expired_row_left_with_no_key, red under named mutations, each restored: no replacement (0 and 3), a merge that ignores it (2 and 1), a merge that copies the times alone (2 and 1), and a replacement by a grant expired when made (2 and 1). a shallow push refused for a forge head it has not seen names loot fetch --deepen all beside loot pull, since a pull does not take in a head behind the cut and the deepen does, and a forge takes a declaration that holds such a head beside its descendant. pinned: a_shallow_push_against_a_forge_head_behind_its_cut_names_the_deepen, over an ancestor pair the forge took, red with the remedy dropped (2 passed and 1 failed over it and the kkpruryt and ntzsvkkv pins). that refusal walks the reach of the declaration once and hands it to the retired-head rule, where the two walked it apart. loot id rotate reports a grant whose key this repo does not hold, where it said no longer holds, and rotate_regrants, save_filed_grants and a grants test heading say what the code does. ADR 0098 is rewrapped and amended, and CONTEXT.md says so. cargo test green, 4959 passed over 145 test result lines with 15 ignored, and the perf gate dry run reads no move. owes no deploy (ylrtootl) 3f301745 · 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.