| Comment: | chore(release): v0.12.0 changelog (#435) |
|---|---|
| Timelines: | family | ancestors | main | trunk | v0.12.0 |
| Files: | files | file ages | folders |
| SHA3-256: |
7a25e358936e5a34149e18d1a3d7580d |
| User & Date: | [email protected] on 2026-10-13 17:32:19.000 |
| Other Links: | branch diff | manifest | tags |
|
2026-10-13
| ||
| 17:32 | chore(release): v0.12.0 changelog (#435) leaf check-in: 7a25e35893 user: [email protected] tags: main, trunk, v0.12.0 | |
| 16:51 |
fix(manifest): maintain the leaf table incrementally (RS-7.3-3) (#434)
* fix(manifest): maintain the leaf table incrementally (RS-7.3-3) The leaf table was recomputed from scratch at the end of every crosslink batch, so a check-in lost its leaf verdict whenever a later batch linked an untagged child to it. repo-state-01 Section 7.3, as corrected, and fossil keep that verdict: a check-in and its plink parents are rechecked only when a branch tag is written to it or propagation updates or deletes its branch row (src/tag.c:195, :100-102), and the checks run when the batch ends (src/leaf.c leaf_do_pending_checks). The rule now lives in a new internal/leaf package: Check (leaf_check), Rebuild (the explicit full rebuild) and Pending (the deferred schedule). internal/tag schedules a recheck at exactly the branch-row writes; the crosslink sweep, receive linker and repair gate apply a batch's schedule at the gate, each phantom-fill cascade transaction and each commit or tag transaction apply their own before commit, and verify.Rebuild keeps the whole-table recompute. Reparenting schedules nothing, as in fossil, so the reparent case is split into a one-batch case and a per-artifact case. Tracked in #426. * fix(manifest): recheck leaves a cancel reaches; drop rechecks of a failed receive tx check-in: 628f932301 user: [email protected] tags: main, trunk | |