openpencil/tests/e2e
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
..
app fix(app): preserve browser editor entry flow 2026-08-20 17:20:33 +03:00
canvas fix(editor): commit vector drags on pointer release (#586) 2026-08-24 16:02:27 +03:00
chat perf(chat): release completed streaming parser history (#553) 2026-08-18 17:43:49 +03:00
clipboard refactor(app): modernize browser clipboard adapter (#601) 2026-08-28 14:37:42 +03:00
code feat(code): add live JSX and HTML/CSS editing (#525) 2026-08-15 09:48:42 +03:00
collab test(collab): add deterministic browser sessions (#541) 2026-08-17 12:57:03 +03:00
color-picker fix(app): restore release validation coverage 2026-07-20 16:26:07 +03:00
components feat: add Figma-style variants and component libraries (#512) 2026-08-14 19:31:41 +03:00
context-menu test(app): stabilize final interaction coverage 2026-07-20 16:34:16 +03:00
design feat(vue): add responsive property grids 2026-07-26 12:42:50 +03:00
dom-css feat(dom-css): map image aspect styles 2026-06-30 10:51:37 +03:00
editor fix(editor): commit vector drags on pointer release (#586) 2026-08-24 16:02:27 +03:00
export feat(app): migrate paint effect and export panels 2026-07-14 17:06:28 +03:00
fonts fix(editor): commit vector drags on pointer release (#586) 2026-08-24 16:02:27 +03:00
keyboard feat(app): expand Figma menu and selection parity (#459) 2026-08-03 00:23:05 +03:00
layers perf(scene-graph): accelerate axis-aligned hit tests (#534) 2026-08-16 15:43:25 +03:00
native feat(editor): add configurable snapping and guides 2026-08-18 19:11:48 +03:00
pages Release v0.14.0 2026-08-10 11:40:44 +03:00
panels feat(vue): add responsive property grids 2026-07-26 12:42:50 +03:00
perf perf(scene-graph): accelerate axis-aligned hit tests (#534) 2026-08-16 15:43:25 +03:00
properties fix(editor): commit vector drags on pointer release (#586) 2026-08-24 16:02:27 +03:00
scene fix(editor): commit vector drags on pointer release (#586) 2026-08-24 16:02:27 +03:00
settings fix(app): harden MCP configuration controls 2026-08-20 15:55:48 +03:00
snap feat(editor): add configurable snapping and guides 2026-08-18 19:11:48 +03:00
storage fix(storage): harden workspace previews 2026-08-10 20:02:58 +03:00
stroke-picker feat(app): migrate paint effect and export panels 2026-07-14 17:06:28 +03:00
text fix(text): align editing overlays with vertical text (#543) 2026-08-17 19:32:40 +03:00
toolbar feat(editor): add Figma-style frame presets (#418) 2026-07-26 00:05:57 +03:00
tools feat(app): migrate position and appearance panels 2026-07-13 14:47:48 +03:00
ui test(ui): keep runtime theme import dependency-safe 2026-07-20 14:07:32 +03:00
variables fix(app): polish variable dialog states 2026-07-18 05:25:40 +03:00
vectorize feat(app): convert image layers to vectors 2026-07-27 16:22:05 +03:00
viewport test(e2e): hide rulers in visual regression snapshots 2026-05-16 15:36:37 +03:00
autosave.spec.ts fix(app): retain recovery after closing unsaved tabs (#505) 2026-08-13 21:39:35 +03:00
components.spec.ts feat(app): finish Design panel migration 2026-07-14 17:40:56 +03:00
fixtures.ts test(app): stabilize final interaction coverage 2026-07-20 16:34:16 +03:00
recovery.spec.ts fix(app): retain recovery after closing unsaved tabs (#505) 2026-08-13 21:39:35 +03:00