Commit graph

2796 commits

Author SHA1 Message Date
Danila Poyarkov b70a4a2c52 docs: add official dependency documentation for agents
Direct agents to verified documentation indexes and version-matched APIs before implementing dependency integrations. Remove instructions for disabled Copilot.
2026-09-16 17:25:15 +03:00
Danila Poyarkov 6358fd103c
fix(editor): stabilize live edits, gestures, and retained rendering (#699) 2026-09-16 17:19:17 +03:00
Danila Poyarkov 4c1e97240f test: align label cache contracts with component members 2026-09-16 16:14:12 +03:00
Danila Poyarkov 8fdfb7b648 docs(testing): define source-owned test architecture
Make package-local coverage the canonical destination, with explicit app, cross-owner integration, E2E and native exceptions. Document support ownership, bounded browser adapters and domain-by-domain migration without changing runner discovery.

Keep fixture reuse assertions inside the native input scenario instead of counting fixture housekeeping as separate platform acceptance.
2026-09-16 15:28:47 +03:00
Danila Poyarkov f88a66fced chore: merge master into live-editor-regressions
Preserve brand-asset preparation and the worktree-aware Vite server configuration.
2026-09-16 15:06:30 +03:00
Danila Poyarkov 964d25215b fix(effects): keep undo snapshots free of Vue proxies
Store scrub snapshots in a shallow ref so undo restores plain graph data and subsequent effect edits remain cloneable.
2026-09-16 14:47:18 +03:00
Danila Poyarkov 5b151ffc1e fix(canvas): include component-set members in label catalog 2026-09-16 14:13:34 +03:00
Danila Poyarkov ba519c04c0 test(clipboard): open a document in the Tauri fixture
Desktop mode starts on Home. Create a document before waiting for the canvas so routing assertions exercise clipboard behavior instead of timing out during setup. Keep this simulated-browser coverage distinct from native clipboard acceptance.
2026-09-16 14:00:30 +03:00
Danila Poyarkov 73fc732d20 test: honor the configured browser test origin
Use the configured baseURL for manually created pages and same-origin DOM/CSS imports. Repair the hover helper serialized argument uncovered once its startup reached the intended server. Preserve all existing pixel and behavior assertions.
2026-09-16 12:46:13 +03:00
Danila Poyarkov b9e435909d test(canvas): guard text against backing render history
Attribute the historical 84-pixel residual to fractional overscan backing history with controlled old/new origin and direct-first probes. Preserve the original paint sequence in an exact-pixel regression with glyph and ink guards for both emulated color gamuts. No runtime or tolerance changes.
2026-09-16 12:30:19 +03:00
Danila Poyarkov 42225c604a
feat: refresh branding with generated platform icons (#707)
* feat: refresh branding with generated platform icons

Keep the approved mark and optical micro master as the source of truth. Generate web, documentation, and native assets at their owning build boundaries instead of storing raster variants or linking web icons to desktop output.

* fix: refine small brand marks and loading artwork

* feat: adopt blue editing-handle brand mark

* feat: refine teal branding for light and dark themes

* feat: apply ivory tiles across brand surfaces

Use edge-to-edge web tiles with a larger mark and optical micro favicons. Preserve native spacing and platform-owned maskable/touch cropping. Address review feedback on story props, native dimensions, and brand test type checking.

* test: allow cold npm startup in packaging fixture

CI hit Bun's five-second default while running npm pack --dry-run. Give this integration test a scoped 30-second budget without changing production timeouts or other tests.
2026-09-16 11:54:07 +03:00
Danila Poyarkov 9eea1beb2a fix(vue): detach nested selection projection values
Top-level selection copies were safe, but nested fill and child arrays still aliased graph data. Clone initial node values and only the changed preview fields so mutable consumers cannot bypass graph tracking or cancellation. Preserve field-granular updates and paused subscriptions.
2026-09-16 10:05:44 +03:00
Danila Poyarkov ae5b8c6c04 test(canvas): align visual oracles with ruler-free fixtures
The stored arrow and blur images still included rulers despite explicit no-rulers fixtures. Inspect and update only these two oracles, preserving the arrow budget and exact settled reversal comparison. Check reversal parity before comparing the stored blur image so a stale oracle cannot hide that contract.
2026-09-16 03:45:34 +03:00
Danila Poyarkov c59879105c fix(editor): close preview and history lifecycle gaps
Discard provisional undo batches on graph replacement without replaying old document edits or clearing committed history. Reset failed preview controllers and refresh selected projections for plain-state SDK consumers while pausing inactive subscriptions.

Cover the verified review findings with negative controls, fix static Vue host insertion, and preserve the shared exact renderer oracle with its independently verified sRGB selection color.
2026-09-16 03:36:44 +03:00
Danila Poyarkov e1206848b1 test(canvas): load painted-text font fixtures explicitly
Use a test-owned family with bundled Regular and SemiBold faces so the nonblank raster oracle does not depend on earlier tests loading Inter 600. Keep exact pixel equality and assert font readiness before painting.
2026-09-16 03:27:10 +03:00
Danila Poyarkov 3220fd1798 fix(canvas): preserve paint geometry and color fidelity
Use native paragraph foreground paints instead of independent outline layout, keeping mutable shader paragraphs transient. Render transformed diamond gradients with a retained, owned runtime program and align Skia surface encoding with the browser drawing buffer.

Add independent pixel and ownership regressions and correct only the reviewed text, gradient and FIT-image visual oracles. Existing arrow/blur snapshot failures and the separate 84-pixel comparison remain unresolved; no tolerances are relaxed.
2026-09-16 02:57:56 +03:00
Danila Poyarkov c361ec3c87 fix(canvas): preserve path text with loaded fonts 2026-09-16 00:59:26 +03:00
Danila Poyarkov 2e66792c59 chore: merge master into live-editor-regressions 2026-09-16 00:14:31 +03:00
Danila Poyarkov 11f9f1b57e fix(types): align Vue fallback declarations
The app and SDK ambient SFC declarations disagreed on indexed props. SDK-first declaration order reproduced all twelve Storybook default-argument errors. Use the same opaque fallback and compile existing stories under both declaration orders as a regression check.
2026-09-15 23:59:28 +03:00
Danila Poyarkov 9d21b3e17a
docs: refresh SDK and workflow guides 2026-09-15 23:43:01 +03:00
Danila Poyarkov 12282fbc84 chore: merge master into docs/current-workflows 2026-09-15 23:37:12 +03:00
Danila Poyarkov a4c3e803f6
docs: curate unreleased changelog 2026-09-15 23:37:08 +03:00
Danila Poyarkov 6a4781c7ab chore: merge master into docs/changelog-release-audit 2026-09-15 23:29:15 +03:00
Danila Poyarkov 9dd5359a0a
ci: keep AI disclosure out of co-author credits (#706) 2026-09-15 23:29:10 +03:00
Danila Poyarkov 9d89b6a7f5 docs: describe the imported dash rendering fix 2026-09-15 23:26:18 +03:00
Danila Poyarkov 53400d1089 chore: merge master into ci/ai-attribution-policy 2026-09-15 23:23:26 +03:00
Danila Poyarkov 27d1d9ca33
refactor: consolidate Playwright projects (#702) 2026-09-15 23:23:22 +03:00
Danila Poyarkov 3b4fdeb623 fix(ci): recognize bare AI co-author addresses 2026-09-15 23:22:21 +03:00
Danila Poyarkov 89672abeab docs: distinguish recovery settings from snapshot actions 2026-09-15 23:19:30 +03:00
Danila Poyarkov 8df4cb4559 docs: clarify recovery cleanup and browser font scope 2026-09-15 23:19:29 +03:00
Danila Poyarkov 2c596173d8 chore: merge master into refactor/playwright-projects 2026-09-15 23:17:05 +03:00
Danila Poyarkov cc9e6b073c
fix(ci): classify package READMEs as documentation (#705) 2026-09-15 23:15:11 +03:00
Danila Poyarkov 2eef5610d8 ci: keep AI disclosure out of co-author credits
Welcome AI-assisted contributions while reserving co-author trailers for human credit. Reuse commitlint and Git trailer parsing to reject known assistant identities in new commits without altering existing history or legitimate credits.
2026-09-15 23:12:44 +03:00
Danila Poyarkov b458e3c3ae perf(canvas): reuse labels with shared font fallback
Acquire section paragraphs once, reuse proven fitting layouts, and bound retained text with borrowed native-resource lifetimes. Share document text family selection and Arabic/CJK coverage resolution rather than preserving missing glyphs. Validate exact zoom parity with real existing font fixtures.
2026-09-15 23:08:53 +03:00
Danila Poyarkov 9e45ccae32 fix(ci): classify package READMEs as documentation 2026-09-15 23:06:06 +03:00
Danila Poyarkov d354c990ee docs: refresh SDK and workflow guides
Document current public contracts and implemented workflows, correct invalid editor and slot examples, and distinguish supported font, recovery, and library behavior from remaining gaps.
2026-09-15 22:52:41 +03:00
Danila Poyarkov 2afdacfdc3 docs: curate unreleased changelog
Compare release notes with v0.14.0 and the final public behavior. Add missing migration requirements and documented outcomes, consolidate overlapping notes, and remove internal or superseded details without changing historical releases.
2026-09-15 22:33:18 +03:00
Danila Poyarkov 9be2e76bf6 refactor: consolidate Playwright projects 2026-09-15 22:10:56 +03:00
Danila Poyarkov 445b85ddc0
ci: validate PR titles and sharpen review guidance (#701) 2026-09-15 21:49:16 +03:00
Danila Poyarkov 8cd82e1617 chore: hide review status chatter and test generation prompts 2026-09-15 21:43:04 +03:00
Danila Poyarkov 981d403504 docs: keep PR writing concise and reduce review noise 2026-09-15 21:40:18 +03:00
Danila Poyarkov e40df128e9 ci: validate PR titles and sharpen review guidance 2026-09-15 21:36:09 +03:00
Danila Poyarkov 11baf4f8f5 refactor(canvas): share bounded resource cache bookkeeping
Share indexed recency, count/weight budgets and native disposal across six caches while preserving domain invalidation and eviction policies. Keep pools, weak memos and dependency-owned resources separate.\n\nAccount for effect pixels incrementally and preserve caller ownership on rejection. Validate disposal, slot reuse, exact integer accounting and unchanged raster output.
2026-09-15 21:28:16 +03:00
Danila Poyarkov 4b5f0da3bc
Merge pull request #700 from open-pencil/build/commitlint
ci: validate PR commits and streamline package verification
2026-09-15 21:19:22 +03:00
Danila Poyarkov 08ba92f748 Merge remote-tracking branch 'origin/master' into build/commitlint 2026-09-15 21:13:25 +03:00
Danila Poyarkov 50fe3d4886
Merge pull request #680 from open-pencil/lint-no-module-mocking
feat(lint): reject low-evidence test and type patterns
2026-09-15 21:11:26 +03:00
Danila Poyarkov 750f5dcde7 fix(ci): preserve phase outcomes when timing reports fail 2026-09-15 21:06:02 +03:00
Danila Poyarkov c56cc4f2eb Merge remote-tracking branch 'origin/master' into lint-no-module-mocking 2026-09-15 20:56:17 +03:00
Danila Poyarkov ed7f3c140d fix(lint): normalize fractional slice bounds 2026-09-15 20:56:17 +03:00
Danila Poyarkov d5a4b9afb5 ci: validate PR commits and streamline package verification 2026-09-15 20:51:33 +03:00