Stamp hardening: refuse a peer raw put with no stamp in C#, TypeScript and Rust; Python replication #175

Open
libby wants to merge 12 commits from golden-write/stamp-hardening into main

2026-11-14

Libby
cultnet-py: own-package test of raw_record_to_envelope's stamp refusal, vector rows included
Some checks failed
CultMesh portability and performance / ubuntu-latest reactive semantics and leases (pull_request) Failing after 19m22s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-14 05:20:48 +00:00
Libby
2026-11-14 05:14:23 +00:00
Libby
cultnet-cs: a stamp's UTC instant must lie in years 0001-9999; pin the host door exemption
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-14 05:12:30 +00:00
Libby
stored-at-stamp vectors: leap-day and year-boundary offset rows
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-14 05:09:36 +00:00
Libby
cultmesh-rs: refuse a peer raw put whose storedAt is no stamp (raw-put-refuse-rs)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-14 04:55:51 +00:00
Libby
cultcache-rs: refuse a raw envelope whose stored_at is no stamp (raw-put-refuse-rs)
is_stored_at_stamp is the hand-written exact shape of tests/vectors/stored-at-stamp;
put_raw_envelope and put_prepared_batch refuse anything else, nothing minted.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-14 04:55:51 +00:00
Libby
cultnet-cs: refuse a peer raw put whose storedAt is no stamp (raw-put-refuse-cs)
Exact-shape stamp check (stored-at-stamp vector); judged after the write authority
and before any shard or forward; message_invalid field document, nothing stored or minted.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-14 04:55:51 +00:00
Libby
write-receipt: a non-blank storedAt must be a stamp; the name rows move off storedAt
bom_stored_at_is_a_name becomes bom_record_key_is_a_name; the non-White_Space
code point rows skip storedAt (C# and cultmesh-rs consumers).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-14 04:55:51 +00:00
Libby
cultnet-ts, cultmesh-ts: refuse a peer raw put with no stamp (raw-put-refuse-ts)
One judgment, isStoredAtStamp (cultcache-ts, the stored-at-stamp vector's shape), used by the RUDP document server (message_invalid, field document,
after the authority, before sizing) and by the registry that stores a put (throws, nothing stored). The put parser leaves storedAt to them.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-14 04:55:51 +00:00
Libby
vectors: stored-at-stamp, the one shape a peer's storedAt must parse as
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-14 04:34:56 +00:00