Commit graph

970 commits

Author SHA1 Message Date
Danila Poyarkov e50df9ffda test: cover and document inherited instance dimensions 2026-09-14 00:24:52 +03:00
Danila Poyarkov 4077dcbd44 fix: preserve authored instance sizing through synchronization 2026-09-14 00:24:52 +03:00
Danila Poyarkov 7b16881e03 fix: reject ambiguous variant property names 2026-09-14 00:14:09 +03:00
Danila Poyarkov 0a6ce6e72d fix: validate component property reference scopes
Reject unknown or incompatible references while the owning component definitions are available, including inherited component-set definitions. Keep nested component scopes separate.
2026-09-13 23:57:24 +03:00
Danila Poyarkov 243eaf9626 fix: declare the Core component validation dependency
Declare Valibot in Core so installed artifacts resolve it by package name instead of retaining a workspace-only Bun cache path.
2026-09-13 23:43:07 +03:00
Danila Poyarkov 69703abc77 fix: preserve variant selection with declared set properties 2026-09-13 21:19:34 +03:00
Danila Poyarkov 624c87d31a Merge branch 'native-authoring' into jsx-component-properties 2026-09-13 21:17:22 +03:00
Danila Poyarkov 8dc80b7a33 Merge remote-tracking branch 'origin/master' into native-authoring
# Conflicts:
#	tsconfig.json
2026-09-13 21:03:46 +03:00
Danila Poyarkov b4f119a01b Merge branch 'native-authoring' into jsx-component-properties
# Conflicts:
#	packages/core/src/design-jsx/reference/authoring.md
#	packages/docs/reference/design-authoring.md
#	skills/open-pencil/references/design-authoring.md
2026-09-13 20:55:05 +03:00
Danila Poyarkov 8189c08e0b docs: clarify scalar modes and instance sizing guidance 2026-09-13 20:54:27 +03:00
Danila Poyarkov 6c3faca05c fix: declare supported scalar authoring properties 2026-09-13 20:41:48 +03:00
Danila Poyarkov becc4f7432 feat: author scoped component properties in Design JSX 2026-09-13 19:27:06 +03:00
Danila Poyarkov 863b1e6c6a refactor: share design authoring guidance across agents 2026-09-13 19:08:27 +03:00
Danila Poyarkov 98e0ba9563 feat: bind Design JSX scalar props to variables 2026-09-13 19:06:20 +03:00
Danila Poyarkov ca17b2ac55 chore: update instance linkage with master 2026-09-13 15:03:02 +03:00
Danila Poyarkov de6c0efc00 fix(renderer): preserve proportions of FIT image fills 2026-09-13 13:48:11 +03:00
Danila Poyarkov fbacd1a34a fix(clipboard): embed images with Figma-compatible hashes 2026-09-13 13:22:17 +03:00
Danila Poyarkov 4b47ffefbb fix(clipboard): preserve component dependency references 2026-09-13 12:46:31 +03:00
Danila Poyarkov ff1c157a86 refactor(fig): clarify imported instance reconciliation 2026-09-11 10:30:03 +03:00
Joseph Cumines a4350396a8 fix: prevent unbounded duplication of Figma-imported instance children
Imported instance children arrive with componentId null, so every component edit re-cloned them and compounded per keystroke into runaway memory. Also fixes sibling inversion, extras jumping to front on sync, and stack overflow on self-referential components.

Sync: match unmatched children by name+type forward instead of cloning, guard self/cyclic sync via isDescendant, and keep unmapped extras at the end.

