command: ["timeout", "-k", "10", "1800", "node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/bus/tests/access-revoke.test.mjs"]
TMPDIR: /mnt/storage/scratch/tmp/GHeQEZ
begin: {"utc": "2026-10-24T21:31:13.135+00:00", "load1": "2.97"}
launch nice: 19
✔ R4: the timer sweep after a hand edit ends only the lost user's run; its next call refuses thread-revoked (34.547237ms)
✔ R4: an expiry with no write and no request ends the run at the next timer sweep (24.609266ms)
✔ R4: a downgrade to viewer is a loss (22.279316ms)
✔ R4: another user's request after a hand edit ends the lost user's run, and its own run stays (24.741291ms)
✔ R4: a request reads the access file only when its stamp changed, once per change (22.355965ms)
✔ R4: access.reload ends the lost runs at once for the human; the tester, a reader, an agent and a user are refused (27.346334ms)
✔ R4: threadsState marks revoked: true on the lost user's thread only, a pending message included (18.726202ms)
✔ R4: threadsState after an expiry with no write and no sweep ends the claim before it marks the row revoked (23.973845ms)
✔ R4: a new run of a revoked thread refuses thread-revoked at bind and at claim; a rebind is allowed (20.679959ms)
✔ R4 runtime: a hand edit ends the run at the first timer period, intervalMs is checked, and close stops the timer (60.782175ms)
ℹ tests 10
ℹ suites 0
ℹ pass 10
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 428.488475
