Skip to content

docs: amend R21 so a chain-integrity field belongs in the signed payload - #108

Merged
HackTuah merged 1 commit into
mainfrom
docs/r21-amendment
Sep 26, 2026
Merged

HackTuah merged 1 commit into
mainfrom
docs/r21-amendment

Conversation

@HackTuah

Copy link
Copy Markdown
Member

Slice 026 put a hybrid logical clock in the signed payload. R21 as written sends anything platform-set to unsigned meta, and a clock is platform-set, so the code contradicted the rule and no amendment had been made.

Nothing in the tree enforced R21 either. The nearest thing is a key-set assertion in chain_writer_test.exs commented "the R21 default set", and slice 026 edited that line to add clock — so the one artifact that could have surfaced the conflict was changed to accommodate it.

The ruling

The owner read R21 and ChainWriter.build_row/5 side by side and ruled that the clock stays. The rule is amended, not the code. Appended as a third R21 row, dated, in the owner's words:

Chain-integrity fields generated by this node (seq, prev_hash, clock) are commitments. They stay in the signed payload so a merge cannot be reordered by rewriting unsigned meta. "Platform-set" in the original sentence means revisable transport and operator annotations, not the values that make two chains one.

Appended, not rewritten. The 2026-09-24 row stands unchanged above it, so the record still shows what the rule said before and that it changed.

trinity-private/slices/026-store-and-forward-receipts/NOTES.md now points at this amendment and marks the tension it recorded as closed.

Nothing under lib/ changed. Docs only.

mix gate ; echo exit=$?
prod_check: PASS
Result: 914 passed (20 properties, 894 tests), 18 excluded
trinity.coverage: 042 80.31% vs 005 80.31%: OK
exit=0

bash process/plan_check.sh | tail -1
plan_check: PASS

git diff --stat HEAD~1
 docs/06-risk-register.md | 1 +
 1 file changed, 1 insertion(+)

Slice 026 put a hybrid logical clock in the signed payload. R21 as written sends
anything platform-set to unsigned meta, and a clock is platform-set, so the code
contradicted the rule and no amendment had been made. Nothing in the tree
enforced R21 either: the nearest thing is a key-set assertion in
chain_writer_test.exs commented "the R21 default set", and slice 026 edited that
line to add the clock, so the one artifact that could have surfaced the conflict
was changed to accommodate it.

The owner read R21 and ChainWriter.build_row/5 side by side and ruled that the
clock stays. The rule is amended rather than the code, in the owner's words,
appended as a third R21 row and dated:

  Chain-integrity fields generated by this node (seq, prev_hash, clock) are
  commitments. They stay in the signed payload so a merge cannot be reordered by
  rewriting unsigned meta. "Platform-set" in the original sentence means
  revisable transport and operator annotations, not the values that make two
  chains one.

Appended, not rewritten: the 2026-09-24 row stands unchanged above it, so the
record still shows what the rule said before.

Nothing under lib/ changed.

Signed-off-by: Ayla Croft <aylacroft@proton.me>
@HackTuah
HackTuah merged commit 07ac0ef into main Sep 26, 2026
8 checks passed
@HackTuah
HackTuah deleted the docs/r21-amendment branch September 26, 2026 22:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant