open-design/apps/daemon/tests
Tom Huang e11e86d468
feat(hyperframes): land HTML-in-Canvas across web + skills (#866)
* feat(hyperframes): land HTML-in-Canvas across web + skills

Ships HTML-in-Canvas as a first-class HyperFrames video path:
- 7 new video prompt templates (liquid glass, iPhone+MacBook, portal,
  shatter, magnetic, liquid background, text-cursor reveal).
- skills/hyperframes/references/html-in-canvas.md, surfaced via
  SKILL.md description+triggers and the system-prompt pre-flight
  references list.
- ChatPane starter prompts now branch by project kind and video model,
  so the hyperframes-html surface shows HTML-in-canvas-shaped prompts
  instead of the generic prototype trio.
- NewProjectPanel propagates a picked template's model+aspect onto
  the project, and defaults videoModel to hyperframes-html when the
  hyperframes skill resolves for the video tab.

Polish bundled in the same branch:
- DesignFilesPanel empty state becomes a centered pill with a "New
  sketch" CTA; designFiles.empty copy simplified across 19 locales.
- Topbar project title + meta render on one baseline row separated
  by a middot.
- scripts/seed-test-projects.ts hardens daemon URL discovery against
  pnpm engine warnings on stdout.

* fix(new-project): preserve explicit video model choice across tab revisits

Latch a videoModelTouched guard once the user picks a model via the
dropdown or via a template that declares one, so the hyperframes-html
auto-default no longer silently overwrites the override when the Video
tab is re-entered.

Generated-By: looper 0.6.1 (runner=fixer, agent=claude-code)

* fix(i18n): register hyperframes html-in-canvas templates, category, and tags

Adds the seven new prompt-template ids, the "VFX / HTML-in-Canvas"
category, and the new tag set to the de/ru/fr i18n bundles so the
e2e localized-content coverage test passes.

Generated-By: looper 0.6.1 (runner=fixer, agent=claude-code)

* fix(daemon): inject html-in-canvas preflight for hyperframes runs

The contracts-side derivePreflight() learned about
references/html-in-canvas.md when this PR landed, but the daemon
copy at apps/daemon/src/prompts/system.ts kept the older five-ref
allowlist. server.ts:4138 wires composeSystemPrompt from the
daemon copy into live chat runs, so the main HyperFrames flow this
PR is meant to improve still wasn't auto-injecting the preflight
directive in production.

Mirror the html-in-canvas case into the daemon composer and lock it
behind a daemon-side test so the two copies cannot drift again on
this reference. The broader live-artifact preflight gap (artifact-
schema / connector-policy / refresh-contract) is pre-existing drift
and is intentionally out of scope here.

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(web): restyle designs empty state as centered card on grid backdrop

Swap the horizontal pill for a stacked card and add a faint grid backdrop
so the empty designs surface reads as an intentional canvas rather than a
gap. Title now wraps instead of truncating; container is taller.

* fix(new-project): pin skillId to hyperframes when videoModel is hyperframes-html

When the Video tab resolves its skill it used to fall back to `list[0]?.id`
if no skill declared `default_for: video`. That list is built from an
unsorted `readdir()` in apps/daemon/src/skills.ts, so a freshly mounted
project could land on `video-shortform` even when the user had explicitly
chosen the HyperFrames-HTML model (or one of the new
`hyperframes-html-in-canvas-*` templates). The agent then ran without the
hyperframes SKILL body or its `references/html-in-canvas.md` preflight —
the exact regression PR #866 was meant to land.

`skillIdForTab` now pins to `hyperframes` whenever the current video model
is `hyperframes-html`, regardless of discovery order. Added a unit test
that mounts both `video-shortform` and `hyperframes` (with hyperframes
last, simulating the bad readdir order) and asserts the create payload
routes through `hyperframes`.

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-11 15:45:12 +08:00
..
prompts feat(hyperframes): land HTML-in-Canvas across web + skills (#866) 2026-05-11 15:45:12 +08:00
runtimes refactor(daemon): split agent runtime definitions (#1063) 2026-05-11 15:01:55 +08:00
acp.test.ts fix: settle completed runs and clean up shutdown children (#924) 2026-05-08 21:05:22 +08:00
agent-runtime-env.test.ts Add live artifacts and Composio connector catalog (#381) 2026-05-05 16:42:11 +08:00
app-config.test.ts feat: add opt-in Langfuse telemetry (#800) 2026-05-09 10:06:01 +08:00
app-version.test.ts Optimize packaged mac artifact size (#424) 2026-05-05 10:37:19 +08:00
artifact-manifest.test.ts feat: add markdown and svg artifact renderers (#73) 2026-04-30 20:05:00 +08:00
browser-open.test.ts fix daemon browser opener on Windows (#953) 2026-05-09 22:04:07 +08:00
chat-route.test.ts Increase agent inactivity timeout (#1071) 2026-05-09 17:07:47 +08:00
claude-design-import.test.ts fix(daemon): unbreak Claude Design ZIP import on Node 24 and raise file ceiling (#591) 2026-05-07 10:31:30 +08:00
comment-attachments.test.ts fix(daemon): typecheck leaf modules (#943) 2026-05-08 20:01:25 +08:00
composio-config.test.ts [codex] Optimize Composio connector previews (#907) 2026-05-08 20:01:06 +08:00
composio-descriptions.test.ts Add live artifacts and Composio connector catalog (#381) 2026-05-05 16:42:11 +08:00
connection-test.test.ts Improve Codex CLI path fallback UX (#1205) 2026-05-11 12:00:47 +08:00
connectors-routes.test.ts fix(daemon): typecheck core server paths (#952) 2026-05-08 20:43:51 +08:00
connectors-service.test.ts fix(connectors): show stable curated tool count in connector card badge (#748) (#767) 2026-05-08 23:42:52 +08:00
craft.test.ts fix(daemon): typecheck leaf modules (#943) 2026-05-08 20:01:25 +08:00
critique-artifact-endpoint.test.ts feat(daemon): Critique Theater Phase 6.2 (artifact extraction + endpoint) (#1085) 2026-05-10 23:59:04 +08:00
critique-artifact-writer.test.ts feat(daemon): Critique Theater Phase 6.2 (artifact extraction + endpoint) (#1085) 2026-05-10 23:59:04 +08:00
critique-authority.test.ts feat: Critique Theater Phase 4 (persistence + transcript + orchestrator) (#481) 2026-05-05 15:50:35 +08:00
critique-boot-reconcile.test.ts feat: Critique Theater Phase 4 (persistence + transcript + orchestrator) (#481) 2026-05-05 15:50:35 +08:00
critique-composer.test.ts feat: Critique Theater Phase 5 (panel prompt template + system composer wiring) 2026-05-07 16:35:04 +08:00
critique-config.test.ts feat: Critique Theater Phase 4 (persistence + transcript + orchestrator) (#481) 2026-05-05 15:50:35 +08:00
critique-interrupt-endpoint.test.ts feat(daemon): add critique interrupt endpoint + project-keyed run registry (Task 6.1) (#819) 2026-05-08 11:29:37 +08:00
critique-lifecycle.test.ts feat(daemon): Critique Theater Phase 6.2 (artifact extraction + endpoint) (#1085) 2026-05-10 23:59:04 +08:00
critique-orchestrator.test.ts feat(daemon): Critique Theater Phase 6.2 (artifact extraction + endpoint) (#1085) 2026-05-10 23:59:04 +08:00
critique-panel-prompt.test.ts feat: Critique Theater Phase 5 (panel prompt template + system composer wiring) 2026-05-07 16:35:04 +08:00
critique-persistence.test.ts feat: Critique Theater Phase 4 (persistence + transcript + orchestrator) (#481) 2026-05-05 15:50:35 +08:00
critique-run-registry.test.ts feat(daemon): add critique interrupt endpoint + project-keyed run registry (Task 6.1) (#819) 2026-05-08 11:29:37 +08:00
critique-spawn-wiring.test.ts feat[qoder cli] add Qoder CLI agent support (#626) 2026-05-06 19:54:03 +08:00
critique-transcript.test.ts feat: Critique Theater Phase 4 (persistence + transcript + orchestrator) (#481) 2026-05-05 15:50:35 +08:00
cwd-aliases.test.ts fix(daemon): expose skill resources via cwd-relative aliases (#435) 2026-05-04 17:48:20 +08:00
deploy-routes.test.ts Fix Cloudflare Pages custom domain lookup (#958) 2026-05-08 21:20:48 +08:00
deploy.test.ts Fix Cloudflare Pages custom domain lookup (#958) 2026-05-08 21:20:48 +08:00
design-system-showcase.test.ts fix(web): tighten entry-tab layout and design-system showcase color picker (#412) 2026-05-04 13:49:41 +08:00
desktop-import-token-gate.test.ts feat(web): add Finalize design package + Continue in CLI buttons (#451) (#974) 2026-05-10 11:44:32 +08:00
finalize-design.test.ts feat(web): add Finalize design package + Continue in CLI buttons (#451) (#974) 2026-05-10 11:44:32 +08:00
finalize-route-abort.test.ts feat(web): add Finalize design package + Continue in CLI buttons (#451) (#974) 2026-05-10 11:44:32 +08:00
folder-import-projects.test.ts feat: import existing local folder as project (#597) (#624) 2026-05-07 20:43:31 +08:00
folder-import-route.test.ts feat: import existing local folder as project (#597) (#624) 2026-05-07 20:43:31 +08:00
json-event-stream.test.ts fix(daemon): typecheck leaf modules (#943) 2026-05-08 20:01:25 +08:00
langfuse-bridge.test.ts feat: add opt-in Langfuse telemetry (#800) 2026-05-09 10:06:01 +08:00
langfuse-trace.test.ts feat: add opt-in Langfuse telemetry (#800) 2026-05-09 10:06:01 +08:00
legacy-data-migrator.test.ts fix(daemon): add legacy data dir migrator 2026-05-07 15:19:04 +08:00
linked-dirs.test.ts Improve Windows beta packaging and installer flow (#768) 2026-05-07 16:44:15 +08:00
lint-artifact.test.ts fix(daemon): typecheck leaf modules (#943) 2026-05-08 20:01:25 +08:00
live-artifacts-routes.test.ts fix(daemon): typecheck leaf modules (#943) 2026-05-08 20:01:25 +08:00
live-artifacts-schema.test.ts Add live artifacts and Composio connector catalog (#381) 2026-05-05 16:42:11 +08:00
live-artifacts-store.test.ts Add live artifacts and Composio connector catalog (#381) 2026-05-05 16:42:11 +08:00
mcp-config.test.ts feat(mcp): external MCP client with daemon-managed OAuth and 39 design-focused templates (#898) 2026-05-08 17:59:20 +08:00
mcp-daemon-url.test.ts fix(daemon): make MCP install snippet survive daemon port changes (#846) 2026-05-08 10:59:09 +08:00
mcp-extract-refs.test.ts fix(daemon): typecheck leaf modules (#943) 2026-05-08 20:01:25 +08:00
mcp-get-artifact.test.ts fix(daemon): typecheck core server paths (#952) 2026-05-08 20:43:51 +08:00
mcp-get-file.test.ts fix(daemon): typecheck leaf modules (#943) 2026-05-08 20:01:25 +08:00
mcp-install-info.test.ts fix(daemon): typecheck leaf modules (#943) 2026-05-08 20:01:25 +08:00
mcp-oauth.test.ts feat(mcp): external MCP client with daemon-managed OAuth and 39 design-focused templates (#898) 2026-05-08 17:59:20 +08:00
mcp-resolve-project.test.ts fix(daemon): typecheck leaf modules (#943) 2026-05-08 20:01:25 +08:00
mcp-spawn.test.ts feat(mcp): external MCP client with daemon-managed OAuth and 39 design-focused templates (#898) 2026-05-08 17:59:20 +08:00
mcp-tokens.test.ts feat(mcp): external MCP client with daemon-managed OAuth and 39 design-focused templates (#898) 2026-05-08 17:59:20 +08:00
media-config.test.ts fix(web): restore media config from daemon on startup (#687) 2026-05-09 19:31:08 +08:00
media-nanobanana.test.ts feat(media): add Nano Banana image provider (#631) 2026-05-06 20:26:31 +08:00
media-tasks-persistence.test.ts Bug FIx: Media generation task state is volatile and lost on daemon restart #648 (#884) 2026-05-09 00:00:18 +08:00
media-tasks-routes.test.ts Bug FIx: Media generation task state is volatile and lost on daemon restart #648 (#884) 2026-05-09 00:00:18 +08:00
native-folder-dialog.test.ts Fix Windows link code folder dialog (#698) 2026-05-07 17:27:01 +08:00
orbit.test.ts fix: sync Orbit last run with selected prompt template (#937) 2026-05-09 11:19:59 +08:00
origin-validation.test.ts fix(daemon): typecheck core server paths (#952) 2026-05-08 20:43:51 +08:00
parser.test.ts feat(daemon): Critique Theater Phase 6.2 (artifact extraction + endpoint) (#1085) 2026-05-10 23:59:04 +08:00
pdf-export.test.ts feat(desktop): export artifacts directly to PDF (#532) 2026-05-08 23:42:12 +08:00
pi-rpc.test.ts fix(daemon): typecheck leaf modules (#943) 2026-05-08 20:01:25 +08:00
project-archive.test.ts fix(web): make share-menu "Download as .zip" return the actual project tree (#341) 2026-05-03 10:34:33 +08:00
project-classifiers.test.ts fix: serve python files as text (#947) 2026-05-08 21:10:22 +08:00
project-file-range.test.ts feat(daemon): HTTP 206 range request support for video/audio files Fixes #784 (#1105) 2026-05-10 12:16:52 +08:00
project-file-rename.test.ts feat: add design file rename support (#894) 2026-05-09 21:24:36 +08:00
project-status.test.ts fix(daemon): typecheck leaf modules (#943) 2026-05-08 20:01:25 +08:00
project-watchers.test.ts fix(daemon): typecheck leaf modules (#943) 2026-05-08 20:01:25 +08:00
projects-routes.test.ts feat(web): add Finalize design package + Continue in CLI buttons (#451) (#974) 2026-05-10 11:44:32 +08:00
proxy-routes.test.ts fix: make Azure api version optional (#941) 2026-05-09 09:20:25 +08:00
qoder-stream.test.ts fix(daemon): typecheck leaf modules (#943) 2026-05-08 20:01:25 +08:00
redact.test.ts feat: add opt-in Langfuse telemetry (#800) 2026-05-09 10:06:01 +08:00
research-cli.test.ts feat: agent-callable research command and /search (#615) 2026-05-08 10:33:44 +08:00
research-contract.test.ts feat: agent-callable research command and /search (#615) 2026-05-08 10:33:44 +08:00
research.test.ts feat: agent-callable research command and /search (#615) 2026-05-08 10:33:44 +08:00
resolve-data-dir.test.ts fix: batch of small bug fixes (#283, #275, #390) (#530) 2026-05-07 11:17:02 +08:00
routines.test.ts feat: add scheduled routines for unattended agent runs (#1033) 2026-05-09 19:30:22 +08:00
runs.test.ts fix: settle completed runs and clean up shutdown children (#924) 2026-05-08 21:05:22 +08:00
sanitize-name.test.ts fix(daemon): preserve non-ASCII filenames on multipart upload (#166) 2026-04-30 19:49:43 +08:00
server-cors.test.ts fix(daemon): typecheck leaf modules (#943) 2026-05-08 20:01:25 +08:00
server-paths.test.ts Migrate beta release publishing to R2 (#805) 2026-05-07 19:13:52 +08:00
setup.ts Add live artifacts and Composio connector catalog (#381) 2026-05-05 16:42:11 +08:00
sidecar-server.test.ts fix: settle completed runs and clean up shutdown children (#924) 2026-05-08 21:05:22 +08:00
sidecar-status-snapshot.test.ts feat(web): add Finalize design package + Continue in CLI buttons (#451) (#974) 2026-05-10 11:44:32 +08:00
skill-asset-rewrite.test.ts feat(skills): open-design-landing rename, kami skills, landing OG (#428) 2026-05-04 19:22:46 +08:00
skill-id-aliases.test.ts fix(daemon): typecheck leaf modules (#943) 2026-05-08 20:01:25 +08:00
skills.test.ts fix(daemon): typecheck leaf modules (#943) 2026-05-08 20:01:25 +08:00
sse-response.test.ts fix(daemon): typecheck leaf modules (#943) 2026-05-08 20:01:25 +08:00
static-resource-routes.test.ts refactor(daemon): split route registration (#1043) 2026-05-11 15:00:23 +08:00
structured-streams.test.ts test(e2e): gate beta packaged runtime (#637) 2026-05-06 17:44:29 +08:00
system-prompt-template.test.ts feat(daemon): let Codex image projects use built-in imagegen (#622) 2026-05-06 18:28:16 +08:00
telemetry-message-finalization.test.ts feat: add opt-in Langfuse telemetry (#800) 2026-05-09 10:06:01 +08:00
tool-tokens.test.ts Add live artifacts and Composio connector catalog (#381) 2026-05-05 16:42:11 +08:00
tools-connectors-cli.test.ts feat: add Orbit activity summaries (#681) 2026-05-08 14:27:46 +08:00
tools-live-artifacts-cli.test.ts Add live artifacts and Composio connector catalog (#381) 2026-05-05 16:42:11 +08:00
transcript-export.test.ts fix(daemon): typecheck leaf modules (#943) 2026-05-08 20:01:25 +08:00
version-route.test.ts fix(daemon): restore startServer Promise contract — return url / { url, server } (#268) 2026-05-02 20:56:06 +08:00