The ticket gate required the single .crush/active-ticket file, so two
concurrent sessions overwrote each other's ticket mid-work. The gate now
accepts any non-empty .crush/active-ticket* file; each session keeps its
own (e.g. active-ticket-plant, active-ticket-core). Also prune .crush/
session scratch from both shellcheck scanners so one session's throwaway
probe scripts cannot block the other session's commits. Documented in
AGENTS.md Task Tracking.
💘 Generated with Crush
Assisted-by: Crush:glm-5.2
tests/README.md
Documentation moved to Discourse — the canonical source of truth.
Test suite + VM validation harness
Read it here: https://community.turnsys.com/t/302
Migrated 2026-08-06. This file is kept as a pointer for git-browsing context. Do not update content here — edit the Discourse wiki topic instead.