Skip to content

v0.1.0

Choose a tag to compare

@awdr74100 awdr74100 released this 19 Jun 10:29

🚀 Enhancements

  • m2: Write-parity kickoff — idempotency infra + 3 tools (0eec93a)
  • m2: Add set_opacity / set_visible / rename_node / delete_nodes (4eda9d0)
  • m2: Add create_text/rectangle, set_corner_radius/strokes, move/resize_nodes (cb2c3b3)
  • m2: Add set_auto_layout/blend_mode/constraints, rotate/lock/unlock_nodes, clone_node (9f96d7e)
  • m2: Add 8 style + 6 variable write tools (34/52) (652e855)
  • m2: Add structural + bulk-text write tools (40/52) (0d8b7e0)
  • m2: Add page write tools (44/52) (4a8d40c)
  • m2: Add prototype + component-nav write tools (48/52) (5405744)
  • m2: Add import_image write tool (49/52) (e6e307e)
  • m2: Add create_ellipse / create_component / create_section — 52/52 tool count (bb25810)
  • m2: Add batch atomic write tool — 53 tools, all-or-nothing rollback (ba6d4d4)
  • m2: Add create_instance — fills the component-side planning gap (54 tools) (45bad2a)
  • m2.5: Gradient paints — read + write (round-trippable) (9341f4a)
  • m2.5: Text truncation/maxLines (read+write) + FLOAT alias regression test (3bed475)
  • design-context: P1 surface grounding fields (52c226e)
  • design-context: P2 resolve token ids to names (84cd506)
  • design-context: P3 globalVars dedup + structured values + metrics (69ccea9)
  • design-context: P3.1 surface + dedup strokes & effects (3583b60)
  • m3: Analyze_project — JS/TS profile detector (Tailwind v3+v4 aware) (4a9ce62)
  • m3: Scan_components — oxc-based local component scanner (a460176)
  • m3: Component_map — join Figma component names to local code components (be0fb7c)
  • m3: Wire scan_components + component_map; demote analyze_project to internal helper (7a02671)
  • m3: Expose analyze_project as a standalone MCP tool (revert demotion) (b12ec5b)
  • m3: Token_map — join Figma variables to project design tokens (87ae2f8)
  • m3: Token_map B3 — Tailwind/Figma namespace synonyms (a58aeda)
  • m3: Component_map emits per-instance props (instances[]) (cdaafc1)
  • m3: Component_map reports unmatchedProps (component-extension TODOs) (b15fb89)
  • m3: Token_map opens size↔text via the variable's collection (5a437bf)
  • m3: MCP prompts capability + figma_to_code (cross-client codegen) (8de7066)
  • relay: Multi-plugin routing on most-recently-active session (1613dad)
  • plugin: Emit activity on window focus/visibility (56b8422)
  • codegen: Asset-export step — close the no-codegen fidelity gap (2f61138)
  • token_map: Framework-builtin scale recognition + codegen effect-fidelity guidance (5ea3d11)
  • token_map: Font-weight framework-builtin (weight/* → font-bold etc.) (f8972fd)
  • get_design_context: Per-instance textOverrides on deduped instances (f55d3d1)
  • serializer: Surface per-side stroke weights for mixed borders (d34a2b6)
  • profile: Svg-handling detection + icon import/use guidance (838043b)
  • scan: Gitignore-aware shared repo walker (e47ca2a)
  • screenshot: Flag empty exports (clipped/off-canvas/hidden nodes) (9301e89)
  • write: Tier 1 write-surface hardening — typography, per-side strokes, variable CRUD, child layout (0047d72)
  • write: Add combine_as_variants — combine COMPONENTs into a COMPONENT_SET (07aa2bb)
  • codegen: Gradient + image object-fit fidelity (close two silent grounding misses) (0b9fae7)
  • codegen: StrokeAlign semantics (close the application-side miss behind Framelink #386) (893ac03)
  • grounding: Surface auto-layout to get_design_context + GRID auto-layout (read+write) (fcb4028)
  • plugin-ui: Slim the panel, add "Run in background", fix Context overflow (0bc5c1d)
  • grounding: Icon_map — reuse curated .svg icons + color contract (28405b2)
  • grounding: Get_variable_defs emits hex for COLOR values (30a0aec)
  • grounding: Surface per-corner radius, blendMode, mask in read path (cf8f07d)
  • write: Per-corner set_corner_radius + new set_mask tool (7437460)
  • Derive displayed versions from the single product version (ee176fa)
  • mcp: Accept a Figma URL or dash-form node id in id args (e18cb14)
  • mcp: Bind a color variable to a fill/stroke paint (dfd740b)
  • skill: Add figma-build skill + code_to_figma prompt (write direction) (01e5d11)
  • mcp: Delete a variable collection by id (ac5d532)
  • plugin: Show the payload fed to the LLM in the Activity tab (12f6734)
  • plugin: Tidy payload row + use vueuse clipboard (53d44ba)
  • plugin: Copyable diagnostic bundle for bug reports (efc87a5)
  • mcp: Export a node or page to a single PDF file (4edac47)
  • get_design_context: Warn on multi-breakpoint selection to keep mixed codegen grounded (adf2505)
  • Keep the connection alive through heavy operations (busy ≠ dead) (7ee504d)
  • get_design_context: Surface text typography so codegen stops eyeballing it (a0952ec)

🔥 Performance

  • component-map: Resolve set name from grounding, drop doc-wide scan (0640441)
  • scan: Prune ignored dirs at the glob level, not after (d42264b)
  • plugin: Skip full serialization for minimal/compact get_design_context (1d8f623)

🩹 Fixes

  • m2: Set_variable_value — type the polymorphic value so it isn't stringified (55a9ea4)
  • design-context: Emit node style refs before children (1025117)
  • hook: Scope format-on-edit to files inside the project root (1ac4f7f)
  • m3: A/B-driven accuracy fixes for component_map + token_map (3440cac)
  • component-map: Degrade gracefully when get_local_components times out (84ab5fa)
  • relay: Session affinity for multi-call tools (9b0042b)
  • component-map: Merge a component across sibling frames into one usage (96c6d30)
  • routing: Visibility-gated activity + no-selection scope guards (af164f7)
  • scan: Single-extension profiles (Vue/Svelte) silently scanned nothing (0070a84)
  • routing: A reconnect must not steal routing from the active file (eab1c42)
  • token_map: Emit var() ref on non-Tailwind projects, not a bogus utility (300efb7)
  • variables: Parse stringified VARIABLE_ALIAS for FLOAT vars (go #22 last edge) (92de535)
  • mcp: Move @figwright/shared to devDependencies (e731482)
  • plugin: Auto-reconnect when plugin opens before the relay server (fa8ac9a)
  • plugin: Recover clipped/off-canvas exports via useAbsoluteBounds (24dc2d6)

💅 Refactors

  • m2: Registry guards + honest batch rollback (post-M2 retrospective) (44cf086)
  • server: Tool-spec helper + first reads to Zod (Phase 1) (766c6ff)
  • server: Convert simple read tools to Zod specs (Phase 1) (f33a056)
  • server: Convert remaining read tools to Zod specs (Phase 1) (b561c1b)
  • server: Convert server-local tools to Zod specs (Phase 1) (7c21003)
  • server: Convert all write tools to Zod specs (Phase 1 complete) (c4acdba)
  • server: Cut over to McpServer (registerTool/registerPrompt) (72824a7)
  • server: Move schema-derivation helper out of src to test-only (f211529)
  • Convert shared + plugin + election layer to Zod (387015e)
  • m3: Hardening review — SFC props, CSS-var token grounding, cleanup (ffd44aa)
  • plugin-ui: Adopt vueuse composables in App.vue (83a2531)
  • repo: Rename packages/server → packages/mcp (6e31a91)
  • Move skills to repo root for skills.sh discovery (3f28078)
  • skill: Split figma-codegen into a router + references (3587be3)
  • skill: Split figma-build into a router + references (7770218)

📖 Documentation

  • plan: Record Framelink borrowed techniques for M3 (1f49745)
  • skills: Rewrite figma-codegen to orchestrate the shipped M3 tools (f12b502)
  • skills: Figma-codegen drills repeated unmapped components (eaba36c)
  • server: Correct spec bridge comments + record McpServer migration done (e590564)
  • codegen: Tell codegen to read deduped instances' textOverrides (faf4cdc)
  • codegen: Responsive-by-default + breakpoint-discovery guidance (316266d)
  • codegen: Full-bleed pages need a body reset — conditionally (6f3b313)
  • codegen: The conditional reset must be complete, not body-only (54a3bb9)
  • plan: M5 re-evaluation — converge visual verification to skill self-verify, cut 2 screenshot tools (388d8e3)
  • codegen: Large-design section-by-section + ground-every-section guidance (82adee5)
  • Add AGENTS.md (project guide) + CLAUDE.md pointer (87cebf2)
  • skill: Broaden figma-codegen trigger description (8540a27)
  • skill: Note delete_variable_collection in author-design-system (538ce08)
  • skill: Prefer min-w over hard width for fixed-width hug controls (a3134eb)
  • skill: Treat a same-size sibling artboard as an overlay state, not a fixed-width sidebar (c06c222)
  • skill: Ground each breakpoint's own values for mixed desktop/mobile selection (0b3f9d5)
  • mcp: Note cornerRadius binds all four corners in bind_variable_to_node (0335503)
  • Use 2026-present in license copyright (c04a902)
  • figma-codegen: Translate absolute positioning + constraints in grounding (1d9ee11)

🏡 Chore

  • Pin all latest dependency specifiers to caret ranges (7976012)
  • Align @types/node to the Node 24 major (^24.12.4) (557dd83)
  • Auto-format/lint edited files via PostToolUse hook (9e88144)
  • Move format-on-edit hook script under .claude/hooks/ (ddf2c4c)
  • server: Add zod dep for McpServer migration (Phase 0) (66ef4df)
  • Remove routing/timeout debug instrumentation (c78e939)
  • format: Bump oxfmt 0.51→0.53 and reformat the tree (197f52d)
  • Stop tracking PLAN.md (internal dev doc, not for publication) (ce9bff8)
  • skills: Vendor skill-creator under .claude/skills (eeeb502)
  • skills: Vendor create-readme skill under .claude/skills (b501f52)
  • rename: Figma-mcp-relay → figwright (cead534)
  • rename: Point .mcp.json at ~/Desktop/figwright (2c366a9)
  • rename: Plugin UI color tokens relay-_ → fig-_ (4618dd9)
  • mcp: Use repo-relative path in .mcp.json (262af53)
  • knip: Make knip pass so it can gate CI (0a158ac)
  • knip: Drop redundant config flagged by knip's own hints (7e93814)
  • lint: Clear the remaining oxlint warnings (0ceda52)
  • Tidy local-only files into .local/ (bcd1139)
  • Set author/copyright to Roya (395f7e8)
  • Remove lefthook git hooks (3be457d)
  • Upgrade dev dependencies and quiet new oxlint warning (69f7323)
  • skills: Mirror skills/ into .claude/skills via postinstall instead of symlinks (11e6ca0)
  • Upgrade pnpm to 11.8.0 and node to 24.17.0 (e4cc32c)
  • vscode: Run oxc format and fixAll on save (7387524)

🎨 Styles

  • Format sync-skills.mjs with oxfmt (62cf9e8)

🤖 CI

  • Add CI workflow (typecheck, lint, knip, build, test) (fda58c5)
  • Validate PR titles follow Conventional Commits (99a546c)
  • Add format:check gate; ignore vendored skills in oxfmt config (9c9070a)
  • Add release pipeline (changelogen + OIDC npm publish) (ba3985f)
  • Product-level CHANGELOG at root + ship the Figma plugin as a release asset (94a905a)
  • Validate publish correctness with publint (via tsdown) (8836af5)

❤️ Contributors