disk-load retires a reading only on its module's key, and measures as soon as its watch catches up (review round 1)

A round no longer retires readings missing from the watched set, which may be empty or partial;
a module's readings are retired when its key of mesh-host_data is deleted or names fewer items.
A round refused before the watch caught up runs once it has, not an hour later. disk_round reads
this machine's key alone, as its grant allows.

Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
This commit is contained in:
2026-11-01 00:28:29 +01:00
parent 357a53d9ac
commit 6fe0ef321d
5 changed files with 56 additions and 36 deletions
@@ -73,17 +73,12 @@ func ReadingTools(k *Keeper) []stdio.Tool {
{
Name: "disk_round",
Description: "How far this machine's last round of measuring its data items got (novox/hq ADR 0577 clause 3), from " +
"disk-load's state `rounds`, key `<node>`: when it started and ended (no end while it runs), how many items it had, " +
"measured, wrote and kept unchanged, each item that failed and why, and how old the round is; `node` reads " +
"another machine's key. A round that never ends, or fails every item, shows here. (r)",
Input: map[string]any{
"node": map[string]any{"type": "string", "description": "the machine whose last round to read; this one by default"},
},
"disk-load's state `rounds`, this machine's key `<node>`: when it started and ended (no end while it runs), how " +
"many items it had, measured, wrote and kept unchanged, each item that failed and why, and how old the round is. " +
"A round that never ends, or fails every item, shows here. (r)",
Input: map[string]any{},
Run: func(args map[string]any) (any, error) {
node := text(args, "node")
if node == "" {
node = k.Node
}
node := k.Node
if k.Rounds == nil {
return nil, fmt.Errorf("this disk-load keeps no rounds")
}