Haiku subagent build under decision 129. Candidate manifest 9ac3a56e names packages/tasks/src/fake.mjs and packages/tasks/tests/tree.test.mjs. Gate and both named mutants ran in Sage's slot. Co-Authored-By: Claude Opus 5.5 <[email protected]>
545 lines
18 KiB
Plaintext
545 lines
18 KiB
Plaintext
TAP version 13
|
|
# Subtest: the boot config is checked before anything starts
|
|
ok 1 - the boot config is checked before anything starts
|
|
---
|
|
duration_ms: 15.373002
|
|
type: 'test'
|
|
...
|
|
# Subtest: a business with no tracker entry refuses task verbs
|
|
ok 2 - a business with no tracker entry refuses task verbs
|
|
---
|
|
duration_ms: 16.54793
|
|
type: 'test'
|
|
...
|
|
# Subtest: credential.expiring and .expired are recorded once per instance
|
|
ok 3 - credential.expiring and .expired are recorded once per instance
|
|
---
|
|
duration_ms: 32.903372
|
|
type: 'test'
|
|
...
|
|
# Subtest: a token file that changes on disk records credential.changed
|
|
ok 4 - a token file that changes on disk records credential.changed
|
|
---
|
|
duration_ms: 13.718499
|
|
type: 'test'
|
|
...
|
|
# Subtest: autostart polls, reconciles and retries a startup the tracker was down for
|
|
ok 5 - autostart polls, reconciles and retries a startup the tracker was down for
|
|
---
|
|
duration_ms: 36.388706
|
|
type: 'test'
|
|
...
|
|
# Subtest: a refusal a restart must clear is not retried by the poll
|
|
ok 6 - a refusal a restart must clear is not retried by the poll
|
|
---
|
|
duration_ms: 11.731165
|
|
type: 'test'
|
|
...
|
|
# Subtest: a poll that fires while two are queued is dropped
|
|
ok 7 - a poll that fires while two are queued is dropped
|
|
---
|
|
duration_ms: 14.792592
|
|
type: 'test'
|
|
...
|
|
# Subtest: close waits for a running verb and refuses one that has not started
|
|
ok 8 - close waits for a running verb and refuses one that has not started
|
|
---
|
|
duration_ms: 43.160938
|
|
type: 'test'
|
|
...
|
|
# Subtest: the bundled Vikunja is the pinned upstream image the runbook names
|
|
ok 9 - the bundled Vikunja is the pinned upstream image the runbook names
|
|
---
|
|
duration_ms: 1.122644
|
|
type: 'test'
|
|
...
|
|
# Subtest: every published port is on 127.0.0.1, and no secret is in the file
|
|
ok 10 - every published port is on 127.0.0.1, and no secret is in the file
|
|
---
|
|
duration_ms: 0.422977
|
|
type: 'test'
|
|
...
|
|
# Subtest: the committed table loads frozen; its verbs are the broker task verbs
|
|
ok 11 - the committed table loads frozen; its verbs are the broker task verbs
|
|
---
|
|
duration_ms: 1.401375
|
|
type: 'test'
|
|
...
|
|
# Subtest: the schema refuses any other shape
|
|
ok 12 - the schema refuses any other shape
|
|
---
|
|
duration_ms: 3.119555
|
|
type: 'test'
|
|
...
|
|
# Subtest: each verb refuses, asks for a decision and writes as the table and the role files say
|
|
ok 13 - each verb refuses, asks for a decision and writes as the table and the role files say
|
|
---
|
|
duration_ms: 161.876618
|
|
type: 'test'
|
|
...
|
|
# Subtest: the list holds the PRD's requirement ids, in its order, at its version
|
|
ok 14 - the list holds the PRD's requirement ids, in its order, at its version
|
|
---
|
|
duration_ms: 5.015825
|
|
type: 'test'
|
|
...
|
|
# Subtest: the committed list loads frozen
|
|
ok 15 - the committed list loads frozen
|
|
---
|
|
duration_ms: 0.503693
|
|
type: 'test'
|
|
...
|
|
# Subtest: the schema refuses any other shape
|
|
ok 16 - the schema refuses any other shape
|
|
---
|
|
duration_ms: 2.487269
|
|
type: 'test'
|
|
...
|
|
# Subtest: the fake answers each route with the statuses and shapes Vikunja v2.7.0 sent
|
|
ok 17 - the fake answers each route with the statuses and shapes Vikunja v2.7.0 sent
|
|
---
|
|
duration_ms: 98.430176
|
|
type: 'test'
|
|
...
|
|
# Subtest: the project list holds recorded project objects in the recorded list envelope
|
|
ok 18 - the project list holds recorded project objects in the recorded list envelope
|
|
---
|
|
duration_ms: 10.372561
|
|
type: 'test'
|
|
...
|
|
# Subtest: the recorded task bodies pass the checks S3 applies to every read
|
|
ok 19 - the recorded task bodies pass the checks S3 applies to every read
|
|
---
|
|
duration_ms: 0.447974
|
|
type: 'test'
|
|
...
|
|
# Subtest: the client works against the fake over real HTTP with the platform fetch
|
|
ok 20 - the client works against the fake over real HTTP with the platform fetch
|
|
---
|
|
duration_ms: 100.522814
|
|
type: 'test'
|
|
...
|
|
# Subtest: a correct install starts, and the first reconcile records tasks that already exist
|
|
ok 21 - a correct install starts, and the first reconcile records tasks that already exist
|
|
---
|
|
duration_ms: 25.186592
|
|
type: 'test'
|
|
...
|
|
# Subtest: verbs refuse while a business is starting and after startup refused it
|
|
ok 22 - verbs refuse while a business is starting and after startup refused it
|
|
---
|
|
duration_ms: 16.584152
|
|
type: 'test'
|
|
...
|
|
# Subtest: startup refuses a token that can do more than its role needs
|
|
ok 23 - startup refuses a token that can do more than its role needs
|
|
---
|
|
duration_ms: 43.957423
|
|
type: 'test'
|
|
...
|
|
# Subtest: startup refuses an unsupported version and flags an untested one
|
|
ok 24 - startup refuses an unsupported version and flags an untested one
|
|
---
|
|
duration_ms: 30.417189
|
|
type: 'test'
|
|
...
|
|
# Subtest: startup refuses a board that the runbook did not install
|
|
ok 25 - startup refuses a board that the runbook did not install
|
|
---
|
|
duration_ms: 39.769969
|
|
type: 'test'
|
|
...
|
|
# Subtest: startup refuses a project the sync bot cannot read
|
|
ok 26 - startup refuses a project the sync bot cannot read
|
|
---
|
|
duration_ms: 10.619813
|
|
type: 'test'
|
|
...
|
|
# Subtest: startup refuses a configured label the pm bot cannot see
|
|
ok 27 - startup refuses a configured label the pm bot cannot see
|
|
---
|
|
duration_ms: 9.55423
|
|
type: 'test'
|
|
...
|
|
# Subtest: startup refuses an expired credential and a missing sync credential
|
|
ok 28 - startup refuses an expired credential and a missing sync credential
|
|
---
|
|
duration_ms: 15.33053
|
|
type: 'test'
|
|
...
|
|
# Subtest: an unreachable tracker refuses with tracker-unavailable
|
|
ok 29 - an unreachable tracker refuses with tracker-unavailable
|
|
---
|
|
duration_ms: 6.047777
|
|
type: 'test'
|
|
...
|
|
# Subtest: an edit in the UI is recorded once, with the fields that changed
|
|
ok 30 - an edit in the UI is recorded once, with the fields that changed
|
|
---
|
|
duration_ms: 81.651407
|
|
type: 'test'
|
|
...
|
|
# Subtest: a move between open buckets is seen on the board, though updated does not change
|
|
ok 31 - a move between open buckets is seen on the board, though updated does not change
|
|
---
|
|
duration_ms: 40.65521
|
|
type: 'test'
|
|
...
|
|
# Subtest: a person's comment is counted and a bot's is not
|
|
ok 32 - a person's comment is counted and a bot's is not
|
|
---
|
|
duration_ms: 72.160882
|
|
type: 'test'
|
|
...
|
|
# Subtest: the hourly reconcile catches a comment through comment_count
|
|
ok 33 - the hourly reconcile catches a comment through comment_count
|
|
---
|
|
duration_ms: 75.571973
|
|
type: 'test'
|
|
...
|
|
# Subtest: a task closed in the UI leaves the open view with its done bucket
|
|
ok 34 - a task closed in the UI leaves the open view with its done bucket
|
|
---
|
|
duration_ms: 114.050267
|
|
type: 'test'
|
|
...
|
|
# Subtest: a task that leaves the board is recorded as deleted, moved or out of reach
|
|
ok 35 - a task that leaves the board is recorded as deleted, moved or out of reach
|
|
---
|
|
duration_ms: 62.861146
|
|
type: 'test'
|
|
...
|
|
# Subtest: a poll that read before a verb wrote does not overwrite the verb
|
|
ok 36 - a poll that read before a verb wrote does not overwrite the verb
|
|
---
|
|
duration_ms: 33.650755
|
|
type: 'test'
|
|
...
|
|
# Subtest: a tracker fault during a tick is reported and the next tick catches up
|
|
ok 37 - a tracker fault during a tick is reported and the next tick catches up
|
|
---
|
|
duration_ms: 36.726265
|
|
type: 'test'
|
|
...
|
|
# Subtest: a malformed answer refuses the tick with tracker-shape
|
|
ok 38 - a malformed answer refuses the tick with tracker-shape
|
|
---
|
|
duration_ms: 13.16272
|
|
type: 'test'
|
|
...
|
|
# Subtest: no token value reaches the database, the log or a refusal
|
|
ok 39 - no token value reaches the database, the log or a refusal
|
|
---
|
|
duration_ms: 45.451924
|
|
type: 'test'
|
|
...
|
|
# Subtest: the first look at a task counts only comments inside the window
|
|
ok 40 - the first look at a task counts only comments inside the window
|
|
---
|
|
duration_ms: 34.839318
|
|
type: 'test'
|
|
...
|
|
# Subtest: with descendants off the adapter reads no project list and no child, as in v0
|
|
ok 41 - with descendants off the adapter reads no project list and no child, as in v0
|
|
---
|
|
duration_ms: 48.293931
|
|
type: 'test'
|
|
...
|
|
# Subtest: a three-level tree is read per project, and a project outside it is not
|
|
ok 42 - a three-level tree is read per project, and a project outside it is not
|
|
---
|
|
duration_ms: 22.741197
|
|
type: 'test'
|
|
...
|
|
# Subtest: a watch-only child keeps the business ready, and a failed child read refuses as transient
|
|
ok 43 - a watch-only child keeps the business ready, and a failed child read refuses as transient
|
|
---
|
|
duration_ms: 25.584269
|
|
type: 'test'
|
|
...
|
|
# Subtest: a root without the installed buckets refuses with descendants on
|
|
ok 44 - a root without the installed buckets refuses with descendants on
|
|
---
|
|
duration_ms: 10.829984
|
|
type: 'test'
|
|
...
|
|
# Subtest: the project list refuses without read_all, and skips archived projects and saved filters
|
|
ok 45 - the project list refuses without read_all, and skips archived projects and saved filters
|
|
---
|
|
duration_ms: 25.614391
|
|
type: 'test'
|
|
...
|
|
# Subtest: descendants must be true or false
|
|
ok 46 - descendants must be true or false
|
|
---
|
|
duration_ms: 10.090398
|
|
type: 'test'
|
|
...
|
|
# Subtest: a move inside the tree is a moved tombstone plus a snapshot under the new ref
|
|
ok 47 - a move inside the tree is a moved tombstone plus a snapshot under the new ref
|
|
---
|
|
duration_ms: 63.257475
|
|
type: 'test'
|
|
...
|
|
# Subtest: a child made after startup joins the tree at the next reconcile
|
|
ok 48 - a child made after startup joins the tree at the next reconcile
|
|
---
|
|
duration_ms: 53.464339
|
|
type: 'test'
|
|
...
|
|
# Subtest: a child that leaves the tree has its tasks recorded missing, and the ledger keeps their history
|
|
ok 49 - a child that leaves the tree has its tasks recorded missing, and the ledger keeps their history
|
|
---
|
|
duration_ms: 59.379728
|
|
type: 'test'
|
|
...
|
|
# Subtest: a child deleted or hidden between reconciles drops out at the next tick, and the root still refuses
|
|
ok 50 - a child deleted or hidden between reconciles drops out at the next tick, and the root still refuses
|
|
---
|
|
duration_ms: 80.722644
|
|
type: 'test'
|
|
...
|
|
# Subtest: a reconcile that fails keeps the previous tree
|
|
ok 51 - a reconcile that fails keeps the previous tree
|
|
---
|
|
duration_ms: 30.274693
|
|
type: 'test'
|
|
...
|
|
# Subtest: a closed task the cursor missed takes its own project's done bucket
|
|
ok 52 - a closed task the cursor missed takes its own project's done bucket
|
|
---
|
|
duration_ms: 33.556879
|
|
type: 'test'
|
|
...
|
|
# Subtest: closed tasks read at startup take their own project's done bucket
|
|
ok 53 - closed tasks read at startup take their own project's done bucket
|
|
---
|
|
duration_ms: 11.304826
|
|
type: 'test'
|
|
...
|
|
# Subtest: a closed task the cursor returns takes its own project's done bucket
|
|
ok 54 - a closed task the cursor returns takes its own project's done bucket
|
|
---
|
|
duration_ms: 34.47553
|
|
type: 'test'
|
|
...
|
|
# Subtest: a task moved out of a child that leaves the tree at the same time is moved, not no-access
|
|
ok 55 - a task moved out of a child that leaves the tree at the same time is moved, not no-access
|
|
---
|
|
duration_ms: 33.855457
|
|
type: 'test'
|
|
...
|
|
# Subtest: a task in a bucket outside the five keeps its raw bucket id
|
|
ok 56 - a task in a bucket outside the five keeps its raw bucket id
|
|
---
|
|
duration_ms: 29.916939
|
|
type: 'test'
|
|
...
|
|
# Subtest: bucket 0 on a watch-only task never becomes a bucket or a state
|
|
ok 57 - bucket 0 on a watch-only task never becomes a bucket or a state
|
|
---
|
|
duration_ms: 78.180511
|
|
type: 'test'
|
|
...
|
|
# Subtest: a child whose kanban view is deleted still refuses the tick, and the reconcile reads it watch-only
|
|
ok 58 - a child whose kanban view is deleted still refuses the tick, and the reconcile reads it watch-only
|
|
---
|
|
duration_ms: 55.83525
|
|
type: 'test'
|
|
...
|
|
# Subtest: a child dropped at a tick comes back at the next reconcile once the bot reads it again
|
|
ok 59 - a child dropped at a tick comes back at the next reconcile once the bot reads it again
|
|
---
|
|
duration_ms: 35.039514
|
|
type: 'test'
|
|
...
|
|
# Subtest: task.create needs a recorded human request and a requirement id
|
|
ok 60 - task.create needs a recorded human request and a requirement id
|
|
---
|
|
duration_ms: 40.038164
|
|
type: 'test'
|
|
...
|
|
# Subtest: task.create takes only an approved requirement id
|
|
ok 61 - task.create takes only an approved requirement id
|
|
---
|
|
duration_ms: 26.188455
|
|
type: 'test'
|
|
...
|
|
# Subtest: task.create cites the request a received message carries, not the message's id
|
|
ok 62 - task.create cites the request a received message carries, not the message's id
|
|
---
|
|
duration_ms: 20.204034
|
|
type: 'test'
|
|
...
|
|
# Subtest: only labels named in the business file can be written
|
|
ok 63 - only labels named in the business file can be written
|
|
---
|
|
duration_ms: 28.889903
|
|
type: 'test'
|
|
...
|
|
# Subtest: task.schedule sets and clears a due date and relations
|
|
ok 64 - task.schedule sets and clears a due date and relations
|
|
---
|
|
duration_ms: 35.511892
|
|
type: 'test'
|
|
...
|
|
# Subtest: assign and reassign move the role bots and record task.assigned
|
|
ok 65 - assign and reassign move the role bots and record task.assigned
|
|
---
|
|
duration_ms: 52.985464
|
|
type: 'test'
|
|
...
|
|
# Subtest: task.update.assigned is for the assignee and records task.state
|
|
ok 66 - task.update.assigned is for the assignee and records task.state
|
|
---
|
|
duration_ms: 45.462286
|
|
type: 'test'
|
|
...
|
|
# Subtest: a wrong expected digest records task.conflict and writes nothing
|
|
ok 67 - a wrong expected digest records task.conflict and writes nothing
|
|
---
|
|
duration_ms: 18.246971
|
|
type: 'test'
|
|
...
|
|
# Subtest: a cross-role verb needs a resolved decision, used once
|
|
ok 68 - a cross-role verb needs a resolved decision, used once
|
|
---
|
|
duration_ms: 20.824764
|
|
type: 'test'
|
|
...
|
|
# Subtest: task.close needs a verdict; after it every verb refuses with task-done
|
|
ok 69 - task.close needs a verdict; after it every verb refuses with task-done
|
|
---
|
|
duration_ms: 18.669837
|
|
type: 'test'
|
|
...
|
|
# Subtest: a lost answer is settled by a re-read and never retried
|
|
ok 70 - a lost answer is settled by a re-read and never retried
|
|
---
|
|
duration_ms: 22.962907
|
|
type: 'test'
|
|
...
|
|
# Subtest: a create whose answer is lost is reported uncertain, and the poll finds the task
|
|
ok 71 - a create whose answer is lost is reported uncertain, and the poll finds the task
|
|
---
|
|
duration_ms: 34.833368
|
|
type: 'test'
|
|
...
|
|
# Subtest: a task the sync bot cannot read refuses and records nothing
|
|
ok 72 - a task the sync bot cannot read refuses and records nothing
|
|
---
|
|
duration_ms: 14.189432
|
|
type: 'test'
|
|
...
|
|
# Subtest: verbs and polls for one business run one at a time
|
|
ok 73 - verbs and polls for one business run one at a time
|
|
---
|
|
duration_ms: 87.217517
|
|
type: 'test'
|
|
...
|
|
# Subtest: a due date with milliseconds is written to the second
|
|
ok 74 - a due date with milliseconds is written to the second
|
|
---
|
|
duration_ms: 63.3084
|
|
type: 'test'
|
|
...
|
|
# Subtest: every write landed and the final read failed: the verb succeeds and records what it wrote
|
|
ok 75 - every write landed and the final read failed: the verb succeeds and records what it wrote
|
|
---
|
|
duration_ms: 36.767011
|
|
type: 'test'
|
|
...
|
|
# Subtest: some writes landed and the final read failed: write-uncertain, and nothing is recorded
|
|
ok 76 - some writes landed and the final read failed: write-uncertain, and nothing is recorded
|
|
---
|
|
duration_ms: 14.892048
|
|
type: 'test'
|
|
...
|
|
# Subtest: a create whose final read fails succeeds and records task.created
|
|
ok 77 - a create whose final read fails succeeds and records task.created
|
|
---
|
|
duration_ms: 33.229455
|
|
type: 'test'
|
|
...
|
|
# Subtest: an edit between the last write and the final read shows as external on the next poll
|
|
ok 78 - an edit between the last write and the final read shows as external on the next poll
|
|
---
|
|
duration_ms: 34.927009
|
|
type: 'test'
|
|
...
|
|
# Subtest: task.created is recorded when a later label write fails
|
|
ok 79 - task.created is recorded when a later label write fails
|
|
---
|
|
duration_ms: 12.685295
|
|
type: 'test'
|
|
...
|
|
# Subtest: every verb acts in an installed child, on the child's own board
|
|
ok 80 - every verb acts in an installed child, on the child's own board
|
|
---
|
|
duration_ms: 40.250043
|
|
type: 'test'
|
|
...
|
|
# Subtest: task.create refuses a project outside the tree, a watch-only one and one that is not an id
|
|
ok 81 - task.create refuses a project outside the tree, a watch-only one and one that is not an id
|
|
---
|
|
duration_ms: 23.879872
|
|
type: 'test'
|
|
...
|
|
# Subtest: with descendants off, task.create takes only the root project
|
|
ok 82 - with descendants off, task.create takes only the root project
|
|
---
|
|
duration_ms: 11.825594
|
|
type: 'test'
|
|
...
|
|
# Subtest: a verb on a watch-only task, or a relation to one, refuses with project-not-installed
|
|
ok 83 - a verb on a watch-only task, or a relation to one, refuses with project-not-installed
|
|
---
|
|
duration_ms: 17.946104
|
|
type: 'test'
|
|
...
|
|
# Subtest: a related task is read before authority: in another project than its ref names, task-moved; missing, task-not-found
|
|
ok 84 - a related task is read before authority: in another project than its ref names, task-moved; missing, task-not-found
|
|
---
|
|
duration_ms: 23.395865
|
|
type: 'test'
|
|
...
|
|
# Subtest: a task moved to another project of the tree refuses its old ref with task-moved and takes its new one
|
|
ok 85 - a task moved to another project of the tree refuses its old ref with task-moved and takes its new one
|
|
---
|
|
duration_ms: 14.305279
|
|
type: 'test'
|
|
...
|
|
# Subtest: a verb and a create in the child record the final read of the child's board
|
|
ok 86 - a verb and a create in the child record the final read of the child's board
|
|
---
|
|
duration_ms: 12.940352
|
|
type: 'test'
|
|
...
|
|
# Subtest: a create in the child whose final read fails records the child's todo bucket
|
|
ok 87 - a create in the child whose final read fails records the child's todo bucket
|
|
---
|
|
duration_ms: 33.588967
|
|
type: 'test'
|
|
...
|
|
# Subtest: a lost answer in the child is settled by a re-read of the child's board
|
|
ok 88 - a lost answer in the child is settled by a re-read of the child's board
|
|
---
|
|
duration_ms: 21.070278
|
|
type: 'test'
|
|
...
|
|
# Subtest: every related task is read before authority, not only the first
|
|
ok 89 - every related task is read before authority, not only the first
|
|
---
|
|
duration_ms: 15.963255
|
|
type: 'test'
|
|
...
|
|
1..89
|
|
# tests 89
|
|
# suites 0
|
|
# pass 89
|
|
# fail 0
|
|
# cancelled 0
|
|
# skipped 0
|
|
# todo 0
|
|
# duration_ms 983.468677
|