Commit graph

2725 commits

Author SHA1 Message Date
Danila Poyarkov dceae73c6e perf(text): preserve coverage across paragraph eviction
Keep successful glyph coverage weakly owned by source nodes rather than repeating shaping when dense scans evict native paragraphs. Preserve font/input invalidation and bound pending ID invalidations without increasing native cache limits.

Add a dense-preview regression with exact raster comparison and count paragraph builds across all canvas renderers. The previous compiled build rebuilds 3,600 paragraphs over three held frames; the fixed build rebuilds none.
2026-09-15 16:32:07 +03:00
Danila Poyarkov f4f3736034 test(native): open a document before editor fixtures
The Home tab exposes an editor store without a mounted canvas or text editor. Open New design during fixture setup and await actual editor readiness before populating nodes or starting text input. Reuse already-open documents and keep WebDriver input assertions unchanged.

Full check passes. Native WebKit text input, fixture reuse and Settings checks pass (4 tests); Windows-only layer dragging skips on macOS. Upstream Tauri service bridge/teardown warnings remain; this does not claim IME or native clipboard coverage.
2026-09-15 14:43:31 +03:00
Danila Poyarkov c6e475daac test(geometry): allow floating-point bounds roundoff
Compare analytic bounds numerically after verifying equivalent pivot compositions against the old implementation and an independent scalar oracle. Preserve exact renderer pixel comparisons and leave production transforms unchanged.
2026-09-15 13:50:49 +03:00
Danila Poyarkov 8defd2c676 fix(renderer): rasterize settled scenes at viewport origin
Skia analytic coverage depends on framebuffer dimensions as well as raster origin. Replay existing retained subtree pictures into the live viewport at settlement, while preserving overscan images for navigation. Keep settlement pending until the viewport pass and report the presentation path accurately. No additional viewport cache is allocated.

Preserve exact held/released assertions and cover odd/even/fractional pans at DPR 1, 1.25, 1.5 and 2. Verify native picture and backing identity reuse; update one pixel in the existing baseline only after proving equality with direct rendering.

Validation: full check, 735 scoped unit tests, and 58 targeted browser tests pass. The targeted set still excludes the previously classified paint-field-width baseline. An additional tiled large-blur test fails identically on parent d16400b3e, with byte-identical actual PNGs. Broader release acceptance remains separate.
2026-09-15 13:25:43 +03:00
Danila Poyarkov d16400b3e6 feat(editor): checkpoint live interaction improvements
Unify preview-aware transforms across scene drawing, labels, selection and input. Give live property and creation edits explicit preview ownership, preserve cancellation and one-step undo, and reuse bounded text preparation resources.

Include retained device-grid handling, worktree HMR coverage, and nested/reflected interaction regressions in this cohesive progress checkpoint.

Validation: full check passes; 734 scoped unit tests and 53 targeted browser tests pass. This is NOT merge-ready: the unchanged exact nested filled-section held/released regression still fails with 63 differing pixels (maximum channel delta 5/255). The browser pass count excludes that separately run failure and the previously classified paint-field-width baseline. Raster-origin investigation and broader acceptance remain outstanding.
2026-09-15 11:36:17 +03:00
Danila Poyarkov a9bf1b3b69
Merge pull request #693 from open-pencil/announcement-system
feat: assemble an editable demo document
2026-09-14 09:11:07 +03:00
Danila Poyarkov 9973bd2f18 test: replace legacy demo snapshots with current coverage 2026-09-14 01:20:56 +03:00
Danila Poyarkov 4194684765 fix: honor ruler visibility on the overlay canvas 2026-09-14 01:12:26 +03:00
Danila Poyarkov 31d886ca27 fix: preserve replacement documents after demo preparation 2026-09-14 01:12:26 +03:00
Danila Poyarkov e0012fb165 Merge remote-tracking branch 'origin/master' into demo-final-review 2026-09-14 01:10:54 +03:00
Danila Poyarkov 5cc6fa70ed
Merge pull request #695 from open-pencil/browser-history-contracts
fix: refresh Undo and Redo command availability
2026-09-14 00:59:01 +03:00
Danila Poyarkov 2ff9c34d17 Merge remote-tracking branch 'origin/master' into browser-history-contracts 2026-09-14 00:46:59 +03:00
Danila Poyarkov 21ecce1f38 feat: assemble an editable demo document
Compose announcement, typography, and paint workbenches with native linked components and editable effects. Preserve the original examples on a reference page.

