feat(demo): ship the demo project with working automations

The demo had automations empty and switched off, so the feature stayed
invisible to exactly the users most likely to be exploring. It was also
inconsistent with the blank project default, where automations are on.

Three automations, none of which touch the network. Two fire: an aux timer
that runs with the event, on a global trigger, and a wrap-up message on an
event level trigger, which is the only way per-event triggers get found by
browsing rather than by reading the docs. The third is a fully formed OSC
example with no trigger attached at all, so there is something realistic to
read and edit without anything being sent anywhere.

OSC input stays off: never open a listening socket the user did not ask for.

The ids are hand written literals and nothing in the type system checks that
a trigger resolves to an automation, so a test covers that, along with the
promise that nothing bound to a trigger can reach off this machine.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LpbLJVVT26tzWkduck1M9H
This commit is contained in:
Claude
2026-08-08 11:10:16 +00:00
parent e7379c9add
commit fc8819cea6
3 changed files with 133 additions and 6 deletions
+11 -2
View File
@@ -1,4 +1,4 @@
import { SupportedEntry, TimeStrategy, EndAction, TimerType, Day, Rundown } from 'ontime-types';
import { SupportedEntry, TimeStrategy, EndAction, TimerType, Day, Rundown, TimerLifeCycle } from 'ontime-types';
export const stageRundown: Rundown = {
id: 'default',
@@ -120,7 +120,16 @@ export const stageRundown: Rundown = {
Audio_Notes: '1x Wireless Hand Held',
PowerPoint_Name: 'HoldingSlide.pptx',
},
triggers: [],
// demonstrates that an automation can be attached to a single event, which is
// otherwise only discoverable by reading the docs. See demoProject.ts
triggers: [
{
id: 'demo-event-trigger',
title: 'Wrap up warning',
trigger: TimerLifeCycle.onDanger,
automationId: 'demo-danger-message',
},
],
},
fa593e: {
id: 'fa593e',