Changes touching this path
- the Tickets view first load fetches each ticket meta, labels and waits-on edges instead of every ticket file, and reads the rest when it is shown: loot_wasm ticket_read gains Reach, whose List, Tickets and Answers name the files that read (the list), read_tickets (a ticket whole, when its page shows it) and answers (the gist of a resolved ticket, when a row, a card or the decisions of a map show it) each open, and wants names them; the list carries a comment count, a path fact, and each map its resolved children, whose answers are its decisions, from the new loot_ticket fold::resolved_children and fold::answer, which fold::decisions now reads through in the order it opened files before. each of these /fetch requests sends the heads the list was read at as its have, so the head change node stays at the forge; the forge_view parity test now fetches each read that way from its test forge and asserts that no change node rides and that only the objects asked for do. an attachment opens from the read of its ticket. over the perf hunt dump of this tracker the first load asks for 2,161 objects and keys instead of 5,484, a sync answer of 493,894 B instead of 5,697,392 B and 511,513 B of plaintext instead of 10,309,763 B, and the 15 resolved rows of the home page add 15 objects and 7,952 B. pinned in site/test/workbench-tickets-read.test.ts over a fixture tracker the core seals, and in 3 ticket_read unit tests. red under named mutations, each restored: over the 2 read tests, the first load asking for every ticket file (1 passed and 1 failed), no have (0 and 2), gists fetched again (1 and 1), a whole read asking for the list files (1 and 1); over the 3 ticket_read tests, List naming every file (2 and 1), the list folding bodies (2 and 1), the list without waits-on edges (2 and 1), the last resolution taken as the answer (2 and 1); and the parity test with an empty have (0 and 1). cargo test green, 4785 passed over 145 binaries with 13 ignored, and the site gate green at 883 passed. owes a site deploy (vrxsvlsy)
77cc7fe7 · dbf3dbe6… - the private workbench asks for the head manifest beside the repo header from the moment Clerk has a token, instead of after /me, the unlock and /api/private/repo in series: PrivateGate takes an ahead render prop, handed null while the account is read and the silent unlock runs and the session once unlocked, at the same place in the tree, and the workbench renders its header read through it; the new components/workbench/manifest.ts, where the manifest slot moved from the Files view data module, has readRepo issue the tip manifest and /api/private/repo together into the workbench cache, and the shell, where files and tickets open, still mounts only once the header and the unlock are both in. the gate starts the engine download and compile when it mounts, while Clerk loads, rather than after /me answers. the Tickets list /fetch starts from the tickets/ entries of the tip manifest beside /api/private/tickets rather than after it, and its answer is folded only when the route answers the same heads and files, else the list is fetched again over the route answer; a reread after a write leaves it off. the CSP is unchanged. pinned in the new site/test/workbench-first-reads.test.ts and 2 new tests in workbench-tickets-read.test.ts. red under named mutations, each restored, over the 5 tests of those two files: the header awaited before the manifest (4 passed and 1 failed), the list fetch waiting for the route (3 and 2), the manifest answer folded whatever heads the route answers (4 and 1), the manifest answer never folded (2 and 3). the site gate green at 886 passed; site only, no Rust touched and no cargo test run. owes a site deploy (kwlxstko)
89c6e267 · dbf3dbe6…diff - a loot-first land --dry-run is no longer timed: land_timed returns before the timing: line and the land-timings record whenever the dry run flag is set, so a dry run that fails before its stop (the pr-map lookup, the approval) no longer appends a landed:false record, and the land_timed and record_timing docs, workflow.md step 7, the land-change skill and the land_timings_path doc say a land run without --dry-run records. land, land_timed and land_via take the PR and its flags as one LandArgs and drop their clippy::too_many_arguments allows, and Timing and Timing::since are private to the orchestrator. in loot-wasm, ticket_read::read and ticket_read::read_tickets are now read_list and read_whole, and the exported read_tickets and read_tickets_of are read_ticket_list and read_whole_tickets, their JS names readTickets and readTicketsOf unchanged. the tickets data.ts comment, the ADR 0098 amendment and the workbench-tickets-read test header say the head change node stays at the forge only while the head has not moved since the list was read. the record_timing and boardOf docs lose their stray line breaks. pinned in the new a_dry_run_records_no_timing_whether_it_stops_or_fails; red under named mutations, each restored, over it and a_land_that_stops_is_recorded_as_not_landed: the old record condition, which records a dry run that failed (1 passed and 1 failed), and a dry run left untimed only when it failed (1 and 1). cargo test green, 4800 passed over 145 binaries with 14 ignored, and the site gate green at 886 passed. no deploy owed: the site and wasm edits are comments and Rust-side names (uqooxqvx)
077a90e3 · dbf3dbe6…diff - the Tickets view keeps the forge objects it reads in a browser cache and reads no code manifest: the list, a ticket read whole and the answers now take each object an IndexedDB cache in the vault database holds by content address, once the core has decoded the entry as the object at that address, and ask the forge /fetch only for the rest, so a repeat visit moves only new objects. an entry is a sync frame holding one object, ciphertext only, and an object whose key rode in the forge answer is not kept; the cache is bounded at 32 MiB, evicts the least recently used, is wiped with the vault, and reads as empty where storage is missing. the workbench asked for the whole head manifest on every entry and opened the explorer first, so a Tickets visit moved the whole tree, about 376 KB gzip as the ticket measured it: a view now has an ahead hook the shell runs beside the repo header, Files asks for the manifest there and Tickets for its route, and the shell opens the side panel of the view it was entered at, so a History link now opens the History panel; the list fetch starts from a manifest only when one is already held. pinned in vitest: a repeat visit asks the forge for nothing, a partial hit asks only for the misses, a damaged entry and an entry of another object are refused and asked for again, no keyed object is kept, a write lands only while the vault holds the identity, no storage asks every time, and a Tickets entry reads the route asked ahead and no manifest; and in loot-wasm, what an entry is and what it refuses. red under named mutations, each restored: the cache read skipped (3 failed and 11 passed), every want fetched on a miss (2 and 12), entries held unchecked (1 and 13), the list fetch loading the manifest (2 and 12), the entry view ignoring the document (1 and 13), the vault check dropped (1 and 11), an entry held under any address (1 failed and 3 passed in cargo, 1 and 10 in vitest), and keyed objects kept (1 and 3 in cargo, 1 and 10 in vitest). cargo test green, 4886 passed over 144 test result lines with 15 ignored, and the site gate green at 925 passed. owes a site deploy (qqypkwst)
b7bcb3b5 · 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.