Files
acdl/core
Jon Chery 28d4645a0c
acdl-ci / Lint (push) Successful in 9s
acdl-ci / Test (push) Successful in 2m12s
acdl-ci / Platform check-only (offline) (push) Successful in 10s
verify(v1.10): code review — 1 P0 auto-fixed, 1 P1 auto-fixed, 2 P1+ flagged
Multi-persona review of the v1.10 milestone (6 commits, 23 files).

P0-1 (auto-fixed): TOCTOU race in LocalEcsEmulator.deploy() — opened a
socket to find a free port, closed it, then bound TCPServer to that
port. Between close and bind, another process could grab the port,
causing serve_forever to fail with OSError: Address already in use.
Fix: bind TCPServer directly to port 0 (OS assigns a free port
atomically); read the assigned port back from server_address[1].

P1-1 (auto-fixed, upgraded): run_local_e2e() called os.chdir() as a
side-effect without restoring the prior CWD. Fix: wrapped the body in
try/finally that restores prior_cwd on exit.

P2-1 (flagged): regression registry covers microservice + static-assets
but not uptime-kuma or RDS stacks. Recommend adding in a future patch.

P2-2 (flagged): _check_outbox_writer uses an f-string to embed a temp
path into a python3 -c command. Safe in practice but fragile by design.

Verified after fixes: 513 fast tests + 5 slow local E2E tests pass.
No regressions.

---ci---
project: acdl
phase: 0
milestone: v1.10
status: verify
lessons:
  - P0 fix: TOCTOU race in LocalEcsEmulator.deploy() — bind to port 0
    directly instead of open/close/rebind.
  - P1 fix: os.chdir side-effect in run_local_e2e() — restore prior
    CWD in a finally block.
  - The regression registry should be expanded to cover all L2 stacks
    (uptime-kuma, RDS) to prevent untested-stack regressions.
---/ci---
2026-07-27 18:46:05 +00:00
..