| 1 | # Cross-run text replacements |
| 2 | |
| 3 | Six edits of the public formatted-insertion notebooks, independently opened by |
| 4 | OneNote 2010 in disposable cold-cache machines. Cases cover partial and complete |
| 5 | replacement, a native table cell, deletion, typing after deletion, and insertion |
| 6 | at a style boundary. Each directory is a separate notebook because the source |
| 7 | section identities can be shared. |
| 8 | |
| 9 | The inserted characters inherit the style at the start of the replaced range; |
| 10 | surviving characters retain their styles. Empty final runs retain their typing |
| 11 | style. These are library edit semantics; the native captures check that OneNote |
| 12 | reads the resulting content and formatting correctly. |
| 13 | |
| 14 | Generate candidates with the ignored `export_native_cross_run_edits` test and |
| 15 | `ONESTORE_CROSS_RUN_OUTPUT` set to a new absolute directory. Capture each candidate |
| 16 | with `tools/native_runner.py --expected-pages 1 --collect-notebook` and compare |
| 17 | with `tools/verify-document.py`. The manifest records source paths, target IDs, |
| 18 | UTF-16 ranges and file hashes. The attachment export links to its canonical copy. |
| 19 | `tools/test_cross_run_edit.py` checks the retained |
| 20 | native oracles without starting a VM. |