arc/sync.md | 36 +- corpus/custom-tags/README.md | 4 +- corpus/custom-tags/native/shapes-1-72.png | Bin 0 -> 67681 bytes corpus/custom-tags/native/shapes-73-143.png | Bin 0 -> 71553 bytes corpus/ink-tools/native-ui/notebook/Open Notebook.onetoc2 | Bin 0 -> 3748 bytes corpus/ink-tools/native-ui/notebook/ink.one | Bin 0 -> 75888 bytes corpus/task-tags/README.md | 20 + corpus/task-tags/candidate/Open Notebook.onetoc2 | Bin 0 -> 1604 bytes corpus/task-tags/candidate/Tasks.one | Bin 0 -> 20912 bytes corpus/task-tags/cold/commands.jsonl | 3 + corpus/task-tags/cold/machine.json | 1 + corpus/task-tags/cold/notebook/Open Notebook.onetoc2 | Bin 0 -> 3764 bytes corpus/task-tags/cold/notebook/Tasks.one | Bin 0 -> 20912 bytes corpus/task-tags/cold/read/environment.json | 7 + corpus/task-tags/cold/read/hierarchy.xml | 2 + corpus/task-tags/cold/read/page-000.navigation.json | 13 + corpus/task-tags/cold/read/page-000.png | Bin 0 -> 44008 bytes corpus/task-tags/cold/read/page-000.xml | 2 + corpus/task-tags/cold/read/page-001.navigation.json | 13 + corpus/task-tags/cold/read/page-001.png | Bin 0 -> 43269 bytes corpus/task-tags/cold/read/page-001.xml | 2 + corpus/task-tags/cold/read/payloads.json | 3 + corpus/task-tags/cold/run.json | 18 + corpus/task-tags/cold/scripts/cold.ps1 | 27 ++ corpus/task-tags/cold/scripts/read.ps1 | 144 +++++++ corpus/task-tags/cold/source.json | 14 + corpus/task-tags/cold/teardown.json | 1 + corpus/task-tags/native/commands.jsonl | 4 + corpus/task-tags/native/machine.json | 1 + corpus/task-tags/native/notebook/Open Notebook.onetoc2 | Bin 0 -> 3900 bytes corpus/task-tags/native/notebook/Tasks.one | Bin 0 -> 16320 bytes corpus/task-tags/native/notebook/fixture.json | 15 + corpus/task-tags/native/notebook/synthetic.one | Bin 0 -> 3348 bytes corpus/task-tags/native/read/environment.json | 7 + corpus/task-tags/native/read/hierarchy.xml | 2 + corpus/task-tags/native/read/page-000.navigation.json | 13 + corpus/task-tags/native/read/page-000.png | Bin 0 -> 41346 bytes corpus/task-tags/native/read/page-000.xml | 2 + corpus/task-tags/native/read/page-001.navigation.json | 13 + corpus/task-tags/native/read/page-001.png | Bin 0 -> 44880 bytes corpus/task-tags/native/read/page-001.xml | 2 + corpus/task-tags/native/read/page-002.navigation.json | 13 + corpus/task-tags/native/read/page-002.png | Bin 0 -> 44884 bytes corpus/task-tags/native/read/page-002.xml | 2 + corpus/task-tags/native/read/payloads.json | 3 + corpus/task-tags/native/run.json | 19 + corpus/task-tags/native/scripts/author.ps1 | 42 ++ corpus/task-tags/native/scripts/cold.ps1 | 27 ++ corpus/task-tags/native/scripts/read.ps1 | 144 +++++++ corpus/task-tags/native/source.json | 20 + corpus/task-tags/native/teardown.json | 1 + crates/canvas/assets/tags/box-small.svg | 13 +- crates/canvas/assets/tags/checkbox-green.svg | 28 +- crates/canvas/assets/tags/checkbox-yellow.svg | 28 +- crates/canvas/assets/tags/checkbox.svg | 29 +- crates/canvas/assets/tags/flag.svg | 10 - crates/canvas/assets/tags/mark-arrow-blue.svg | 44 ++- crates/canvas/assets/tags/mark-arrow-green.svg | 38 +- crates/canvas/assets/tags/mark-arrow-yellow.svg | 43 +- crates/canvas/assets/tags/mark-exclamation-blue.svg | 49 ++- crates/canvas/assets/tags/mark-exclamation-green.svg | 50 ++- crates/canvas/assets/tags/mark-exclamation-yellow.svg | 49 ++- crates/canvas/assets/tags/mark-flag-blue.svg | 58 ++- crates/canvas/assets/tags/mark-flag-green.svg | 61 ++- crates/canvas/assets/tags/mark-flag-yellow.svg | 60 ++- crates/canvas/assets/tags/mark-one-blue.svg | 9 +- crates/canvas/assets/tags/mark-one-green.svg | 9 +- crates/canvas/assets/tags/mark-one-yellow.svg | 9 +- crates/canvas/assets/tags/mark-person-blue.svg | 69 +++- crates/canvas/assets/tags/mark-person-green.svg | 74 +++- crates/canvas/assets/tags/mark-person-yellow.svg | 76 +++- crates/canvas/assets/tags/mark-star-blue.svg | 62 ++- crates/canvas/assets/tags/mark-star-green.svg | 62 ++- crates/canvas/assets/tags/mark-star-yellow.svg | 60 ++- crates/canvas/assets/tags/mark-three-blue.svg | 9 +- crates/canvas/assets/tags/mark-three-green.svg | 9 +- crates/canvas/assets/tags/mark-three-yellow.svg | 9 +- crates/canvas/assets/tags/mark-two-blue.svg | 9 +- crates/canvas/assets/tags/mark-two-green.svg | 9 +- crates/canvas/assets/tags/mark-two-yellow.svg | 9 +- crates/canvas/assets/tags/star8-green.svg | 4 + crates/canvas/src/document.rs | 2 + crates/canvas/src/editor/evidence.rs | 2 + crates/canvas/src/editor/format.rs | 6 +- crates/canvas/src/gpu/mod.rs | 90 ++++- crates/canvas/src/gpu/page.rs | 2 + crates/canvas/src/interaction/accessibility.rs | 4 +- crates/canvas/src/interaction/mod.rs | 31 ++ crates/canvas/src/outline.rs | 29 +- crates/canvas/tests/task_tags.rs | 145 +++++++ crates/draw/src/render.rs | 29 +- crates/draw/src/render/icon.rs | 83 ++-- crates/mobile/src/library.rs | 16 +- crates/notebook/README.md | 29 +- crates/notebook/examples/launch_probe.rs | 228 +++++++++++ crates/notebook/src/background.rs | 671 +++++++++++++++++++++++++------- crates/notebook/src/discover.rs | 4 + crates/notebook/src/lib.rs | 27 +- crates/notebook/src/merge.rs | 2 + crates/notebook/src/session.rs | 23 +- crates/notebook/src/smb/directory.rs | 67 ++++ crates/notebook/src/smb/tests.rs | 38 ++ crates/notebook/tests/session.rs | 78 +++- crates/onestore/examples/ink_lab.rs | 25 ++ crates/onestore/examples/scratch_dump.rs | 29 ++ crates/onestore/src/document.rs | 40 +- crates/onestore/src/op/apply.rs | 99 ++++- crates/onestore/src/op/content.rs | 164 ++++++-- crates/onestore/src/op/lower.rs | 40 +- crates/onestore/src/op/mod.rs | 10 +- crates/onestore/src/op/model.rs | 16 + crates/onestore/src/op/properties.rs | 129 ++++-- crates/onestore/src/op/tests.rs | 30 +- crates/onestore/src/page/ink.rs | 200 ++++++++++ crates/onestore/src/page/mod.rs | 32 +- crates/onestore/tests/page_ink.rs | 371 ++++++++++++++++++ crates/onestore/tests/page_media.rs | 35 +- crates/onestore/tests/page_tags.rs | 48 +++ crates/onestore/tests/support/page_edits.rs | 2 + crates/snowbound/src/library.rs | 68 +++- crates/snowbound/src/linux.rs | 2 + crates/snowbound/src/macos.rs | 2 + crates/snowbound/src/main.rs | 37 +- crates/snowbound/src/manage.rs | 6 +- crates/snowbound/src/meeting.rs | 2 + crates/snowbound/src/sidebar.rs | 2 +- crates/snowbound/src/tags.rs | 12 +- crates/snowbound/src/watch.rs | 441 +++++++++++++++++++++ crates/ui/src/popup.rs | 18 +- tools/test_task_tags.py | 52 +++ 130 files changed, 4572 insertions(+), 634 deletions(-)