Skip to content

Run a test bed baseline

workflowobservedEvidence reviewed 2026-10-06

A run is run-baseline.sh <name> <minutes> from the Mac, in the appliance repository’s notes folder claude-notes/2026-10-05-test-bed/ (an untracked folder in ~/code/appliance; see the source map). Run 1 on 6 October was interrupted after 114 minutes by a power loss, so it is a set of observations, not a completed baseline; run 2 was in progress when this page was written.

  • The Mac on a network that routes to 192.168.1.0/24 and a Vault-signed certificate for the appliance (any ssh to it refreshes one).
  • The simulator container running on the build server with the seven paths, and the receiver unit active (systemctl is-active webhook-receiver).
  • The cameras and agents in place on the appliance; the script changes neither.
  • No other run in progress, and no heavy work on the build server during the run.
  1. Writes the start time to measurements/<name>/run.txt.
  2. Renames the receiver’s log on the build server to received-before-<name>.jsonl.
  3. Restarts the simulator container so every clip starts at its first frame. This interrupts all seven streams; the appliance reconnected within 75 seconds in both runs.
  4. Records each path’s ready time and the simulator’s and search-engine’s container start times.
  5. Takes one measure.sh sample a minute: one SSH to the appliance (container CPU and memory, load, GPU, detection rows per camera, lifecycle messages, errors, queue depths) and one request to the simulator (readers per path). Nothing is changed.
  6. At the end dumps, since the start time, the search-engine’s lifecycle lines and errors, the fire-log rows from TimescaleDB and the receiver’s lines, then checks that nothing restarted during the run and says so in run.txt.

Output files: run.txt, paths.txt, samples.log, lifecycle.log, errors.log, fire-log.csv, received.jsonl. Per-agent results and the comparison between runs are kept beside them in the appliance repository notes, not here.

The first minute holds the restart transient (old events end, new ones start). The Mac’s .local lookup of the build server fails off-subnet, so the script uses the reserved address. A run is void if either machine restarts in the middle; the end-of-run check catches that. Scope so far: the script ran end to end once (run 1, 6 October), but that run was interrupted, so no completed run is on record here; the restart check was added after it and dry-tested, then used from run 2.