Goal
Bound the managed engine's resource consumption without inventing unsupported Ace Stream behavior or breaking playback.
Scope
- Introduce a typed
EngineResourcePolicy; never accept arbitrary Docker or engine arguments from the UI.
- Keep cache size configurable within conservative bounds. The current engine starts with a 2 GiB cache limit.
- Add explicit Docker CPU, memory, and process limits after measuring normal startup and HD playback on Apple Silicon and Intel.
- Investigate an upload-rate limit for the exact official client-console engine version. Enable it only after an official client-mode setting or repeatable binary/runtime evidence confirms its meaning and units.
- Report effective limits in sanitized diagnostics.
- Preserve the limits when replacing stale managed containers.
Acceptance criteria
- Invalid, excessive, and unsupported values are rejected before invoking Docker.
- Unit tests verify exact Docker argument arrays and engine arguments.
- Integration tests cover startup, playback readiness, and graceful failure under the selected memory/CPU ceilings.
- A verified upload limit is demonstrated in session statistics without disabling playback or leaking around the limit.
- No claim is made that a bandwidth cap prevents P2P sharing or provides anonymity.
Non-goals
- Disabling Ace Stream's protocol requirements by guessing undocumented flags.
- Exposing a large settings panel in the initial Player UI.
Goal
Bound the managed engine's resource consumption without inventing unsupported Ace Stream behavior or breaking playback.
Scope
EngineResourcePolicy; never accept arbitrary Docker or engine arguments from the UI.Acceptance criteria
Non-goals