Commit graph

2483 commits

Author SHA1 Message Date
Danila Poyarkov e414cf77ab fix(text): align font status with prepared roots 2026-09-01 13:24:35 +03:00
Danila Poyarkov 6d17b92a56 refactor(text): share graph font preparation 2026-09-01 13:24:35 +03:00
Danila Poyarkov 35972606a3 fix(cli): satisfy font diagnostics checks 2026-09-01 13:24:35 +03:00
Danila Poyarkov 7c67390707 fix(cli): prepare fonts across complete documents 2026-09-01 13:24:35 +03:00
Danila Poyarkov 41f445ebab fix(cli): prepare fonts for RPC diagnostics 2026-09-01 13:24:35 +03:00
Danila Poyarkov 73cb945cbc feat(cli): report document font availability 2026-09-01 13:24:35 +03:00
Danila Poyarkov 751be1198c feat(cli): report document font availability 2026-09-01 13:24:35 +03:00
Danila Poyarkov 6f71448032
Merge pull request #551 from 0xemc/fix/instance-fill-override-roundtrip
fix(fig): live edits to instance-descendant fields discarded on save
2026-09-01 10:31:41 +03:00
Danila Poyarkov 3e47b14e59 fix(fig): preserve text and stroke overrides 2026-09-01 04:57:43 +03:00
Danila Poyarkov 4eb9694d58 fix(fig): clean up consolidated instance override fix 2026-09-01 02:01:05 +03:00
Danila Poyarkov 2e49ebc6d5 fix(scene-graph): export instance sync fields 2026-09-01 01:29:03 +03:00
Danila Poyarkov fcbd938b80 fix(fig): consolidate instance override propagation 2026-09-01 01:07:19 +03:00
Danila Poyarkov 29aba9e953 fix(fig): restore instance constraint propagation 2026-09-01 01:04:31 +03:00
Danila Poyarkov f1ae826412 fix(fig): record applied instance override fields 2026-09-01 01:04:22 +03:00
Danila Poyarkov 01353e7ca7 fix(scene-graph): preserve text instance overrides 2026-09-01 01:04:22 +03:00
Danila Poyarkov 7e325e4072 fix(scene-graph): share instance sync fields 2026-09-01 01:04:22 +03:00
Danila Poyarkov 07e4cb2438 Merge remote-tracking branch 'origin/master' into consolidate-pr551-next 2026-09-01 01:02:35 +03:00
Danila Poyarkov be942783dc
refactor(i18n): migrate app copy to domain namespaces
* refactor(i18n): migrate app copy to domain namespaces

- Replace the monolithic dialogs catalog with 16 flat product-domain catalogs
- Preserve every translated locale value while moving all 356 messages
- Expose narrow domain composables and retain useI18n as a compatibility aggregate
- Document namespace ownership and admission rules

* fix(i18n): complete migrated locale coverage

- Translate exposed MCP automation, code editor, credential, and media placeholders
- Restore missing German, Spanish, French, Italian, Polish, and Russian diacritics
- Preserve technical product terms and interpolation placeholders

* fix(i18n): polish remaining locale wording

- Correct the mixed-language German code source label
- Preserve stock_photo and Pexels semantics in German and Polish
- Improve Italian MCP and code-editor grammar
- Use the standard Russian term for MCP endpoint

* fix(i18n): migrate diagnostics copy after rebase

- Add a diagnostics domain for newly merged usage and telemetry settings
- Keep settings navigation labels in the settings domain
- Preserve translated diagnostics catalogs from current master

* style(app): format rebased settings components

* refactor(i18n): simplify domain message keys

- Remove redundant domain prefixes from settings, diagnostics, automation, and integration catalogs
- Move feature-specific actions out of the common namespace
- Preserve current-master language picker and diagnostics copy across every locale
- Update consumers to concise semantic keys

* fix(app): preserve font and updater contracts

- Restore browser and abort-aware font loading from current master
- Remove the unused parameter helper from common messages
- Update updater tests for semantic domain keys

* fix(i18n): finish semantic diagnostics access

* refactor(i18n): derive active MCP status message

* fix(i18n): preserve rendering settings after rebase

- Add a rendering domain for tiled canvas preferences
- Preserve the current-master language and rendering settings UI
- Move every translated renderer preference out of the retired dialogs catalog

* fix(i18n): polish reviewed locale semantics

* test(i18n): enforce translation completeness baseline

- Fail on interpolation placeholder drift and suspicious mixed-script values
- Reject new source-identical translations while tracking existing debt explicitly
- Report translated-message coverage for every supported locale
- Require baseline cleanup when existing placeholders are translated

* refactor(i18n): baseline reviewed mixed-script messages

- Replace brittle product-vocabulary exceptions with Unicode script detection
- Track reviewed mixed-script messages by stable locale and message identity
- Reject new entries and stale baseline debt without hardcoded terminology

