Skip to content

fix: address 9 agent UX issues from end-to-end feedback#15

Merged
DaKev merged 1 commit into
mainfrom
fix/agent-ux-feedback
Feb 18, 2026
Merged

fix: address 9 agent UX issues from end-to-end feedback#15
DaKev merged 1 commit into
mainfrom
fix/agent-ux-feedback

Conversation

@DaKev
Copy link
Copy Markdown
Owner

@DaKev DaKev commented Feb 18, 2026

What

Addresses all 9 issues from the AI-agent end-to-end feedback report. Changes span 7 files across the doctor, validation, engine, models, ffmpeg, and CLI layers.

Why

An AI agent used cutagent to build a 15s family highlight reel and reported specific friction points — stale shebang noise, missing filter validation, undiscoverable EDL format, fragile positional references, sub-ms trim precision errors, silent resolution mismatches, inconsistent flags, generic error hints, and undocumented absolute keyframe timing.

How

Issue 1 — Stale shebang (Critical): doctor.py now checks the cutagent script shebang and reports if the interpreter path is missing, with recovery hints.

Issue 2 — Filter availability (High): validation.py warns when text/animate ops require ffmpeg filters (e.g. drawtext) that aren't available. doctor.py now checks for drawtext, subtitles, overlay, and scale filters.

Issue 3 — EDL discoverability (Medium): capabilities output now includes required_fields, minimal_example, and named_reference_example in the edl_format section.

Issue 4 — Named step references (Medium): All 13 operation dataclasses gain an optional id field. Engine and validation support $name references alongside $N and $input.N. Duplicate IDs produce warnings.

Issue 5 — Trim precision (Medium): Trim end times within 50ms of duration are clamped silently (with warning) instead of producing a hard error, in both validation and execution.

Issue 6 — Resolution mismatch (Medium): Validation warns when concat segments have different resolutions, reporting the detected sizes and expected output dimensions.

Issue 7 — Thumbnail flags (Low): --time is now the primary flag (matching probe/summarize/scenes), with --at kept as backward-compatible alias. -o remains as alias for --output.

Issue 8 — FFMPEG_FAILED hints (Low): Recovery hints are now context-aware — detecting "No such filter", codec errors, file-not-found, and permission issues in stderr.

Issue 9 — Keyframe timing (Low): Validation warns when animate keyframe t values fall outside the layer's [start, end] window, with a note that t is absolute timeline time.

Checklist

  • Tests added/updated for new functionality
  • All tests pass (pytest) — 231 passed, 28 skipped
  • JSON output contract maintained (no non-JSON stdout)
  • Docstrings added for new public functions
  • Type hints on all public function signatures
  • CHANGELOG.md updated (for user-facing changes)
  • No new runtime dependencies introduced

Made with Cursor

- Add shebang validity and ffmpeg filter checks to doctor
- Validate ffmpeg filter availability for text/animate ops
- Add minimal EDL example and required_fields to capabilities
- Support named step references ($name) alongside positional ($N)
- Clamp trim end times within 50ms tolerance instead of hard error
- Warn on resolution mismatch in concat segments
- Warn when animate keyframe t falls outside layer window
- Standardize thumbnail --time flag (--at kept as alias)
- Context-aware FFMPEG_FAILED recovery hints (filter/codec/path)

Co-authored-by: Cursor <cursoragent@cursor.com>
@DaKev DaKev merged commit 29d4654 into main Feb 18, 2026
9 checks passed
@DaKev DaKev deleted the fix/agent-ux-feedback branch February 18, 2026 20:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant