fix(release): say "any raw copy" so the caption matches what a withdrawal can delete
Quality gates / quality (push) Successful in 12m45s

On the CLI ingest path there is no raw pre-derivation copy at all, so the
caption asserted a deletion the recording never showed. The code deletes a raw
copy only when one exists under the dataset's raw/ directory, matched by digest.
This commit is contained in:
rockachopa committed 2026-10-24 12:51:37 +00:00
1 parent fa5f4232dd
commit 9f69730780
2 files changed
+2 -2

No files matched your search

+1 -1
View File
@@ -57,7 +57,7 @@ DEMO_REQUIRED_CAPTIONS = (
"Withdrawing keeps a tombstone naming every derived artifact by contribution ID",
"The corpus pipeline is a command-line tool, not a screen in the app — this runs the real ingest against the committed synthetic fixture",
"Every ingested sample records consent, source digest, both hashes, derivation, review, and lifecycle — the caller file path is never stored",
"Withdrawing deletes the derived image and the raw copy, keeps the original record, and appends a tombstone — the trainer sees zero active samples",
"Withdrawing deletes the derived image and any raw copy, keeps the original record, and appends a tombstone — the trainer sees zero active samples",
"Revoking the same contribution twice is refused and appends nothing: the manifest only ever grows",
"A backup is versioned, and it carries the withdrawn receipt as a tombstone rather than silence",
"An older backup is upgraded on import, and the notice says which version the file came from",
+1 -1
View File
@@ -707,7 +707,7 @@ if (!panelOk.text.includes(audit.record.imageId.slice(0, 12))) throw new Error('
if (!panelOk.text.includes('active samples: 0')) throw new Error('the card must show the post-revocation active count');
await caption('The corpus pipeline is a command-line tool, not a screen in the app — this runs the real ingest against the committed synthetic fixture', 3400);
await caption('Every ingested sample records consent, source digest, both hashes, derivation, review, and lifecycle — the caller file path is never stored', 3600);
await caption('Withdrawing deletes the derived image and the raw copy, keeps the original record, and appends a tombstone — the trainer sees zero active samples', 3800);
await caption('Withdrawing deletes the derived image and any raw copy, keeps the original record, and appends a tombstone — the trainer sees zero active samples', 3800);
await caption('Revoking the same contribution twice is refused and appends nothing: the manifest only ever grows', 3200);
await page.evaluate(() => document.querySelector('#corpus-audit')?.remove());
// Back to the privacy view for the portability scene: the privacy entry lives on the journal view.