fix(framework): per-session ticket files unblock parallel sessions [#439]

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
This commit is contained in:
2026-08-27 13:01:25 -05:00
parent 5977eba503
commit ae8af3472b
4 changed files with 19 additions and 9 deletions
+4
View File
@@ -160,6 +160,10 @@ for a full audit or `--fast` for pre-commit speed. Bypass with `--no-verify`
The Crush hook (`hooks/ticket-gate.sh`) blocks modifying operations
until this file exists. If no ticket exists, CREATE ONE FIRST via
redmine-cli, then set it. Clear when done: `> .crush/active-ticket`.
**Parallel sessions:** each session uses its OWN suffixed file (e.g.
`.crush/active-ticket-plant`, `.crush/active-ticket-core`) so concurrent
sessions never clobber each other's ticket; any non-empty
`.crush/active-ticket*` satisfies the gate.
- **WORKING.md** is the only in-repo task tracker — a scratchpad for the current
session. The pre-commit hook blocks commits while any task remains unchecked.
- **Parallel sessions:** when two sessions share this repo (e.g. physical plant