Skip to content

C-83 close-out — tampering verified, registry public, bring-up checks permissions - #166

Merged
Polichinel merged 2 commits into
mainfrom
development
Aug 15, 2026
Merged

C-83 close-out — tampering verified, registry public, bring-up checks permissions#166
Polichinel merged 2 commits into
mainfrom
development

Conversation

@Polichinel

Copy link
Copy Markdown
Contributor

Promotes #165. Verified no evidence of tampering (two independent lines of evidence, one stated residual); registry stays public by decision; joining_the_seam.md now checks container permissions. No contract or registry file touched — no version bump, no tag, no consumer affected.

Polichinel and others added 2 commits August 15, 2026 02:27
Sync main back to development after #155
…ng-up checks permissions (#165)

Three answers from epic #157, recorded. Stories #158, #161, #162.

VERIFIED — NO EVIDENCE OF TAMPERING (#158). Operator ran a read-only probe against
the live project; key never left their shell.

  unfao                 111 rows   0 updated after creation
  production_forecasts  461 rows  11 updated after creation
  crafd                 111 rows   0 updated after creation

The two DELIVERY collections — what an external partner reads — are untouched since
creation. All 11 flagged rows checked two ways: every one matched its recorded
file_hash, and every one points at a file the bucket created BEFORE the row itself,
by 0.16s to 51s.

The provenance half is what settles it, because a matching hash alone would not:
C-83's own scenario is rewriting fileId AND file_hash in one call, which leaves the
hash matching. What that cannot fake is the file's $createdAt, set server-side —
substituted content means a NEWER file. Not one of the eleven is newer.

And triage was sufficient rather than partial because of a fact C-83 already
recorded: all three buckets were already closed and never touched. File bytes could
not be substituted at all; only rows were writable; every row alteration moves
$updatedAt; every row whose $updatedAt moved is now verified. Re-deriving hashes for
the other 572 would add nothing.

RESIDUAL, not claimed closed: a count-preserving delete-and-recreate resets
$createdAt and leaves no trace this method can see. Not ruled out, and not
falsifiable — it would need an audit log reaching to 2025-11-17. So the verdict is
"no evidence of tampering, twice over, with one permanently unfalsifiable residual",
NOT "verified clean". The original sentence is struck rather than deleted because
the distinction it drew is the one this preserves.

DECIDED — THE REGISTRY STAYS PUBLIC (#161). Coordinates are useless without a key,
the defect was an unlocked resource rather than a published address, and hiding the
map treats the symptom while the cause is fixed upstream. Recorded as available and
DECLINED rather than impossible — which was the error C-84's first draft made. §4
permits org-private if the reasoning ever changes; it asks only that the registry be
readable without holding a secret.

BRING-UP NOW CHECKS PERMISSIONS (#162). joining_the_seam.md gains §5: every container
ends at permissions: [], verified with close_resource_permissions.py, expecting 401
anonymously and rows with the key. C-83 said plainly that "the next partner bring-up
reopens this" — a bring-up following every other step could still produce an open
collection. Sections renumbered 6 and 7.

joining_the_seam.md is NON-NORMATIVE by its own header: no version bump, no edition,
no tag, no consumer re-pin. Confirmed — git diff touches no .toml and no contract.

Counts reproduce by grep: Total=64, Resolved=12, Open=52, dormant=15, live=37.
Gates: ruff clean · self-contained 36 passed · validate_docs.sh PASSED · falsification
10 red / 6 green, baseline unchanged. PYTEST WAIVED — carbon protocol §2, docs-only.

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
@Polichinel
Polichinel merged commit d4f6b27 into main Aug 15, 2026
8 checks passed
Polichinel added a commit that referenced this pull request Aug 15, 2026
Sync main back to development after #166
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