Manual Controls¶
Rhylthyme supports interactive manual controls during program execution, allowing steps to be started or completed by the user rather than running on fixed timers. This is essential for real-world workflows where certain tasks require human judgment about when to begin or end.
The Manual Controls Demo example (available in the sidebar) demonstrates all three types of manual interaction.
Manual Start Triggers¶
A manual start step waits for the user to explicitly start it. The step will not begin until the user clicks the "Start Step" button, even if the program timeline has progressed past its scheduled start time.
{
"stepId": "manual-prep",
"name": "Manual Preparation",
"task": "preparation",
"duration": {
"type": "fixed",
"seconds": 60
},
"startTrigger": {
"type": "manual",
"triggerName": "start-preparation"
}
}
Key behaviors:
- The step slides forward along the timeline until the user clicks Start Step
- Once started, the step runs for its full specified duration
- Same-track predecessor steps must complete before the Start button appears
- A dashed border on the timeline bar indicates a manual start step
Same-Track Prerequisites
If a manual start step has a predecessor on the same track, the Start button only appears after the predecessor completes. This prevents starting a step before its dependencies are met.
Variable Duration Steps¶
A variable duration step has a minimum time it must run, a maximum time it can run, and a default time it will run if not manually completed. The user can click "Mark Complete" to end the step early (after the minimum time) or let it auto-complete at the default time.
{
"stepId": "variable-monitor",
"name": "Variable Duration Monitoring",
"task": "monitoring",
"duration": {
"type": "variable",
"minSeconds": 45,
"maxSeconds": 180,
"defaultSeconds": 120,
"triggerName": "monitoring-complete"
},
"startTrigger": {
"type": "afterStep",
"stepId": "setup"
}
}
Key behaviors:
- The step starts automatically based on its
startTrigger - A Mark Complete button appears in both the itinerary and the manual actions panel
- The step will auto-complete at
defaultSecondsif not manually stopped - The timeline bar shows a flex icon (hatched pattern) indicating variable duration
minSecondsdefines the earliest the step can be completedmaxSecondsis the absolute maximum duration
| Field | Purpose |
|---|---|
minSeconds | Minimum time the step must run before it can be completed |
maxSeconds | Maximum time the step can run (hard limit) |
defaultSeconds | Time the step runs if not manually completed |
triggerName | Identifier for the completion trigger |
Indefinite Duration Steps¶
An indefinite duration step runs until the user explicitly stops it. There is no automatic completion -- the user must click "Mark Complete" to end the step and allow execution to continue.
{
"stepId": "indefinite-watch",
"name": "Indefinite Watching",
"task": "watching",
"duration": {
"type": "indefinite",
"defaultSeconds": 120,
"triggerName": "stop-watching"
},
"startTrigger": {
"type": "afterStep",
"stepId": "variable-monitor"
}
}
Key behaviors:
- The step starts automatically based on its
startTrigger - Execution does not pause while the step runs -- other tracks continue
- The timeline bar has reduced opacity (0.7) to visually indicate indefinite duration
- A Mark Complete button appears in both the itinerary and the manual actions panel
defaultSecondsis used only for display sizing in the timeline -- it does not affect execution- The step must be manually completed for dependent steps to begin
Blocking Dependent Steps
Steps that depend on an indefinite step (via afterStep trigger) will not start until the indefinite step is manually completed. Plan your track dependencies accordingly.
Manual Actions Panel¶
During execution, an indigo Manual Actions Required panel appears at the top of the visualization whenever there are steps needing user interaction. This provides quick access to Start and Complete buttons without scrolling to the itinerary.
The panel shows:
- Start buttons (indigo) for manual-start steps that are ready to begin
- Complete buttons (green) for indefinite or variable-duration steps that are currently active
Itinerary Badges¶
The itinerary view shows color-coded badges next to steps with manual controls:
| Badge | Meaning |
|---|---|
| Manual Start (green) | Step requires user to click Start |
| Manual Complete (green) | Step has a variable or indefinite duration with manual completion |
| Indefinite (amber) | Step has no automatic end time |
Combining Manual Features¶
Steps can combine manual start with variable or indefinite duration:
{
"stepId": "manual-execution",
"name": "Manual Execution Step",
"task": "execution",
"duration": {
"type": "variable",
"minSeconds": 30,
"maxSeconds": 120,
"defaultSeconds": 75,
"triggerName": "execution-done"
},
"startTrigger": {
"type": "manual",
"triggerName": "start-execution"
}
}
This step requires the user to click Start, then runs with a variable duration that can be completed manually after 30 seconds or auto-completes at 75 seconds.
Cross-Track Dependencies¶
Steps on different tracks can depend on manual steps. When a manual step is completed, its dependent steps on other tracks begin immediately. The grey S-curve connectors in the timeline view update their positions in real-time as steps are pushed or completed during execution.
Try It Out¶
Load the Manual Controls Demo from the Examples sidebar to experiment with all three types of manual interaction. Set the speed to 10x for faster testing, then:
- Click Start to begin execution
- Complete the "Initial Setup" step using the Mark Complete button
- Start the "Manual Preparation" step when its Start Step button appears
- Complete the "Variable Duration Monitoring" step early
- Complete the "Indefinite Watching" step when ready
- Start and complete the "Manual Execution Step"
- Watch "Final Cleanup" auto-complete