Repository navigation
Add editable playlist preparation and resumable screen publishing - #14
Merged
Merged
Conversation
This was referenced Sep 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Agents currently have to construct full-screen playlist geometry, strip inspection metadata before editing, and coordinate playlist creation with screen assignment themselves. This adds a supported prepare/edit/publish workflow using the existing backend contracts.
playlist initbuilds a validated image/video playlist from ordered ready media IDs and explicit or observed screen dimensions.playlist show --output FILEwrites an editable document and reports its source revision.--editablereturns the document in the JSON envelope. Dynamic selectors, schedules, motion, and application pins are preserved.screen publish SCREEN FILE --expect-rev REVcreates and assigns a playlist, then reads back the assignment. A private local journal resumes ambiguous writes without duplicating playlist creation; revision conflicts stop, and unfinished replay expires after the server's 24-hour idempotency window. Assignment verification is explicitly separate from playback verification.-); generation accepts--prompt-file FILE|-.--expect-revbecomes the preferred CLI spelling;--if-matchremains compatible, both together are rejected, and HTTP If-Match semantics are unchanged.Validation: build/typecheck/lint, public check, vendor internal consistency, 197 focused tests (including integration with main’s write recovery and nonblocking connection changes), mock smoke, package dry-run, release artifact check (19 exact runtime dependencies), and clean npm installation passed. The broader suite ran with 587 passes, 1 skip, and 5 failures caused by unavailable Liberation fonts on this macOS host; CI installs those fonts. Additional workflow and write-recovery integration tests passed in the final focused run. No live server or Player validation was run. Vendored contracts and runtime hashes are unchanged.
Documentation drafts are intentionally excluded pending operator approval: CLI README in the main checkout, plugin skill/reference sources and docs-only generated copies, and website CLI/start/agent guides remain uncommitted. No publication or deployment is included.