openpencil/tools
Fini b1c3136deb feat(editor): EditorCommand::InsertSubtree — nested PenNode subtree insert
Existing EditorCommand variants are leaf-only (BatchInsertItem carries
only kind/name/x/y/w/h/fill_hex). The design orchestrator (S3a) must
apply rich nested designs — frames with children, layout, text — so
add InsertSubtree { nodes: Vec<PenNode>, parent_id }.

cmd_insert_subtree validates the parent is a container (or NONE = page
root), remaps every incoming node id to a fresh editor id via
remap_subtree_ids (so an externally-authored subtree can't collide
with live ids), and appends under the parent. The apply arm wraps it
in a history snapshot so the insert is one undo step.

NOT verified locally: op-editor-core does not currently build —
vendor/jian is pinned to unpushed commit 80121906 whose DesignMd*
types op-editor-core depends on are absent from every available jian.
The 8 InsertSubtree tests in command_subtree_tests.rs run once the
jian build is restored.

S3a Plan A.
2026-05-22 22:56:10 +08:00
..
check-jian-boundaries.sh docs: translate remaining Chinese source comments to English 2026-05-17 09:33:41 +08:00
check-wasm-bundle.sh chore(ci): re-point tooling + CI workflows at the op-host-* crates 2026-05-17 00:01:35 +08:00
check-widget-boundary.sh chore(ci): re-point tooling + CI workflows at the op-host-* crates 2026-05-17 00:01:35 +08:00
convert-locales.py fix(i18n): point convert-locales.py output at the op-i18n crate 2026-05-16 14:25:58 +08:00
fetch-skia-artifact.sh build(step-1b): add tools/fetch-skia-artifact.sh (Variant A release path) 2026-05-09 21:04:00 +08:00
merge-settings-i18n.py feat(desktop): winit shell platform integration 2026-05-18 08:29:36 +08:00