You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(cli): align skill docs and command surface with actual CLI
Fixes drifts discovered by walking the skill rules end-to-end against
the CLI on a real 47s recording.
- output.ts: add outputList<T> so `--json` list commands emit the raw
object array instead of the display-formatted `outputTable` keys
(was: `{"Start (ms)": "2000"}`, now: `{"startMs": 2000}`). JSON list
shape now matches JSON add shape, so agents can use a single parser
- zoom/trim/speed/annotate list: migrated to outputList
- project-manager.ts: `--wallpaper wallpaperN` now translates to
`/wallpapers/wallpaperN.jpg` (the path the renderer expects) in both
createProject and editProject. Hex colors and absolute paths pass
through unchanged. Out-of-range N (e.g. wallpaper99) now errors with
a specific message instead of silently storing garbage
- render.ts + index.ts + mcp-server.ts: drop the `still` and `frames`
stub commands that errored with "not yet implemented" at runtime.
The command surface now matches what actually works so agents aren't
led toward dead ends
- SKILL.md: remove the stills/frames rule reference and description
line. Delete cli/skills/rules/frames-stills.md entirely
- troubleshooting.md: add the "Video decode ended early" gotcha with
the ffprobe recipe (regions must fall within video duration — the
CLI doesn't probe at add time). Correct the Electron install note
- export-render.md: correct the progress JSON example (phase is only
present during `finalizing`, not `extracting`); document the new
`--loop`/`--no-loop` tri-state contract
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Agents should parse the `done` line (with `success: true`) as the terminal event and use `path`/`size`/`format` from it. The `phase` key is only present during the `finalizing` phase; during frame extraction it is absent. On failure, a single `{"error": "..."}` line is emitted to stderr and the process exits non-zero.
-`--size-preset` — medium (720p), large (1080p), original
46
-
-`--loop`— loop the GIF (default: true)
49
+
-`--loop`/ `--no-loop` — override the project's loop setting. If neither is passed, the GIF uses the project's `editor.gifLoop`(default: loop). Pass `--no-loop` to force a non-looping GIF regardless of project state.
The project file is missing required fields. It needs: `version`, `media` (or `videoPath`), and `editor`.
26
26
27
27
### Render commands fail with "requires Electron headless bridge"
28
-
The `render`, `gif`, `still`, and `frames` commands need the Electron app installed. These commands are Phase 3 features.
28
+
The `render` and `gif` commands spawn a headless Electron process from the repo's `node_modules/.bin/electron`. Run `npm run build-vite` first so `dist-electron/main.js` exists.
29
+
30
+
### Render fails partway through: "Video decode ended early at X.Ys (needed Y.Ys)"
31
+
A region (zoom/trim/speed/annotation) extends past the end of the underlying video. The CLI does not probe video duration at add time — it trusts the caller. Before adding regions with large timestamps, confirm the video is long enough (e.g. with `ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 recording.webm`). Timestamps are in milliseconds and must fall within `[0, duration]`.
29
32
30
33
## Debugging tips
31
34
@@ -59,5 +62,5 @@ echo "Exit code: $?"
59
62
## Performance notes
60
63
61
64
- CLI commands that manipulate project files (create, edit, zoom/trim/speed/annotate add/remove) are pure Node.js and run in milliseconds
62
-
-Render, still, and frames commands spawn Electron headlessly — expect seconds to minutes depending on video length and quality
65
+
-`render`and `gif` spawn Electron headlessly — expect seconds to minutes depending on video length and quality
63
66
- Use `--quiet` to suppress progress output for faster piped workflows
0 commit comments