Danila Poyarkov
1c655f34ce
fix(fig): preserve auto-layout child transforms
...
- Stop zeroing transforms for auto-layout children during .fig export
- Match real Figma files, which keep child transform offsets alongside layout data
- Update transform regression coverage to prevent collapsed roundtrips
2026-05-21 14:54:11 +03:00
Danila Poyarkov
4fe2b75dc8
fix(io): keep page descendants in fig exports
...
- Preserve the source document root when extracting export subgraphs
- Include page descendants when exporting a single page to .fig
- Cover page subgraph extraction so CLI .fig exports are not empty
2026-05-21 14:54:10 +03:00
Danila Poyarkov
c1ddbf7039
fix(fig): deduplicate exported text glyph blobs
...
- Preserve imported Figma glyph outlines for fallback rendering
- Reuse identical glyph command blobs across exported text nodes
- Cover real fixture preservation and generated glyph deduplication
2026-05-21 14:54:10 +03:00
Danila Poyarkov
8542c1db65
fix(vue): ignore click jitter before moving selection
...
- Start selection moves only after a 4px screen-space threshold
- Keep click selection from previewing or committing 1px geometry changes
- Cover below-threshold and intentional move behavior
2026-05-21 14:54:10 +03:00
Danila Poyarkov
10f551efc1
fix(mcp): add package json import attribute
...
- Preserve ESM package metadata import under Node.js 20
- Avoid runtime ERR_IMPORT_ASSERTION_TYPE_MISSING for openpencil-mcp
2026-05-20 15:36:39 +03:00
Danila Poyarkov
e6da2736fe
fix(fig): sync lazy link component overrides
...
- Carry resolved text styling and glyph data through component-property text clones
- Align lazy cloned child placement and hidden chevrons with their resolved source
- Cover the gold-preview dropzone link lazy import regression
2026-05-20 15:02:01 +03:00
Danila Poyarkov
11495ee2ce
fix(canvas): align small vector strokes and shadows
...
- Punch hidden shadow interiors at the node position instead of the shifted shadow position
- Render unfilled center-stroked vectors from their centerline for small icon fidelity
2026-05-20 14:23:06 +03:00
Danila Poyarkov
957db338ba
fix(fig): sync lazy instance override clones
...
- Re-propagate resolved overrides after lazy instance population
- Preserve Figma showShadowBehindNode on effects
- Mask unfilled stroke shadows behind their fill geometry
2026-05-20 13:12:16 +03:00
Danila Poyarkov
4603bbf81b
fix(canvas): shadow stroked shapes without fills
...
- Use stroke geometry for drop shadows on unfilled stroked nodes
- Avoid filling the interior of outline-only image icons
2026-05-20 12:52:21 +03:00
Danila Poyarkov
82fc5fb7bb
fix(fig): propagate cloned component property overrides
...
- Resolve component-property refs through override keys on cloned children
- Apply instance component-property assignments through clone chains
- Use child shadow shapes for containers without visible fills
- Keep clipped export bounds from leaking hidden descendants
2026-05-20 12:29:51 +03:00
Danila Poyarkov
ffa0b9d6f8
perf(canvas): scope backing subtree cache
2026-05-20 03:04:51 +03:00
Danila Poyarkov
9949a1dd8b
perf(canvas): cache backing subtree pictures
2026-05-20 03:04:51 +03:00
Danila Poyarkov
c67e935c7c
refactor(canvas): isolate retained backing renderer
2026-05-20 03:04:50 +03:00
Danila Poyarkov
efa2e58269
perf(canvas): build retained backing incrementally
2026-05-20 03:04:50 +03:00
Danila Poyarkov
28f5a442e1
fix(canvas): bypass scene backing for edit overlays
2026-05-20 03:04:50 +03:00
Danila Poyarkov
d777fddfe9
perf(canvas): avoid zoom preview backing refreshes
2026-05-20 03:04:50 +03:00
Danila Poyarkov
fbc3b8b282
perf(canvas): adapt backing debounce to render cost
2026-05-20 03:04:50 +03:00
Danila Poyarkov
0960aa5198
perf(canvas): debounce crisp backing during zoom
2026-05-20 03:04:50 +03:00
Danila Poyarkov
07173fe0ae
perf(canvas): retain overscanned scene backing
2026-05-20 03:04:50 +03:00
Danila Poyarkov
a22d39210c
fix(fig): populate lazy pages before export
2026-05-19 21:01:17 +03:00
Danila Poyarkov
1d15469c27
perf(fig): populate imported pages lazily
2026-05-19 20:55:43 +03:00
Danila Poyarkov
05c9a7a576
perf(io): defer imported page layout work
2026-05-19 20:50:17 +03:00
Danila Poyarkov
7a433584cc
Release v0.12.2
2026-05-19 18:10:25 +03:00
Danila Poyarkov
e3d6056bf5
docs: update MCP setup and landing screenshot
2026-05-19 17:58:08 +03:00
Danila Poyarkov
779e0e493f
fix(mcp): improve agent-rendered JSX
2026-05-19 17:57:43 +03:00
Danila Poyarkov
6e1cadcaff
fix(mcp): simplify disconnected guidance
2026-05-19 15:53:28 +03:00
Danila Poyarkov
b188808a74
refactor(mcp): centralize websocket routing
2026-05-19 15:51:59 +03:00
Danila Poyarkov
02bbabaf17
fix(mcp): route stdio bridge requests
2026-05-19 15:47:38 +03:00
Danila Poyarkov
3a85632f38
refactor(ui): localize tooltip labels
2026-05-19 15:41:38 +03:00
Danila Poyarkov
8cb6d008fc
fix(ai): allow custom OpenRouter models
2026-05-19 15:10:32 +03:00
Danila Poyarkov
8fa34fb0b8
Release v0.12.1
2026-05-19 13:27:24 +03:00
Danila Poyarkov
26fb9b6a0b
fix(canvas): render background blur as backdrop
2026-05-19 13:07:46 +03:00
Danila Poyarkov
59550c1c07
fix(fonts): restore font picker selection
2026-05-19 12:52:11 +03:00
Danila Poyarkov
e0d76ca72a
fix(mcp): support scoped save paths
...
Co-authored-by: LCbeijing <LCbeijing@users.noreply.github.com>
2026-05-19 11:29:54 +03:00
Danila Poyarkov
f4454aeb44
fix(mcp): report version mismatches
2026-05-19 11:12:01 +03:00
Danila Poyarkov
c11d65fe55
Revert "Revert "fix(fig): preserve OpenPencil round trips""
...
This reverts commit 9ce6096fc1 .
2026-05-19 00:23:23 +03:00
Danila Poyarkov
9ce6096fc1
Revert "fix(fig): preserve OpenPencil round trips"
...
This reverts commit 5ef8bbd93d .
2026-05-19 00:20:47 +03:00
Danila Poyarkov
5ef8bbd93d
fix(fig): preserve OpenPencil round trips
2026-05-19 00:16:41 +03:00
Danila Poyarkov
3012d0d36b
fix(tauri): compile release builds
2026-05-18 22:30:58 +03:00
Danila Poyarkov
682160b75b
Release v0.12.0
2026-05-18 21:06:06 +03:00
Danila Poyarkov
c7946b9cff
chore(scene-graph): clear lint warning
2026-05-18 21:04:07 +03:00
Danila Poyarkov
f466946c1c
fix(canvas): render derived text underlines
2026-05-18 20:28:15 +03:00
Danila Poyarkov
eb7a663c1c
fix(fig): preserve scene node defaults during overrides
2026-05-18 19:50:34 +03:00
Danila Poyarkov
955aa4d1e9
refactor(core): use es-toolkit utilities
2026-05-18 19:21:14 +03:00
Danila Poyarkov
f3649550f2
chore: enable stricter oxlint rules
2026-05-18 18:58:30 +03:00
Danila Poyarkov
9e2cd356e5
fix(fig): preserve imported instance layout sync
2026-05-18 18:21:27 +03:00
Danila Poyarkov
6d8920a496
fix(canvas): tune derived glyph coverage
2026-05-18 18:21:26 +03:00
Danila Poyarkov
cdc4194396
fix(io): supersample premultiplied raster exports
2026-05-18 18:21:26 +03:00
Danila Poyarkov
c75125cf2c
fix(canvas): prefer imported vector stroke geometry
2026-05-18 18:21:26 +03:00
Danila Poyarkov
70114ef6de
fix(io): preserve one-pixel export fringes
2026-05-18 14:00:23 +03:00