Changes touching this path

  • the forge /fetch overlaps the blob GETs it serves instead of asking R2 for one object at a time: serve.rs bundle_within hands the rideable addresses to fetch_bytes, which runs up to MAX_CONCURRENT_GETS (16) scoped threads over a shared queue, asks the walk budget before each get, stops every thread at the first refusal, fails the walk on a refused get and answers in the order asked, so the bundle is byte for byte the one the serial walk built. the Tickets view read of every ticket file (5,484 today) answered 503 past the 15 s budget; against a blob tier that sleeps 3 ms a get, a fetch of 5,500 objects went from a 503 at 15.0 s after 4,388 gets to an answer in about 1.1 s with 5,500 gets and 16 in flight. the Tickets view now shows the forge text/plain reason after its own sentence when the forge refuses (forgeRefusal in data.ts). pinned in the serve.rs fetch_latency tests and site/test/workbench-tickets-refusal.test.ts. red under named mutations, each restored, over the 4 fetch_latency tests: one get at a time (3 passed and 1 failed), 64 in flight (3 and 1), the budget asked once before the fan-out (3 and 1), a refused get read as absent (3 and 1), threads that ignore a refusal (3 and 1), and answers filed one index over (3 and 1); in the site, the forge reason dropped (2 and 2) and a body of any type shown (3 and 1). cargo test green, 4762 passed over 145 binaries with 13 ignored, and the site gate green at 881 passed. owes a forge deploy and a site deploy (mmxkront) 6ecbb6bd · dbf3dbe6…
  • the Tickets view /fetch wants lane no longer falls to the residue query: since vrxsvlsy it names its heads as have, so every want reached repo_referenced_objects, whose plans on Postgres read every tree_entry row naming a want, every manifest of the repo, or the whole table; bundle_within now asks the new MetadataStore::referenced_by_versions of the manifests of the tips of what the caller named as held (serve::held_tips, tips because a CLI pull declares its closure) before the residue query, on Postgres pg::meta::REFERENCED_BY_VERSIONS, read one named version at a time and plan-pinned in pg::tests, and the answer is the same repo-scoped set. measured against a throwaway Postgres 18 with 2,200 ticket files of a 7,240-path head as wants and the head as have, the wants span went from 21.8-103.6 ms to 7.1-7.5 ms on the perf hunt fixture and from 575-1,820 ms to 11.4-15.2 ms on a repo whose ticket files sit in up to 1,000 manifests (the ADR 0075 zsxqmrtm amendment, and a note in ADR 0098). a /offer or /fetch step that fails now ends its own span before until_error; a budget refusal says how long since the walk began, keeping its leading words, and its objects-read count is taken once the gets in flight end, so it equals the cache_hit and cache_miss tallies summed; the fetch_latency cold test runs under an unspendable budget and asserts the fit from the width the tier saw instead of the wall clock. text: the timing module and CONTEXT.md say what a fact is and where facts are named instead of listing them (timing::count is timing::fact, Got.keeping is keep_time), the phases doc says the runner walk laps nothing and tallies no reads, and the lib.rs cache sentence names only the serving process. judgement calls: the route and the Tickets view build the ticket file list with the new site lib/workbench/ticket-files.ts and compare it by content, manifest.ts shares one private read, the wasm JS names are readTicketList and readWholeTickets, and ADR 0002 and the spike-crdt ignore reason say --include-ignored. red under named mutations, each restored: over the 16 offer_cost tests, no heads step (13 passed and 3 failed) and every named version read (15 and 1); the memory store reading every version (1 and 1 over the 2 conformance runs); the plan pin without OFFSET 0 (2 and 1); over the 27 serve tests, a failing step not lapped (26 and 1), the count taken at the refusal (26 and 1), the old spent wording (25 and 2), 16 in flight (26 and 1); the site ticket file compare as JSON text (2 and 1). the Postgres statement without its repo_id condition stayed green, as the RLS repo binding hides other repos. cargo test green, 4811 passed over 145 test result lines with 14 ignored, loot-forge green at 702 passed against a throwaway Postgres 18, the site gate green at 889 passed and its pg suites at 85. owes a forge deploy and a site deploy; it also carries the new ticket zsxqmrtm and comments on kwlxstko and zxkpzxvz (zsxqmrtm) ed102f51 · dbf3dbe6…diff

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.