Commit graph

1595 commits

Author SHA1 Message Date
Danila Poyarkov 81fa529332 fix(fig): preserve raw Figma override metadata
- Preserve raw paint variables, style ids, text line metadata, and variable maps
- Keep raw node paint/geometry/effect fields for imported Figma nodes
- Extend the Kiwi schema for current Figma override and variable fields
2026-05-21 14:54:12 +03:00
Danila Poyarkov 513d630653 fix(fig): preserve variable-backed override fields
- Add missing style and variable map fields to the Kiwi schema
- Preserve TEXT_DATA consumption maps and style ids inside instance overrides
- Keep Figma's component override payloads closer to clipboard output
2026-05-21 14:54:12 +03:00
Danila Poyarkov 844b904844 fix(fig): preserve instance component assignments
- Keep top-level componentPropAssignments from imported Figma instances
- Re-emit those assignments with preserved variable values for Figma import
- Fix datepicker instances losing configured component property values
2026-05-21 14:54:12 +03:00
Danila Poyarkov f4ad80d789 fix(fig): preserve imported geometry and prop values
- Keep raw Figma size and transform values for imported nodes during export
- Add current Kiwi schema fields for component prop varValue and symbol id variable values
- Preserve component source geometry used by Figma to reconstruct instances
2026-05-21 14:54:12 +03:00
Danila Poyarkov 1c0122b485 fix(fig): preserve derived instance payloads
- Store imported derivedSymbolData on scene nodes with blob bytes remapped for export
- Re-emit derivedSymbolData and layout versions for Figma instances
- Skip unsupported metadata fields that the current Kiwi encoder cannot write
2026-05-21 14:54:11 +03:00
Danila Poyarkov 40ee1b83d4 fix(fig): preserve instance override payloads
- Keep imported Figma node guids so override paths and symbol references remain stable
- Serialize imported symbolOverrides and uniform scale factors for instances
- Strip unsupported variable consumption maps from preserved overrides before encoding
2026-05-21 14:54:11 +03:00
Danila Poyarkov 9a6e29cf6f fix(fig): preserve imported layout metadata
- Keep Figma stack sizing fields such as RESIZE_TO_FIT_WITH_IMPLICIT_SIZE
- Avoid writing default auto-layout fields onto imported instances when Figma omitted them
- Cover instance layout metadata roundtrips
2026-05-21 14:54:11 +03:00
Danila Poyarkov 68ebef5f9b fix(fig): omit populated instance children on export
- Match Figma files where INSTANCE node changes carry symbol refs, not child nodes
- Prevent exported roundtrips from expanding every populated instance subtree
- Tighten glyph blob preservation now that instance children are omitted
2026-05-21 14:54:11 +03:00
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 1e1939aea0
Add instructions to use AGENTS.md 2026-05-20 16:39:13 +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 3ea9d06167 fix(dev): ignore docs markdown in app watcher 2026-05-19 17:57:58 +03:00
Danila Poyarkov 779e0e493f fix(mcp): improve agent-rendered JSX 2026-05-19 17:57:43 +03:00
Danila Poyarkov fed6fa620a test(mcp): cover websocket routing edge cases 2026-05-19 15:55:52 +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 9293145cd6 fix(ui): keep provider settings tooltip working in WebKit 2026-05-19 15:17:48 +03:00
Danila Poyarkov 7d41e4ccf4 refactor(ui): use app tooltips consistently 2026-05-19 15:14:00 +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 8fbc2939e3 fix(properties): keep effect controls visible 2026-05-19 13:20:47 +03:00
Danila Poyarkov 26fb9b6a0b fix(canvas): render background blur as backdrop 2026-05-19 13:07:46 +03:00
Danila Poyarkov 83af1453d8 fix(fonts): load Google font previews 2026-05-19 13:02:15 +03:00
Danila Poyarkov 59550c1c07 fix(fonts): restore font picker selection 2026-05-19 12:52:11 +03:00
Danila Poyarkov e67c15ce42 fix(tauri): use native dirname for save paths 2026-05-19 12:03:21 +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