no-leave-tree-check: rc=1 ℹ pass 18 ℹ fail 1 
    ✖ a child that leaves the tree has its tasks recorded missing, and the ledger keeps their history
    ✖ failing tests:
no-watch-only-bucket: rc=1 ℹ pass 9 ℹ fail 10 
    ✖ a child deleted or hidden between reconciles drops out at the next tick, and the root still refuses
    ✖ a child made after startup joins the tree at the next reconcile
    ✖ a child whose kanban view is deleted still refuses the tick, and the reconcile reads it watch-only
    ✖ a closed task the cursor missed takes its own project's done bucket
    ✖ a closed task the cursor returns takes its own project's done bucket
    ✖ a move inside the tree is a moved tombstone plus a snapshot under the new ref
placed-by-id: rc=1 ℹ pass 18 ℹ fail 1 
    ✖ a move inside the tree is a moved tombstone plus a snapshot under the new ref
    ✖ failing tests:
keep-archived: rc=1 ℹ pass 18 ℹ fail 1 
    ✖ failing tests:
    ✖ the project list refuses without read_all, and skips archived projects and saved filters
config-drops-descendants: rc=1 ℹ pass 5 ℹ fail 1 
    ✖ failing tests:
    ✖ trackers come from the tracker.* variables of the one project that names a tracker project
r2-child-refuses: rc=1 ℹ pass 15 ℹ fail 4 
    ✖ a child deleted or hidden between reconciles drops out at the next tick, and the root still refuses
    ✖ a child dropped at a tick comes back at the next reconcile once the bot reads it again
    ✖ a child that leaves the tree has its tasks recorded missing, and the ledger keeps their history
    ✖ a child whose kanban view is deleted still refuses the tick, and the reconcile reads it watch-only
    ✖ failing tests:
r2-skip-keeps-child: rc=1 ℹ pass 17 ℹ fail 2 
    ✖ a child deleted or hidden between reconciles drops out at the next tick, and the root still refuses
    ✖ a child dropped at a tick comes back at the next reconcile once the bot reads it again
    ✖ failing tests:
r2-root-drops: rc=1 ℹ pass 18 ℹ fail 1 
    ✖ a child deleted or hidden between reconciles drops out at the next tick, and the root still refuses
    ✖ failing tests:
r2-any-error-drops: rc=1 ℹ pass 18 ℹ fail 1 
    ✖ a child whose kanban view is deleted still refuses the tick, and the reconcile reads it watch-only
    ✖ failing tests:
r2-403-only: rc=1 ℹ pass 17 ℹ fail 2 
    ✖ a child deleted or hidden between reconciles drops out at the next tick, and the root still refuses
    ✖ a child whose kanban view is deleted still refuses the tick, and the reconcile reads it watch-only
    ✖ failing tests:
r2-404-only: rc=1 ℹ pass 16 ℹ fail 3 
    ✖ a child deleted or hidden between reconciles drops out at the next tick, and the root still refuses
    ✖ a child dropped at a tick comes back at the next reconcile once the bot reads it again
    ✖ a child that leaves the tree has its tasks recorded missing, and the ledger keeps their history
    ✖ failing tests:
tree-early: rc=1 ℹ pass 18 ℹ fail 1 
    ✖ a reconcile that fails keeps the previous tree
    ✖ failing tests:
missing-done-root-bucket: rc=1 ℹ pass 18 ℹ fail 1 
    ✖ a closed task the cursor missed takes its own project's done bucket
    ✖ failing tests:
leave-tree-no-keep-updated: rc=1 ℹ pass 18 ℹ fail 1 
    ✖ a child that leaves the tree has its tasks recorded missing, and the ledger keeps their history
    ✖ failing tests:
reconcile-done-root-bucket: rc=1 ℹ pass 18 ℹ fail 1 
    ✖ closed tasks read at startup take their own project's done bucket
    ✖ failing tests:
tick-done-root-bucket: rc=1 ℹ pass 17 ℹ fail 2 
    ✖ a closed task the cursor returns takes its own project's done bucket
    ✖ bucket 0 on a watch-only task never becomes a bucket or a state
    ✖ failing tests:
tick-done-root-bucket-board: rc=1 ℹ pass 18 ℹ fail 1 
    ✖ a closed task the cursor returns takes its own project's done bucket
    ✖ failing tests:
tree-check-before-moved: rc=1 ℹ pass 18 ℹ fail 1 
    ✖ a task moved out of a child that leaves the tree at the same time is moved, not no-access
    ✖ failing tests:
r3-no-confirm: rc=1 ℹ pass 18 ℹ fail 1 
    ✖ a child whose kanban view is deleted still refuses the tick, and the reconcile reads it watch-only
    ✖ failing tests:
r3-confirm-403-only: rc=1 ℹ pass 18 ℹ fail 1 
    ✖ a child deleted or hidden between reconciles drops out at the next tick, and the root still refuses
    ✖ failing tests:
r3-confirm-404-only: rc=1 ℹ pass 16 ℹ fail 3 
    ✖ a child deleted or hidden between reconciles drops out at the next tick, and the root still refuses
    ✖ a child dropped at a tick comes back at the next reconcile once the bot reads it again
    ✖ a child that leaves the tree has its tasks recorded missing, and the ledger keeps their history
    ✖ failing tests:
r3-confirm-not-200: rc=1 ℹ pass 18 ℹ fail 1 
    ✖ a child whose kanban view is deleted still refuses the tick, and the reconcile reads it watch-only
    ✖ failing tests:
r2-unauthorized-drops: rc=1 ℹ pass 18 ℹ fail 1 
    ✖ a child whose kanban view is deleted still refuses the tick, and the reconcile reads it watch-only
    ✖ failing tests:
restored: sources match the candidate index
