Files

34 lines
2.6 KiB
Markdown

## ADDED Requirements
### Requirement: Run synchronizes a frozen DLL plan before server start
Run SHALL synchronize a declared UE4SS DLL extension before executing the associated `process.start` command. It SHALL compare the local managed-release marker against the frozen version/checksum, skip unchanged releases, and otherwise download, checksum-verify, stage, and atomically activate the declared DLL path within the scoped server workspace.
#### Scenario: Changed approved DLL updates before launch
- **WHEN** a start job carries a valid extension plan whose release differs from the managed marker
- **THEN** Run verifies and activates the new DLL before launching the server process.
#### Scenario: Unchanged approved DLL is reused
- **WHEN** a start job carries the same version and checksum as the managed marker
- **THEN** Run does not download the DLL again and proceeds to server launch.
### Requirement: Run preserves DLL deployment safety boundaries
Run SHALL require HTTPS, a SHA-256 checksum, bounded content length, a safe logical target, and a declared `.dll` path. It SHALL write only managed extension files, retain one previous DLL for rollback, redact sensitive generated configuration, and never execute the DLL, inject a running process, load arbitrary libraries, or expose raw local paths/credentials through Platform-facing results.
#### Scenario: Invalid or mismatched payload does not activate
- **WHEN** download fails, exceeds its byte limit, has a checksum mismatch, or the declared DLL path is unsafe
- **THEN** Run keeps the prior managed DLL intact and returns a safe failed start result.
### Requirement: Run explicitly rejects Linux UE4SS DLL activation
Run SHALL reject a `ue4ss-dll` extension plan when its local platform is not Windows amd64. It SHALL not attempt to map the DLL, invoke a shell loader, or substitute `LD_PRELOAD`.
#### Scenario: Linux extension start fails closed
- **WHEN** a Linux Run receives a UE4SS DLL extension plan
- **THEN** it returns `unsupported_extension_platform` before any download or process launch.
### Requirement: Extension synchronization does not block independent channels
DLL download and verification SHALL run inside the claimed lifecycle job with bounded context while Run control heartbeat, job acknowledgement/result, cancellation polling, log spool upload, and artifact transfer remain independently scheduled.
#### Scenario: Slow DLL download preserves control and log traffic
- **WHEN** a DLL download is blocked or slow during a start job
- **THEN** Run continues its control heartbeat and durable log upload within their configured deadlines.