Progress reads only a design's head, so a long design never takes the progress view down (issue 1947) #623

Merged
mesh-tools merged 2 commits from fix/1947-progress-bounded-read into main 2026-11-06 23:41:28 +00:00
Member

knowledge-base.progress {of: 'design 47'} failed whole since 2026-11-06 ~22:00 CET: records_read caps an answer at MostBytes (200 KB) and flags a longer one truncated, the knowledge base refused truncated answers, and design 47 grew past the cap. Met twice (issue 1947 notes 8, 10).

Quick fix weighed and refused: raise MostBytes (design 47 grows past any cap; the cap protects the bus payload). Thorough fix:

  • records: ReadHead(path, head) and an optional head argument on records_read, capped at MostBytes, cut at a line end, answered with partial; head 0 is the whole read as before.
  • mesh-knowledge: designs() reads only the first 16 KB of a design (progress needs its frontmatter and title; milestones come from the tracker). A design that cannot be read (or whose frontmatter does not close within the head) keeps its number and path with Unread, is not cached, and every level of progress (design, mesh, record) says it in warnings while the tree is built from the tracker's milestone records.

Tests: rows in TestProgressOfADesignMinimalAndDetailed (an unread design at the mesh level; a frontmatter cut before its close; a records module whose reads fail) and a head-read row in records_test.go; no new test functions. go vet, go vet -tags integration and go test pass in records and mesh-knowledge. No module.json changed. One delivery of records and mesh-knowledge; no order needed (an old records module ignores head; then progress warns instead of failing).

Reviewed-by: review-1947@shanks at 7c0ce2fe21

knowledge-base.progress {of: 'design 47'} failed whole since 2026-11-06 ~22:00 CET: records_read caps an answer at MostBytes (200 KB) and flags a longer one truncated, the knowledge base refused truncated answers, and design 47 grew past the cap. Met twice (issue 1947 notes 8, 10). Quick fix weighed and refused: raise MostBytes (design 47 grows past any cap; the cap protects the bus payload). Thorough fix: - records: ReadHead(path, head) and an optional head argument on records_read, capped at MostBytes, cut at a line end, answered with partial; head 0 is the whole read as before. - mesh-knowledge: designs() reads only the first 16 KB of a design (progress needs its frontmatter and title; milestones come from the tracker). A design that cannot be read (or whose frontmatter does not close within the head) keeps its number and path with Unread, is not cached, and every level of progress (design, mesh, record) says it in warnings while the tree is built from the tracker's milestone records. Tests: rows in TestProgressOfADesignMinimalAndDetailed (an unread design at the mesh level; a frontmatter cut before its close; a records module whose reads fail) and a head-read row in records_test.go; no new test functions. go vet, go vet -tags integration and go test pass in records and mesh-knowledge. No module.json changed. One delivery of records and mesh-knowledge; no order needed (an old records module ignores head; then progress warns instead of failing). Reviewed-by: review-1947@shanks at 7c0ce2fe218ba860aa2fc90784951e91c03a7590
mesh-tools added 2 commits 2026-11-06 23:26:25 +00:00
Progress: an unread design is not cached and is warned of at every level; head is capped (issue 1947)
mesh/delivery merged: source.main moved to novox/mesh-catalog@980ade933853
mesh/check being carried to 7c0ce2fe218b on 980ade933853 | from 1da83c29ddf9
7c0ce2fe21
Author
Member

Delivery novox/mesh-catalog@7c0ce2fe218b — merged since 2026-11-06T23:41:31Z

Source — source.main moved to novox/mesh-catalog@980ade9338. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.

Transitions

  • 2026-11-06 23:26 (new) → proposed (announced): novox/mesh-catalog#623's head announced
  • 2026-11-06 23:26 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail; or the check gates no merge (check-gates-merge false)
  • 2026-11-06 23:41 ready → merged (merged): on the trunk its modules follow: merged there

The commit's note under refs/notes/mesh-plan keeps every transition of this change up to its merge: git log --notes=mesh-plan.

<!-- mesh-delivery:view --> **Delivery** `novox/mesh-catalog@7c0ce2fe218b` — **merged** since 2026-11-06T23:41:31Z **Source** — source.main moved to novox/mesh-catalog@980ade933853. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Transitions** - 2026-11-06 23:26 (new) → proposed (announced): novox/mesh-catalog#623's head announced - 2026-11-06 23:26 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail; or the check gates no merge (check-gates-merge false) - 2026-11-06 23:41 ready → merged (merged): on the trunk its modules follow: merged there The commit's note under `refs/notes/mesh-plan` keeps every transition of this change up to its merge: `git log --notes=mesh-plan`.
mesh-tools merged commit 980ade9338 into main 2026-11-06 23:41:28 +00:00
mesh-tools deleted branch fix/1947-progress-bounded-read 2026-11-06 23:41:29 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-catalog#623