Changes touching this path
- loot pull-grants asks a forge from a cursor, where it fetched and filed the whole mailbox on every run: the cursor the forge issues with each answer is kept in .loot/grant-cursors per canonical remote and mailbox key beside the keyring, read by the grant collection and by no open and no save, written after the keys are saved and never past a grant left pending, and a cursor the forge refuses as a bad request is asked again from the origin once; a relay, and the first run, pull the whole mailbox as before. the apply says whether it filed a key, so a pull counts the grants already held and prints the surface hint only when it filed one. on a copy of the desktop store against the live forge a whole pull of 8,612 standing self-grants took 102 s before and 96 s after, and the pull after it 0.33 s with a 21 byte answer. the 142 s the ticket put on the re-apply was the 52 MB answer arriving, 132 s timed inside the verb against 0.68 s for the loop that unwraps and files the grants, so skipping held keys was not built. red under named mutations, each restored: the kept cursor never sent (3 failed and 1 passed), no fallback on a refused cursor (1 and 3), a delta answer dropped (2 and 2), the cursor moved past a pending grant (1 and 3), held grants not counted (1 and 3), the surface hint unconditional (1 and 3), and a save that reads the cursor file (1 and 0). cargo test green, 4907 passed over 145 test result lines with 15 ignored. CONTEXT.md and ADR 0057 say so (wvyrkooo)
1d53db98 · 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.