D1 self snapshot due_date self 2026-12-01T09:00:00.456Z returned digest e5a760bab0c0
D1 external events after one tick [["due_date"]]
D1 same schedule again sends PATCH 1
D1 expect=returned digest -> task-conflict
D2 external events 0
W1 caller sees tracker-unavailable
W1 coder assigned in tracker true
W1 action.allowed task.assign 1
W1 task.assigned events 0 self snapshots 1
W1 poll external events [["assignees"]]
W1 caller retries assign -> task-assigned
H1 human task.assign agent-required
H2 reader task.assign read-only
H3 non-holder coder update not-holder
R1 other task id 2 schedule -> ok relations on task 1 [{"kind":"related","other":2}]
C1 reviewer (no scope.change authority) wrong expect -> task-conflict task.conflict events 1
C1 reviewer right digest -> decision-required
M1 tick -> tracker-unavailable external 0 missing 0
T1 next tick -> ok external 0 missing 1
✔ D1 schedule with milliseconds: the poll reports the bot's own due date as an external change (153.643079ms)
✔ D2 whole seconds: no external change (control) (153.767528ms)
✔ W1 write lands, final read fails: refusal, no self record, poll calls it external (141.822904ms)
✔ H1 a human, H2 a reader, and a non-holder cannot call a task verb (129.310616ms)
✔ R1 a relation to another project's task id under this project's ref (156.710932ms)
✔ C1 a conflict event costs no authority; a role without the verb can still write task.conflict (192.008667ms)
✔ M1 one task with a 500 in missing() stalls the tick; T1 the tick after recovers (156.768599ms)
ℹ tests 7
ℹ suites 0
ℹ pass 7
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 1180.631533
