Skip to content

Add opt-in visual discovery and editorial ranking (v0.13.0) - #76

Merged
JeremySNR merged 4 commits into
mainfrom
codex/editorial-discovery-quality
Sep 25, 2026
Merged

JeremySNR merged 4 commits into
mainfrom
codex/editorial-discovery-quality

Conversation

@JeremySNR

@JeremySNR JeremySNR commented Sep 25, 2026 •

Copy link
Copy Markdown
Owner

What does this change?

Adds opt-in visual moment discovery and independent editorial ranking, with honest uncertainty and source evidence in the editor. Prepares v0.13.0 and adds an offline benchmark workflow for comparing the old and new selections through blind human review.

Why?

Transcript-only discovery misses demonstrations and reveals. The previous ranking could reward generated packaging without checking that the retained source delivered a complete, understandable clip. These stages inspect source frames, retained speech and surrounding context; uncertain reviews remain visible instead of receiving a confident score.

Release notes

  • Optional visual discovery scans the source for demonstrations, reveals and reactions, including footage without speech.
  • Optional editorial ranking assesses hook, clarity, value, payoff and audience fit, explains decisions, and defers repeated ideas.
  • Changed clip selections invalidate their editorial assessment. Failed generation attempts are distinguished from the generation that produced existing clips.
  • Offline comparisons support blind publishability labels, measured repair time, severe defects and source-separated summaries.

How did you test it?

  • Full local suite: 704 tests across 92 files.
  • Type checking and lint.
  • Production build and isolated native Electron smoke, including ranking opt-in and stale-score cut/undo behavior.
  • Real FFmpeg silent-source export and benchmark render/failure checks.
  • Actual ChatGPT request serializer tests: discovery stays at 8/10 images, ranking batches at 8 images, and the adapter rejects more than 10.
  • Automatic review's coarse-frame schema finding fixed; regression verifies the serialized start/end/evidence bounds against the actual eight or ten supplied images.
  • Live signed-in ChatGPT: three fresh requests completed editorial review, an eight-frame discovery scan and a ten-frame refinement. One visual candidate was returned; the broader fixed editorial candidate correctly retained an uncertainty state with no overall score. The original harness classification and subsequent cache-only verification are recorded in docs/provider-smoke.md.
  • All final commit checks passed (705fcfe): Linux tests, offline FFmpeg pipeline, GUI smoke, release notes, packaged Apple Silicon inference/export, and automatic code review.

Anything to watch out for?

Both features are opt-in betas with bounded extra analysis calls. Sparse sampled frames can miss short events. Scores are editorial assessments, not viral probabilities. Automated regressions do not establish human preference or superiority over OpusClip; the documented holdout comparison is still required.

The user approved releasing after ChatGPT validation and CI, with the API route explicitly recorded as not live-tested because no API key is configured here. No dependency changes are introduced.

@JeremySNR
JeremySNR marked this pull request as ready for review September 25, 2026 19:09

@cursor cursor Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix prepared a fix for the issue found in the latest run.

  • ✅ Fixed: Coarse scan schema allows invalid frames
    • Parameterized the proposal JSON schema on times.length so coarse scans advertise max frame index 7 instead of 9.

You can send follow-ups to the cloud agent here.

Reviewed by Cursor Bugbot for commit dd40224. Configure here.

Comment thread src/main/pipeline/sourceDiscovery.ts
cursoragent and others added 2 commits September 25, 2026 19:14
The shared proposal JSON schema always used framesPerRefinement-1,
so coarse scans (8 frames) could advertise invalid indices 8–9 and
then fail validateProposal for the whole window.
@JeremySNR
JeremySNR merged commit ba9f498 into main Sep 25, 2026
6 checks passed
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.

2 participants