Commit graph

2780 commits

Author SHA1 Message Date
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
Danila Poyarkov 4bf7357e4b
Merge pull request #697 from open-pencil/mcp-v2-webmcp
feat(mcp)!: migrate to SDK v2 and add browser-native WebMCP
2026-09-15 20:01:12 +03:00
Danila Poyarkov 38e80a4567
Merge branch 'master' into mcp-v2-webmcp 2026-09-15 19:55:49 +03:00
Danila Poyarkov 1a2107b0e1 fix(canvas): keep labels readable and refine section badges
Choose readable opposite edges for rotated frame titles and size badges, sharing placement with hit testing. Render section titles as compact inset badges with contrast-aware borders and hover feedback.
2026-09-15 19:54:04 +03:00
Danila Poyarkov 953171dea1 refactor(settings): finish shared section migration
Use SettingsSection across Settings, including header actions. Delete SettingsSectionHeader, use shared diagnostic groups and retention controls, and remove the model provider's one-off styles.
2026-09-15 19:45:30 +03:00
Danila Poyarkov a91647b852 fix(tools): guard checkpoint identities and share input schemas
Reject replacement of captured node and variable objects, preserving references on rollback. Reuse traversal and comparison schemas and the node-not-found helper to remove the duplication failures without changing tool inputs.
2026-09-15 19:45:30 +03:00
Danila Poyarkov b64d1b593c fix(settings): refresh select labels and unify controls
Render selected labels from reactive options rather than cached menu text. Refine action-row hover and cursor states, add a connection-test icon, simplify media credentials, and share semantic external links across Settings. Cover locale switching and link destinations with focused regressions and Storybook states.
2026-09-15 19:20:30 +03:00
Danila Poyarkov 99e7e1909e refactor(settings): share section layout and polish General
Use a slot-based section for consistent spacing and accessible headings. Align selectors, simplify translated copy, and separate experimental rendering and reload feedback. Keep section states in Storybook.
2026-09-15 18:57:08 +03:00
Danila Poyarkov b0dfde74f5 fix(settings): standardize save feedback and deletion guards
Share persistent alerts, distinguish partial persistence from validation errors, preserve model identity on retries, and apply the store's deletion eligibility before clearing credentials. Document toast, field-error, alert, and Storybook ownership.
2026-09-15 17:53:30 +03:00
Danila Poyarkov 79552129b5 fix(canvas): discard stale zoom fallback pictures
Backing installation advances the preview baseline but previously stamped old whole-scene pictures with the new scene version. Zooming outside backing coverage could replay deleted content and hide newly created shapes.

Discard mismatched pictures before advancing that baseline, preserving valid pictures. Cover scene, preview, page and font invalidation plus exact visible pixels through zoom reversals in retained and tiled renderers.
2026-09-15 17:40:34 +03:00
Danila Poyarkov 46aa00d3d1 refactor(tools): default interface exposure to inclusion
Share typed MCP, AI, and WebMCP exclusions across adapters. Preserve the browser tool inventory through explicit exclusions and keep execution support and user permissions independent.
2026-09-15 17:12:31 +03:00
Danila Poyarkov 453b27f15f perf(properties): retain inactive panels safely
Retain one selection-property subtree while frame presets are shown. Suspend opted-in descendant scopes after cleanup, cancel drafts before detachment can blur inputs, close portals, and release previews and pending resource work.

Track focused-element removal with VueUse so WebKit shortcuts resume after input teardown. Cover retained identity, hidden inactivity, binding rollback, async disposal, undo, popup reactivation and browser focus behavior.
2026-09-15 17:01:44 +03:00
Danila Poyarkov 10c873399d test: fix paragraph probe counter lint 2026-09-15 17:01:44 +03:00
Danila Poyarkov f25e3f72a2 fix(tools): preserve atomic property state and validate inputs
Record property presence for exact undo/redo, including explicit undefined values, and reject instance index mutations. Tighten numeric and operand schemas to match execution contracts.
2026-09-15 16:47:37 +03:00
Danila Poyarkov ea4b8e4b97 feat(settings): unify preferences and integration editors
Unify Settings navigation, credential drafts, translated form validation, and appearance controls. Add explicit WebMCP access modes and searchable MCP tool permissions while preserving execution and credential safeguards.
2026-09-15 16:34:05 +03:00
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