The indexer writes no module whose bytes it already holds (issue 1966, recovery) #175

Merged
mesh-tools merged 1 commits from fix/1966-indexer-noop-writes into main 2026-11-08 12:02:19 +00:00
1 Commits
Author SHA1 Message Date
jschoubben 00232c7197 The indexer writes no module whose bytes it already holds (issue 1966, recovery)
mesh/delivery ready: it is merged on the Approve
mesh/check failed (3): mesh-build-go: the go.mod of novox/mesh-sdk at 396511b7a276, beside the change, cann…; and 2 more | 00232c71977b on 9c6bf236b6b1
Every recompute wrote every key of its modules state again with identical bytes: recomputeLocked
compared the package versions with reflect.DeepEqual across two map types (the contract's
map[string]string and sdkstep.PackageVersions), which never match. Each write was a views
event, and a reader of the views took each as a gap and asked the whole first view again.

The comparison is by maps.Equal now, and write itself skips an answer whose bytes are the
bytes held, for every caller and every state it writes; the merge's written list counts only
real writes.

Claude-Session: https://claude.ai/code/session_01NcbgfFfQ4Z9UE5jK32PmE5
2026-11-08 11:50:52 +01:00