Skip to content

Releases: stoatworks-labs/presentation-commander-server

v1.0.1

Choose a tag to compare

@github-actions github-actions released this 30 Jul 15:07

What's Changed

New Contributors

Full Changelog: windows-build-4...v1.0.1

Windows Build 4

Windows Build 4 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 14 Jul 23:05
Make the Confidence Monitor a real composited NDI output

Presenter notes already flowed end-to-end to the server (via the
existing slide-state WebSocket sync), but only ever fed a static text
box in the operator's own Control Deck panel. This makes the
"Confidence Monitor" stage-display output — seeded as mock data since
day one but never backed by a real signal — actually broadcast a real
NDI feed: live video layers plus a new "Presenter Notes" text layer,
merged into one 1920x1080 frame and sent out via a new native
ndi-send addon (mirrors the client's, copied verbatim).

- native/ndi-send: copied from the client repo, generic NDI SDK send
  wrapper, no app-specific code.
- ndiOutputSender.ts: mirrors the client's ndiSender.ts coalescing
  queue pattern; new ndi-output:* IPC surface mirrors the client's
  ndi:* pattern.
- shared/types.ts: new NotesSource kind referencing a connected
  Client Node's live notes/slide-state; SceneLayer already generically
  references any sourceId, so no layer-shape change needed.
- StageDisplayCompositor.tsx: always-mounted, invisible. Resolves the
  stage-display output's routed scene/source, draws live NDI layers
  (reusing the packFrame repack helper extracted from Viewer.tsx) and
  notes-layer text onto one offscreen canvas, pushes frames when the
  output is toggled on.
- ndiPreview.ts: added reference counting — the Viewer's edit-time
  preview and the always-on compositor can now watch the same NDI
  source independently, so one stopping must not kill the shared
  receiver out from under the other.
- SourcePool/MatrixInspector: "Presenter Notes" as a third addable
  source kind (pick a connected client instead of typing a name), and
  an NDI Output toggle next to the Confidence Monitor row.

Verified end-to-end with a real receiver connected to the outgoing
stream: composited video positioned correctly, live note text
overlaid (2695 bright/text pixels sampled), toggle-off genuinely stops
the broadcast, and swapping the routed scene updates the live output.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>