Skip to content

Document that restore_backup checks a backup before replacing the database - #721

Draft
cb1kenobi wants to merge 6 commits into
mainfrom
docs/restore-verify-before-replace
Draft

cb1kenobi wants to merge 6 commits into
mainfrom
docs/restore-verify-before-replace

Conversation

@cb1kenobi

@cb1kenobi cb1kenobi commented Oct 8, 2026 •

Copy link
Copy Markdown
Member

⊙ Problem

HarperFast/harper#3121 changes what restore_backup does. It now stages the backup and checks it before replacing the database, refuses a backup it can't read or a copy that won't fit, and refuses symlinked or mount-point database directories. The backup reference still describes the old close-purge-restore order.

❓ Your call: Should a patch-level behavior change get release-note and reference coverage, or wait for 5.4? I've documented it as "As of v5.3.2", matching the page's existing v5.3.1 paragraph, because the core PR is milestoned v5.3. If it isn't cherry-picked to the 5.3 line, every "v5.3.2" here should become "v5.4.0" and the release-note entry should move to 5.4.

💡 Solution

✅ Verification

  • npm run build passes and npm run format:check is clean.
  • Every behavior claim was checked against the core branch. The claim that a restore refused before the close leaves subscriptions running was confirmed with a probe test on that branch: the subscription received a later write and stayed open.

🤖 Generated by Anthropic Claude (Opus); posted via @cb1kenobi.

Related PRs: none found
Complexity: easy

Review-Coverage: authored=claude; ran=gemini,cursor-composer,codex,cursor-muse; adjudicated=domain; declined=cursor-grok,cursor-kimi; rounds=4; full=2 @ b91aaf3

Review-Attention: skim ~2m (decisions: release-target, internals-as-contract, version-marking) @ b91aaf3

cb1kenobi and others added 5 commits October 8, 2026 13:59
…base

Documents HarperFast/harper#3121: restore stages and opens the backup first, refuses one it
cannot read with the database untouched, needs free space for a second copy, and cannot restore
a database whose directory is a symlink.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…unt points and 5.3.2

Docs review round 1: blobs are neither staged nor checked, so the guarantee is stated for the
database files only; the refusal message is quoted by its phrase rather than as a suffix; staging
space is the backup's restored size and a rerun after an interrupted swap can need one more copy;
mount-point database directories are refused like symlinks (core change in the same PR); and the
5.3 release notes record the behavior change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…fit, and when the aside copy goes

Docs review round 2: an online restore stages while the database keeps serving, and writes made
then are replaced; a staging copy without headroom is refused with 507 (core change in the same
PR); an uninterrupted restore removes the set-aside copy itself; a crash during staging leaves the
files untouched but blocked; the refusal comes from "the restore", which offline has no job; and
the release note counts transaction logs in the space needed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…hind

Docs review round 3: a refused rerun over an unfinished restore leaves the database blocked, not
untouched; a rerun needs no more room than the first attempt (core drops the stale candidate
first); repointing a symlinked path after an interrupted restore needs an offline rerun before
the next start; the overview's worked example describes staging; and a restore refused before the
database closes leaves its subscriptions running (verified against the branch).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
gemini-code-assist[bot]

This comment was marked as resolved.

@github-actions
github-actions Bot temporarily deployed to pr-721 October 8, 2026 20:36 Inactive
@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown

🚀 Preview Deployment

Your preview deployment is ready!

🔗 Preview URL: https://preview.harper-documentation.harperfabric.com/pr-721

This preview will update automatically when you push new commits.

Gemini review on #721: per the docs guidelines, a patch-level behavior change to an existing
operation carries a `changed` VersionBadge, under the heading and inline in the Limitations item.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown

🚀 Preview Deployment

Your preview deployment is ready!

🔗 Preview URL: https://preview.harper-documentation.harperfabric.com/pr-721

This preview will update automatically when you push new commits.

This branch was successfully deployed

1 active deployment
pr-721 — 5e598ecd Deployed Oct 8, 2026 by github-actions[bot]
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