mesh-issues: resume an interrupted carry by revision and fault one issue instead of the whole start, so no kept value is lost and the tracker always starts (review of PR 228)
mesh/merge-gate pass: builds mesh-issues → novox; no bus step; every machine composes with the change as it did without (4 of 4 compose)
mesh/repo-check pass: its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-check-typescript.sh (typescript)
mesh/delivery delivered

An open's lost answer is judged by the issue's first entry; an entry that does not
fold faults its issue on start; a value written beside the log is never folded over;
one issue is kept in at most 252 KiB so its whole operation fits a log entry.
This commit is contained in:
jochen
2026-10-12 10:35:57 +02:00
parent d33f3e3f71
commit d413da203c
10 changed files with 435 additions and 162 deletions
+7 -3
View File
@@ -151,9 +151,10 @@ type Link struct {
At time.Time `json:"at"`
}
// MostIssueBytes is the most one issue may be as kept: a value the bus holds (to-be 53 §4). The largest
// issue folder in hq was 25 KiB on 2026-10-10.
const MostIssueBytes = 256 << 10
// MostIssueBytes is the most one issue may be as kept: 252 KiB, so the operation holding it whole (an open, an
// import, a carry) fits in one entry of the log, which takes at most 256 KiB (novox/hq ADR 0297, ADR 0300). The
// largest issue folder in hq was 25 KiB on 2026-10-10.
const MostIssueBytes = 252 << 10
// Entry is one key's value and the revision it was read at.
type Entry struct {
@@ -169,6 +170,9 @@ type Store interface {
Update(state, key string, value any, revision uint64) (uint64, error)
Keys(state string) ([]string, error)
Increment(state, key string, attempts int) (uint64, error)
// History is every value a key still keeps, oldest first, puts and deletes (novox/hq ADR 0307): what the
// carry into the log reads (ADR 0300 §6).
History(state, key string) ([]stdio.StateRevision, error)
}
// runtimeStore is Store through the runtime that launched this bundle.