Observed
Handwritten ink/pencil drawings made with FigJam's pen tool are invisible to the bridge. They do not appear in canvas_read D2 output or id_map, and cannot be targeted by apply_patch delete ops.
Repro
- Draw something with FigJam's pen tool on a canvas the bridge is connected to.
- Call
canvas_read — the ink strokes are absent from d2_view.diagram.d2 and id_map.
- Attempt to delete via
apply_patch — no node ID available to target.
Expected
Ink/vector nodes should be surfaced in canvas_read (even as opaque entries with a type tag like type: ink) so they can be targeted for deletion via apply_patch { type: 'delete', node_id: '...' }.
Full round-trip read/write support for ink is not required — delete is the primary use case.
Root cause
The plugin's canvas serialization only handles SHAPE_WITH_TEXT, SECTION, and CONNECTOR node types. FigJam pen strokes are likely VectorNode or a similar type and are skipped during serialization.
Proposed implementation
- In the plugin's canvas read pass, collect nodes of type
VECTOR / pen stroke and include them in the snapshot with type: 'ink' and their figmaId.
- In
apply_patch, the existing delete handler already calls figma.getNodeById — no change needed there, as long as the ID is surfaced.
canvas_write_d2 does not need to handle ink nodes — they can be omitted from D2 diffing (read-only in D2 view, delete-only via apply_patch).
Workaround today
User must manually select and delete ink strokes in FigJam.
Observed
Handwritten ink/pencil drawings made with FigJam's pen tool are invisible to the bridge. They do not appear in
canvas_readD2 output orid_map, and cannot be targeted byapply_patchdelete ops.Repro
canvas_read— the ink strokes are absent fromd2_view.diagram.d2andid_map.apply_patch— no node ID available to target.Expected
Ink/vector nodes should be surfaced in
canvas_read(even as opaque entries with a type tag liketype: ink) so they can be targeted for deletion viaapply_patch { type: 'delete', node_id: '...' }.Full round-trip read/write support for ink is not required — delete is the primary use case.
Root cause
The plugin's canvas serialization only handles
SHAPE_WITH_TEXT,SECTION, andCONNECTORnode types. FigJam pen strokes are likelyVectorNodeor a similar type and are skipped during serialization.Proposed implementation
VECTOR/ pen stroke and include them in the snapshot withtype: 'ink'and their figmaId.apply_patch, the existingdeletehandler already callsfigma.getNodeById— no change needed there, as long as the ID is surfaced.canvas_write_d2does not need to handle ink nodes — they can be omitted from D2 diffing (read-only in D2 view, delete-only via apply_patch).Workaround today
User must manually select and delete ink strokes in FigJam.