Goal
Warm rebuild + deploy + monitor reconnect on ESP32-S3 should complete end-to-end in under 4 000 ms when:
- No source / config / toolchain changes since the last build.
- The device already holds the exact firmware image (verify-flash MD5 match).
- The serial monitor is expected to reattach and receive the first JSON-RPC byte.
"Auto-research" is the SerialMonitor.auto_reconnect behaviour — the monitor reattaching after a deploy preempts the serial session.
Budget tree (total: 4 000 ms)
| Phase |
Budget |
| CLI → daemon handshake |
200 ms |
| Daemon lock + dispatch |
100 ms |
| Warm-build fingerprint hit (no compile, no link) |
500 ms |
| Verify-flash MD5 match (3 regions) |
1 500 ms |
| Serial port re-open + WebSocket reattach |
700 ms |
| TTFB (first JSON-RPC byte from device) |
1 000 ms |
| Slack |
0 ms |
Agent loop
The full spec — test matrix, per-iteration procedure, decision rules, outputs — lives at LOOP.md in the repo root (landed in #113 / `cacba6f`). It is invokable with the `/loop` skill:
```
/loop @./LOOP.md
```
Every iteration appends a row to `tasks/loop-runs/RESULTS.csv` and the agent judges each capture against the budget tree. On three consecutive green T1–T3 iterations, the loop writes `tasks/loop-runs/SUMMARY.md` and terminates; on five attempts without improvement, it files a follow-up issue and stops.
Known suspects (from existing investigation)
From docs/PERF_WARM_BUILD.md (issue #91):
- First warm build after a daemon restart spends ~68 s in the ESP32 orchestrator even with the fingerprint populated.
- Second warm build still takes ~1.3 s because `fp-watches-collect` walks thousands of files and zccache re-verifies.
- Fix direction: split the fast-path fingerprint into in-memory + on-disk layers.
From #66:
Deliverables
Related: #91 (warm-build investigation), #66 (espflash migration).
Goal
Warm rebuild + deploy + monitor reconnect on ESP32-S3 should complete end-to-end in under 4 000 ms when:
"Auto-research" is the
SerialMonitor.auto_reconnectbehaviour — the monitor reattaching after a deploy preempts the serial session.Budget tree (total: 4 000 ms)
Agent loop
The full spec — test matrix, per-iteration procedure, decision rules, outputs — lives at
LOOP.mdin the repo root (landed in #113 / `cacba6f`). It is invokable with the `/loop` skill:```
/loop @./LOOP.md
```
Every iteration appends a row to `tasks/loop-runs/RESULTS.csv` and the agent judges each capture against the budget tree. On three consecutive green T1–T3 iterations, the loop writes `tasks/loop-runs/SUMMARY.md` and terminates; on five attempts without improvement, it files a follow-up issue and stops.
Known suspects (from existing investigation)
From docs/PERF_WARM_BUILD.md (issue #91):
From #66:
Deliverables
Related: #91 (warm-build investigation), #66 (espflash migration).