Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,19 @@ jobs:
- name: build
run: just build

# recorder UI end-to-end: real binary, real Chromium, fake mic — the whole
# record → coach → keep → approve journey (see e2e/)
record-e2e:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
lfs: true
- uses: DeterminateSystems/nix-installer-action@v16
- uses: DeterminateSystems/magic-nix-cache-action@v9
- name: playwright e2e
run: nix develop --command just e2e

# the preferred install path must stay green: sandboxed build from flake.lock
nix:
strategy:
Expand Down
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,9 @@ analysis/

# videoeditor preview output
template-previews/

# trunk build output (the committed copy lives in crates/videoeditor-record/ui)
crates/videoeditor-record-ui/dist/
# playwright artifacts
e2e/test-results/
e2e/playwright-report/
15 changes: 15 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,21 @@ vertical video out via headless Chrome + ffmpeg + ElevenLabs).
- `crates/videoeditor-genai` — typed image-generation clients: xAI Grok
Imagine (`XAI_API_KEY`, reference images) + Google Imagen (`AI_STUDIO`);
Veo/Grok video is the planned next tenant.
- `crates/videoeditor-record` — `record` subcommand: local web recorder
(tiny_http REST server); takes transcode via ffmpeg into `audio/clips/`.
Serves the UI from `ui/` — a COMMITTED trunk build of the next crate.
Never edit `ui/` by hand; `just e2e` regenerates it automatically and
`just check` fails if it's stale vs the UI source (`ui/.source-hash`).
This crate publishes to crates.io WITH the dist — installs need no wasm.
- `crates/videoeditor-record-ui` — the recorder front end: Leptos (CSR) →
wasm via trunk. `publish = false`: not standalone, its build output
ships inside videoeditor-record. `nix develop` provides
trunk/wasm-bindgen-cli (the `wasm-bindgen` crate pin must match the CLI
version — bump together). Regenerate the dist only via the nix
toolchain (`nix develop --command just ui`) so bytes stay stable.
- `e2e/` — Playwright suite for the recorder (`just e2e`, rebuilds the UI
first): drives the real binary + real Chromium with a fake mic through
record → coach → keep → approve. UI changes are not done until it passes.
- `examples/hello-bench` — smallest end-to-end episode; keep it rendering.

## Commands
Expand Down
Loading
Loading