Skip to content

release: v2.6.0 — Local Video Playback, SSOT Sync Schema, 9 AI Examples & CI - #20

Merged
taruma merged 6 commits into
mainfrom
v2.6.0-dev
Nov 14, 2026
Merged

taruma merged 6 commits into
mainfrom
v2.6.0-dev

Conversation

@taruma

@taruma taruma commented Nov 14, 2026 •

Copy link
Copy Markdown
Owner

Summary

Prepares and finalizes the SceneFlow v2.6.0 release (v2.6.0-dev → main), packaging all changes since v2.5.1 alongside new SSOT schema refactoring, 7 additional AI scene examples, GitHub Actions CI, and official release documentation.


What's New in This PR (v2.6.0-dev)

1. Sync Prompt & Schema Single Source of Truth (src/schemas/, vite.config.ts, RawCuesModal.tsx)

  • cuesAssetsPlugin (vite.config.ts): Replaced duplicate public/sync-prompt.txt and public/schema.json static files with a custom Vite plugin that serves /sync-prompt.txt and /schema.json in dev middleware and emits them into dist/ during production builds directly from src/schemas/cues.prompt.ts and src/schemas/cues.schema.json.
  • Refined CUES_SYNC_PROMPT (src/schemas/cues.prompt.ts): Preserves exact script casing, excludes [[STAGING]] blocks, enforces chronological sorting (endTime > startTime, minimum 0.5s duration for instantaneous shots/transitions), strips (V.O.)/(O.S.)/(CONT'D) extensions from speaker, and defines all 8 cue type categories (dialogue, action, shot, camera, audio, vfx, transition, environment).
  • Gemini Structured Output Schema (src/schemas/cues.schema.json): Marked speaker as required with nullable: true ("Explicitly null if non-dialogue.") and stripped non-Gemini $schema metadata.
  • Cues JSON Editor UI Cleanup (src/components/RawCuesModal.tsx): Removed duplicate copy buttons from the Sync Prompt & Schema sub-view toolbar (retaining the single contextual Copy button in each panel header) and removed the redundant top-right Edit JSON → tab-switch button.

2. 7 Additional [AI Scenes] Examples (src/examples.ts, SCENEFLOW_CATALOGUE.md)

  • Added 7 scene JSONs under public/examples/scenes/ and registered them in src/examples.ts with auteur script and Seedance 2.0/2.5 tags, loglines, and release dates (bringing AI Scenes to 24 total):
    • Screaming Amber Wood (scene_screaming_amber_wood, Seedance 2.5)
    • Coordinates for Three (scene_coordinates_for_three, Seedance 2.5)
    • Pineapple (scene_pineapple, Seedance 2.0)
    • What the Glacier Keeps (scene_what_the_glacier_keeps, Seedance 2.0)
    • Paperweight (scene_paperweight, Seedance 2.0)
    • The Unresolved Variable (scene_the_unresolved_variable, Seedance 2.0)
    • The Event Boundary (scene_the_event_boundary, Seedance 2.0)

3. GitHub Actions CI (.github/workflows/ci.yml)

  • Added CI workflow running npm ci, npm run lint (tsc --noEmit), and npm run build (vite build) on Node.js 22 for pushes to main and dev and on all pull requests.

Full v2.6.0 Release Scope (Since v2.5.1)

Including changes already landed on main since v2.5.1 that ship in v2.6.0:

  • Local Video File Playback (feat(player): play local video files alongside YouTube #19) — Play local .mp4, .webm, and .mov files in Edit mode via a unified MediaPlayer interface (src/lib/mediaPlayer.ts) and createVideoElementPlayer adapter without modifying the project's youtubeId or saved JSON (contributed by @icanhasjonas).
  • 2 Additional Featured Examples — Added Three Years Late (scene_three_years_late, AI Scenes) and Last Radio (clip_last_radio, AI Clips).
  • Cue Time Repair Skill (.agents/skills/cue-time-repair/) — Added diagnostic rules and repair_cue_timing.py to normalize LLM MM:SS colon-stripping timecode hallucinations.

📦 Documentation & Release Packaging

  • Published official release notes in docs/release_notes/v2.6.0.md.
  • Updated CHANGELOG.md under [2.6.0] - 2026-11-14 (crediting @icanhasjonas for feat(player): play local video files alongside YouTube #19 and documenting all added/changed/refactored items).
  • Synchronized version 2.6.0 across package.json, package-lock.json, metadata.json, README.md, and docs/FUNCTIONALITY.md.
  • Synced technical documentation across docs/AGENTS.md, docs/ARCHITECTURE.md, docs/FUNCTIONALITY.md, SCENEFLOW_CATALOGUE.md, and .agents/rules/edit-mode-architecture.md.

✅ Verification

  • npm run lint (tsc --noEmit): passed with 0 errors
  • npm run build (vite build): passed (2213 modules transformed in 7.45s), emitting dist/schema.json (1.29 kB) and dist/sync-prompt.txt (1.60 kB) via cuesAssetsPlugin
  • Validated all 55 local example JSON files referenced in src/examples.ts (all exist and parse cleanly)

@vercel

vercel Bot commented Nov 14, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
screenplay-sync Ready Ready Preview Nov 14, 2026 1:17am UTC

@taruma taruma changed the title chore(ci): add GitHub Actions CI and credit PR #19 in changelog release: v2.6.0 — local video playback, AI examples, and CI Nov 14, 2026
- Add 7 scene JSONs under public/examples/scenes/: Screaming Amber Wood, Coordinates for Three, Pineapple, What the Glacier Keeps, Paperweight, The Unresolved Variable, and The Event Boundary
- Register all 7 entries under AI Scenes in src/examples.ts with auteur script and Seedance 2.0/2.5 tags, loglines, and release dates
- Update SCENEFLOW_CATALOGUE.md (24 total AI Scenes) and CHANGELOG.md (v2.6.0)
…, and sync docs

- Add cuesAssetsPlugin in vite.config.ts to serve and emit /sync-prompt.txt and /schema.json directly from src/schemas/
- Remove duplicate public/sync-prompt.txt and public/schema.json files
- Refine CUES_SYNC_PROMPT with staging exclusion, chronological ordering, endTime > startTime, speaker extension stripping, and 8 cue type definitions
- Update cues.schema.json to require explicit nullable speaker for Gemini structured output
- Remove duplicate copy buttons and redundant Edit JSON switch from RawCuesModal
- Sync CHANGELOG.md (v2.6.0), docs/AGENTS.md, docs/ARCHITECTURE.md, docs/FUNCTIONALITY.md, and .agents/rules/edit-mode-architecture.md
- Publish official v2.6.0 release notes in docs/release_notes/v2.6.0.md covering local video file playback (#19), sync prompt/schema SSOT, 9 new AI examples, GitHub Actions CI, and cue-time-repair skill
- Bump stale 2.5.1 version references to 2.6.0 across metadata.json, package-lock.json, README.md, and docs/FUNCTIONALITY.md
- Correct the 8 cue type categories listed in docs/release_notes/v2.6.0.md to match src/schemas/cues.prompt.ts (`dialogue`, `action`, `shot`, `camera`, `audio`, `vfx`, `transition`, `environment`)
@taruma taruma changed the title release: v2.6.0 — local video playback, AI examples, and CI release: v2.6.0 — Local Video Playback, SSOT Sync Schema, 9 AI Examples & CI Nov 14, 2026
@taruma
taruma merged commit b22180b into main Nov 14, 2026
3 checks passed
@taruma
taruma deleted the v2.6.0-dev branch November 14, 2026 01:22

This branch was successfully deployed

1 active deployment
Preview — 0fd8a7c1 Deployed Nov 14, 2026 by vercel[bot]
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