Skip to content

docs(register): C-83 — full-population hash sweep bounds the tampering residual - #170

Merged
Polichinel merged 1 commit into
developmentfrom
docs/c83-full-hash-sweep
Aug 21, 2026
Merged

docs(register): C-83 — full-population hash sweep bounds the tampering residual#170
Polichinel merged 1 commit into
developmentfrom
docs/c83-full-hash-sweep

Conversation

@Polichinel

@Polichinel Polichinel commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Amends the C-83 verification block. No entry added or resolved; header counts untouched. They read 64 / 12 / 52 on this base — C-84 landed between C-83 and this amendment, so the 63/12/51 I quoted earlier is stale.

The 2026-08-15 triage checked the eleven rows whose $updatedAt had moved, and predicted that hashing the remaining 572 would add nothing. Against substituted bytes that prediction held exactly — this does not correct it.

Every row was re-downloaded and re-hashed anyway:

collection verified mismatched rows with no file files with no row
unfao 111/111 0 0 0
production_forecasts 461/461 0 0 0

sha256, confirmed empirically across all 572 rather than assumed. Read-only, GET only.

What it adds

A fact a sampled method could not reach: rows and files are a perfect bijection.

That bounds the residual. A count-preserving delete-and-recreate must point its new row at a file that already exists, since the buckets were never writable. Pointing it at a file another row already claims leaves the displaced file referenced by nothing — an orphan. There are none, and there were no unreferenced files available to point at. So no file-level substitution is reachable by that route either.

What survives

A delete-and-recreate preserving fileId and file_hash while altering only descriptive fields — targets, name, description. Still unfalsifiable, for the reason the triage already gave. The verdict stands as written; its residual is now bounded to metadata semantics rather than file bytes.

docs/validate_docs.sh passes.

@Polichinel
Polichinel force-pushed the docs/c83-full-hash-sweep branch from 2c1cca6 to b3917cd Compare August 21, 2026 13:01
…g residual

The triage recorded on 2026-08-15 checked the eleven rows whose `$updatedAt` had moved and
predicted that hashing the remaining 572 would add nothing. Against substituted bytes that
prediction held exactly, and this does not correct it.

Every row in both delivery collections has now been re-downloaded and re-hashed anyway:
unfao 111/111 and production_forecasts 461/461 match their recorded file_hash. sha256,
confirmed empirically across all 572 rather than assumed. Read-only, GET only.

What the sweep added is a fact a sampled method could not reach: rows and files are a
perfect bijection — 0 files without a row, 0 rows without a file, in both buckets.

That bounds the residual the triage left open. A count-preserving delete-and-recreate must
point its new row at a file that already exists, because the buckets were never writable.
Pointing it at a file another row already claims leaves the displaced file referenced by
nothing — an orphan. There are none, and there were no unreferenced files available to
point at, so no file-level substitution is reachable by that route either.

What survives is smaller and still unfalsifiable: a delete-and-recreate preserving fileId
and file_hash while altering only descriptive fields. The verdict stands as written; its
residual is now bounded to metadata semantics rather than to file bytes.

docs/validate_docs.sh passes.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

No entry added or resolved, so the header counts are untouched by this edit. On this base
they read 64 total / 12 resolved / 52 open — C-84 landed between C-83 and this amendment,
so the 63 / 12 / 51 quoted in the first draft of this message was stale. Reproducible:
  grep -c '^### C-'                     -> 64
  grep '^### C-' | grep -c '— RESOLVED' -> 12

docs/validate_docs.sh passes.
@Polichinel
Polichinel force-pushed the docs/c83-full-hash-sweep branch from b3917cd to 8741ddf Compare August 21, 2026 13:02
@Polichinel
Polichinel merged commit 7942887 into development Aug 21, 2026
4 checks passed
@Polichinel
Polichinel deleted the docs/c83-full-hash-sweep branch August 21, 2026 14:29
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