fix(backup): the rebuild guards read the chain, not Codeberg #766

Merged
binjovi-bot merged 1 commit from fix/codeberg-retire into trunk 2026-09-14 20:13:43 +00:00
Owner

What

The rebuild safety proof moves from Codeberg to the chain.

  • scripts/check-kernel-source-backup.sh: sean/linux:trunk must be identical on Forgejo, code.packet.town and code.kri.pt (proving the middle hop proves the chain), and the archive's size is bounded. Messages name the Binjovi mirror handles to inspect. Unit test: 8 cases (adds missing-mirror).
  • BOOTSTRAP_REPO_URLhttps://code.packet.town/sean/seanfarm.git (Makefile, scripts/flux-bootstrap.sh).
  • README + CHANGELOG: Codeberg is no longer a backup dependency; what remains is the delivery path (Flux source, Binjovi flux deployer, three Argo sources, a few images).

Pairs with binjovi feat/chain-all-mirrors: the chain table carries all 46 live repositories through both hops, so sean/linux and sean/seanfarm exist on both tiers.

Verified

  • scripts/tests/check-kernel-source-backup-test.sh: 1..8 ok.
  • bash tests/check.sh: CHECK EXIT=0.

https://claude.ai/code/session_01XdBRc9CHgFhAxCyHbdVtt6

## What The rebuild safety proof moves from Codeberg to the chain. - `scripts/check-kernel-source-backup.sh`: `sean/linux:trunk` must be identical on Forgejo, `code.packet.town` **and** `code.kri.pt` (proving the middle hop proves the chain), and the archive's size is bounded. Messages name the Binjovi mirror handles to inspect. Unit test: 8 cases (adds missing-mirror). - `BOOTSTRAP_REPO_URL` → `https://code.packet.town/sean/seanfarm.git` (Makefile, `scripts/flux-bootstrap.sh`). - README + CHANGELOG: Codeberg is no longer a *backup* dependency; what remains is the *delivery* path (Flux source, Binjovi flux deployer, three Argo sources, a few images). Pairs with binjovi `feat/chain-all-mirrors`: the chain table carries all 46 live repositories through both hops, so `sean/linux` and `sean/seanfarm` exist on both tiers. ## Verified - `scripts/tests/check-kernel-source-backup-test.sh`: `1..8` ok. - `bash tests/check.sh`: `CHECK EXIT=0`. https://claude.ai/code/session_01XdBRc9CHgFhAxCyHbdVtt6
fix(backup): the rebuild guards read the chain, not Codeberg
All checks were successful
binjovi/ci Binjovi completed the frozen plan
a4d7983eb0
`make rebuild` may only wipe the cluster's Forgejo once the canonical kernel
source is verifiably backed up off-cluster. That proof pointed at Codeberg:
scripts/check-kernel-source-backup.sh compared sean/linux:trunk with
ssh://git@codeberg.org/someara/linux.git and bounded the Codeberg size, and
BOOTSTRAP_REPO_URL, which a rebuild reads the cluster's own manifests from,
was https://codeberg.org/someara/seanfarm.git.

The backup is now the chain Binjovi configures:

    code.sean.farm -> code.packet.town (mirror) -> code.kri.pt (archive, ZFS snapshots)

The guard requires trunk to be identical on all three -- proving the middle
hop too proves the chain, not just its end -- and bounds the archive's size,
the tier whose snapshots the cluster cannot reach. Its messages name the two
Binjovi mirror handles to inspect instead of a retired CronWorkflow. The unit
test keeps every case and gains the missing-mirror one (8 cases).

BOOTSTRAP_REPO_URL defaults to https://code.packet.town/sean/seanfarm.git in
the Makefile and scripts/flux-bootstrap.sh: the first off-cluster tier, on a
host that survives a rebuild.

Both repositories reach the tiers through binjovi's chain table, which now
carries all 46 live repositories through both hops (feat/chain-all-mirrors).

Codeberg is no longer a backup dependency. It remains a delivery dependency:
Flux's own source and binjovi's flux deployer move main through Codeberg, and
three Argo sources plus a few images still live there. The README says so.

Claude-Session: https://claude.ai/code/session_01XdBRc9CHgFhAxCyHbdVtt6
binjovi-bot deleted branch fix/codeberg-retire 2026-09-14 20:13:43 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
sean/seanfarm!766
No description provided.