DLV-M5r1: the watchman's want time is the picture's written time once the join's views name it

The lead's ruling on A2h's finding 1: J3 builds each first-view key's written time into mesh-sdk views
(Answer.Written, a Picture entry's Created) and J2 the tool runner's state reads' at. The watchman and
the builder's toolchain gate already read the entry's Created(), so neither changes; this says so where
the fallback stands.

Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
This commit is contained in:
2026-11-04 14:42:26 +01:00
parent 5700edf955
commit aafd90b8cf
@@ -170,8 +170,9 @@ func stepTaken(w *watch.Watchman, language string, e jetstream.KeyValueEntry) {
w.Step(language, e.Key(), e.Value(), opOf(e)) w.Step(language, e.Key(), e.Value(), opOf(e))
} }
// createdOr is when an entry was written, or at when its picture does not say: the first view of an owner's state names // createdOr is when an entry was written, or at when its picture does not say. mesh-sdk's views.Picture (the join's J3)
// no key's time (novox/hq ADR 0615), so a want that stood before the start waits from the start. // names each first-view key's written time as its Created, and the tool runner's state reads carry it (J2), so a want
// that stood before the start waits from when it was written; at is left only for an owner whose answer names no time.
func createdOr(e jetstream.KeyValueEntry, at time.Time) time.Time { func createdOr(e jetstream.KeyValueEntry, at time.Time) time.Time {
if t := e.Created(); !t.IsZero() { if t := e.Created(); !t.IsZero() {
return t return t