openpencil/tests/engine
Danila Poyarkov 81a07c0c9a
feat(demo): rebuild the first page as a component library with staged loading (#717)
* feat(demo): rebuild the first page as a component library with staged loading

The demo generated its document behind an empty canvas with no progress,
and the first page still carried a legacy library in a dark section that
matched neither the current showcase nor the rest of the demo.

Drive the existing editor preparation from demo generation so the canvas
overlay and tab indicator report the real phases and progress, and rebuild
the first page around a component library authored in the current style:
a Button component set with two variants, linked instances, text and
boolean component properties, and the variable collections. The deleted
effects, typography, and app-preview examples are already covered by pages
02 and 03.

* fix(demo): record demo generation failures as preparation failures

Demo generation reported a thrown error as a cancellation, because the catch
only warned and the trailing finally always cancelled the handle. Report the
failure through the preparation handle so diagnostics distinguish a broken
demo build from an abandoned one.

The finally needs no failure guard: failing clears the handle, so the
following cancel already returns early, as the preparation controller test
asserts.

* fix(demo): roll back an abandoned demo build

A preparation that superseded the demo's handle — a page switch, a font
retry, or a closed tab — left the document half-built: the first page stayed
renamed, the extra pages and sections remained, and the one-page precondition
then blocked any later attempt in that session.

Track what the build creates and remove it whenever the build does not
finish, restoring the original page name and clearing the variables it added.
The cleanup is guarded by graph identity because node and page IDs are only
unique within one graph, so a document that replaced the demo is never touched.

Splitting the build into its own function keeps the entry point to
orchestration and stays within the complexity budget.
2026-09-18 08:18:21 +03:00
..
acp
app feat(demo): rebuild the first page as a component library with staged loading (#717) 2026-09-18 08:18:21 +03:00
bytes
cli ci: shard unit tests by owner and cut the quick suite from 100 s to 13 s (#715) 2026-09-17 10:18:16 +03:00
clipboard ci: shard unit tests by owner and cut the quick suite from 100 s to 13 s (#715) 2026-09-17 10:18:16 +03:00
collab Release v0.15.0 2026-09-16 17:57:35 +03:00
color fix: convert document colour profiles, keep text edits live, and fix .fig exports (#716) 2026-09-18 00:43:10 +03:00
core refactor(canvas): share bounded resource cache bookkeeping 2026-09-15 21:28:16 +03:00
dom-css
editor fix: convert document colour profiles, keep text edits live, and fix .fig exports (#716) 2026-09-18 00:43:10 +03:00
figma/api Merge master into fix/create-component-drops-bound-variables 2026-09-02 01:09:01 +03:00
geometry feat(editor): checkpoint live interaction improvements 2026-09-15 11:36:17 +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 fix: convert document colour profiles, keep text edits live, and fix .fig exports (#716) 2026-09-18 00:43:10 +03:00
kiwi
layout test: fix heavy unit-test measurement and round-trip checks (#655) 2026-09-07 00:33:12 +03:00
library build: upgrade oxfmt and format Vue imports (#669) 2026-09-10 02:45:13 +03:00
lint
mcp feat(settings): configure tool access, MCP failures, and step limits 2026-09-17 23:55:58 +03:00
pen fix(pen): honor layout and sizing defaults (#652) 2026-09-10 17:02:56 +03:00
profiler
random
render ci: shard unit tests by owner and cut the quick suite from 100 s to 13 s (#715) 2026-09-17 10:18:16 +03:00
scene-graph ci: shard unit tests by owner and cut the quick suite from 100 s to 13 s (#715) 2026-09-17 10:18:16 +03:00
snap
tauri feat(settings): configure tool access, MCP failures, and step limits 2026-09-17 23:55:58 +03:00
text fix(text): preserve cached font coverage and source offsets 2026-09-02 09:26:59 +03:00
tools fix: protect unsaved documents and defer credential access (#713) 2026-09-17 15:25:15 +03:00
vector feat(canvas): render arrow stroke caps on lines and open vectors 2026-08-31 21:25:38 +03:00
vue fix: convert document colour profiles, keep text edits live, and fix .fig exports (#716) 2026-09-18 00:43:10 +03:00
perf.bench.ts