Schedule daily OpenTimestamps anchoring of the witnessed journal - #183
Schedule daily OpenTimestamps anchoring of the witnessed journal#183MaxGhenis wants to merge 1 commit into
Conversation
Scheduled workflows only run from the default branch, so the cron lives here and operates on a checkout of codex/thesis-ledger-facts, where the journal, release manifests, and scripts/ots_anchor.py live. The job stamps any manifest that lacks a proof, upgrades pending proofs once their Bitcoin attestations confirm, commits the result to the journal branch, and fails loudly if any proof stops matching its manifest. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
07a4271 to
87f21f2
Compare
The journal branch now carries an OpenTimestamps proof over every release manifest's exact bytes (PolicyEngine/chronicle#182), upgraded daily by a scheduled job (PolicyEngine/chronicle#183). The verify page gains a section with the two-command procedure, and the about page notes that anteriority no longer depends on trusting the operator's git history. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Fable+Sol gate result: changes requested, and I agree with the peer on all four points, so this PR does not merge as written.
Rework (in progress, new PR against |
|
Superseded by #229 (anchoring from |
What
A daily GitHub Actions cron (plus
workflow_dispatch) that anchors the witnessed observation journal in Bitcoin via OpenTimestamps. Companion to #182, which adds the tool, the proofs for releases 0000–0014, and the docs oncodex/thesis-ledger-facts.Scheduled workflows only run from the default branch, so this definition lives on
mainand operates on a checkout of the journal branch:python3 scripts/ots_anchor.py run— stamp any release manifest lacking a proof, upgrade pending proofs whose calendar attestations have confirmed into Bitcoin. Idempotent; the tool is stdlib-only and theotsclient is pinned (opentimestamps-client==0.7.2).ots/back to the journal branch asgithub-actions[bot], with a rebase-and-retry push loop (proof commits touch neither the data surface nor the gate surface, so they cannot collide with resolver append PRs).python3 scripts/ots_anchor.py verify— fail the run if any proof stops binding to its manifest's exact bytes.Merge order
Safe to merge before or after #182: the job exits cleanly with a notice while
scripts/ots_anchor.pyis not yet on the journal branch. The first effective run needs #182 merged;workflow_dispatchcan trigger it immediately after.🤖 Generated with Claude Code