openpencil/crates
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
..
op-acp style: clear clippy lints for the workspace -D warnings gate 2026-05-17 23:12:16 +08:00
op-ai feat(ai): chat image attachments + per-provider thinking/effort 2026-05-17 22:44:28 +08:00
op-ai-skills style: clear clippy lints for the workspace -D warnings gate 2026-05-17 23:12:16 +08:00
op-app refactor(rust): add op-app composition-root crate 2026-05-16 23:57:03 +08:00
op-cli feat: close six TS-parity gaps in the Rust shell 2026-05-17 13:03:11 +08:00
op-codegen feat(editor): add Design-MD panel and complete i18n coverage 2026-05-19 22:29:22 +08:00
op-editor-core feat(editor): EditorCommand::InsertSubtree — nested PenNode subtree insert 2026-05-22 22:56:10 +08:00
op-editor-ui feat(editor): EditorCommand::InsertSubtree — nested PenNode subtree insert 2026-05-22 22:56:10 +08:00
op-figma feat(editor): add Design-MD panel and complete i18n coverage 2026-05-19 22:29:22 +08:00
op-git feat(editor): EditorCommand::InsertSubtree — nested PenNode subtree insert 2026-05-22 22:56:10 +08:00
op-host-desktop feat(editor): EditorCommand::InsertSubtree — nested PenNode subtree insert 2026-05-22 22:56:10 +08:00
op-host-native feat(editor): EditorCommand::InsertSubtree — nested PenNode subtree insert 2026-05-22 22:56:10 +08:00
op-host-web feat(editor): EditorCommand::InsertSubtree — nested PenNode subtree insert 2026-05-22 22:56:10 +08:00
op-i18n feat(editor): EditorCommand::InsertSubtree — nested PenNode subtree insert 2026-05-22 22:56:10 +08:00
op-mcp feat(editor): EditorCommand::InsertSubtree — nested PenNode subtree insert 2026-05-22 22:56:10 +08:00
op-opmerge feat(editor): EditorCommand::InsertSubtree — nested PenNode subtree insert 2026-05-22 22:56:10 +08:00
op-pen-loader feat(editor): EditorCommand::InsertSubtree — nested PenNode subtree insert 2026-05-22 22:56:10 +08:00
wasm-libc-shim fix: clear clippy -D warnings across the workspace 2026-05-17 01:26:29 +08:00
CLAUDE.md docs: fix stale i18n + renderer paths flagged by Codex review 2026-05-16 15:45:54 +08:00