openpencil/tests/engine
Danila Poyarkov 8408b56721
refactor(app): modernize browser clipboard adapter (#601)
* refactor(app): isolate system clipboard adapters

- Split browser and Tauri clipboard behavior into focused adapters\n- Inject browser clipboard capabilities into unit-testable operations\n- Remove navigator and document mutation from headless clipboard tests

* refactor(app): delegate browser clipboard fallbacks

- Use copy-to-clipboard for modern rich MIME writes and execCommand fallback\n- Keep OpenPencil-specific HTML and plain-text payload construction at the adapter boundary\n- Remove hand-rolled browser capability and selection handling

* test(clipboard): verify rich browser menu round-trip

- Exercise copy from the browser Edit menu under a user gesture\n- Verify text/html and text/plain ClipboardItem formats\n- Paste the system clipboard payload back into the canvas

* refactor(clipboard): reduce adapter surface

- Expose only command dispatch and the injectable system clipboard contract\n- Keep browser and Tauri copy/paste operations private to their adapters\n- Rename the in-memory DataTransfer fallback and share design HTML recognition

* fix(clipboard): harden format and fallback handling

- Require complete OpenPencil or Figma clipboard markers\n- Await browser writes so adapter failures resolve false\n- Write plain-only Tauri payloads as text and reject unrelated clipboard text

* fix(clipboard): reject unrelated current browser data

* fix(clipboard): bind fallbacks to copied selection

- Match cached rich HTML to the current Tauri plain-text fallback\n- Preserve nodes when selection changes during an asynchronous cut\n- Reject unrelated current browser HTML before consulting memory

* fix(clipboard): reuse the shared memory payload type

* fix(clipboard): scan design markers linearly

* fix(clipboard): distinguish unavailable and empty reads

* style(clipboard): use includes for marker closure

* test(clipboard): avoid wall-clock marker assertions
2026-08-28 14:37:42 +03:00
..
acp chore: enable stricter oxlint rules 2026-05-18 18:58:30 +03:00
app refactor(app): modernize browser clipboard adapter (#601) 2026-08-28 14:37:42 +03:00
bytes refactor(core): centralize Base64 encoding 2026-07-28 08:27:22 +03:00
cli refactor: standardize acronym casing 2026-08-10 15:48:16 +03:00
clipboard fix(clipboard): preserve pasted instance links 2026-08-12 20:08:06 +03:00
collab perf(collab): skip unchanged Yjs node fields (#529) 2026-08-15 11:40:27 +03:00
color feat(vue): consolidate color model 2026-07-13 21:48:36 +03:00
core feat(fig): support text on path 2026-08-17 12:00:01 +03:00
dom-css fix(fig): restore strict parse validation 2026-07-18 03:58:18 +03:00
editor feat(editor): add ruler guide authoring foundation 2026-08-19 18:08:48 +03:00
figma/api fix(figma-api): align variant combination behavior 2026-08-19 20:05:54 +03:00
geometry fix(fig): restore strict parse validation 2026-07-18 03:58:18 +03:00
hit-test perf(scene-graph): accelerate axis-aligned hit tests (#534) 2026-08-16 15:43:25 +03:00
icons fix(core): preserve inline SVG primitives (#485) 2026-08-12 16:02:45 +03:00
io Merge remote-tracking branch 'origin/master' into pr-550-push-integration 2026-08-20 17:20:25 +03:00
kiwi fix(fig): preserve regenerated override lineage 2026-07-21 01:51:27 +03:00
layout feat(fig): support text on path 2026-08-17 12:00:01 +03:00
library feat: add Figma-style variants and component libraries (#512) 2026-08-14 19:31:41 +03:00
lint test(engine): move root tests into domains 2026-05-16 12:30:27 +03:00
mcp fix(mcp): align runtime metadata and restart errors 2026-08-20 16:27:11 +03:00
pen refactor(fig): own instance interpretation 2026-07-18 02:06:34 +03:00
profiler chore: format codebase 2026-05-24 12:15:29 +03:00
random test(engine): move root tests into domains 2026-05-16 12:30:27 +03:00
render feat(canvas): add Figma guide feedback parity 2026-08-20 14:02:33 +03:00
scene-graph fix(editor): harden snapping edge cases 2026-08-19 12:33:32 +03:00
snap test(engine): move root tests into domains 2026-05-16 12:30:27 +03:00
tauri refactor(app): polish files workspace and New tabs 2026-08-20 17:20:33 +03:00
text Merge origin/master into feat/configurable-snapping-guides 2026-08-18 22:05:51 +03:00
tools fix(tools): require sibling variant components 2026-08-19 20:05:54 +03:00
vector refactor(canvas): adopt immutable CanvasKit paths (#554) 2026-08-18 23:09:45 +03:00
vue fix(editor): commit vector drags on pointer release (#586) 2026-08-24 16:02:27 +03:00
perf.bench.ts feat: split SceneGraph and Pen packages 2026-06-30 10:54:32 +03:00