bvandeusen and Claude Opus 5.5
8806ab85b4
CI & Build / Python lint (push) Successful in 2s
CI & Build / Plugin hooks (push) Successful in 12s
CI & Build / TypeScript typecheck (push) Successful in 33s
CI & Build / Python tests (push) Successful in 1m38s
CI & Build / integration (push) Successful in 2m1s
CI & Build / Build & push image (push) Successful in 20s
feat(6846): replace_from_backup rolls the store back to a full backup by id
...
One transaction:
- Refuse unless the backup is a full one and, on a live instance, carries
this instance's id. A fresh instance (no records, at most the restoring
account) takes any full backup and adopts its id.
- Clear first: search vectors and the CSS consumer map (derived); every
backed-up table nothing outside the backup points at, whole; the settings
the backup carries; and the identity-table rows the backup lacks. A share
granted by a removed user goes before the user.
- Write the backup through the same _build_* helpers as the copy-in restore,
now _load_v2(keep_ids=...). Identity tables (users, projects, milestones,
notes, rulebooks, topics, rules, systems, design systems, code shapes,
family decisions) go through _place. That keeps the backup's id and
merges, so API keys, shares and forge connections of a surviving row stay.
- Reset id sequences past the restored max, and sign every session out.
reindex_after_restore runs the four embedding backfills afterwards. A unit
guard checks that no row kept for outside references cascades from a table
replaced whole. Integration tests cover edits, deletions and new rows put
back, a surviving API key, sessions ending, fresh ids afterwards, foreign or
id-less backups refused, a user export refused, a failure part-way changing
nothing, and a fresh instance adopting the id.
Milestone 582, step 2.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-04 19:59:48 -05:00
..
2026-05-27 22:39:50 -04:00
2026-03-08 18:46:54 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-26 16:26:15 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 19:51:58 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
docs(6209): forty test files — design cascade and stylesheet, embeddings, family canon, forge, backup round trips, inception, placement, platforms, moments, rule move and verification, search scope, facets
2026-10-21 21:40:25 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 16:13:43 -04:00
2026-10-22 10:52:55 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:52:55 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:52:55 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 11:27:40 -04:00
2026-10-21 21:46:57 -04:00
2026-10-06 09:58:41 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 13:29:00 -04:00
2026-10-22 10:52:55 -04:00
2026-10-22 10:52:55 -04:00
2026-10-22 10:52:55 -04:00
2026-10-22 10:52:55 -04:00
2026-05-27 22:39:50 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:52:55 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-11-04 19:59:48 -05:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-11-04 19:53:45 -05:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 19:20:32 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 16:21:19 -04:00
2026-10-22 10:50:45 -04:00
2026-10-26 16:29:40 -04:00
2026-10-22 19:59:02 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-26 17:41:21 -04:00
2026-10-22 15:07:32 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 19:20:32 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-21 21:44:58 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:52:55 -04:00
2026-10-22 13:29:00 -04:00
2026-10-22 10:52:55 -04:00
2026-10-22 19:56:17 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 15:07:32 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:52:55 -04:00
2026-10-22 10:52:55 -04:00
2026-10-22 10:52:55 -04:00
2026-10-22 10:52:55 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 11:01:11 -04:00
2026-11-04 19:37:28 -05:00
2026-10-22 10:50:45 -04:00
2026-10-22 16:13:43 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:52:55 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:52:55 -04:00
2026-10-22 10:52:55 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:52:55 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:52:55 -04:00
2026-10-22 19:56:17 -04:00
2026-10-22 19:51:58 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 18:32:09 -04:00
2026-10-22 18:32:09 -04:00
2026-10-22 19:28:29 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 18:32:09 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:52:55 -04:00
2026-10-22 10:50:45 -04:00
2026-10-26 16:29:40 -04:00
2026-10-26 16:29:40 -04:00
2026-10-22 10:52:55 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 18:42:14 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:52:55 -04:00
2026-10-22 20:03:52 -04:00
2026-11-04 19:59:48 -05:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:52:55 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 13:29:00 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 13:29:00 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 19:28:29 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 19:20:32 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:52:55 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:52:55 -04:00
2026-10-22 10:52:55 -04:00
2026-10-22 10:52:55 -04:00
2026-10-22 11:01:11 -04:00
2026-10-22 18:32:09 -04:00
2026-10-26 16:26:15 -04:00
2026-10-22 10:50:45 -04:00
2026-10-26 20:05:09 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:52:55 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:52:55 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:52:55 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-22 10:50:45 -04:00
2026-10-21 21:46:57 -04:00
2026-10-22 10:52:55 -04:00
2026-10-22 18:42:14 -04:00
2026-10-22 20:14:41 -04:00