Backlog: O10g logged 57dfc51417fd
- Author
- Andy McCall @andymccall <[email protected]>
- When
- · 2026-09-28 21:30 UTC
- Signature
- ✔ signed by Andy McCall
- Hash
57dfc51417fd8197355ec87c59938192ff1d2348cad1818f681a77fb7c16ef09- Depends on
- 75036530b621 da29defdcb97
- Depended on by
- c1fe1fb25021
- In bookmarks
- agents-in-readme bare-hashes carried-not-removed carry-identical doctor-trust identical-sides keyless-tags main merge-remote-bookmark only-help-103 paths-for-resolutions-and-amend push-notes show-stat subrepo-pin-state switch-says
- In tags
- v0.1.0 v0.10.0 v0.11.0 v0.2.0 v0.3.0 v0.3.1 v0.4.0 v0.4.1 v0.4.2 v0.4.3 v0.4.4 v0.4.5 v0.4.6 v0.5.0 v0.5.1 v0.6.0 v0.7.0 v0.8.0 v0.9.0
- Edits
- 1 atom, 0 tree operations, 1 file
Browse the tree at this change
modified docs/backlog-overnight-2.md +12 −0
| … | 423 unchanged lines |
||
| 424 | 424 | - All 9 now begin IMMEDIATE (`db::begin_write`). A test of 16 concurrent appends fails with the old code and passes now. |
|
| 425 | 425 | - Deployed; the next oxygenhub run passed with no new lock errors in the runner's log. |
|
| 426 | 426 | - **Andy asked** whether an `oh` command, like GitHub's `gh`, should be its own repository. Recommended a crate in the oxygenhub workspace, since it shares hub-api and can test against a real hub. Asked where in the backlog he wants it; no answer yet. |
|
| 427 | + | - 2026-09-28 O10g, first part, done (oxygen#11, closed by the change; OxygenFlow run green, followed with `flow wait`). Spec §12.4, Draft 0.8k. |
|
| 428 | + | - **Graph keys.** `State::graph_key` hashes a file's node, its checkpoint graph (blob, inline value or none) and the set of later changes that edited it. Equal keys mean equal graphs, and so equal renderings. |
|
| 429 | + | - A test caught my first version, which left the node out: two files edited only by the same change got the same key. |
|
| 430 | + | - **What the manifest records.** Per text file found equal to the base's unconflicted rendering, the key it matched. |
|
| 431 | + | - When a file's stat and key both still match, the snapshot neither reads nor renders it. |
|
| 432 | + | - `.oxyattributes` files are always read. When any of them is added, removed, edited or changed in the base, nothing is skipped. |
|
| 433 | + | - **`Repo::snapshot_status`** gives a partial snapshot: a history-only base with only the other graphs built, and a `Snapshot.unrendered` list. |
|
| 434 | + | - Used by status, log, show, tag, bookmark create/set, the default head, and `pull --json`. |
|
| 435 | + | - `snapshot` (commit, diff, amend…) still builds the whole base. Its graphs now load in parallel. |
|
| 436 | + | - **Tests:** 3 new; 157 core tests pass, clippy is clean. |
|
| 437 | + | - **At 10 000 files:** a clean status takes 0.22 s instead of 0.55 s, and 51 MB instead of 259 MB. Log takes 0.38 s instead of about 0.75 s. Diff and commit are unchanged at about 0.57 s. |
|
| 438 | + | - **Split:** O10h (a lazy base for commit and diff, and cached materialized states) is added to the backlog. |