Wait for the canvas and existing fonts before layout, fit demo pages on first visits, and preserve user viewports thereafter.
2026-09-14 00:36:53 +03:00
Danila Poyarkov e398f41df0
Merge pull request #691 from open-pencil/review-note-proof
fix: preserve Design JSX instance sizing through component sync
2026-09-14 00:36:51 +03:00
Danila Poyarkov 3ea63ad09f fix: refresh Undo and Redo command availability
Publish committed history changes independently of scene mutations so menus observe history recorded after the final draw. Align the assets regression with the documented top-left default.
2026-09-14 00:25:36 +03:00
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 3df430f036
Merge pull request #688 from open-pencil/jsx-component-properties
feat: author scoped component properties in Design JSX
2026-09-14 00:24:50 +03:00
Danila Poyarkov 7b16881e03 fix: reject ambiguous variant property names 2026-09-14 00:14:09 +03:00
Danila Poyarkov 27e3bc3023 test: group JSX component contracts by domain 2026-09-14 00:01:41 +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 e98fcd2848 Merge remote-tracking branch 'origin/master' into jsx-component-properties 2026-09-13 23:27:22 +03:00
Danila Poyarkov 25cc522f12
Merge pull request #687 from open-pencil/native-authoring
refactor: share design authoring guidance across agents
2026-09-13 23:27:15 +03:00
Danila Poyarkov 320b0db2c5 Merge remote-tracking branch 'origin/master' into native-authoring 2026-09-13 21:31:09 +03:00
Danila Poyarkov 788d679564
Merge pull request #690 from open-pencil/release-markdown-update
build: upgrade paired Markdown packages to beta.5
2026-09-13 21:31:04 +03:00
Danila Poyarkov 3a2c7ec46f fix: resend authoring context to replacement ACP sessions 2026-09-13 21:27:32 +03:00
Danila Poyarkov d194417a97 build: upgrade paired Markdown packages to beta.5 2026-09-13 21:25:08 +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 ccbae39b3c style: sort authoring reference dependencies 2026-09-13 21:06:47 +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 7aabf00687
Merge pull request #686 from open-pencil/scalar-variable-bindings
feat: bind Design JSX scalar props to variables
2026-09-13 21:02:52 +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 11cef2cc6b Merge remote-tracking branch 'origin/master' into scalar-variable-bindings 2026-09-13 20:26:59 +03:00
Danila Poyarkov 25ab4d9baf
Merge pull request #685 from open-pencil/docs-binding-provider
docs: update the binding provider example
2026-09-13 20:26:16 +03:00
Danila Poyarkov 061d9d35ec Merge remote-tracking branch 'origin/docs-binding-provider' into scalar-variable-bindings 2026-09-13 20:23:37 +03:00
Danila Poyarkov a3caf63ed8 Merge remote-tracking branch 'origin/master' into docs-binding-provider 2026-09-13 20:20:03 +03:00
Danila Poyarkov 5676fc26e7
Merge pull request #689 from open-pencil/conditional-ci
ci: validate docs-only PRs without running test suites
2026-09-13 20:19:58 +03:00
Danila Poyarkov 70fbbddf7d docs: compare resolved binding values in provider state 2026-09-13 20:13:34 +03:00
Danila Poyarkov c2ab9cc621 ci: pin Bun setup in routing and result jobs 2026-09-13 20:11:27 +03:00
Danila Poyarkov d5b7834b7f ci: route documentation changes through a required result gate 2026-09-13 19:53:58 +03:00
Danila Poyarkov becc4f7432 feat: author scoped component properties in Design JSX 2026-09-13 19:27:06 +03:00
Danila Poyarkov f419908621 Merge remote-tracking branch 'origin/master' into docs-binding-provider 2026-09-13 19:10:43 +03:00
Danila Poyarkov 863b1e6c6a refactor: share design authoring guidance across agents 2026-09-13 19:08:27 +03:00
Danila Poyarkov 4e9ef085a6
Merge pull request #683 from open-pencil/release-ui-polish
fix(ui): align Home controls and theme the Code editor
2026-09-13 19:08:25 +03:00
Danila Poyarkov 07f4ae9291 Merge remote-tracking branch 'origin/docs-binding-provider' into native-authoring 2026-09-13 19:06:56 +03:00
Danila Poyarkov 98e0ba9563 feat: bind Design JSX scalar props to variables 2026-09-13 19:06:20 +03:00