Skip to content

docs(recovery): rebase restore overlay onto merged main - #214

Closed
cursor[bot] wants to merge 33 commits into
mainfrom
cursor/bc-5b7cfbf4-7b42-4601-9e3b-3285d8f1c74e-091e
Closed

docs(recovery): rebase restore overlay onto merged main#214
cursor[bot] wants to merge 33 commits into
mainfrom
cursor/bc-5b7cfbf4-7b42-4601-9e3b-3285d8f1c74e-091e

Conversation

@cursor

@cursor cursor Bot commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Why this exists

PR #192 moved from eafbfa9 to 229f8d3 by merging protected main. That rebase did not fix the product/technical overlay: the PRD and TRD still present predecessor #209 as the active pg_restore path, and FR-3 still reads as if arbitrary SQL cannot call set_config.

Draft #213 already carried the overlay, but it is based on eafbfa9 and is now stale. This branch replays the same alignment on the current #192 head so operators do not follow an unsafe restore contract.

Operator action

What changed

No runtime source, schema, workflow, or package metadata changes.

Refs #192, #209, #212, #210, #213, #204.

Open in Web View Automation 

seonghobae and others added 30 commits August 14, 2026 20:10
Replay the #212 successor alignment onto 229f8d3 so the product and
technical contracts no longer present #209 as the active pg_restore
path or treat set_config as an enforcement control. Register #210 as
the Fernet operator-contract overlay and freeze stale #213.

Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
Record the rebased successor as the current five-file alignment so
operators do not land #192 or stale #213.

Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
@cursor
cursor Bot requested a review from seonghobae August 16, 2026 15:22

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale comment

Review: COMMENT at 85949a2

Five-file documentation overlay only. No runtime, schema, workflow, or package-metadata changes.

The predecessor defects this overlay exists to close are closed:

  • PRD restore row, TRD restore paragraph, FITNESS, and TRACEABILITY freeze #209. Its EOF-consumption postcondition is not a merge path for seekable PostgreSQL custom archives.
  • Draft #212 is named only as the ACTIVE-PR successor. It is not implied shipped. ADR README does not list proposed ADR 0016 as a protected-main decision.
  • PRD FR-3 and FITNESS state that a role with arbitrary SQL can call set_config for an arbitrary tenant scope. RLS is defense in depth, not a credential. That matches AGENTS.md, CLAUDE.md, and ADR 0002.

Do not merge #192 at 229f8d3, stale #213 at f44ec24, or #209 at afbe449. Do not race #208 or #212 source writers.

No RIGHT-side must-fix. Land this overlay only after every then-live required check is terminal-success on unchanged 85949a2243d79135c0a2ee4722b4c94fb96662bd. Queued or predecessor evidence does not transfer.

Residual

Sibling Draft #215 (fc7561d) appeared concurrently and binds recovery receipts from exact schema/backup evidence. It is a separate writer. TRACEABILITY already says the overlay register is descriptive and requires a GitHub refetch. Do not fold #215 into this five-file lane.

After this lands, continue Issue #204 with an isolated custom-format restore drill rather than another five-file rewrite.

Open in Web View Automation 

Sent by Cursor Automation: Fix Issues

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Canonical-fitness blocker on exact head 85949a2243d79135c0a2ee4722b4c94fb96662bd: the durable product/status documents encode transient PR-state text that is already false. docs/product/PRD.md and docs/DOCUMENTATION_FITNESS.md repeatedly call #212 Draft, while fresh GitHub state has #212 Ready/mergeable at exact head 63a89c7b39d5dad87c7186bdbeaae2c2043f1b66. The same branch's own non-negotiable invariant says transient PR/check state belongs in PR/review evidence, not durable architecture/product documents. The cursor review was accurate when submitted but has been overtaken by repository state.

Please repair this canonical lane narrowly after a fresh full PR/branch inventory: describe #209 as the superseded unsafe predecessor and #212 as the unshipped active successor without persisting Draft/Ready or an exact transient head. Keep protected-main claims unchanged. Also re-evaluate the recovery status paragraph/matrix against newly active #215/#216/#217: it need not enumerate every transient PR, but it must not imply the active recovery graph consists only of #208/#212 now that receipt binding, catalog acceptance, and physical/WAL/PITR profile slices exist. Prefer stable capability-state language (logical execution, post-restore acceptance, evidence binding, physical/PITR profile) over volatile PR state.

No runtime/source change is requested. Keep #214 Draft until the canonical status vocabulary is internally self-consistent and fresh.

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review: COMMENT at 8227e82

Do not merge #214. The 85949a2 CHANGES_REQUESTED finding still holds on this head: durable product/status documents persist transient Draft #212 and Draft #210 labels. #212 is Ready on GitHub; those labels are already false.

Successor is #226. It keeps this overlay, removes the Draft/Ready vocabulary, names the adjacent recovery families as capabilities, and adds tests/test_canonical_status_vocabulary.py so the labels cannot return.

Keep #214 Draft. Review and merge #226 after exact-head required checks are terminal-success. Do not race #208 or #212 source writers from this documentation lane.

Open in Web View Automation 

Sent by Cursor Automation: Fix Issues

Comment thread docs/product/PRD.md
| Bounded PostgreSQL backup-artifact integrity evidence | IMPLEMENTED-ON-PROTECTED-MAIN | The package can derive SHA-256 and byte-size evidence from one private regular backup artifact under descriptor-pinned, no-follow, finite-work constraints without executing backup or restore. |
| Bounded packaged PostgreSQL schema evidence | IMPLEMENTED-ON-PROTECTED-MAIN | The package can derive SHA-256 and byte-size evidence from the exact distributed `schema.sql` resource under a finite package-owned work budget without executing SQL or asserting live-cluster parity. |
| PostgreSQL logical backup execution | ACTIVE-PR | A `pg_dump` candidate exists in #208 but is not shipped; protected main must not be described as creating a restorable backup from the evidence primitives alone. |
| PostgreSQL logical restore execution | ACTIVE-PR | Draft #212 is the current direct `pg_restore` successor. Predecessor #209 must not merge: its EOF-consumption check can report failure after a seekable custom-format restore has already committed. Caller-owned source trust, target isolation, libpq allowlist, transactional failure, metadata-fingerprint integrity, and permanent documentation remain unshipped. |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This row still freezes Draft #212. #212 is no longer Draft. Successor #226 names #212 only as the unshipped active restore successor and adds the adjacent recovery families (evidence binding, catalog acceptance, physical/PITR profile, restore-target isolation) without Ready/Draft labels.

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.

2 participants