Issue 1781. Delivery group with novox/hq feat/1781-milestone-records.
mesh-issues: state milestones (history 5), events milestone-set and milestone-moved, verbs milestones, milestone-set, milestone-move; link kinds milestone and commit. At most one milestone per issue is checked inside the issue's own compare-and-set write; only an open milestone can be linked; the triage cannot link a milestone, pull request or commit. import with milestones=N seeds a design's milestones (dry run; refuses an issue two rows name; idempotent).
mesh-knowledge: progress reads seat:issue-tracker.milestones; the design-table parse is deleted; it fails loud when the tracker does not answer and refuses a design with no records.
Tests: 3 unit and 1 integration test in mesh-issues (two instances race one issue into two milestones; one link holds). Test budget kept per module.
The branch is one commit: squashed so its history carries no compiled program committed by mistake (issue 1577).
After delivery: the seed (dry run, then for real) for designs 47, 57 and 60; 47/6 and 47/R3e closed as folded into R4g; only then knowledge-base.progress. The milestones fixture in mesh-knowledge is generated, not captured: capture a real reply after the seed.
Known: a link and a milestone close at the same moment can leave an unresolved issue in a closed milestone (noted on issue 1783).
Issue 1781. Delivery group with novox/hq feat/1781-milestone-records.
- mesh-issues: state `milestones` (history 5), events `milestone-set` and `milestone-moved`, verbs `milestones`, `milestone-set`, `milestone-move`; link kinds `milestone` and `commit`. At most one milestone per issue is checked inside the issue's own compare-and-set write; only an open milestone can be linked; the triage cannot link a milestone, pull request or commit. `import` with `milestones=N` seeds a design's milestones (dry run; refuses an issue two rows name; idempotent).
- mesh-knowledge: `progress` reads `seat:issue-tracker.milestones`; the design-table parse is deleted; it fails loud when the tracker does not answer and refuses a design with no records.
- Tests: 3 unit and 1 integration test in mesh-issues (two instances race one issue into two milestones; one link holds). Test budget kept per module.
- The branch is one commit: squashed so its history carries no compiled program committed by mistake (issue 1577).
- After delivery: the seed (dry run, then for real) for designs 47, 57 and 60; 47/6 and 47/R3e closed as folded into R4g; only then `knowledge-base.progress`. The milestones fixture in mesh-knowledge is generated, not captured: capture a real reply after the seed.
- Known: a link and a milestone close at the same moment can leave an unresolved issue in a closed milestone (noted on issue 1783).
Try: try-1793036576976625215 passed at 76e4ec4d.
Reviewed-by: review-1781@shanks at 76e4ec4dc6808e657e32284a8a595f5b67ddb390
mesh-issues keeps each design's milestone in the state milestones (history 5), says milestone-set and
milestone-moved, and serves milestones, milestone-set and milestone-move. An issue's milestone is its own link
of kind milestone, so at most one milestone per issue is checked inside the issue's own write; kind commit
links a fixing commit. The triage links no milestone, pull request or commit. import with milestones=N seeds
a design's table once. mesh-knowledge's progress reads issue-tracker.milestones and its table parse is gone.
Squashed from four commits so the branch history does not carry a compiled bundle that was committed by
mistake (6 MB); the path is now in .gitignore.
Deliverynovox/mesh-catalog@76e4ec4dc680 — merged since 2026-10-26T18:06:51Z
Source — source.main moved to novox/mesh-catalog@5a4ac49913. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.
2026-10-26 18:05 (new) → proposed (announced): novox/mesh-catalog#506's head announced
2026-10-26 18:05 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-10-26 18:06 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@76e4ec4dc680` — **merged** since 2026-10-26T18:06:51Z
**Source** — source.main moved to novox/mesh-catalog@5a4ac4991395. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves.
**Group** `feat/1781-milestone-records`: novox/hq@ebc1a84e592e, novox/mesh-catalog@76e4ec4dc680
**Transitions**
- 2026-10-26 18:05 (new) → proposed (announced): novox/mesh-catalog#506's head announced
- 2026-10-26 18:05 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-10-26 18:06 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`.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Issue 1781. Delivery group with novox/hq feat/1781-milestone-records.
milestones(history 5), eventsmilestone-setandmilestone-moved, verbsmilestones,milestone-set,milestone-move; link kindsmilestoneandcommit. At most one milestone per issue is checked inside the issue's own compare-and-set write; only an open milestone can be linked; the triage cannot link a milestone, pull request or commit.importwithmilestones=Nseeds a design's milestones (dry run; refuses an issue two rows name; idempotent).progressreadsseat:issue-tracker.milestones; the design-table parse is deleted; it fails loud when the tracker does not answer and refuses a design with no records.knowledge-base.progress. The milestones fixture in mesh-knowledge is generated, not captured: capture a real reply after the seed.Try: try-1793036576976625215 passed at
76e4ec4d.Reviewed-by: review-1781@shanks at
76e4ec4dc6Delivery
novox/mesh-catalog@76e4ec4dc680— merged since 2026-10-26T18:06:51ZSource — source.main moved to novox/mesh-catalog@5a4ac49913. Whether it reached the machines is
mesh-delivery-view's, derived fromsource.main, the wants and the haves.Group
feat/1781-milestone-records: novox/hq@ebc1a84e59, novox/mesh-catalog@76e4ec4dc6Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition of this change up to its merge:git log --notes=mesh-plan.