Files
phantomptrandClaude Opus 5.5 7199b2fae2 Remove unused repo files and stale FTX2 doc notes
Deletes tests/install-fallback-hw.mjs, the mobile audit probe and its allowlist,
scripts/requirements.txt, tests/lab/verify-pending.sh, bench/baselines/ and client/icons/
(nothing references them; the bundle icons live in client/src-tauri/icons). audit-scripts
lists fpkg-diff.py as a manual research tool and no longer counts a script naming itself as
a reference. SPEC.md no longer says zip/7z/RAR sources fall back to FTX2.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ub1mez9eaVtTF8pMEFXvA9
2026-10-10 06:24:09 -07:00
..
2026-09-27 04:31:13 -07:00

Lab

Hand tools for poking a live PS5. These are deliberately manual — one frame, one question, no workflow around it. When something on hardware behaves oddly and you want to know exactly what the payload answered, this is where you come.

For automated end-to-end checks use ../smoke-hardware.mjs instead; for the full gate see ../../TESTING.md.

Pointing them at your console

Every script reads PS5_ADDR (or takes the address as its first argument), so nothing here is tied to one network:

export PS5_ADDR=192.168.1.50           # console address
./status-runtime.sh
./hello-runtime.sh

The helper's only port is 9120 (AVA1); the console's ELF loader is typically 9021. The committed defaults are generic — keep your own addresses in a local env file rather than editing these scripts.

What's here

Runtime state — hello-runtime.sh, status-runtime.sh, check-runtime-port.sh, smoke-runtime.sh (the first two call ps5upload-lab hello / status)

Payload lifecycle — send-payload.sh, shutdown-runtime.sh, reload-and-verify-takeover.sh

Diagnostics — capture-runtime-trace.sh, elev_probe

For anything else, use ps5upload-lab (see engine/crates/ps5upload-lab): every command goes over AVA1, takes the console's host, and accepts a trailing :port that it ignores.

Don't delete these because nothing calls them

scripts:audit marks lab utilities as intentionally manual. A script with no caller is the normal state here, not dead code.