mirror of
https://github.com/nexu-io/open-design.git
synced 2026-10-27 09:51:12 +01:00
* chore(scripts): seed daemon with pre-baked decks and web prototypes Adds `pnpm seed:test-projects`, a small HTTP client that talks to the running daemon and creates curated slide decks + web prototypes loaded from each skill's example.html. Each seeded project gets `index.html`, an active tab, and two fake chat messages so the UI renders fully without waiting for an LLM run. `--clear` removes everything prefixed with `seed-`. * fix(scripts): exit non-zero when any seed fixture fails Track per-fixture failures in seed:test-projects and exit 1 when at least one fixture errored, so CI/scripts no longer treat a partially failed seed run (e.g. unreachable daemon) as success. Generated-By: looper 0.4.0 (runner=fixer, agent=claude-code) * fix(scripts): wire ProjectFile contract through seed assistant message The seeded assistant message was passing producedFiles as a string array, but the UI consumes ProjectFile[] (name/size/mtime/kind/mime), so seeded projects rendered with a broken produced-file chip. Capture the upload response and forward uploaded.file as the chip payload. Also tighten --clear: only delete projects that match the seed- prefix AND carry the seeded/source metadata stamp this script writes, so a manually-created project sharing the prefix isn't removed. Generated-By: looper 0.4.0 (runner=fixer, agent=claude-code) * fix(scripts): auto-discover daemon URL from tools-dev status Previously the seed script defaulted to 127.0.0.1:7456 when neither OD_DAEMON_URL nor OD_PORT was set in the calling shell. `pnpm tools-dev` runs in a sibling shell with an ephemeral daemon port, so that default was almost never the right URL and broke the documented two-shell flow. Resolution now goes: --daemon flag, then OD_DAEMON_URL, then http://127.0.0.1:$OD_PORT (only when OD_PORT is a real port — OD_PORT=0 falls through), and finally a discovery step that parses the daemon URL out of `pnpm exec tools-dev status --json`. If everything fails the script aborts with a hint instead of silently fetching against the wrong port. Generated-By: looper 0.4.0 (runner=fixer, agent=claude-code)