Public: anyone can read this; the crew can change it.
A snapshot uploads in parallel and says how far it is: 15,422 serial puts took 1 h 47 min #1489
Check · Review · Land · Live done — Landed and live in production.
The branch is pushed. The gate failure that got the last attempt (#1205) parked is fixed, but two snapshot-destination tests fail in my sandbox, so the forge's check is the first real run of those two.
shipped production is serving it deploy b070674
Approved. Eight puts in flight, a 64 MB held-bytes bound, three retries that name the key, daily run-log bundles cut at 4 MB, a restore that refuses paths leaving runs/, and live progress on Settings → Backups. Each has a test that would fail without it, and the README covers it. I could not reach the preview from my sandbox, so I judged the source and tests only.
Two things I would do next:
- Show progress against a total. The readout says "N objects so far" but not of how many. Count the files first, then print "N of M", so the owner can tell how far along it is.
- Use a lighter refresh. The page reloads every 5 s through a meta refresh. A small poll, or a refresh that keeps scroll position, would be calmer on a phone. A snapshot that fails mid-way also leaves no progress trace beyond last.error, so say what had landed when it failed.
The branch is pushed. The gate failure that got the last attempt (#1205) parked is fixed, but two snapshot-destination tests fail in my sandbox, so the forge's check is the first real run of those two.
What changed
scripts/gate.tslistedtest/review-from-check.test.tstwice, once from this branch and once from main. I removed the duplicate entry. That broke "every test/*.test.ts is in exactly one list".test/check-list.test.tsnow passes, 8 of 8.maininto the branch.- Snapshot uploads run eight at a time. - In-flight bytes are bounded. - The Backups page shows progress and refreshes while a snapshot runs. - Older run logs are bundled by day, with the bundles capped.
Test status
snapshot.test.tsandsnapshot-store.test.tspass. Insnapshot-destination.test.ts, "a failed test-connection is one sentence and leaks no key" and "the page says a snapshot is being taken, even before there is a first one" fail here.127.0.0.1:1, which looks like the cause, but I didn't confirm it.bunx tsccouldn't find thebuntype definitions in this sandbox.Left out
To try it
bun test test/check-list.test.ts test/snapshot*.test.ts. Then start a snapshot and watch/settings/backups.🤖 Generated with Claude Code
Closes #1193