Every case here restates a rule another test already pins with the same or a
wider input class:
- the activation group case is byte-identical to its neighbour, minus an extra
assertion; the rule snapshot version guard is re-driven with a second value
of the same schemaVersion check; the global-mode deployment-failure case is
a mode-literal copy of the strictly stronger direct-mode one; the clear-
failure case duplicates the deferred-retry sibling
- two RuntimeDocument projection cases only re-map locals, already asserted as
full array equality; the IPv6-LAN endpoint case repeats the direct-mode case
(the derivation reads only ports)
- the three HTTP export cases varied only listenerMode while the derivation
ignores it and one name contradicted its own expectation; one loop over all
listener modes now states the real rule
- the 0700/0600 permission baseline is one AtomicFileWriter behavior and stays
pinned through RuntimeFileStoreTests, which also covers self-heal and atomic
replace
The command-boundary case keeps its mixed-scenario isolation check (four
commands, four independent adapter counters) and drops only its unfalsifiable
queriedTargetIDs claim.
Co-Authored-By: DeepSeek Harness <noreply@deepseek.com>
CatalogEntry gains createdAt/updatedAt and the catalog document moves to
v5 (reads v1-v5, writes v5). Modification time is structure-sensitive:
editing a node's own fields bumps the node, a group's direct child set
or order changes bump the group, and a moved node keeps its timestamps.
No-op writes and unchanged subscription refreshes bump nothing; the
refresh rebuild compares per node, so surviving leaves keep theirs. All
times are passed in by callers as now: Date - one moment per logical
commit, the domain layer stays clock-free. Legacy documents load with
nil (unknown, never backfilled); duplicates and imports stamp fresh
times at the moment of the operation.
Semantics are recorded as glossary term 节点时间戳 and ADR 0031. No UI
in this change.