* fix(fig): resolve relocated stroke test helper
2026-08-31 23:54:14 +03:00
Danila Poyarkov 61e9951b12 test(fig): place stroke import coverage with current imports 2026-08-31 23:12:17 +03:00
Danila Poyarkov ebe75ea631
Merge pull request #619 from open-pencil/fix/581-intervals-array-import
fix(canvas): normalize imported dash patterns
2026-08-31 22:54:56 +03:00
Danila Poyarkov 2e98ab04a8 fix(canvas): normalize imported dash patterns 2026-08-31 22:25:48 +03:00
Danila Poyarkov 8f1e38b9b0
Merge pull request #615 from Ed-Key/feat/arrow-stroke-caps
feat(canvas): render arrow stroke caps on lines and open vectors
2026-08-31 21:26:44 +03:00
Danila Poyarkov 3702f9c93a fix(canvas): include arrow caps in bounds and controls 2026-08-31 21:25:38 +03:00
Ed-Key 9b48e47329 feat(canvas): render arrow stroke caps on lines and open vectors
ARROW_LINES and ARROW_EQUILATERAL stroke caps were accepted by the schema
and round-tripped from .fig files, but the renderer mapped every cap to
Butt, so imported arrows lost their heads and arrows could not be drawn
locally.

Add a pure arrow-cap geometry module to scene-graph (open-endpoint
collection with per-vertex cap overrides, weight-scaled head geometry)
and draw heads in the stroke color for LINE nodes and open VECTOR
centerline strokes, including the dashed-centerline path. Fold the head
reach into strokeOverflow and the node picture margin so heads are not
cropped by visual bounds, caches, or culling. Round-trip per-vertex
stroke caps through the .fig vector style override table so one-ended
Figma arrows import correctly. Expose both caps in the stroke inspector
cap picker with localized labels, and cover the renderer with an
arrow-stroke-caps Playwright canvas snapshot.

Claude-Session: https://claude.ai/code/session_012zjEbyLSBYyPpJP4fu1XNB
2026-08-31 21:25:38 +03:00
Danila Poyarkov c8ccd8c5a1
Merge pull request #617 from open-pencil/issue-607-debug-probe
fix(text): preserve committed WebView input
2026-08-31 21:21:16 +03:00
Danila Poyarkov 66c8ae6fa5 fix(text): preserve committed WebView input 2026-08-31 21:06:50 +03:00
Danila Poyarkov bdccf2dfe7
Merge pull request #605 from phoenixweiss/codex/fig-component-property-guid-stability
test(fig): compare instance swap targets semantically
2026-08-31 20:37:15 +03:00
Danila Poyarkov 24647675ad fix(fig): preserve roundtrip options type 2026-08-31 20:31:25 +03:00
Danila Poyarkov e5f440d8be fix(fig): guard component property definitions 2026-08-31 19:20:03 +03:00
Danila Poyarkov c41e268948
Merge pull request #614 from open-pencil/fix/613-component-property-import
fix(fig): tolerate incomplete component property assignments
2026-08-31 18:58:04 +03:00
Danila Poyarkov e3fed2374f fix(fig): validate component property definitions 2026-08-31 18:56:23 +03:00
Danila Poyarkov 9da04f03ce fix(fig): use named assignment type guard 2026-08-31 16:51:08 +03:00
Danila Poyarkov 40b56dab5e fix(fig): guard unresolved component property swaps 2026-08-31 16:50:45 +03:00
Danila Poyarkov b0e9995e4c fix(fig): tolerate empty component property assignments 2026-08-31 16:31:42 +03:00
Danila Poyarkov 81454fe1f7 fix(fig): compare component properties structurally 2026-08-31 16:24:54 +03:00
Danila Poyarkov 160452448f Merge remote-tracking branch 'origin/master' into sync-pr605 2026-08-31 16:14:33 +03:00
Danila Poyarkov 5689eccc0c
Merge pull request #612 from open-pencil/fix/589-published-packages-windows-mcp
fix(mcp): repair published exports and Windows roots
2026-08-31 15:06:18 +03:00
Danila Poyarkov 716e40f0fa
Merge pull request #611 from open-pencil/figma-component-property-api
feat(figma-api): expose component property accessors
2026-08-31 15:05:51 +03:00
Danila Poyarkov cf56b49278 fix(release): match nested wildcard exports 2026-08-31 15:01:41 +03:00
Danila Poyarkov b7136eea15 fix(release): validate wildcard export targets 2026-08-31 15:01:41 +03:00
Danila Poyarkov a7e5abd4ab fix(release): type package export manifests 2026-08-31 15:01:41 +03:00
Danila Poyarkov 008dd44eac fix(release): type publish export filtering 2026-08-31 15:01:41 +03:00
Danila Poyarkov 0dd60e2a39 fix(release): strip source conditions from publish manifests 2026-08-31 15:01:41 +03:00
Danila Poyarkov b88362dc10 Revert "fix(mcp): remove invalid package export conditions"
This reverts commit 44226baa3198aeabcec49092a94ff26cb24f3842.
2026-08-31 15:01:41 +03:00
Danila Poyarkov 11f0ad6cc3 fix(mcp): remove invalid package export conditions 2026-08-31 15:01:41 +03:00
Danila Poyarkov 5c8d83ce79 fix(mcp): restore workspace package manifests 2026-08-31 15:01:41 +03:00
Danila Poyarkov a5c6a1e3ab fix(mcp): repair published exports and Windows roots 2026-08-31 15:01:41 +03:00
Danila Poyarkov 0b0d4f2774 test(figma-api): modernize type assertions 2026-08-31 14:54:03 +03:00
Danila Poyarkov b66d13c098 fix(figma-api): keep compatibility checks lintable 2026-08-31 14:36:18 +03:00
Danila Poyarkov 71423fb0f2 test(figma-api): assert component property types 2026-08-31 14:14:53 +03:00