Fix exotic CPU stub idle-mining guard and document Linux headless screenshots.
Some checks failed
CI Docker Mining Proof / Linux agent hashrate proof (push) Has been cancelled

Return sane fallback CPU percent after first sample on unknown Unix platforms; add xvfb/scrot docs and stub tests; clear PROBLEMS.md open bugs.
This commit is contained in:
AetherForge
2026-06-07 06:27:19 -07:00
parent 72d0e6ac19
commit f404a76caa
9 changed files with 158 additions and 9 deletions

View File

@@ -306,11 +306,38 @@ Get-Content ".\data-e2e\logs\<agent-id>.log" -Tail 100
| Defender off | ✅ | N/A (returns error) | N/A |
| systemd / LaunchAgent persistence | — | ✅ | ✅ |
| Idle-mode mining (CPU % sample) | ✅ | ✅ (fixed: /proc/stat) | ✅ (sysctl kern.cp_time) |
| Headless Linux screenshot | N/A | ✅ with Xvfb — see below | N/A |
Use **Tier 3 Windows VM** when validating spread, GPU, screenshot, or aggressive ops. Use **Tier 2 Linux** for faster C2 regression on recon + mining.
---
## Linux headless screenshot
Docker/CI/VPS agents have no real display. `scrot`, `import`, and `gnome-screenshot` need an X server.
**Install and start a virtual framebuffer:**
```bash
apt-get install -y xvfb scrot
Xvfb :99 -screen 0 1280x720x24 &
export DISPLAY=:99
```
Then run the Crucible **Screenshot** action as usual (agent picks up `scrot` on PATH).
**One-shot custom command** (Crucible screenshot command field — no persistent `DISPLAY` in the agent process):
```bash
DISPLAY=:99 Xvfb :99 -screen 0 1280x720x24 & sleep 1; scrot -q 55 /tmp/s.jpg && base64 -w0 /tmp/s.jpg
```
On Alpine or minimal images, use the agent forge **custom screenshot command** field with the same pattern.
**Unsupported platforms** (`freebsd`, etc.) return `screenshot not supported on this platform` from `screenshot_stub.go`.
---
## References
- Automated test phases: `tests/README.md`