Skip to content

test(storage): the spool changes nothing when it is read (MR-STOR-0145) - #1077

Merged
cryptskii merged 2 commits into
mainfrom
test/storage-spool-reads-change-nothing
Sep 30, 2026
Merged

cryptskii merged 2 commits into
mainfrom
test/storage-spool-reads-change-nothing

Conversation

@cryptskii

Copy link
Copy Markdown
Collaborator

MR-STOR-0145 (storage §8): a node never marks, hides, expires or removes a spool envelope after it is written, and serves a spool only from a position. It was Partial with no test; this adds the tests, and MR-STOR-0145 is now Met.

The gap

The spool's existing tests show it keeps every envelope, deduplicates nothing and opens nothing. But each one read a spool once, from position 0. A node that marked or removed what a device had read, or served from anywhere but the position asked, passed them all.

Two tests, on the spool's router, on Postgres

  • a_spool_reads_the_same_from_any_position_however_often_it_is_read: 67 envelopes, more than one page.
    • They are read whole in two pages, in the order sent, with positions rising.
    • The first page, read again, is unchanged.
    • A read from a middle position is exactly the rest.
    • A read after the last holds nothing.
  • a_device_acknowledging_what_it_read_changes_nothing: the acknowledge, status and unpositioned-read requests feat(beta): skeletons for beta conformance (does not compile yet) #976 removed are not served, and the spool reads the same after them.

Mutation controls (each restored)

Mutation Result
spool_list_from_seq deletes what it returns both red: the re-read is empty
the retrieve route reads from position 0 whatever it is asked the first red: the second page repeats the first
the acknowledge route is served again the second red

Records

  • CONFORMANCE: MR-STOR-0145 is Met (§8), with finding §6.46. §7's storage row is now Met 44, Partial 33.
  • VERIFICATION_MATRIX: one new row, with the mutation results.

Evidence

  • Release, on Postgres: the spool's 8 tests pass, and the node's lib suite passes 38/0.
  • cargo fmt --check and clippy --all-targets -D warnings are clean.
  • ci/conformance_evidence.py passes.
  • Gemini gate: satisfied.

Merge order

  • #1074 also edits §7's storage and All rows, so whichever merges second needs its Totals recounted when it is updated.
  • Until #1076 merges, this branch's Code map carries main's 64 stale pins.
  • If CORE or SOFI takes §6.46 first, this finding is renumbered when the branch is updated.

MR-STOR-0145 (storage §8): a node never marks, hides, expires or removes a
spool envelope after it is written, and serves a spool only from a
position. It was Partial with no test. The spool's tests showed it keeps
every envelope, deduplicates nothing and opens nothing, but each read a
spool once from position 0. A node that marked or removed what a device had
read, or served from anywhere but the position asked, passed them all.

Two tests on the spool's router, on Postgres:
- a_spool_reads_the_same_from_any_position_however_often_it_is_read:
  67 envelopes, more than one page. They are read whole in two pages, in
  the order sent, with positions rising. The first page, read again, is
  unchanged. A read from a middle position is exactly the rest, and a read
  after the last holds nothing.
- a_device_acknowledging_what_it_read_changes_nothing: the acknowledge,
  status and unpositioned-read requests #976 removed are not served, and
  the spool reads the same after them.

Mutation controls, each restored:
- spool_list_from_seq deleting what it returns: both red, the re-read is
  empty;
- the retrieve route reading from position 0 whatever it is asked: the
  first red, the second page repeats the first;
- the acknowledge route served again: the second red.

MR-STOR-0145 is Met (§8), with finding §6.46, a verification matrix row,
and §7's storage row at Met 44, Partial 33.

Release, on Postgres: the spool's 8 tests pass, and the node's lib suite
38/0. cargo fmt --check and clippy --all-targets -D warnings are clean.
ci/conformance_evidence.py passes.
…ads-change-nothing

# Conflicts:
#	specs/requirements/CONFORMANCE_GAPS.md
@cryptskii
cryptskii merged commit 0253716 into main Sep 30, 2026
26 checks passed
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