Commit 1ef067c
committed
fix(page): gate sync when snapshot has unknown block IDs
rollbackSyncedPage previously guarded only on snapshot.Truncated. If a
page contains blocks that cannot be represented in markdown, the
PageMarkdown snapshot carries their IDs in UnknownBlockIDs, and a
replace_content rollback would replay a lossy markdown body and
permanently drop those blocks. Treat non-empty UnknownBlockIDs as an
unsafe rollback source and fail early at the pre-sync gate with the
same pattern used for truncation, so page sync does not silently lose
content on recovery.1 parent 391db41 commit 1ef067c
3 files changed
Lines changed: 23 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
604 | 604 | | |
605 | 605 | | |
606 | 606 | | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
607 | 612 | | |
608 | 613 | | |
609 | 614 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
232 | 232 | | |
233 | 233 | | |
234 | 234 | | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
235 | 238 | | |
236 | 239 | | |
237 | 240 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
199 | 199 | | |
200 | 200 | | |
201 | 201 | | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
202 | 217 | | |
203 | 218 | | |
204 | 219 | | |
| |||
0 commit comments