v0.3.0-alpha: Chromium rasterizer (R4), branching, chapters

- Rasterizer: playwright-core + system Chromium renders dom steps to PNG
  (1280x800, JavaScript disabled — snapshots stay inert). Cached permanently
  on the step (dom_html immutable). CHROMIUM_PATH configurable.
- Video render now includes DOM steps as real frames (verified h264 1280x800,
  0 skipped); guides now show rasterized screenshots for DOM steps
- Branching: per-step branch hotspots (dashed, labeled) jumping to any target
  step; lead gates respected on branch jumps
- Chapters: demo-level chapter menu in player bar
- API: PATCH /api/demos/:id (name, chapters), branches on step patch, both in
  public JSON
- MCP surface: 15 tools (+set_step_branches, +set_chapters)
- Docker: chromium + fonts in runtime image, CHROMIUM_PATH preset
This commit is contained in:
Scot Thom 2026-07-18 05:36:27 +00:00
parent a535e15253
commit 928628f49a
11 changed files with 269 additions and 27 deletions

View file

@ -10,7 +10,8 @@ COPY apps ./apps
RUN npm run build -w apps/editor && npm run build -w apps/api
FROM node:22-alpine
RUN apk add --no-cache ffmpeg
RUN apk add --no-cache ffmpeg chromium nss freetype harfbuzz ca-certificates ttf-freefont
ENV CHROMIUM_PATH=/usr/bin/chromium-browser
WORKDIR /app
ENV NODE_ENV=production
COPY package.json ./