011 T9a: backup.py scaffolding + Dolt-on-R2 research + Windows checklist (no live R2 creds needed) nf-aiec ← Beads

closed priority 2 task unassigned activesession:011-backup

Twinned from https://github.com/cfsh/ninefold/issues/1145 by tools/beads/import_github.py's reconcile pass.

Session: TBD

Carved out from design 011 T9 (#1043) — the parts that don't need Aedan's R2 token or T8's restore-drill script, which T9's full scope depends on (design_docs/011-task-tracking-on-beads.md's T9 card: "Restore: download → the T8 drill script passes against it" — T8 isn't built yet either).

Scope (this issue)

- tools/beads/backup.py, built on the release.py pattern (tools/release/release.py:161-178: env-var-only rclone remote, nothing on disk, --dry-run default, sync hard-scoped to a prefix) — the upload path targeting r2:ninefold/tracker/issues.jsonl, and the public-URL 404-check logic (must verify the tracker prefix is NOT served by the public dev URL before ever calling this safe to ship). - Tests: fake rclone, argv-level assertions, same style as test_release.py. No live R2 calls — credentials aren't available yet. - Research half (timeboxed ~half a day): can Dolt speak R2 directly as an S3-style remote? §2.4's measurement says the manifest CAS is the crux and §7.1's default is *don't* — post a finding either way as a comment on this issue, never new machinery. - Checklist half: native-Windows bd install notes (npm-pinned; MinGW build + timeout.exe hook-conflict gotchas documented upstream) — this is desk research, not a live Windows test.

Out of scope (T9's remainder — #1043, not this issue)

- The real upload/restore cycle against live R2 — blocked on Aedan minting a Cloudflare token (three env vars, same pattern as release.py's creds) and Linux-box credential distribution. - Wiring against T8's restore-drill script — T8 isn't built yet. - Closing #1043 itself — that happens once the live cycle passes for real.

Real dependency: none — orthogonal to T5/T6/T7/T8, doesn't touch files any other design-011 chunk is using.

Dependencies

None.

Comments

No comments.

Add a comment