2.4 KiB
2.4 KiB
ADDED Requirements
Requirement: Run worker maintains platform session
The run executable SHALL support a worker mode that registers with platform and maintains heartbeat state.
Scenario: Worker registers and heartbeats
- WHEN run starts in worker mode with valid platform configuration
- THEN it MUST send hello, store the active session token, and continue sending heartbeat metadata
Scenario: Heartbeat does not carry heavy channels
- WHEN run sends heartbeat
- THEN it MUST NOT include logs, artifact chunks, job result bodies, host paths, raw credentials, or direct sockets
Requirement: Run worker processes job lifecycle
The run worker SHALL claim, acknowledge, report progress, complete, cancel, and reconcile jobs through the platform job channel.
Scenario: Job assignment completes
- WHEN platform assigns a supported lifecycle job
- THEN run MUST ack the job, report bounded progress, execute scoped lifecycle work, and submit a terminal result
Scenario: Cancel request handled
- WHEN platform reports cancellation for an active job lease
- THEN run MUST attempt cancellation and submit a bounded cancelled or failed result
Requirement: Lifecycle execution is scoped
The run worker SHALL execute install, start, and stop lifecycle commands only inside configured server workspaces with validated command templates.
Scenario: Scoped lifecycle command accepted
- WHEN a lifecycle job resolves to a safe command template and workspace
- THEN run MUST execute it through the process supervisor and redact unsafe output before platform reporting
Scenario: Unsafe lifecycle command rejected
- WHEN a lifecycle job requests absolute paths, parent traversal, raw credentials, direct sockets, or unrestricted shell execution
- THEN run MUST reject the job with a bounded failure result
Requirement: Run channels remain prioritized
The run worker SHALL keep control, job, log, and artifact work channelized so large transfer work cannot block heartbeat or job result submission.
Scenario: Artifact work pending during heartbeat
- WHEN artifact uploads are pending and a heartbeat is due
- THEN run MUST prioritize heartbeat over artifact transfer work
Scenario: Process logs are spooled
- WHEN a managed process writes stdout or stderr
- THEN run MUST write bounded log entries to local spool for platform ingest