RFC 0013: SQLite snapshot backup artifacts#20
Conversation
|
Codex review: needs real behavior proof before merge. Reviewed July 6, 2026, 9:05 PM ET / 01:05 UTC. Summary Reproducibility: not applicable. this is a feature RFC pull request, not a bug report. The merge blocker is source-verifiable from the added frontmatter and the repository RFC lifecycle docs. Review metrics: 3 noteworthy metrics.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Proof guidance:
Risk before merge
Maintainer options:
Next step before merge
Maintainer decision needed
Security Review findings
Review detailsBest possible solution: Keep this PR open until the pilot and maintainer discussion settle the core-versus-plugin scope, then update Do we have a high-confidence way to reproduce the issue? Not applicable; this is a feature RFC pull request, not a bug report. The merge blocker is source-verifiable from the added frontmatter and the repository RFC lifecycle docs. Is this the best way to solve the issue? No for merging as-is; the RFC may be useful, but the maintainable path is acceptance/pilot decision first, then accepted metadata and current-head proof before landing. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: not found in the target repository. Codex review notes: model internal, reasoning high; reviewed against a8e0ba2701d6. Label changesLabel changes:
Label justifications:
Evidence reviewedWhat I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
Review history (1 earlier review cycle)
|
|
@clawsweeper re-review Updated the PR body with final-head RFC proof, including head SHA, diff stat, frontmatter, line count, and git diff --check output. The maintainer-discussion thread remains pending maintainer-side Discord action/access, and acceptance metadata is intentionally unchanged while draft. |
|
🦞🧹 I asked ClawSweeper to review this item again. |
|
@clawsweeper re-review Updated the RFC and PR body to current head What changed:
|
|
🦞🧹 I asked ClawSweeper to review this item again. |
|
@clawsweeper re-review Updated the RFC and PR body to current head What changed:
|
|
🦞🧹 I asked ClawSweeper to review this item again. |
|
Hey @vincentkoc — we have learned a lot since we first started running the Your #105718 implementation gave us the native owner seam we were missing. The We also confirmed that current The real process/container proof also clarified where snapshot semantics should
We have updated this PR body to match the landed implementation and current RFC |
|
ClawSweeper status: review started. I am starting a fresh review of this pull request: RFC 0013: SQLite snapshot backup artifacts This is item 1/1 in the current shard. Shard 0/1. This placeholder means the worker is alive and reading the current context. I will edit this same comment with the actual review when the claws are done clicking. Crustacean status: shell secured, claws on keyboard, evidence pebbles being sorted. |
|
Follow-on sidecars are now isolated in draft PR #46 rather than expanding this
This keeps PR #20 narrow and lets the lifecycle contracts receive independent |
Summary
RFC 0013 defines the SQLite-safe artifact boundary now implemented by
openclaw/openclaw#105718:
The landed command is:
OpenClaw owns database roles, SQLite-safe capture, manifest and hash creation,
strict verification, private staging, atomic local publication, and
fresh-target restore. Hosts and operators own upload, encryption, retention,
restore timing, startup orchestration, and failover policy.
What We Learned From Running Snapshots In Lobster
We have learned a lot since we first started running the snapshot boundary in
Lobster:
manifest.jsonplusdatabase.sqliteartifacts is theright boundary; syncing live SQLite files and sidecars is not;
infer database role, WAL state, schema, indexes, ownership, or safe restore
semantics from paths;
replacement or scale-from-zero transaction;
credentials and external dependencies, durable host acceptance, final
quiescence, generation fencing, restored readiness, and coordinator replay;
and
or duplicating the landed SQLite implementation.
OpenClaw
mainalso already has the host-neutralgateway.suspend.prepare|status|resumecontract fromopenclaw/openclaw#103618,
with Vincent's validation repair in
openclaw/openclaw#103925.
Follow-on handoff work should reuse that cooperative tracked-work fence rather
than propose another pause API. The host still owns external ingress fencing,
third-party Channel handling, and full process/filesystem consistency.
The result is a simpler follow-on direction: keep RFC 0013 and PR 105718 as the
authoritative owner primitive, then discuss small optional sidecars for
aggregate recovery-point components, portable handoff, and restored admission.
Lobster remains one proving host, not part of the core snapshot contract.
Scope
This RFC remains deliberately narrow:
It does not define:
safeToDestroy;Implementation
Implementation landed in
openclaw/openclaw#105718,
commit
2f25e9cba384acfc06cdf83640f236fdb7c1af33.The original contributor implementation in
openclaw/openclaw#94805 was
superseded by Vincent's hardened implementation while preserving the
SQLite-safe artifact direction.
Current-Head Validation
864d7dee6ba6b9cf9e2f902f174408e5fbc570dbrfcs/0013-cloud-serializable-sqlite-state.mdstatus: completedand the landed implementation.backup sqlitecommand and responsibility split.Review Request
Please review RFC 0013 as the completed SQLite owner-artifact contract.
Separately, we would value feedback on whether its completed snapshot
directories and exact manifests are the right substrate for small,
host-neutral follow-on sidecars. Those sidecars would not change this RFC's
snapshot semantics, add Lobster-specific APIs, or duplicate the existing
gateway.suspend.*contract.