{"numTotalTestSuites":140,"numPassedTestSuites":140,"numFailedTestSuites":0,"numPendingTestSuites":0,"numTotalTests":279,"numPassedTests":279,"numFailedTests":0,"numPendingTests":0,"numTodoTests":0,"snapshot":{"added":0,"failure":false,"filesAdded":0,"filesRemoved":0,"filesRemovedList":[],"filesUnmatched":0,"filesUpdated":0,"matched":0,"total":0,"unchecked":0,"uncheckedKeysByFile":[],"unmatched":0,"updated":0,"didUpdate":false},"startTime":1785806383270,"success":true,"testResults":[{"assertionResults":[{"ancestorTitles":["AbandonedPlansTable"],"fullName":"AbandonedPlansTable renders honest metadata and restores a row","status":"passed","title":"renders honest metadata and restores a row","duration":458.4378149999998,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["AbandonedPlansTable"],"fullName":"AbandonedPlansTable links the exact soft-delete empty state back to plans","status":"passed","title":"links the exact soft-delete empty state back to plans","duration":33.09229899999991,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806398147,"endTime":1785806398638.0923,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/AbandonedPlansTable.test.tsx"},{"assertionResults":[{"ancestorTitles":["ActionsMenu"],"fullName":"ActionsMenu opens with Enter, cycles focus with arrows, selects, and renders a divider","status":"passed","title":"opens with Enter, cycles focus with arrows, selects, and renders a divider","duration":339.5024559999997,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["ActionsMenu"],"fullName":"ActionsMenu closes on Escape and outside pointer interaction","status":"passed","title":"closes on Escape and outside pointer interaction","duration":24.09829200000013,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806397072,"endTime":1785806397435.0984,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/ActionsMenu.test.tsx"},{"assertionResults":[{"ancestorTitles":["AgentComposer"],"fullName":"AgentComposer disables sending while in flight and clears text on success","status":"passed","title":"disables sending while in flight and clears text on success","duration":284.04848000000015,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["AgentComposer"],"fullName":"AgentComposer surfaces send errors inline and preserves the message","status":"passed","title":"surfaces send errors inline and preserves the message","duration":33.7109989999999,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806396606,"endTime":1785806396923.711,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/AgentComposer.test.tsx"},{"assertionResults":[{"ancestorTitles":["AgentFeed"],"fullName":"AgentFeed sorts turn cards chronologically","status":"passed","title":"sorts turn cards chronologically","duration":146.32818599999996,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["AgentFeed"],"fullName":"AgentFeed marks an unfinished live turn as in progress","status":"passed","title":"marks an unfinished live turn as in progress","duration":25.577105000000074,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["AgentFeed"],"fullName":"AgentFeed renders an ended banner for historical activity","status":"passed","title":"renders an ended banner for historical activity","duration":27.10712300000023,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["AgentFeed"],"fullName":"AgentFeed labels absent raw event detail without inventing a harness version gap","status":"passed","title":"labels absent raw event detail without inventing a harness version gap","duration":415.23084400000016,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["AgentFeed"],"fullName":"AgentFeed renders hostile authoritative payload as text","status":"passed","title":"renders hostile authoritative payload as text","duration":31.56862500000034,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806390103,"endTime":1785806390750.5686,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/AgentFeed.test.tsx"},{"assertionResults":[{"ancestorTitles":["AgentMetaSidebar"],"fullName":"AgentMetaSidebar renders recorded metadata, the A9 gap, and no cost line","status":"passed","title":"renders recorded metadata, the A9 gap, and no cost line","duration":536.276151,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806395811,"endTime":1785806396347.2761,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/AgentMetaSidebar.test.tsx"},{"assertionResults":[{"ancestorTitles":["AgentModeToggle"],"fullName":"AgentModeToggle switches between live and historical views","status":"passed","title":"switches between live and historical views","duration":244.16580300000032,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["AgentModeToggle"],"fullName":"AgentModeToggle disables live mode for an ended attempt","status":"passed","title":"disables live mode for an ended attempt","duration":27.312107000000196,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806401896,"endTime":1785806402167.312,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/AgentModeToggle.test.tsx"},{"assertionResults":[{"ancestorTitles":["AgentStatusBar"],"fullName":"AgentStatusBar queues restart for five seconds and supports undo or commit","status":"passed","title":"queues restart for five seconds and supports undo or commit","duration":358.83664,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["AgentStatusBar"],"fullName":"AgentStatusBar labels unsupported controls from explicit capability state","status":"passed","title":"labels unsupported controls from explicit capability state","duration":27.63945200000012,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["AgentStatusBar"],"fullName":"AgentStatusBar queues an enabled kill behind confirmation undo","status":"passed","title":"queues an enabled kill behind confirmation undo","duration":17.386421000000155,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806394887,"endTime":1785806395291.3865,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/AgentStatusBar.test.tsx"},{"assertionResults":[{"ancestorTitles":["AmplificationSpark"],"fullName":"AmplificationSpark renders the newest ten gates in input order and caps the ring","status":"passed","title":"renders the newest ten gates in input order and caps the ring","duration":573.1697950000002,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["AmplificationSpark"],"fullName":"AmplificationSpark renders paired compute and wall bars for every visible run","status":"passed","title":"renders paired compute and wall bars for every visible run","duration":29.96788400000014,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["AmplificationSpark"],"fullName":"AmplificationSpark renders the median multiplier","status":"passed","title":"renders the median multiplier","duration":26.947234999999637,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["AmplificationSpark"],"fullName":"AmplificationSpark excludes zero and invalid compute denominators from the median","status":"passed","title":"excludes zero and invalid compute denominators from the median","duration":8.971945999999662,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["AmplificationSpark"],"fullName":"AmplificationSpark renders an honest warm-up gap for complete empty history","status":"passed","title":"renders an honest warm-up gap for complete empty history","duration":8.244380999999976,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["AmplificationSpark"],"fullName":"AmplificationSpark renders restart warm-up without claiming persisted history","status":"passed","title":"renders restart warm-up without claiming persisted history","duration":8.374366000000009,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["AmplificationSpark"],"fullName":"AmplificationSpark renders incomplete history as a gap even when returned samples exist","status":"passed","title":"renders incomplete history as a gap even when returned samples exist","duration":6.241003999999975,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806392162,"endTime":1785806392824.241,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/AmplificationSpark.test.tsx"},{"assertionResults":[{"ancestorTitles":["AttentionPanel"],"fullName":"AttentionPanel renders three shared-grid attention rows","status":"passed","title":"renders three shared-grid attention rows","duration":253.74918100000014,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["AttentionPanel"],"fullName":"AttentionPanel renders neutral empty state","status":"passed","title":"renders neutral empty state","duration":7.145078000000012,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["AttentionPanel"],"fullName":"AttentionPanel renders agent actions as real links","status":"passed","title":"renders agent actions as real links","duration":49.71684000000005,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["AttentionPanel"],"fullName":"AttentionPanel makes every row span the panel grid tracks","status":"passed","title":"makes every row span the panel grid tracks","duration":29.08562299999994,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806391051,"endTime":1785806391391.0857,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/AttentionPanel.test.tsx"},{"assertionResults":[{"ancestorTitles":["BotTable"],"fullName":"BotTable renders one row per bot with its metrics","status":"passed","title":"renders one row per bot with its metrics","duration":146.45491300000003,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["BotTable"],"fullName":"BotTable shows a dash for null metrics on a down bot","status":"passed","title":"shows a dash for null metrics on a down bot","duration":45.62858899999992,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["BotTable"],"fullName":"BotTable renders the exact column headers","status":"passed","title":"renders the exact column headers","duration":59.67081600000006,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806399151,"endTime":1785806399402.671,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/BotTable.test.tsx"},{"assertionResults":[{"ancestorTitles":["CiCoverageBanner"],"fullName":"CiCoverageBanner renders headline, action, and tooltip detail","status":"passed","title":"renders headline, action, and tooltip detail","duration":149.70951100000002,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806408469,"endTime":1785806408618.7095,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/CiCoverageBanner.test.tsx"},{"assertionResults":[{"ancestorTitles":["ClusterQueue"],"fullName":"ClusterQueue renders tickets and wedge row","status":"passed","title":"renders tickets and wedge row","duration":196.85642699999994,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806403987,"endTime":1785806404183.8564,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/ClusterQueue.test.tsx"},{"assertionResults":[{"ancestorTitles":["CriterionRow"],"fullName":"CriterionRow renders id, text, and the verdict badge","status":"passed","title":"renders id, text, and the verdict badge","duration":71.86858600000005,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["CriterionRow"],"fullName":"CriterionRow renders an em dash when reachedAt is null","status":"passed","title":"renders an em dash when reachedAt is null","duration":8.199117000000115,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["CriterionRow"],"fullName":"CriterionRow renders an em dash when reachedAt is omitted","status":"passed","title":"renders an em dash when reachedAt is omitted","duration":8.525787000000037,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["CriterionRow"],"fullName":"CriterionRow renders the reachedAt date string when present","status":"passed","title":"renders the reachedAt date string when present","duration":7.367635000000064,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["CriterionRow"],"fullName":"CriterionRow renders an evidence subline when evidence is present","status":"passed","title":"renders an evidence subline when evidence is present","duration":8.020799999999781,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["CriterionRow"],"fullName":"CriterionRow renders no subline when evidence is absent","status":"passed","title":"renders no subline when evidence is absent","duration":5.815352000000075,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806407752,"endTime":1785806407861.8154,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/CriterionRow.test.tsx"},{"assertionResults":[{"ancestorTitles":["DataCoveragePanel"],"fullName":"DataCoveragePanel renders every gap and its linked spec reference","status":"passed","title":"renders every gap and its linked spec reference","duration":439.76416900000004,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806401956,"endTime":1785806402395.7642,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/DataCoveragePanel.test.tsx"},{"assertionResults":[{"ancestorTitles":["DecisionDialog"],"fullName":"DecisionDialog holds abort for five seconds and commits exactly once on expiry","status":"passed","title":"holds abort for five seconds and commits exactly once on expiry","duration":834.4437600000001,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["DecisionDialog"],"fullName":"DecisionDialog undoes abort without sending a decision","status":"passed","title":"undoes abort without sending a decision","duration":65.19345999999996,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["DecisionDialog"],"fullName":"DecisionDialog decides non-abort options immediately","status":"passed","title":"decides non-abort options immediately","duration":69.05625899999995,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["DecisionDialog"],"fullName":"DecisionDialog labels detail fields missing from the harness","status":"passed","title":"labels detail fields missing from the harness","duration":13.527071999999862,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806395339,"endTime":1785806396321.527,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/DecisionDialog.test.tsx"},{"assertionResults":[{"ancestorTitles":["DecisionRow"],"fullName":"DecisionRow renders collapsed row chrome from the mockup","status":"passed","title":"renders collapsed row chrome from the mockup","duration":300.6097300000001,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["DecisionRow"],"fullName":"DecisionRow toggles expanded detail when the title row is clicked","status":"passed","title":"toggles expanded detail when the title row is clicked","duration":62.89471000000003,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["DecisionRow"],"fullName":"DecisionRow shows expanded sections and fires option / free-text callbacks","status":"passed","title":"shows expanded sections and fires option / free-text callbacks","duration":112.48059000000012,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["DecisionRow"],"fullName":"DecisionRow marks old waiting age and preserves free text in the error state","status":"passed","title":"marks old waiting age and preserves free text in the error state","duration":31.33683800000017,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806394686,"endTime":1785806395193.337,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/DecisionRow.test.tsx"},{"assertionResults":[{"ancestorTitles":["DeckTable"],"fullName":"DeckTable derives header and responsive row cells from one column definition","status":"passed","title":"derives header and responsive row cells from one column definition","duration":242.31225199999994,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["DeckTable"],"fullName":"DeckTable uses SortableHeaderCell for consistent aria-sort and direction changes","status":"passed","title":"uses SortableHeaderCell for consistent aria-sort and direction changes","duration":37.60813999999982,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806388178,"endTime":1785806388458.6082,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/DeckTable.test.tsx"},{"assertionResults":[{"ancestorTitles":["DeckTooltip"],"fullName":"DeckTooltip renders bold and muted lines for a hovered target","status":"passed","title":"renders bold and muted lines for a hovered target","duration":520.5007059999998,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["DeckTooltip"],"fullName":"DeckTooltip repositions inside the viewport near the right edge","status":"passed","title":"repositions inside the viewport near the right edge","duration":39.590318000000025,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["DeckTooltip"],"fullName":"DeckTooltip hides when the pointer leaves the target","status":"passed","title":"hides when the pointer leaves the target","duration":26.365781999999854,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806393665,"endTime":1785806394251.3657,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/DeckTooltip.test.tsx"},{"assertionResults":[{"ancestorTitles":["DetailDrawer"],"fullName":"DetailDrawer renders the dialog shell, header, body slot, and close control","status":"passed","title":"renders the dialog shell, header, body slot, and close control","duration":515.0786070000001,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806400870,"endTime":1785806401385.0786,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/DetailDrawer.test.tsx"},{"assertionResults":[{"ancestorTitles":["DistanceToDone"],"fullName":"DistanceToDone renders verified counts, cells, ETA, fix-loop share, and truth note","status":"passed","title":"renders verified counts, cells, ETA, fix-loop share, and truth note","duration":569.6045180000001,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["DistanceToDone"],"fullName":"DistanceToDone renders labeled gaps without metric numbers when ETA and fix-loop data are absent","status":"passed","title":"renders labeled gaps without metric numbers when ETA and fix-loop data are absent","duration":15.24482399999988,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["DistanceToDone"],"fullName":"DistanceToDone renders a task-cell alarm ring only when the cell is alarmed","status":"passed","title":"renders a task-cell alarm ring only when the cell is alarmed","duration":15.527349999999842,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806387953,"endTime":1785806388553.5273,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/DistanceToDone.test.tsx"},{"assertionResults":[{"ancestorTitles":["FilterInput"],"fullName":"FilterInput forwards text changes and exposes a clear affordance only when populated","status":"passed","title":"forwards text changes and exposes a clear affordance only when populated","duration":319.7308600000001,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806398506,"endTime":1785806398825.731,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/FilterInput.test.tsx"},{"assertionResults":[{"ancestorTitles":["HostLogsModal"],"fullName":"HostLogsModal renders log lines in a monospace scrollable body","status":"passed","title":"renders log lines in a monospace scrollable body","duration":46.13386899999978,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["HostLogsModal"],"fullName":"HostLogsModal shows loading, empty, and error states honestly","status":"passed","title":"shows loading, empty, and error states honestly","duration":364.736527,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["HostLogsModal"],"fullName":"HostLogsModal invokes onClose and onRefresh","status":"passed","title":"invokes onClose and onRefresh","duration":92.15619900000002,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806399029,"endTime":1785806399532.1562,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/HostLogsModal.test.tsx"},{"assertionResults":[{"ancestorTitles":["IconButton"],"fullName":"IconButton exposes its label, tooltip, hit target, and fixed 16px icon slot","status":"passed","title":"exposes its label, tooltip, hit target, and fixed 16px icon slot","duration":236.4590599999999,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806398497,"endTime":1785806398733.459,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/IconButton.test.tsx"},{"assertionResults":[{"ancestorTitles":["IdleTimer"],"fullName":"IdleTimer renders the A10 gap without starting a fake clock","status":"passed","title":"renders the A10 gap without starting a fake clock","duration":90.77263300000004,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["IdleTimer"],"fullName":"IdleTimer renders Working at its threshold boundary","status":"passed","title":"renders Working at its threshold boundary","duration":5.319937000000209,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["IdleTimer"],"fullName":"IdleTimer renders No progress at its threshold boundary","status":"passed","title":"renders No progress at its threshold boundary","duration":3.2469240000000354,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["IdleTimer"],"fullName":"IdleTimer renders Watchdog recovering at its threshold boundary","status":"passed","title":"renders Watchdog recovering at its threshold boundary","duration":5.351670000000013,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["IdleTimer"],"fullName":"IdleTimer renders Ended at its threshold boundary","status":"passed","title":"renders Ended at its threshold boundary","duration":4.337777000000187,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["IdleTimer"],"fullName":"IdleTimer ticks once per second when watchdog data is present","status":"passed","title":"ticks once per second when watchdog data is present","duration":10.185427999999774,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806404639,"endTime":1785806404758.1855,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/IdleTimer.test.tsx"},{"assertionResults":[{"ancestorTitles":["InboxItem"],"fullName":"InboxItem renders title, subtitle, and both actions","status":"passed","title":"renders title, subtitle, and both actions","duration":450.0547730000003,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["InboxItem"],"fullName":"InboxItem fires the action callback for the clicked button","status":"passed","title":"fires the action callback for the clicked button","duration":28.979959999999664,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["InboxItem"],"fullName":"InboxItem maps dot=red to bg-danger","status":"passed","title":"maps dot=red to bg-danger","duration":7.366359000000102,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["InboxItem"],"fullName":"InboxItem maps dot=amber to bg-warning","status":"passed","title":"maps dot=amber to bg-warning","duration":15.824358999999731,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["InboxItem"],"fullName":"InboxItem maps dot=blue to bg-accent","status":"passed","title":"maps dot=blue to bg-accent","duration":4.45604800000001,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806393209,"endTime":1785806393715.456,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/InboxItem.test.tsx"},{"assertionResults":[{"ancestorTitles":["KpiTile"],"fullName":"KpiTile formats a *Ms tile value as a duration","status":"passed","title":"formats a *Ms tile value as a duration","duration":80.50424500000008,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["KpiTile"],"fullName":"KpiTile renders a non-Ms tile value as a plain number","status":"passed","title":"renders a non-Ms tile value as a plain number","duration":51.193334999999934,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["KpiTile"],"fullName":"KpiTile renders every real tile from the forensics fixture without crashing","status":"passed","title":"renders every real tile from the forensics fixture without crashing","duration":35.41002400000025,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806405308,"endTime":1785806405475.41,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/KpiTile.test.tsx"},{"assertionResults":[{"ancestorTitles":["KvPanel"],"fullName":"KvPanel renders every row label and value","status":"passed","title":"renders every row label and value","duration":142.45191999999997,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["KvPanel"],"fullName":"KvPanel applies the err intent color to a failing row","status":"passed","title":"applies the err intent color to a failing row","duration":29.25291500000003,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["KvPanel"],"fullName":"KvPanel defaults to neutral color when intent is omitted","status":"passed","title":"defaults to neutral color when intent is omitted","duration":23.656344999999874,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806405890,"endTime":1785806406085.6562,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/KvPanel.test.tsx"},{"assertionResults":[{"ancestorTitles":["LaneBar"],"fullName":"LaneBar maps every returned job to one segment without hook-order violations","status":"passed","title":"maps every returned job to one segment without hook-order violations","duration":87.20459099999971,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["LaneBar"],"fullName":"LaneBar stripes only the infra-classified job when jobs are complete","status":"passed","title":"stripes only the infra-classified job when jobs are complete","duration":24.157450000000154,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["LaneBar"],"fullName":"LaneBar keeps returned lanes visible under jobs incomplete and suppresses striping","status":"passed","title":"keeps returned lanes visible under jobs incomplete and suppresses striping","duration":18.751721999999972,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["LaneBar"],"fullName":"LaneBar renders a named empty lane state","status":"passed","title":"renders a named empty lane state","duration":8.423865000000205,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806403710,"endTime":1785806403848.4238,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/LaneBar.test.tsx"},{"assertionResults":[{"ancestorTitles":["LaneSegment"],"fullName":"LaneSegment attaches exactly one tooltip target with job name and duration","status":"passed","title":"attaches exactly one tooltip target with job name and duration","duration":39.69880899999998,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["LaneSegment"],"fullName":"LaneSegment uses the semantic success lane color","status":"passed","title":"uses the semantic success lane color","duration":4.587865999999849,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["LaneSegment"],"fullName":"LaneSegment uses the semantic failure lane color","status":"passed","title":"uses the semantic failure lane color","duration":3.1097869999998693,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["LaneSegment"],"fullName":"LaneSegment uses the semantic running lane color","status":"passed","title":"uses the semantic running lane color","duration":4.500136000000111,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["LaneSegment"],"fullName":"LaneSegment uses the semantic queued lane color","status":"passed","title":"uses the semantic queued lane color","duration":5.943674000000101,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["LaneSegment"],"fullName":"LaneSegment suppresses infra striping when jobs are incomplete","status":"passed","title":"suppresses infra striping when jobs are incomplete","duration":6.21487100000013,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806405087,"endTime":1785806405151.2148,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/LaneSegment.test.tsx"},{"assertionResults":[{"ancestorTitles":["LimitMeter"],"fullName":"LimitMeter renders percent and cap ETA for a warn-tier account","status":"passed","title":"renders percent and cap ETA for a warn-tier account","duration":120.9813009999998,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["LimitMeter"],"fullName":"LimitMeter renders percent only when there is no cap ETA","status":"passed","title":"renders percent only when there is no cap ETA","duration":15.964073999999982,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["LimitMeter"],"fullName":"LimitMeter uses the warning fill above warnAt","status":"passed","title":"uses the warning fill above warnAt","duration":13.378859999999804,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["LimitMeter"],"fullName":"LimitMeter uses the success fill below warnAt","status":"passed","title":"uses the success fill below warnAt","duration":9.384780000000319,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["LimitMeter"],"fullName":"LimitMeter renders a dash when percent is null","status":"passed","title":"renders a dash when percent is null","duration":9.321586000000025,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806402330,"endTime":1785806402499.3215,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/LimitMeter.test.tsx"},{"assertionResults":[{"ancestorTitles":["LinkButton"],"fullName":"LinkButton renders an accent link with optional className and data-testid","status":"passed","title":"renders an accent link with optional className and data-testid","duration":77.49584499999992,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["LinkButton"],"fullName":"LinkButton renders an accent button with disabled support","status":"passed","title":"renders an accent button with disabled support","duration":443.7906220000002,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806400961,"endTime":1785806401482.7905,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/LinkButton.test.tsx"},{"assertionResults":[{"ancestorTitles":["LiveDuration"],"fullName":"LiveDuration ticks elapsed time once per minute and clears its interval","status":"passed","title":"ticks elapsed time once per minute and clears its interval","duration":48.568857999999864,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["LiveDuration"],"fullName":"LiveDuration renders an honest coverage gap when start time is unavailable","status":"passed","title":"renders an honest coverage gap when start time is unavailable","duration":4.283317000000125,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806406733,"endTime":1785806406785.2832,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/LiveDuration.test.tsx"},{"assertionResults":[{"ancestorTitles":["MachineCard"],"fullName":"MachineCard renders host name, load, and capability probes","status":"passed","title":"renders host name, load, and capability probes","duration":459.45549500000016,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["MachineCard"],"fullName":"MachineCard renders enrolling state for a joining host","status":"passed","title":"renders enrolling state for a joining host","duration":22.671515,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["MachineCard"],"fullName":"MachineCard marks workstation spill state","status":"passed","title":"marks workstation spill state","duration":15.826162000000295,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806390590,"endTime":1785806391088.8262,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/MachineCard.test.tsx"},{"assertionResults":[{"ancestorTitles":["MachineDetailModal"],"fullName":"MachineDetailModal shows per-core load, memory, network, and disk for a healthy host","status":"passed","title":"shows per-core load, memory, network, and disk for a healthy host","duration":196.41789100000005,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["MachineDetailModal"],"fullName":"MachineDetailModal shows critical temperature banner only when pkg >= crit","status":"passed","title":"shows critical temperature banner only when pkg >= crit","duration":66.77925400000004,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["MachineDetailModal"],"fullName":"MachineDetailModal invokes onAction for enabled offload buttons","status":"passed","title":"invokes onAction for enabled offload buttons","duration":211.22537999999986,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["MachineDetailModal"],"fullName":"MachineDetailModal disables host-scoped actions without a machine and blocks while pending","status":"passed","title":"disables host-scoped actions without a machine and blocks while pending","duration":79.35758799999985,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["MachineDetailModal"],"fullName":"MachineDetailModal enables host-logs without treating it as host-scoped offload","status":"passed","title":"enables host-logs without treating it as host-scoped offload","duration":22.438914000000295,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["MachineDetailModal"],"fullName":"MachineDetailModal renders accessible action errors adjacent to the action group","status":"passed","title":"renders accessible action errors adjacent to the action group","duration":34.361515000000054,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806390176,"endTime":1785806390787.3616,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/MachineDetailModal.test.tsx"},{"assertionResults":[{"ancestorTitles":["MapCanvas"],"fullName":"MapCanvas renders nodes, inspector for the selected node, and SVG edges","status":"passed","title":"renders nodes, inspector for the selected node, and SVG edges","duration":413.993465,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["MapCanvas"],"fullName":"MapCanvas switches inspector content when another node is selected","status":"passed","title":"switches inspector content when another node is selected","duration":46.07167799999979,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806385248,"endTime":1785806385709.0718,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/MapCanvas.test.tsx"},{"assertionResults":[{"ancestorTitles":["MapNode"],"fullName":"MapNode renders title, chips, and pulse state","status":"passed","title":"renders title, chips, and pulse state","duration":123.7758429999999,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["MapNode"],"fullName":"MapNode calls onSelect with the node id when clicked","status":"passed","title":"calls onSelect with the node id when clicked","duration":393.80181300000004,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806401453,"endTime":1785806401969.8018,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/MapNode.test.tsx"},{"assertionResults":[{"ancestorTitles":["OffloadControl"],"fullName":"OffloadControl renders state machine, kv rows, probes, and selected host label","status":"passed","title":"renders state machine, kv rows, probes, and selected host label","duration":534.1497239999999,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["OffloadControl"],"fullName":"OffloadControl disables host-scoped actions until a host is selected","status":"passed","title":"disables host-scoped actions until a host is selected","duration":40.035789999999906,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["OffloadControl"],"fullName":"OffloadControl invokes onAction and blocks duplicate submission while pending","status":"passed","title":"invokes onAction and blocks duplicate submission while pending","duration":42.529983999999786,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["OffloadControl"],"fullName":"OffloadControl disables quarantine when required command is absent and surfaces action errors","status":"passed","title":"disables quarantine when required command is absent and surfaces action errors","duration":22.896817999999712,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806385077,"endTime":1785806385716.8967,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/OffloadControl.test.tsx"},{"assertionResults":[{"ancestorTitles":["PhaseBars"],"fullName":"PhaseBars renders all six bucket labels from the real attribution payload","status":"passed","title":"renders all six bucket labels from the real attribution payload","duration":151.253154,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PhaseBars"],"fullName":"PhaseBars sorts rows by totalMs descending, with the largest bucket at 100% bar width","status":"passed","title":"sorts rows by totalMs descending, with the largest bucket at 100% bar width","duration":274.7057219999999,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PhaseBars"],"fullName":"PhaseBars shows duration and share-of-total percent for each bucket","status":"passed","title":"shows duration and share-of-total percent for each bucket","duration":25.2780029999999,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806392630,"endTime":1785806393081.278,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/PhaseBars.test.tsx"},{"assertionResults":[{"ancestorTitles":["PlanRunListRow"],"fullName":"PlanRunListRow renders verified run chips and absolute-time tooltip data","status":"passed","title":"renders verified run chips and absolute-time tooltip data","duration":236.29851800000006,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PlanRunListRow"],"fullName":"PlanRunListRow omits absent sequence and zero active-agent values","status":"passed","title":"omits absent sequence and zero active-agent values","duration":6.311431999999968,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PlanRunListRow"],"fullName":"PlanRunListRow selects from the row button while Open remains navigation","status":"passed","title":"selects from the row button while Open remains navigation","duration":50.13584999999989,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PlanRunListRow"],"fullName":"PlanRunListRow omits the timestamp instead of crashing when updatedAtMs is not finite","status":"passed","title":"omits the timestamp instead of crashing when updatedAtMs is not finite","duration":9.325074000000086,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806390254,"endTime":1785806390556.3252,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/PlanRunListRow.test.tsx"},{"assertionResults":[{"ancestorTitles":["PlanTable"],"fullName":"PlanTable shares one width-aware column source and toggles text sort with aria-sort","status":"passed","title":"shares one width-aware column source and toggles text sort with aria-sort","duration":818.9382930000002,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PlanTable"],"fullName":"PlanTable keeps missing dates last in both directions","status":"passed","title":"keeps missing dates last in both directions","duration":118.89093600000024,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PlanTable"],"fullName":"PlanTable sorts runs needing attention above failed runs without hiding failed actions","status":"passed","title":"sorts runs needing attention above failed runs without hiding failed actions","duration":77.50569399999995,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PlanTable"],"fullName":"PlanTable shows active running plans before failed plans by default","status":"passed","title":"shows active running plans before failed plans by default","duration":30.18673299999955,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806385997,"endTime":1785806387042.1868,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/PlanTable.test.tsx"},{"assertionResults":[{"ancestorTitles":["PlanTableRow"],"fullName":"PlanTableRow opens from row click while Open remains navigation","status":"passed","title":"opens from row click while Open remains navigation","duration":309.51047700000004,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PlanTableRow"],"fullName":"PlanTableRow shows running duration only for running rows","status":"passed","title":"shows running duration only for running rows","duration":21.55195700000013,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PlanTableRow"],"fullName":"PlanTableRow shows a collapsed-attempts badge only when a plan has relaunches","status":"passed","title":"shows a collapsed-attempts badge only when a plan has relaunches","duration":16.090521999999964,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PlanTableRow"],"fullName":"PlanTableRow renders no attempts badge for a single-launch plan","status":"passed","title":"renders no attempts badge for a single-launch plan","duration":19.825474000000213,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PlanTableRow"],"fullName":"PlanTableRow renders a stalled indicator when the row is alarmed","status":"passed","title":"renders a stalled indicator when the row is alarmed","duration":5.366530000000239,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PlanTableRow"],"fullName":"PlanTableRow omits the stalled indicator when the row is not alarmed","status":"passed","title":"omits the stalled indicator when the row is not alarmed","duration":5.108017000000018,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PlanTableRow"],"fullName":"PlanTableRow omits the duplicate Open run action and fires abandon from the trash control","status":"passed","title":"omits the duplicate Open run action and fires abandon from the trash control","duration":20.135404000000108,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PlanTableRow"],"fullName":"PlanTableRow uses the shared failed category for row actions","status":"passed","title":"uses the shared failed category for row actions","duration":14.783792000000176,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PlanTableRow"],"fullName":"PlanTableRow does not expose failed actions when needs-you is the rendered category","status":"passed","title":"does not expose failed actions when needs-you is the rendered category","duration":5.590395000000171,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PlanTableRow"],"fullName":"PlanTableRow disables unresolved harness actions with the pinned gap tooltip","status":"passed","title":"disables unresolved harness actions with the pinned gap tooltip","duration":17.785527000000002,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PlanTableRow"],"fullName":"PlanTableRow folds more than two actions into a menu with abandon last","status":"passed","title":"folds more than two actions into a menu with abandon last","duration":70.02502099999992,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806387728,"endTime":1785806388234.025,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/PlanTableRow.test.tsx"},{"assertionResults":[{"ancestorTitles":["PrQueueTable"],"fullName":"PrQueueTable sorts by age descending by default and toggles deterministically","status":"passed","title":"sorts by age descending by default and toggles deterministically","duration":794.801074,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PrQueueTable"],"fullName":"PrQueueTable renders a Repo column for all scope and omits it for single-repo scope","status":"passed","title":"renders a Repo column for all scope and omits it for single-repo scope","duration":341.09563500000013,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PrQueueTable"],"fullName":"PrQueueTable expands checks independently for duplicate PR numbers across repositories","status":"passed","title":"expands checks independently for duplicate PR numbers across repositories","duration":54.01855300000034,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PrQueueTable"],"fullName":"PrQueueTable renders conflict, train membership, stale, and unknown states honestly","status":"passed","title":"renders conflict, train membership, stale, and unknown states honestly","duration":30.130341000000044,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PrQueueTable"],"fullName":"PrQueueTable keeps returned checks visible but suppresses passing rollups when checks are incomplete","status":"passed","title":"keeps returned checks visible but suppresses passing rollups when checks are incomplete","duration":45.0323870000002,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PrQueueTable"],"fullName":"PrQueueTable renders complete failed, pending, and passing check rollups","status":"passed","title":"renders complete failed, pending, and passing check rollups","duration":31.45009600000003,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PrQueueTable"],"fullName":"PrQueueTable labels every incomplete repository while retaining its rows","status":"passed","title":"labels every incomplete repository while retaining its rows","duration":54.58059099999991,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PrQueueTable"],"fullName":"PrQueueTable resets expansion and sorts deterministically when a PR head OID changes","status":"passed","title":"resets expansion and sorts deterministically when a PR head OID changes","duration":132.86439999999948,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PrQueueTable"],"fullName":"PrQueueTable distinguishes complete empty scope from incomplete empty scope","status":"passed","title":"distinguishes complete empty scope from incomplete empty scope","duration":9.831006000000343,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806385952,"endTime":1785806387445.831,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/PrQueueTable.test.tsx"},{"assertionResults":[{"ancestorTitles":["ProjectGroupRow"],"fullName":"ProjectGroupRow renders non-zero metrics, severity stripe, activity, and expanded children","status":"passed","title":"renders non-zero metrics, severity stripe, activity, and expanded children","duration":590.3580740000002,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["ProjectGroupRow"],"fullName":"ProjectGroupRow omits zero chips, handles missing activity, and toggles","status":"passed","title":"omits zero chips, handles missing activity, and toggles","duration":59.39127899999994,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806392921,"endTime":1785806393570.3914,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/ProjectGroupRow.test.tsx"},{"assertionResults":[{"ancestorTitles":["RateLimitDialog"],"fullName":"RateLimitDialog renders a healthy wrapper as read-only","status":"passed","title":"renders a healthy wrapper as read-only","duration":86.749413,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RateLimitDialog"],"fullName":"RateLimitDialog renders limited scope and resolves wait, retry, and switch payloads","status":"passed","title":"renders limited scope and resolves wait, retry, and switch payloads","duration":698.2496080000001,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806392608,"endTime":1785806393393.2495,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/RateLimitDialog.test.tsx"},{"assertionResults":[{"ancestorTitles":["RemoteJobsTable"],"fullName":"RemoteJobsTable renders job rows with stage and rc","status":"passed","title":"renders job rows with stage and rc","duration":161.6651509999997,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806406854,"endTime":1785806407015.665,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/RemoteJobsTable.test.tsx"},{"assertionResults":[{"ancestorTitles":["RepoCiStrip"],"fullName":"RepoCiStrip selects All by default and scopes it to null","status":"passed","title":"selects All by default and scopes it to null","duration":615.5530320000003,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RepoCiStrip"],"fullName":"RepoCiStrip marks and scopes only the exact selected repository","status":"passed","title":"marks and scopes only the exact selected repository","duration":52.09457100000009,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RepoCiStrip"],"fullName":"RepoCiStrip renders All first and preserves repository input order","status":"passed","title":"renders All first and preserves repository input order","duration":12.90328400000044,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RepoCiStrip"],"fullName":"RepoCiStrip renders a named gap state for an empty repository list","status":"passed","title":"renders a named gap state for an empty repository list","duration":6.853952999999819,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806398596,"endTime":1785806399283.854,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/RepoCiStrip.test.tsx"},{"assertionResults":[{"ancestorTitles":["RepoCiTile"],"fullName":"RepoCiTile renders real metrics and scopes to its repository","status":"passed","title":"renders real metrics and scopes to its repository","duration":464.702675,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RepoCiTile"],"fullName":"RepoCiTile does not mark the 30-minute boundary as act-red","status":"passed","title":"does not mark the 30-minute boundary as act-red","duration":15.515966999999819,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RepoCiTile"],"fullName":"RepoCiTile renders the prsComplete gap independently","status":"passed","title":"renders the prsComplete gap independently","duration":8.639868000000206,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RepoCiTile"],"fullName":"RepoCiTile renders the queueComplete gap independently","status":"passed","title":"renders the queueComplete gap independently","duration":14.682474000000184,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RepoCiTile"],"fullName":"RepoCiTile renders the refsComplete gap independently","status":"passed","title":"renders the refsComplete gap independently","duration":19.477876999999808,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RepoCiTile"],"fullName":"RepoCiTile renders the trainRunsComplete gap independently","status":"passed","title":"renders the trainRunsComplete gap independently","duration":7.146287000000029,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RepoCiTile"],"fullName":"RepoCiTile suppresses operator warnings when poll rotation serves cached data","status":"passed","title":"suppresses operator warnings when poll rotation serves cached data","duration":10.277966000000106,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RepoCiTile"],"fullName":"RepoCiTile preserves simultaneous completeness gaps with actionable copy","status":"passed","title":"preserves simultaneous completeness gaps with actionable copy","duration":20.08078000000023,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RepoCiTile"],"fullName":"RepoCiTile renders labeled gaps for unknown metrics instead of zeroes","status":"passed","title":"renders labeled gaps for unknown metrics instead of zeroes","duration":16.80592999999999,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806392241,"endTime":1785806392818.806,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/RepoCiTile.test.tsx"},{"assertionResults":[{"ancestorTitles":["RunCommandBar"],"fullName":"RunCommandBar disables unsupported controls with an explicit capability reason","status":"passed","title":"disables unsupported controls with an explicit capability reason","duration":254.60205799999994,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RunCommandBar"],"fullName":"RunCommandBar invokes supported pause and kill controls","status":"passed","title":"invokes supported pause and kill controls","duration":34.11152799999991,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RunCommandBar"],"fullName":"RunCommandBar cancels a pending kill confirmation with Escape","status":"passed","title":"cancels a pending kill confirmation with Escape","duration":18.570186999999805,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RunCommandBar"],"fullName":"RunCommandBar omits a missing update timestamp without fabricating a value","status":"passed","title":"omits a missing update timestamp without fabricating a value","duration":4.927314999999908,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806385830,"endTime":1785806386141.9272,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/RunCommandBar.test.tsx"},{"assertionResults":[{"ancestorTitles":["RunLanes"],"fullName":"RunLanes renders a landed X/Y summary for a done run","status":"passed","title":"renders a landed X/Y summary for a done run","duration":245.0461610000002,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RunLanes"],"fullName":"RunLanes renders a crashed outcome in the danger color with a cap marker","status":"passed","title":"renders a crashed outcome in the danger color with a cap marker","duration":25.851720000000114,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RunLanes"],"fullName":"RunLanes attributes each segment to its own run by time range, not to every run","status":"passed","title":"attributes each segment to its own run by time range, not to every run","duration":26.5200490000002,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806406777,"endTime":1785806407074.52,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/RunLanes.test.tsx"},{"assertionResults":[{"ancestorTitles":["RunTable"],"fullName":"RunTable renders one row per run with every real payload field","status":"passed","title":"renders one row per run with every real payload field","duration":117.04143400000021,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RunTable"],"fullName":"RunTable colors the status dot green for done and red for crash","status":"passed","title":"colors the status dot green for done and red for crash","duration":30.15366700000004,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RunTable"],"fullName":"RunTable renders the exact column headers","status":"passed","title":"renders the exact column headers","duration":93.61008099999981,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806404648,"endTime":1785806404889.61,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/RunTable.test.tsx"},{"assertionResults":[{"ancestorTitles":["RunnerFleetStrip"],"fullName":"RunnerFleetStrip renders runner registration scope when provided","status":"passed","title":"renders runner registration scope when provided","duration":119.83594700000003,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RunnerFleetStrip"],"fullName":"RunnerFleetStrip renders a busy runner current job and repository","status":"passed","title":"renders a busy runner current job and repository","duration":400.04350999999997,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RunnerFleetStrip"],"fullName":"RunnerFleetStrip renders an idle runner without a current assignment","status":"passed","title":"renders an idle runner without a current assignment","duration":39.54851899999994,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RunnerFleetStrip"],"fullName":"RunnerFleetStrip renders explicit unknown and suppresses unverified current assignment values","status":"passed","title":"renders explicit unknown and suppresses unverified current assignment values","duration":56.88303599999972,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RunnerFleetStrip"],"fullName":"RunnerFleetStrip shows aggregate occupancy and head-of-line saturation for a non-empty all-busy online fleet","status":"passed","title":"shows aggregate occupancy and head-of-line saturation for a non-empty all-busy online fleet","duration":9.690016999999898,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RunnerFleetStrip"],"fullName":"RunnerFleetStrip does not show saturation at the exact fifteen-minute threshold","status":"passed","title":"does not show saturation at the exact fifteen-minute threshold","duration":4.207660000000033,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RunnerFleetStrip"],"fullName":"RunnerFleetStrip labels incomplete runner data, hides aggregate occupancy, and suppresses saturation","status":"passed","title":"labels incomplete runner data, hides aggregate occupancy, and suppresses saturation","duration":5.136449000000084,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RunnerFleetStrip"],"fullName":"RunnerFleetStrip renders a complete empty fleet without saturation","status":"passed","title":"renders a complete empty fleet without saturation","duration":2.531717000000299,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RunnerFleetStrip"],"fullName":"RunnerFleetStrip never renders saturation for an all-offline fleet with an old queue","status":"passed","title":"never renders saturation for an all-offline fleet with an old queue","duration":14.355361000000357,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806385106,"endTime":1785806385758.3555,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/RunnerFleetStrip.test.tsx"},{"assertionResults":[{"ancestorTitles":["ScoreCard"],"fullName":"ScoreCard renders value/max and an up trend","status":"passed","title":"renders value/max and an up trend","duration":124.70747600000004,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["ScoreCard"],"fullName":"ScoreCard sizes the progress bar fill to value/max","status":"passed","title":"sizes the progress bar fill to value/max","duration":8.957596999999623,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["ScoreCard"],"fullName":"ScoreCard renders a flat trend in the danger color","status":"passed","title":"renders a flat trend in the danger color","duration":9.22867099999985,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["ScoreCard"],"fullName":"ScoreCard honors a custom bar color class","status":"passed","title":"honors a custom bar color class","duration":6.528287000000091,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806403307,"endTime":1785806403456.5283,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/ScoreCard.test.tsx"},{"assertionResults":[{"ancestorTitles":["SectionCard"],"fullName":"SectionCard renders the title and children","status":"passed","title":"renders the title and children","duration":106.41348999999991,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SectionCard"],"fullName":"SectionCard renders a link action when href is given","status":"passed","title":"renders a link action when href is given","duration":190.22580500000004,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SectionCard"],"fullName":"SectionCard renders a button action and fires onClick when no href is given","status":"passed","title":"renders a button action and fires onClick when no href is given","duration":30.188452999999754,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SectionCard"],"fullName":"SectionCard renders a titleBadge inline with the title","status":"passed","title":"renders a titleBadge inline with the title","duration":15.169660000000022,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806396355,"endTime":1785806396697.1697,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/SectionCard.test.tsx"},{"assertionResults":[{"ancestorTitles":["SectionHeading"],"fullName":"SectionHeading renders the title and subtitle","status":"passed","title":"renders the title and subtitle","duration":54.89936999999986,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SectionHeading"],"fullName":"SectionHeading renders a link action when href is given","status":"passed","title":"renders a link action when href is given","duration":216.837266,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SectionHeading"],"fullName":"SectionHeading renders a button action and fires onClick when no href is given","status":"passed","title":"renders a button action and fires onClick when no href is given","duration":31.051854999999932,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SectionHeading"],"fullName":"SectionHeading renders a titleBadge inline with the title","status":"passed","title":"renders a titleBadge inline with the title","duration":4.136122999999998,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806397310,"endTime":1785806397617.1362,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/SectionHeading.test.tsx"},{"assertionResults":[{"ancestorTitles":["SegmentDetailDrawer"],"fullName":"SegmentDetailDrawer renders when, who, note, evidence, and the agent link","status":"passed","title":"renders when, who, note, evidence, and the agent link","duration":663.3055339999996,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806394915,"endTime":1785806395578.3054,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/SegmentDetailDrawer.test.tsx"},{"assertionResults":[{"ancestorTitles":["SettingsTable"],"fullName":"SettingsTable renders aligned settings columns without pills","status":"passed","title":"renders aligned settings columns without pills","duration":474.2027619999999,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SettingsTable"],"fullName":"SettingsTable expands all five layers inline and saves a run override","status":"passed","title":"expands all five layers inline and saves a run override","duration":95.59822399999985,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SettingsTable"],"fullName":"SettingsTable renders immutable layers without inputs","status":"passed","title":"renders immutable layers without inputs","duration":29.609097999999904,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SettingsTable"],"fullName":"SettingsTable renders the B5 gap state","status":"passed","title":"renders the B5 gap state","duration":4.347863999999845,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806388137,"endTime":1785806388740.348,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/SettingsTable.test.tsx"},{"assertionResults":[{"ancestorTitles":["StaleBadge"],"fullName":"StaleBadge renders nothing when the adapter status is not stale","status":"passed","title":"renders nothing when the adapter status is not stale","duration":60.38187199999993,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["StaleBadge"],"fullName":"StaleBadge renders a stale pill with the age since lastSuccess when stale","status":"passed","title":"renders a stale pill with the age since lastSuccess when stale","duration":77.76992800000016,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["StaleBadge"],"fullName":"StaleBadge renders bare \"stale\" when lastSuccess is unknown","status":"passed","title":"renders bare \"stale\" when lastSuccess is unknown","duration":9.939981999999873,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806408489,"endTime":1785806408636.94,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/StaleBadge.test.tsx"},{"assertionResults":[{"ancestorTitles":["StatusChip"],"fullName":"StatusChip uses one category mapping for status labels and styling","status":"passed","title":"uses one category mapping for status labels and styling","duration":120.36743100000012,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806408563,"endTime":1785806408683.3674,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/StatusChip.test.tsx"},{"assertionResults":[{"ancestorTitles":["SwimlaneTrace"],"fullName":"SwimlaneTrace positions segments and the NOW playhead on the shared absolute clock","status":"passed","title":"positions segments and the NOW playhead on the shared absolute clock","duration":78.06701500000008,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SwimlaneTrace"],"fullName":"SwimlaneTrace constrains a condition band to its declared lanes","status":"passed","title":"constrains a condition band to its declared lanes","duration":22.108851999999843,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SwimlaneTrace"],"fullName":"SwimlaneTrace reports zoom and segment interactions","status":"passed","title":"reports zoom and segment interactions","duration":371.7482369999998,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806389879,"endTime":1785806390350.7483,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/SwimlaneTrace.test.tsx"},{"assertionResults":[{"ancestorTitles":["TrainCard"],"fullName":"TrainCard builds member links exclusively from the train repository","status":"passed","title":"builds member links exclusively from the train repository","duration":313.83379000000014,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainCard"],"fullName":"TrainCard reruns a complete failed gate with exact string mutation args","status":"passed","title":"reruns a complete failed gate with exact string mutation args","duration":71.80961100000013,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainCard"],"fullName":"TrainCard cancels a complete gating gate","status":"passed","title":"cancels a complete gating gate","duration":14.242249999999785,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainCard"],"fullName":"TrainCard cancels a complete rerunning gate","status":"passed","title":"cancels a complete rerunning gate","duration":17.16255799999999,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainCard"],"fullName":"TrainCard opens a valid GitHub pull URL without invoking a mutation","status":"passed","title":"opens a valid GitHub pull URL without invoking a mutation","duration":28.910857000000306,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainCard"],"fullName":"TrainCard omits Open for invalid URL http://github.com/alexcodeplace/multideal/pull/901","status":"passed","title":"omits Open for invalid URL http://github.com/alexcodeplace/multideal/pull/901","duration":13.687458999999762,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainCard"],"fullName":"TrainCard omits Open for invalid URL https://user:secret@github.com/alexcodeplace/multideal/pull/901","status":"passed","title":"omits Open for invalid URL https://user:secret@github.com/alexcodeplace/multideal/pull/901","duration":10.049955999999838,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainCard"],"fullName":"TrainCard omits Open for invalid URL https://github.example/alexcodeplace/multideal/pull/901","status":"passed","title":"omits Open for invalid URL https://github.example/alexcodeplace/multideal/pull/901","duration":9.046137000000272,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainCard"],"fullName":"TrainCard omits Open for invalid URL not a URL","status":"passed","title":"omits Open for invalid URL not a URL","duration":12.936529999999948,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainCard"],"fullName":"TrainCard renders the refsComplete gap and suppresses every action","status":"passed","title":"renders the refsComplete gap and suppresses every action","duration":8.39577300000019,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainCard"],"fullName":"TrainCard renders the prsComplete gap and suppresses every action","status":"passed","title":"renders the prsComplete gap and suppresses every action","duration":4.3669560000003,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainCard"],"fullName":"TrainCard renders the trainRunsComplete gap and suppresses every action","status":"passed","title":"renders the trainRunsComplete gap and suppresses every action","duration":6.66723200000024,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainCard"],"fullName":"TrainCard renders the trainsComplete gap and suppresses every action","status":"passed","title":"renders the trainsComplete gap and suppresses every action","duration":7.662315999999919,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainCard"],"fullName":"TrainCard uses completeness precedence over a stale state gap","status":"passed","title":"uses completeness precedence over a stale state gap","duration":7.9476989999998295,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainCard"],"fullName":"TrainCard renders nullable state gap and deterministic blocking line","status":"passed","title":"renders nullable state gap and deterministic blocking line","duration":12.321521999999732,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainCard"],"fullName":"TrainCard keeps incomplete jobs visible but suppresses blocking, classification, striping, and recommendation claims","status":"passed","title":"keeps incomplete jobs visible but suppresses blocking, classification, striping, and recommendation claims","duration":58.058856000000105,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainCard"],"fullName":"TrainCard does not recommend an eligible rerun without exact infra classification","status":"passed","title":"does not recommend an eligible rerun without exact infra classification","duration":17.717913999999837,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainCard"],"fullName":"TrainCard labels null complete-job classification as unknown","status":"passed","title":"labels null complete-job classification as unknown","duration":4.993426999999883,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainCard"],"fullName":"TrainCard renders actions independently from one another","status":"passed","title":"renders actions independently from one another","duration":10.198847000000114,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806385131,"endTime":1785806385762.1987,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/TrainCard.test.tsx"},{"assertionResults":[{"ancestorTitles":["TrainRail"],"fullName":"TrainRail uses the canonical total order and excludes merged trains","status":"passed","title":"uses the canonical total order and excludes merged trains","duration":213.35928300000023,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainRail"],"fullName":"TrainRail uses repo ascending only after all train keys tie","status":"passed","title":"uses repo ascending only after all train keys tie","duration":14.401250999999775,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainRail"],"fullName":"TrainRail renders each scoped repository completeness gap even with returned trains","status":"passed","title":"renders each scoped repository completeness gap even with returned trains","duration":70.45646899999974,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainRail"],"fullName":"TrainRail never renders the complete empty state for a zero-return truncated-ref repository","status":"passed","title":"never renders the complete empty state for a zero-return truncated-ref repository","duration":16.81348799999978,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainRail"],"fullName":"TrainRail renders the exact complete empty state","status":"passed","title":"renders the exact complete empty state","duration":5.856768000000102,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainRail"],"fullName":"TrainRail renders exactly one tooltip layer per rail composition","status":"passed","title":"renders exactly one tooltip layer per rail composition","duration":27.480867000000217,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainRail"],"fullName":"TrainRail keeps duplicate PR numbers scoped to each train repo for links and mutations","status":"passed","title":"keeps duplicate PR numbers scoped to each train repo for links and mutations","duration":335.9690340000002,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806395803,"endTime":1785806396487.969,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/TrainRail.test.tsx"},{"assertionResults":[{"ancestorTitles":["UndoToast"],"fullName":"UndoToast dismisses a plain toast after 3.4 seconds","status":"passed","title":"dismisses a plain toast after 3.4 seconds","duration":99.22846199999958,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["UndoToast"],"fullName":"UndoToast ticks the countdown and commits only on expiry","status":"passed","title":"ticks the countdown and commits only on expiry","duration":577.15614,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["UndoToast"],"fullName":"UndoToast dismisses and restores through undo without committing","status":"passed","title":"dismisses and restores through undo without committing","duration":52.0338069999998,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["UndoToast"],"fullName":"UndoToast commits a pending action before replacing it","status":"passed","title":"commits a pending action before replacing it","duration":27.814980000000105,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["UndoToast"],"fullName":"UndoToast enforces the five-second minimum","status":"passed","title":"enforces the five-second minimum","duration":44.80179099999987,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806400378,"endTime":1785806401178.8018,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/UndoToast.test.tsx"},{"assertionResults":[{"ancestorTitles":["VerdictBadge"],"fullName":"VerdictBadge renders the uppercased label for a verdict","status":"passed","title":"renders the uppercased label for a verdict","duration":145.71237500000007,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["VerdictBadge"],"fullName":"VerdictBadge carries the danger token class for a broken verdict","status":"passed","title":"carries the danger token class for a broken verdict","duration":25.343407000000298,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["VerdictBadge"],"fullName":"VerdictBadge distinguishes works from broken by color class","status":"passed","title":"distinguishes works from broken by color class","duration":28.796584000000166,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806408101,"endTime":1785806408300.7966,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/VerdictBadge.test.tsx"},{"assertionResults":[{"ancestorTitles":["WrapperCapacity"],"fullName":"WrapperCapacity renders healthy wrappers and opens the selected wrapper","status":"passed","title":"renders healthy wrappers and opens the selected wrapper","duration":406.646039,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["WrapperCapacity"],"fullName":"WrapperCapacity renders and ticks a real limited-wrapper countdown","status":"passed","title":"renders and ticks a real limited-wrapper countdown","duration":20.78109799999993,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["WrapperCapacity"],"fullName":"WrapperCapacity renders no countdown when B7 data is unavailable","status":"passed","title":"renders no countdown when B7 data is unavailable","duration":13.881296999999904,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806387202,"endTime":1785806387642.8813,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/WrapperCapacity.test.tsx"},{"assertionResults":[{"ancestorTitles":["ci-coverage"],"fullName":"ci-coverage suppresses operator warnings for poll-budget rotation","status":"passed","title":"suppresses operator warnings for poll-budget rotation","duration":3.13994700000012,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["ci-coverage"],"fullName":"ci-coverage does not surface run-history coverage gaps","status":"passed","title":"does not surface run-history coverage gaps","duration":0.6801000000000386,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["ci-coverage"],"fullName":"ci-coverage prioritizes train ref gaps before PR gaps","status":"passed","title":"prioritizes train ref gaps before PR gaps","duration":0.3673200000000634,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806409620,"endTime":1785806409624.3674,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/ci-coverage.test.ts"},{"assertionResults":[{"ancestorTitles":["formatRelativeTime"],"fullName":"formatRelativeTime formats just now","status":"passed","title":"formats just now","duration":2.0727690000001076,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["formatRelativeTime"],"fullName":"formatRelativeTime formats minutes","status":"passed","title":"formats minutes","duration":0.24263800000017,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["formatRelativeTime"],"fullName":"formatRelativeTime formats hours","status":"passed","title":"formats hours","duration":0.174940000000106,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["formatRelativeTime"],"fullName":"formatRelativeTime formats days","status":"passed","title":"formats days","duration":0.2157089999998334,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["formatRelativeTime"],"fullName":"formatRelativeTime formats future minutes","status":"passed","title":"formats future minutes","duration":0.18759700000009616,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["formatRelativeTime"],"fullName":"formatRelativeTime formats future hours","status":"passed","title":"formats future hours","duration":0.16562999999996464,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["formatRelativeTime"],"fullName":"formatRelativeTime formats future days","status":"passed","title":"formats future days","duration":0.14283300000010968,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["compareOptional"],"fullName":"compareOptional sorts missing values last in both directions","status":"passed","title":"sorts missing values last in both directions","duration":0.3042279999999664,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806409712,"endTime":1785806409715.3042,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/format.test.ts"},{"assertionResults":[{"ancestorTitles":["assignProjectColor"],"fullName":"assignProjectColor assigns 12 distinct hues on the first rotation, each a wheel-unique hue","status":"passed","title":"assigns 12 distinct hues on the first rotation, each a wheel-unique hue","duration":3.2410350000000108,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["assignProjectColor"],"fullName":"assignProjectColor keeps consecutively-assigned hues at least 2 wheel steps apart","status":"passed","title":"keeps consecutively-assigned hues at least 2 wheel steps apart","duration":1.3148980000000847,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["assignProjectColor"],"fullName":"assignProjectColor shifts lightness/chroma on the second rotation by >= 20 ΔE vs the same hue in rotation 0","status":"passed","title":"shifts lightness/chroma on the second rotation by >= 20 ΔE vs the same hue in rotation 0","duration":2.1956609999999728,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["assignProjectColor"],"fullName":"assignProjectColor uses a manual override from collector config passthrough instead of the wheel","status":"passed","title":"uses a manual override from collector config passthrough instead of the wheel","duration":1.159938000000011,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["assignProjectColors"],"fullName":"assignProjectColors assigns colors positionally, honoring per-id overrides","status":"passed","title":"assigns colors positionally, honoring per-id overrides","duration":0.6878269999999702,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806408725,"endTime":1785806408734.6877,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/project-colors.test.ts"},{"assertionResults":[{"ancestorTitles":["resolveActionForFailClass"],"fullName":"resolveActionForFailClass maps wrapper-engine-down to its honest action","status":"passed","title":"maps wrapper-engine-down to its honest action","duration":3.021100999999817,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["resolveActionForFailClass"],"fullName":"resolveActionForFailClass maps gate-failed to its honest action","status":"passed","title":"maps gate-failed to its honest action","duration":0.33634600000004866,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["resolveActionForFailClass"],"fullName":"resolveActionForFailClass maps review-failed to its honest action","status":"passed","title":"maps review-failed to its honest action","duration":0.22615899999982503,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["resolveActionForFailClass"],"fullName":"resolveActionForFailClass maps provider-quota to its honest action","status":"passed","title":"maps provider-quota to its honest action","duration":0.22991000000001804,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["resolveActionForFailClass"],"fullName":"resolveActionForFailClass maps unknown-class to its honest action","status":"passed","title":"maps unknown-class to its honest action","duration":0.24896699999999328,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["resolveActionForFailClass"],"fullName":"resolveActionForFailClass maps undefined to its honest action","status":"passed","title":"maps undefined to its honest action","duration":0.19412199999987934,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["resolveActionForFailClass"],"fullName":"resolveActionForFailClass never maps non-wrapper failures to retry","status":"passed","title":"never maps non-wrapper failures to retry","duration":0.6805550000003677,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806409343,"endTime":1785806409347.6807,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/resolve-action.test.ts"},{"assertionResults":[{"ancestorTitles":["useSseStream"],"fullName":"useSseStream stays idle and never fetches when url is null","status":"passed","title":"stays idle and never fetches when url is null","duration":34.474203000000216,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["useSseStream"],"fullName":"useSseStream parses split multiline events and ignores heartbeat comments","status":"passed","title":"parses split multiline events and ignores heartbeat comments","duration":67.49583399999983,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["useSseStream"],"fullName":"useSseStream parses multiple frames delivered in one chunk","status":"passed","title":"parses multiple frames delivered in one chunk","duration":57.4523479999998,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["useSseStream"],"fullName":"useSseStream terminates malformed data frames before later events or reconnects","status":"passed","title":"terminates malformed data frames before later events or reconnects","duration":79.47848199999999,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["useSseStream"],"fullName":"useSseStream resumes from the last delivered opaque ID and suppresses replayed events","status":"passed","title":"resumes from the last delivered opaque ID and suppresses replayed events","duration":59.60298899999998,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["useSseStream"],"fullName":"useSseStream reconnects after the exact fixture frame closes and resumes its opaque cursor","status":"passed","title":"reconnects after the exact fixture frame closes and resumes its opaque cursor","duration":56.366309999999885,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["useSseStream"],"fullName":"useSseStream reconnects after the stream ends, until unmounted","status":"passed","title":"reconnects after the stream ends, until unmounted","duration":78.67660599999999,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["useSseStream"],"fullName":"useSseStream does not reconnect after consumer closes the stream with url null","status":"passed","title":"does not reconnect after consumer closes the stream with url null","duration":27.04836899999964,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["useSseStream"],"fullName":"useSseStream closes an oversized delimiter-free frame without reconnecting","status":"passed","title":"closes an oversized delimiter-free frame without reconnecting","duration":80.57930599999963,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["useSseStream"],"fullName":"useSseStream accepts a frame exactly at the byte bound","status":"passed","title":"accepts a frame exactly at the byte bound","duration":62.63864899999999,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["useSseStream"],"fullName":"useSseStream closes an oversized delimited frame before parsing or delivery","status":"passed","title":"closes an oversized delimited frame before parsing or delivery","duration":75.81682599999976,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["useSseStream"],"fullName":"useSseStream aborts the in-flight request on unmount","status":"passed","title":"aborts the in-flight request on unmount","duration":1.10239700000011,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1785806389353,"endTime":1785806390034.1023,"status":"passed","message":"","name":"/home/user/builds/wt-factory-12f576acfca3/packages/deck-ui/src/useSseStream.test.ts"}]}