Skip to content

feat: MOS Plugins - #110

Open
PeterC89 wants to merge 10 commits into
SuperFlyTV:mainfrom
PeterC89:feat/mos-plugin-pieces
Open

PeterC89 wants to merge 10 commits into
SuperFlyTV:mainfrom
PeterC89:feat/mos-plugin-pieces

Conversation

@PeterC89

@PeterC89 PeterC89 commented Nov 3, 2026 •

Copy link
Copy Markdown

This PR is opened on behalf of myself.
All the code is AI generated but has been reviewed and functionally checked by a human.

I had a need to test some MOS plugins with an automation system and figured the rundown editor wasn't a bad place to do it.

What this does
You can now create and edit pieces using an external MOS plugin, such as a graphics or clip picker. The plugin opens inside the editor. When you save in the plugin, the piece is created or updated.

How it works

  • Settings: add a plugin by giving it a name and a URL.
  • Creating a piece: in a part's pieces list, click "Add from ". The plugin opens in a popup. When it sends back an item, a piece is created from it.
  • Editing a piece: on a piece made by a plugin, click "Edit in ". The plugin opens with the piece's saved item, and its changes are saved to the piece straight away.

Things worth knowing

  • Times: an item's start and duration use the item's own time base (objTB) if it has one. Otherwise they use the frame rate from Settings.
  • Slow or missing plugins: if a plugin doesn't respond within 10 seconds, you get a warning with Retry and "Open in new tab".
  • Saving: if a second item arrives while one is still saving, it is refused. A save that takes more than 30 seconds shows a timeout error.
  • Edit failures: if saving an edit fails, the popup stays open and shows the error.
  • Messages: the editor only accepts messages from the plugin's own frame and URL.

Autofix with [code]smith
Open in [code]smith · Need help on this PR? Tag @codesmith-bot with what you need.

Peter C and others added 10 commits November 3, 2026 10:03
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Use DOMParser instead of @nodable/sax, fix stale-item Save, add plugin
loading/failure states, settings validation and labels, and more comments.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The plugin now decides when to save: it sends ncsItem and the editor acks
it, creating or updating the piece. Removes the host Save button and
ncsItemRequest. Guards against double items, times out a stuck save, reads
objTB for item times, and adds a demo plugin and UX/wording fixes.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
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