Import and paste: link children positionally at import time so renamed children stay linked. Clipboard paste is scoped to new instances only so existing instances are untouched.
2026-09-11 17:17:10 +10:00
Danila Poyarkov 89b60b9870 fix(clipboard): preserve typed selection data across copy and paste 2026-09-11 02:59:31 +03:00
Danila Poyarkov b436ee4d2b refactor(fig): own Figma clipboard encoding and conversion 2026-09-11 00:36:03 +03:00
Danila Poyarkov c2aec9bacb
fix(packages): make packed exports runtime-safe (#665)
* fix(packages): make packed exports runtime-safe

Make checked-in package manifests truthful for ordinary npm and Bun packing, and verify installed artifacts under both runtimes. Centralize package discovery, artifact inspection, and bounded process execution so CI and release publication share the same contracts.

* ci: build package dependencies before checks

Keep workspace jobs independent of ignored dist output now that public package exports consistently resolve built artifacts.

* ci: preserve source-first engine tests

Keep the broader dependency build for package and repository validation, but retain Core-only setup for engine shards so workspace tests continue exercising source modules.

* ci: build engine shard dependencies

Build the seven workspace packages imported by engine tests in dependency order. This preserves a single module instance per package and keeps each clean CI shard independent of ignored dist output.

* ci: restore established package build boundaries

Keep the original repository and engine job setup, and add installed artifact verification only after the existing package build. Avoid changing which module copies unrelated tests execute.

* fix(packages): preserve Bun source identity in tarballs

Retain source-first workspace resolution and ship complete source trees for Bun conditions. Verify clean installed consumers without overlaying archives, reuse consumer validation before release publication, and repair Bun 1.3.10 private source alias resolution.

* refactor(tooling): reuse package and process utilities

Use pkg-types for manifest I/O and types, tinyexec for subprocess lifecycle, and npm's pack listing for release staging. Preserve archive verification and project release invariants rather than reimplementing package-manager file selection.

* refactor(tooling): resolve workspace roots at CLI boundaries

Discover and validate the nearest workspace once, support explicit roots, and pass roots to reusable checks. Replace subprocess entrypoint dispatch with direct calls and preserve aggregate package diagnostics without adding arbitrary test timeout increases.

* fix(release): enforce publication boundaries

Use root version alignment and shared validated npm output parsing. Enforce the public npm registry policy and test verification-before-publication, mismatched artifacts, and partial retries without registry writes.

* refactor(tooling): validate package responses with Valibot

Express npm pack and manifest identity contracts as schemas, infer parsed output types, and preserve contextual failures and relative-path safety. Document Valibot as the first-party validation convention while retaining Zod at SDK boundaries.

* refactor(tooling): validate manifests at input boundaries

Share Valibot schemas for consumed manifest fields, recursive exports, supported workspace declarations, and npm registry responses. Infer domain types and reject malformed metadata instead of silently skipping it downstream.

* refactor(tooling): group package helpers by ownership

Colocate manifest and workspace contracts, separate npm response parsing from generic JSON handling, and split smoke packing, installation, and runtime checks. Remove the release tarball forwarding shim and consolidate its coverage in package-artifacts. Preserve public tooling exports and CLI commands.
2026-09-09 18:25:22 +03:00
Danila Poyarkov 904c90c329 refactor(settings): extract model profile workflows 2026-09-05 21:25:46 +03:00
Danila Poyarkov e851331c27 fix(ai): recommend latest Kimi and Fable models 2026-09-04 19:03:34 +03:00
Danila Poyarkov f674f8c99d feat(ai): modernize model picker 2026-09-04 18:45:03 +03:00
Danila Poyarkov f5db783797 fix(chat): align vision and model role UX
- Restore attachment inset spacing through the InputGroup theme slot\n- Mark curated multimodal models as Vision-capable and repair saved capability metadata\n- Default Vision to the Design profile when that profile accepts images\n- Use configured Design profiles in the composer instead of raw provider models\n- Surface missing Vision configuration directly in Settings\n\nCo-authored-by: Jason Kneen <jason.kneen@bouncingfish.com>
2026-09-03 19:58:09 +03:00
Danila Poyarkov 9a3d7ca702 fix(ai): require closed stock photo vectors
- Reject open vector networks before contacting the provider\n- Cover closed and open vector targets explicitly\n- Label the stock photo prompt example code fence
2026-09-03 08:46:10 +03:00
Danila Poyarkov 90b608863e fix(ai): validate stock photo targets
- Reject text, line, structural, and populated container targets before provider requests\n- Preserve closed shape and Boolean geometry support without mutating target bounds\n- Cover accepted and rejected node families with focused tests
2026-09-03 08:46:10 +03:00
Danila Poyarkov aa3285f2fc Merge master into shared-mutation-impact 2026-09-02 10:24:51 +03:00
Danila Poyarkov 45c401cbf5
fix(text): preserve cached font coverage and source offsets 2026-09-02 09:26:59 +03:00
Danila Poyarkov 75d555900f fix(editor): preserve mutation parents and font layout 2026-09-02 08:27:52 +03:00
Danila Poyarkov 8a5daa7472 fix(automation): load fonts before scoped layout 2026-09-02 02:09:05 +03:00
Danila Poyarkov 0f070f9f97 refactor(ai): share mutation layout reconciliation 2026-09-02 02:06:08 +03:00
Danila Poyarkov 9e2fd9b471 Merge remote-tracking branch 'origin/master' into shared-mutation-impact 2026-09-02 01:58:51 +03:00
Danila Poyarkov edb608e992 refactor(editor): centralize mutation layout reconciliation 2026-09-02 01:58:50 +03:00
Danila Poyarkov 3caf5c99d9 fix: resolve lint warnings 2026-09-02 01:49:37 +03:00
Danila Poyarkov 8a976c1a0f Merge master into fix/create-component-drops-bound-variables 2026-09-02 01:09:01 +03:00
Danila Poyarkov 270e3c1e57 fix(layout): preserve imported Figma line geometry 2026-09-01 23:10:21 +03:00
Danila Poyarkov 9bb9478833
refactor: replace complex conditional object spreads
- Add a typed, modular custom Oxlint rule package with direct regression coverage
- Replace complex conditional object spreads with explicit construction across the repository
- Preserve all existing custom rule registrations and diagnostic behavior
2026-09-01 19:49:57 +03:00
Danila Poyarkov 9726a4a711
Merge pull request #625 from open-pencil/cli-font-diagnostics
feat(cli): report document font availability
2026-09-01 16:57:03 +03:00
Danila Poyarkov 410d6171e4 fix: close structured override review gaps 2026-09-01 15:23:08 +03:00
Danila Poyarkov 5b074e967d fix: harden structured override decoding 2026-09-01 14:11:19 +03:00
Danila Poyarkov c32ff03d03 fix(cli): include all pages in font diagnostics 2026-09-01 13:41:05 +03:00
Danila Poyarkov e93d3ea6e1 fix: preserve structured overrides across JSON boundaries 2026-09-01 13:35:09 +03:00
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