✔ a raw token file, with or without one trailing newline, reaches curl only through the config stream (114.71017ms)
✔ the raw path accepts nothing else, and refuses before curl runs (363.007926ms)
✔ the file checks still apply on the raw path: mode, symlink, missing, directory (304.628111ms)
✔ the raw path base URL has no override (64.735925ms)
✔ the JSON path is unchanged, and JSON never falls through to the raw path (228.133678ms)
✔ a file that changes between the two reads refuses before curl runs, with or without a body (715.743095ms)
✔ the token reaches no child environment, even with an inherited CFG or SHELLOPTS=allexport (689.540339ms)
✔ real helper GET HTTP 200 preserves exit 0 without credentials (14.872591ms)
✔ real helper POST HTTP 201 preserves exit 0 without credentials (10.438959ms)
✔ real helper GET HTTP 403 preserves exit 1 without credentials (9.544019ms)
✔ fixture git subjects only, follow-ups and three session kinds (241.298844ms)
✔ text and JSON carry same numbers, open and truncated title (308.52844ms)
✔ missing credentials exit 2, no-issues never calls API and shows unknown (280.299865ms)
✔ empty range gives no rows and zero totals (213.054503ms)
✔ inclusive UTC dates, first-line preamble only, role and seat boundaries (215.603367ms)
✔ close-only issue included, even median, missing metadata stays unknown (197.614777ms)
✔ unique commits but per-issue links count multiple tags once each (215.527408ms)
✔ page cap refuses rather than silently undercounting (201.211581ms)
✔ bad API payload not JSON refuses (140.742625ms)
✔ bad API payload {} refuses (196.87563ms)
✔ bad API payload [{"number":1}] refuses (182.932775ms)
✔ partial or malformed session log refuses with location, not content (186.997309ms)
✔ a U+2028 or U+2029 inside a session string is one line, not a malformed record (213.14167ms)
✔ no sessions is an empty table; symlink source refuses (291.100853ms)
✔ reads only refactor even when another branch is checked out (226.626428ms)
✔ invalid dates, reverse dates and duplicate options refuse (176.688993ms)
✔ T3 agent assignments do not count as human in Table 2 (219.617626ms)
✔ preamble parsing and issue number boundaries (0.434196ms)
✔ T3 header: agent, or board from control-board; anything short of the full header is human (0.143448ms)
✔ no closed issues with human messages means undefined ratio, not invented zero (0.19361ms)
✔ T3: seat, archived, unmapped and Researcher threads count; imported, deleted and other-project threads do not (824.563293ms)
✔ T3: the default path is read from HOME and prints no path line; --no-t3 says so (1000.905234ms)
✔ T3: a HOME with no database exits 1 and names --no-t3 (203.609674ms)
✔ T3: a file that is not a database exits 1 and names --no-t3 (194.71429ms)
✔ T3: a seat thread renamed to another seat exits 1 naming thread, title and roles (518.142029ms)
✔ T3: an unmapped thread addressed as a seat exits 1 (569.946942ms)
✔ T3: a header to another thread id is not cross-checked (787.859966ms)
✔ T3: no project, or two, for this root exits 1 (1458.185096ms)
✔ T3: a removed column exits 1 and names it (374.658545ms)
✔ T3: a missing table exits 1 and names it (333.135189ms)
✔ T3: a counted row with an unknown role exits 1 without its text (518.1692ms)
✔ T3: a counted row with non-text content exits 1 without its text (470.069153ms)
✔ T3: a counted row with an unparseable created_at exits 1 without its text (594.355264ms)
✔ T3: a missing orchestration_events makes the diagnostic unknown and keeps the counts (1101.049509ms)
✔ T3: a human message with no event counts in humanWithoutEvent (559.271689ms)
✔ T3: an unparseable event makes the diagnostic unknown and keeps the counts (909.949273ms)
✔ T3: an event with no string messageId makes the diagnostic unknown and keeps the counts (971.023265ms)
✔ T3: an error that is not from SQLite is rethrown, not reported as a database failure (424.377883ms)
✔ T3: a symlink at ~/.t3 exits 1 (178.873006ms)
✔ T3: a symlink at ~/.t3/userdata exits 1 (194.873019ms)
✔ T3: a symlink at ~/.t3/userdata/state.sqlite exits 1 (138.790741ms)
✔ T3: with --t3-db, a symlinked file or directory exits 1 (598.260244ms)
✔ T3 WAL: the newest message only in -wal, writer attached, is counted (616.999343ms)
✔ T3 WAL: stopped cleanly, counts are correct and the main file is unchanged (747.300765ms)
✔ T3 WAL: -wal without -shm in a writable directory is read (669.972464ms)
✔ T3 WAL: -wal without -shm in a read-only directory exits 1 (859.988644ms)
✔ T3 WAL: stopped cleanly in a read-only directory exits 1 (780.564496ms)
✔ T3: a lock held past the 5 s busy timeout exits 1 and names --no-t3 (5802.477411ms)
✔ a done row whose closing issue is open is a violation; a row that is not done is not (1.814873ms)
✔ an issue several rows close is expected closed only once all of them are done (0.493759ms)
✔ closure needs positive evidence: unknown is undecided, and so is a skipped or short issue check (0.366812ms)
✔ each owner of an in-progress or in-review row gets one liveness class (7.558511ms)
✔ a required row not done after 14 days is a violation; a legacy row uses genesis as its lower bound (0.382616ms)
✔ an ISO requiredSince, as `set required` writes it, ages from its UTC day; one that does not parse is a violation (0.239616ms)
✔ the text section always ends in a count and a result, and never prints a full pass (0.322972ms)
✔ pidAlive: a running pid is present, an exited one is gone, and EPERM still means present (24.300433ms)
✔ issue states: open list first, then the metric page, then at most 10 lookups (299.016341ms)
✔ a full open list: lookups settle what it leaves out, and only an unsettled issue keeps it undecided (379.027884ms)
✔ the open list refuses on a failed call or a bad record, and never echoes the helper (187.181352ms)
✔ a helper call past the deadline is killed with its child, and the call reports it (2008.003463ms)
✔ readQueue loads queue.json through the queue validator and refuses anything else (242.189312ms)
✔ protected changes list every in-range entry that changes a required or parked row (525.618188ms)
✔ the CLI prints the queue section above the weekly table and under a queue key in --json (563.216329ms)
✔ a queue with nothing wrong prints 0 violations and a reduced pass, never a full pass (284.538284ms)
✔ --no-issues makes no call and leaves the issue checks undecided; --no-queue skips the section (343.338245ms)
✔ the CLI refuses a bad queue before any call, and a failed open list with exit 2 (308.846971ms)
✔ --unsupported-runtime repeats once per seat and takes a seat name (342.898875ms)
✔ an unreadable config makes every owner invalid instead of passing them (197.221174ms)
ℹ tests 78
ℹ suites 0
ℹ pass 78
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 26163.120468
