beadboard/.beads/npm_test_output3.txt
2026-03-24 19:02:04 -05:00

1395 lines
39 KiB
Text

> beadboard@0.1.0 test
> node --test tests/bootstrap.test.mjs && node --import tsx --test tests/components/shared/base-card.test.tsx && node --import tsx --test tests/components/shared/agent-avatar.test.tsx && node --import tsx --test tests/components/sessions/sessions-header.test.ts && node --import tsx --test tests/components/sessions/agent-station-logic.test.ts && node --import tsx --test tests/lib/parser.test.ts && node --import tsx --test tests/lib/pathing.test.ts && node --import tsx --test tests/components/shared/left-panel.test.tsx && node --import tsx --test tests/components/shared/top-bar.test.tsx && node --import tsx --test tests/components/shared/mobile-nav.test.tsx && node --import tsx --test tests/components/swarm/swarm-card.test.tsx && node --import tsx --test tests/hooks/url-state-integration.test.ts && node --import tsx --test tests/hooks/use-graph-analysis.test.ts && node --import tsx --test tests/components/graph/smart-dag.test.tsx && node --import tsx --test tests/components/unified-shell.test.tsx && node --import tsx --test tests/components/blocked-triage-modal.test.tsx && node --import tsx --test tests/components/graph/graph-node-labels.test.tsx && node --import tsx --test tests/components/graph/graph-node-assign.test.tsx && node --import tsx --test tests/components/graph/graph-node-conversation.test.tsx && node --import tsx --test tests/lib/coord-schema.test.ts && node --import tsx --test tests/lib/install-manifest.test.ts && node --import tsx --test tests/lib/coord-events.test.ts && node --import tsx --test tests/api/coord-events-route.test.ts && node --import tsx --test tests/lib/coord-projections-inbox.test.ts && node --import tsx --test tests/lib/coord-projections-reservations.test.ts && node --import tsx --test tests/components/sessions/conversation-drawer-coord.test.tsx && node --import tsx --test tests/scripts/beadboard-launcher.test.ts && node --import tsx --test tests/scripts/install-wrappers-contract.test.ts && node --import tsx --test tests/scripts/install-sh-smoke.test.ts && node --import tsx --test tests/scripts/installer-ci-contract.test.ts && node --import tsx --test tests/docs/installer-quickstart-contract.test.ts && node --import tsx --test tests/skills/beadboard-driver/resolve-bb.test.ts && node --import tsx --test tests/skills/beadboard-driver/session-preflight.test.ts && node --import tsx --test tests/skills/beadboard-driver/generate-agent-name.test.ts && node --import tsx --test tests/skills/beadboard-driver/readiness-report.test.ts && node --import tsx --test tests/skills/beadboard-driver/skill-local-runner.test.ts && node --import tsx --test tests/skills/beadboard-driver/diagnose-env.test.ts && node --import tsx --test tests/skills/beadboard-driver/heal-common-issues.test.ts && node --import tsx --test tests/lib/epic-graph.test.ts && node --import tsx --test tests/components/shared/left-panel-filtering.test.ts && node --import tsx --test tests/hooks/use-beads-subscription-contract.test.ts && node --import tsx --test tests/components/graph/dependency-graph-hide-closed-contract.test.ts && node --import tsx --test tests/components/shared/unified-shell-hide-closed-contract.test.ts
TAP version 13
# Subtest: bootstrap scaffold files exist
ok 1 - bootstrap scaffold files exist
---
duration_ms: 1.5814
...
# Subtest: package.json has next/react/typescript scripts and deps
ok 2 - package.json has next/react/typescript scripts and deps
---
duration_ms: 0.8583
...
1..2
# tests 2
# suites 0
# pass 2
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 113.5969
TAP version 13
# Subtest: BaseCard Component Contract
# Subtest: exports BaseCard component
ok 1 - exports BaseCard component
---
duration_ms: 60.6082
...
1..1
ok 1 - BaseCard Component Contract
---
duration_ms: 61.2636
type: 'suite'
...
# Subtest: BaseCard Styling Logic
# Subtest: should be possible to import the component
ok 1 - should be possible to import the component
---
duration_ms: 2.2838
...
# Subtest: applies correct status border class for "ready" status
ok 2 - applies correct status border class for "ready" status
---
duration_ms: 9.2258
...
# Subtest: applies correct status border class for "blocked" status
ok 3 - applies correct status border class for "blocked" status
---
duration_ms: 2.645
...
# Subtest: applies selection ring when selected prop is true
ok 4 - applies selection ring when selected prop is true
---
duration_ms: 1.9216
...
1..4
ok 2 - BaseCard Styling Logic
---
duration_ms: 16.6272
type: 'suite'
...
1..2
# tests 5
# suites 2
# pass 5
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 448.3115
TAP version 13
# Subtest: AgentAvatar Component Contract
# Subtest: exports AgentAvatar component
ok 1 - exports AgentAvatar component
---
duration_ms: 379.632
...
1..1
ok 1 - AgentAvatar Component Contract
---
duration_ms: 380.7834
type: 'suite'
...
# Subtest: AgentAvatar Role Styling
# Subtest: applies correct role color class for "ui" role
ok 1 - applies correct role color class for "ui" role
---
duration_ms: 57.5869
...
# Subtest: applies correct role color class for "orchestrator" role
ok 2 - applies correct role color class for "orchestrator" role
---
duration_ms: 49.7205
...
1..2
ok 2 - AgentAvatar Role Styling
---
duration_ms: 112.2505
type: 'suite'
...
# Subtest: AgentAvatar ZFC States
# Subtest: applies working pulse glow
ok 1 - applies working pulse glow
---
duration_ms: 31.1975
...
1..1
ok 3 - AgentAvatar ZFC States
---
duration_ms: 33.5533
type: 'suite'
...
1..3
# tests 4
# suites 3
# pass 4
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 945.1231
TAP version 13
# Subtest: SessionsHeader: Agent Grouping
# Subtest: groups agents by swarm
ok 1 - groups agents by swarm
---
duration_ms: 2.9349
...
# Subtest: shows fallback bucket for unassigned agents
ok 2 - shows fallback bucket for unassigned agents
---
duration_ms: 0.3047
...
# Subtest: handles empty swarm groups
ok 3 - handles empty swarm groups
---
duration_ms: 0.214
...
1..3
ok 1 - SessionsHeader: Agent Grouping
---
duration_ms: 5.0577
type: 'suite'
...
1..1
# tests 3
# suites 1
# pass 3
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 416.7877
TAP version 13
# Subtest: getAgentRoleColor returns correct color for known roles
ok 1 - getAgentRoleColor returns correct color for known roles
---
duration_ms: 1.2099
...
# Subtest: getAgentRoleColor returns default for unknown role
ok 2 - getAgentRoleColor returns default for unknown role
---
duration_ms: 0.1692
...
1..2
# tests 2
# suites 0
# pass 2
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 336.3402
TAP version 13
# Subtest: parseIssuesJsonl applies defaults and preserves priority 0
ok 1 - parseIssuesJsonl applies defaults and preserves priority 0
---
duration_ms: 1.6475
...
# Subtest: parseIssuesJsonl skips malformed and blank lines
ok 2 - parseIssuesJsonl skips malformed and blank lines
---
duration_ms: 0.2657
...
# Subtest: parseIssuesJsonl filters tombstones by default
ok 3 - parseIssuesJsonl filters tombstones by default
---
duration_ms: 0.2125
...
# Subtest: parseIssuesJsonl can include tombstones when requested
ok 4 - parseIssuesJsonl can include tombstones when requested
---
duration_ms: 0.2357
...
# Subtest: parseIssuesJsonl supports beads dependency schema with depends_on_id and parent-child
ok 5 - parseIssuesJsonl supports beads dependency schema with depends_on_id and parent-child
---
duration_ms: 1.139
...
1..5
# tests 5
# suites 0
# pass 5
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 348.1631
TAP version 13
# Subtest: canonicalizeWindowsPath normalizes separators and drive casing
ok 1 - canonicalizeWindowsPath normalizes separators and drive casing
---
duration_ms: 1.2383
...
# Subtest: windowsPathKey is case-insensitive stable key
ok 2 - windowsPathKey is case-insensitive stable key
---
duration_ms: 0.2253
...
# Subtest: toDisplayPath renders forward slashes for UI readability
ok 3 - toDisplayPath renders forward slashes for UI readability
---
duration_ms: 0.1376
...
# Subtest: sameWindowsPath handles case/separator differences
ok 4 - sameWindowsPath handles case/separator differences
---
duration_ms: 0.1283
...
1..4
# tests 4
# suites 0
# pass 4
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 281.2221
TAP version 13
# Subtest: LeftPanel Component Contract
# Subtest: exports LeftPanel component
ok 1 - exports LeftPanel component
---
duration_ms: 276.4646
...
# Subtest: LeftPanel accepts issues and onEpicSelect props
ok 2 - LeftPanel accepts issues and onEpicSelect props
---
duration_ms: 1.358
...
1..2
ok 1 - LeftPanel Component Contract
---
duration_ms: 278.8584
type: 'suite'
...
# Subtest: LeftPanel Tree Structure
# Subtest: renders epics as expandable tree items
ok 1 - renders epics as expandable tree items
---
duration_ms: 1.1557
...
# Subtest: groups beads under their parent epic
ok 2 - groups beads under their parent epic
---
duration_ms: 1.0946
...
1..2
ok 2 - LeftPanel Tree Structure
---
duration_ms: 2.5212
type: 'suite'
...
# Subtest: LeftPanel Responsive Behavior
# Subtest: applies responsive classes for desktop, tablet, and mobile
ok 1 - applies responsive classes for desktop, tablet, and mobile
---
duration_ms: 1.1394
...
1..1
ok 3 - LeftPanel Responsive Behavior
---
duration_ms: 1.295
type: 'suite'
...
# Subtest: LeftPanel Scope Controls
# Subtest: renders scope section
ok 1 - renders scope section
---
duration_ms: 1.105
...
1..1
ok 4 - LeftPanel Scope Controls
---
duration_ms: 1.4433
type: 'suite'
...
1..4
# tests 6
# suites 4
# pass 6
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 530.4094
TAP version 13
# Subtest: TopBar Component Contract
# Subtest: exports TopBar component
ok 1 - exports TopBar component
---
duration_ms: 522.3747
...
# Subtest: TopBar component can be imported without errors
ok 2 - TopBar component can be imported without errors
---
duration_ms: 1.5584
...
1..2
ok 1 - TopBar Component Contract
---
duration_ms: 525.0872
type: 'suite'
...
# Subtest: TopBar View Tabs
# Subtest: renders view tabs: Social, Graph
ok 1 - renders view tabs: Social, Graph
---
duration_ms: 1.6122
...
# Subtest: active tab has bold text and accent underline
ok 2 - active tab has bold text and accent underline
---
duration_ms: 1.1985
...
1..2
ok 2 - TopBar View Tabs
---
duration_ms: 3.0725
type: 'suite'
...
# Subtest: TopBar Filter and Controls
# Subtest: renders filter/search input placeholder
ok 1 - renders filter/search input placeholder
---
duration_ms: 1.1645
...
# Subtest: renders settings placeholder
ok 2 - renders settings placeholder
---
duration_ms: 1.1389
...
1..2
ok 3 - TopBar Filter and Controls
---
duration_ms: 2.6511
type: 'suite'
...
1..3
# tests 6
# suites 3
# pass 6
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 776.792
TAP version 13
# Subtest: Mobile Navigation - Hamburger Menu
# Subtest: exports MobileNav component
ok 1 - exports MobileNav component
---
duration_ms: 112.1069
...
# Subtest: renders tab buttons: Social, Graph
ok 2 - renders tab buttons: Social, Graph
---
duration_ms: 1.7096
...
# Subtest: highlights active tab with accent color
ok 3 - highlights active tab with accent color
---
duration_ms: 1.0951
...
# Subtest: uses setView from useUrlState on tab click
ok 4 - uses setView from useUrlState on tab click
---
duration_ms: 0.9875
...
1..4
ok 1 - Mobile Navigation - Hamburger Menu
---
duration_ms: 117.0127
type: 'suite'
...
# Subtest: TopBar Hamburger Menu
# Subtest: shows hamburger button on mobile and tablet
ok 1 - shows hamburger button on mobile and tablet
---
duration_ms: 416.9695
...
# Subtest: hamburger button opens left panel drawer
ok 2 - hamburger button opens left panel drawer
---
duration_ms: 1.4668
...
# Subtest: hides hamburger on desktop
ok 3 - hides hamburger on desktop
---
duration_ms: 1.0338
...
1..3
ok 2 - TopBar Hamburger Menu
---
duration_ms: 419.927
type: 'suite'
...
1..2
# tests 7
# suites 2
# pass 7
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 788.7947
TAP version 13
# Subtest: SwarmCard Component Contract
# Subtest: exports SwarmCard component
ok 1 - exports SwarmCard component
---
duration_ms: 234.3514
...
# Subtest: SwarmCard component can be imported without errors
ok 2 - SwarmCard component can be imported without errors
---
duration_ms: 1.4885
...
1..2
ok 1 - SwarmCard Component Contract
---
duration_ms: 236.7813
type: 'suite'
...
# Subtest: SwarmCard Agent Roster
# Subtest: renders agent avatars with liveness glow
ok 1 - renders agent avatars with liveness glow
---
duration_ms: 1.7621
...
# Subtest: displays agent current task when available
ok 2 - displays agent current task when available
---
duration_ms: 1.428
...
1..2
ok 2 - SwarmCard Agent Roster
---
duration_ms: 3.4988
type: 'suite'
...
# Subtest: SwarmCard Progress Bar
# Subtest: renders progress bar showing completion percentage
ok 1 - renders progress bar showing completion percentage
---
duration_ms: 1.3663
...
1..1
ok 3 - SwarmCard Progress Bar
---
duration_ms: 1.5378
type: 'suite'
...
# Subtest: SwarmCard Attention Items
# Subtest: renders attention items with warning styling
ok 1 - renders attention items with warning styling
---
duration_ms: 1.308
...
1..1
ok 4 - SwarmCard Attention Items
---
duration_ms: 1.8092
type: 'suite'
...
# Subtest: SwarmCard View-Jump Icons
# Subtest: renders view-jump icons for navigation
ok 1 - renders view-jump icons for navigation
---
duration_ms: 1.4018
...
1..1
ok 5 - SwarmCard View-Jump Icons
---
duration_ms: 1.5647
type: 'suite'
...
1..5
# tests 7
# suites 5
# pass 7
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 489.5417
TAP version 13
# Subtest: URL State Integration - bb-ui2.22
# Subtest: Valid URL Patterns - Social View
# Subtest: /?view=social - defaults to social view
ok 1 - /?view=social - defaults to social view
---
duration_ms: 0.8765
...
# Subtest: /?view=social&task=bb-buff.1&panel=open - task selected, panel open
ok 2 - /?view=social&task=bb-buff.1&panel=open - task selected, panel open
---
duration_ms: 0.213
...
# Subtest: /?view=social&task=bb-ui2.22 - task with dots in ID
ok 3 - /?view=social&task=bb-ui2.22 - task with dots in ID
---
duration_ms: 0.1767
...
1..3
ok 1 - Valid URL Patterns - Social View
---
duration_ms: 1.9424
type: 'suite'
...
# Subtest: Valid URL Patterns - Graph View
# Subtest: /?view=graph - graph view default
ok 1 - /?view=graph - graph view default
---
duration_ms: 0.2306
...
# Subtest: /?view=graph&task=bb-buff.1 - graph with task selected
ok 2 - /?view=graph&task=bb-buff.1 - graph with task selected
---
duration_ms: 0.1202
...
# Subtest: /?view=graph&graphTab=flow - flow tab selected
ok 3 - /?view=graph&graphTab=flow - flow tab selected
---
duration_ms: 0.1698
...
# Subtest: /?view=graph&graphTab=overview - overview tab selected
ok 4 - /?view=graph&graphTab=overview - overview tab selected
---
duration_ms: 0.6718
...
# Subtest: /?view=graph&swarm=bb-buff - graph filtered by swarm
ok 5 - /?view=graph&swarm=bb-buff - graph filtered by swarm
---
duration_ms: 0.2634
...
1..5
ok 2 - Valid URL Patterns - Graph View
---
duration_ms: 1.8248
type: 'suite'
...
# Subtest: Deprecated Swarm View Fallback
# Subtest: /?view=swarm - falls back to social (swarm view deprecated)
ok 1 - /?view=swarm - falls back to social (swarm view deprecated)
---
duration_ms: 0.1873
...
# Subtest: /?view=swarm&swarm=bb-buff - falls back to social but preserves swarmId
ok 2 - /?view=swarm&swarm=bb-buff - falls back to social but preserves swarmId
---
duration_ms: 0.2808
...
# Subtest: /?view=swarm&swarm=bb-buff&panel=open - falls back to social with panel open
ok 3 - /?view=swarm&swarm=bb-buff&panel=open - falls back to social with panel open
---
duration_ms: 0.1226
...
1..3
ok 3 - Deprecated Swarm View Fallback
---
duration_ms: 0.7326
type: 'suite'
...
# Subtest: Valid URL Patterns - Activity View
# Subtest: /?view=activity - activity view default
ok 1 - /?view=activity - activity view default
---
duration_ms: 0.1383
...
# Subtest: /?view=activity&agent=bb-silver-castle - filtered by agent
ok 2 - /?view=activity&agent=bb-silver-castle - filtered by agent
---
duration_ms: 0.0884
...
# Subtest: /?view=activity&swarm=bb-buff - filtered by swarm
ok 3 - /?view=activity&swarm=bb-buff - filtered by swarm
---
duration_ms: 0.0817
...
1..3
ok 4 - Valid URL Patterns - Activity View
---
duration_ms: 0.4648
type: 'suite'
...
# Subtest: Invalid Param Handling
# Subtest: /?view=invalid - invalid view defaults to social
ok 1 - /?view=invalid - invalid view defaults to social
---
duration_ms: 0.1193
...
# Subtest: /?view=graph&graphTab=invalid - invalid graphTab defaults to flow
ok 2 - /?view=graph&graphTab=invalid - invalid graphTab defaults to flow
---
duration_ms: 0.0838
...
# Subtest: /?panel=invalid - invalid panel defaults to open
ok 3 - /?panel=invalid - invalid panel defaults to open
---
duration_ms: 0.0842
...
# Subtest: /?task=invalid-id - invalid task ID still parsed (no validation)
ok 4 - /?task=invalid-id - invalid task ID still parsed (no validation)
---
duration_ms: 0.0803
...
1..4
ok 5 - Invalid Param Handling
---
duration_ms: 0.4862
type: 'suite'
...
# Subtest: URL Building - State to URL
# Subtest: builds social view URL
ok 1 - builds social view URL
---
duration_ms: 0.2919
...
# Subtest: builds graph view with task URL
ok 2 - builds graph view with task URL
---
duration_ms: 0.1887
...
# Subtest: builds swarm view with swarm param
ok 3 - builds swarm view with swarm param
---
duration_ms: 0.1366
...
# Subtest: builds activity view with agent filter
ok 4 - builds activity view with agent filter
---
duration_ms: 0.1034
...
# Subtest: preserves existing params when adding new ones
ok 5 - preserves existing params when adding new ones
---
duration_ms: 0.1792
...
# Subtest: removes params when set to null
ok 6 - removes params when set to null
---
duration_ms: 0.1266
...
# Subtest: returns root when all params cleared
ok 7 - returns root when all params cleared
---
duration_ms: 0.0975
...
1..7
ok 6 - URL Building - State to URL
---
duration_ms: 1.3119
type: 'suite'
...
# Subtest: Complex URL Scenarios
# Subtest: handles all params together
ok 1 - handles all params together
---
duration_ms: 0.1303
...
# Subtest: empty string values treated as null/empty
ok 2 - empty string values treated as null/empty
---
duration_ms: 0.0905
...
1..2
ok 7 - Complex URL Scenarios
---
duration_ms: 0.3031
type: 'suite'
...
# Subtest: Deep Link Patterns - From Card Icons
# Subtest: SocialCard Graph icon: /?view=graph&task={id}
ok 1 - SocialCard Graph icon: /?view=graph&task={id}
---
duration_ms: 0.1634
...
# Subtest: SwarmCard Graph icon: /?view=graph&swarm={id}
ok 2 - SwarmCard Graph icon: /?view=graph&swarm={id}
---
duration_ms: 0.1551
...
# Subtest: SwarmCard Timeline icon: /?view=activity&swarm={id}
ok 3 - SwarmCard Timeline icon: /?view=activity&swarm={id}
---
duration_ms: 0.0822
...
# Subtest: Agent avatar click: /?view=activity&agent={id}
ok 4 - Agent avatar click: /?view=activity&agent={id}
---
duration_ms: 0.0903
...
1..4
ok 8 - Deep Link Patterns - From Card Icons
---
duration_ms: 0.6075
type: 'suite'
...
1..8
ok 1 - URL State Integration - bb-ui2.22
---
duration_ms: 8.473
type: 'suite'
...
1..1
# tests 31
# suites 9
# pass 31
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 386.839
TAP version 13
# Subtest: useGraphAnalysis - module exports
ok 1 - useGraphAnalysis - module exports
---
duration_ms: 28.8411
...
# Subtest: useGraphAnalysis underlying logic - graphModel is built correctly
ok 2 - useGraphAnalysis underlying logic - graphModel is built correctly
---
duration_ms: 9.7836
...
# Subtest: useGraphAnalysis underlying logic - cycleNodeIdSet detects cycles
ok 3 - useGraphAnalysis underlying logic - cycleNodeIdSet detects cycles
---
duration_ms: 0.4513
...
# Subtest: useGraphAnalysis underlying logic - cycleNodeIdSet empty for acyclic graph
ok 4 - useGraphAnalysis underlying logic - cycleNodeIdSet empty for acyclic graph
---
duration_ms: 0.1646
...
# Subtest: useGraphAnalysis underlying logic - blockerAnalysis returns blockers
ok 5 - useGraphAnalysis underlying logic - blockerAnalysis returns blockers
---
duration_ms: 0.4363
...
# Subtest: useGraphAnalysis underlying logic - blockerTooltipMap shows blocker info
ok 6 - useGraphAnalysis underlying logic - blockerTooltipMap shows blocker info
---
duration_ms: 0.3036
...
1..6
# tests 6
# suites 0
# pass 6
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 520.8617
TAP version 13
# Subtest: SmartDag - file exists and exports
ok 1 - SmartDag - file exists and exports
---
duration_ms: 3.9622
...
# Subtest: SmartDag - contains Filters toggle button
ok 2 - SmartDag - contains Filters toggle button
---
duration_ms: 1.012
...
# Subtest: SmartDag - contains Assign toggle button
ok 3 - SmartDag - contains Assign toggle button
---
duration_ms: 0.7415
...
# Subtest: SmartDag - contains WorkflowTabs
ok 4 - SmartDag - contains WorkflowTabs
---
duration_ms: 1.0491
...
# Subtest: SmartDag - supports onAssignModeChange callback
ok 5 - SmartDag - supports onAssignModeChange callback
---
duration_ms: 1.4431
...
# Subtest: SmartDag - supports onSelectedIssueChange callback
ok 6 - SmartDag - supports onSelectedIssueChange callback
---
duration_ms: 0.9478
...
# Subtest: SmartDag - imports TaskCardGrid
ok 7 - SmartDag - imports TaskCardGrid
---
duration_ms: 0.8138
...
# Subtest: SmartDag - imports WorkflowGraph
ok 8 - SmartDag - imports WorkflowGraph
---
duration_ms: 0.6587
...
# Subtest: SmartDag - passes assignMode to WorkflowGraph
ok 9 - SmartDag - passes assignMode to WorkflowGraph
---
duration_ms: 0.8308
...
# Subtest: SmartDag - manages hideClosed filter
ok 10 - SmartDag - manages hideClosed filter
---
duration_ms: 0.8949
...
# Subtest: SmartDag - manages sortReadyFirst filter
ok 11 - SmartDag - manages sortReadyFirst filter
---
duration_ms: 0.6463
...
# Subtest: SmartDag - uses useGraphAnalysis hook
ok 12 - SmartDag - uses useGraphAnalysis hook
---
duration_ms: 0.5999
...
1..12
# tests 12
# suites 0
# pass 12
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 312.3206
TAP version 13
# Subtest: UnifiedShell - file exists and exports
ok 1 - UnifiedShell - file exists and exports
---
duration_ms: 4.0963
...
# Subtest: UnifiedShell - has assignMode state
ok 2 - UnifiedShell - has assignMode state
---
duration_ms: 1.2945
...
# Subtest: UnifiedShell - has selectedAssignIssue state
ok 3 - UnifiedShell - has selectedAssignIssue state
---
duration_ms: 0.83
...
# Subtest: UnifiedShell - passes onAssignModeChange to SmartDag
ok 4 - UnifiedShell - passes onAssignModeChange to SmartDag
---
duration_ms: 0.8774
...
# Subtest: UnifiedShell - passes onSelectedIssueChange to SmartDag
ok 5 - UnifiedShell - passes onSelectedIssueChange to SmartDag
---
duration_ms: 1.3425
...
# Subtest: UnifiedShell - imports AssignmentPanel
ok 6 - UnifiedShell - imports AssignmentPanel
---
duration_ms: 0.7903
...
# Subtest: UnifiedShell - checks bd health and renders setup warning
ok 7 - UnifiedShell - checks bd health and renders setup warning
---
duration_ms: 0.782
...
# Subtest: UnifiedShell - renders AssignmentPanel conditionally
ok 8 - UnifiedShell - renders AssignmentPanel conditionally
---
duration_ms: 0.673
...
# Subtest: UnifiedShell - does not import SwarmWorkspace
ok 9 - UnifiedShell - does not import SwarmWorkspace
---
duration_ms: 0.8607
...
# Subtest: UnifiedShell - does not import SwarmMissionPicker
ok 10 - UnifiedShell - does not import SwarmMissionPicker
---
duration_ms: 0.9023
...
1..10
# tests 10
# suites 0
# pass 10
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 294.6473
TAP version 13
# Subtest: BlockedTriageModal - file exists and exports
ok 1 - BlockedTriageModal - file exists and exports
---
duration_ms: 4.3148
...
# Subtest: BlockedTriageModal - imports Dialog from shadcn
ok 2 - BlockedTriageModal - imports Dialog from shadcn
---
duration_ms: 1.0182
...
# Subtest: BlockedTriageModal - imports deriveBlockedIds and buildBlockedByTree from kanban
ok 3 - BlockedTriageModal - imports deriveBlockedIds and buildBlockedByTree from kanban
---
duration_ms: 0.842
...
# Subtest: BlockedTriageModal - imports useArchetypePicker hook
ok 4 - BlockedTriageModal - imports useArchetypePicker hook
---
duration_ms: 0.9348
...
# Subtest: BlockedTriageModal - imports BeadIssue type
ok 5 - BlockedTriageModal - imports BeadIssue type
---
duration_ms: 0.8126
...
# Subtest: BlockedTriageModal - accepts isOpen, onClose, issues, projectRoot props
ok 6 - BlockedTriageModal - accepts isOpen, onClose, issues, projectRoot props
---
duration_ms: 2.0387
...
# Subtest: BlockedTriageModal - uses useMemo for blockedIds computation
ok 7 - BlockedTriageModal - uses useMemo for blockedIds computation
---
duration_ms: 1.1922
...
# Subtest: BlockedTriageModal - computes blocked tasks using status=blocked AND deriveBlockedIds
ok 8 - BlockedTriageModal - computes blocked tasks using status=blocked AND deriveBlockedIds
---
duration_ms: 0.99
...
# Subtest: BlockedTriageModal - uses buildBlockedByTree for blocker chain display
ok 9 - BlockedTriageModal - uses buildBlockedByTree for blocker chain display
---
duration_ms: 0.9272
...
# Subtest: BlockedTriageModal - has local state for showing/hiding archetype picker per row
ok 10 - BlockedTriageModal - has local state for showing/hiding archetype picker per row
---
duration_ms: 1.052
...
# Subtest: BlockedTriageModal - modal content is scrollable
ok 11 - BlockedTriageModal - modal content is scrollable
---
duration_ms: 0.6697
...
# Subtest: BlockedTriageModal - reuses useArchetypePicker for row assignments
ok 12 - BlockedTriageModal - reuses useArchetypePicker for row assignments
---
duration_ms: 0.7558
...
1..12
# tests 12
# suites 0
# pass 12
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 297.9767
TAP version 13
# Subtest: GraphNodeData interface includes labels field
ok 1 - GraphNodeData interface includes labels field
---
duration_ms: 4.1316
...
# Subtest: GraphNodeData labels is typed as string array
ok 2 - GraphNodeData labels is typed as string array
---
duration_ms: 1.2384
...
# Subtest: WorkflowGraph passes issue.labels to node data
ok 3 - WorkflowGraph passes issue.labels to node data
---
duration_ms: 0.8461
...
# Subtest: WorkflowGraph uses labels from issue in node mapping
ok 4 - WorkflowGraph uses labels from issue in node mapping
---
duration_ms: 1.0122
...
1..4
# tests 4
# suites 0
# pass 4
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 298.9521
TAP version 13
# Subtest: GraphNodeCard checks for assignable status (open, blocked, ready)
ok 1 - GraphNodeCard checks for assignable status (open, blocked, ready)
---
duration_ms: 3.5054
...
# Subtest: GraphNodeCard excludes closed tasks from assign button
ok 2 - GraphNodeCard excludes closed tasks from assign button
---
duration_ms: 1.015
...
# Subtest: GraphNodeCard parses agent: label to show assigned archetype
ok 3 - GraphNodeCard parses agent: label to show assigned archetype
---
duration_ms: 1.134
...
# Subtest: GraphNodeCard imports Radix dropdown-menu for archetype selection
ok 4 - GraphNodeCard imports Radix dropdown-menu for archetype selection
---
duration_ms: 0.9127
...
# Subtest: GraphNodeCard receives and uses archetypes for dropdown
ok 5 - GraphNodeCard receives and uses archetypes for dropdown
---
duration_ms: 1.074
...
# Subtest: GraphNodeCard supports assignment callback
ok 6 - GraphNodeCard supports assignment callback
---
duration_ms: 1.5119
...
1..6
# tests 6
# suites 0
# pass 6
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 299.8879
TAP version 13
# Subtest: GraphNodeCard - has MessageSquare conversation icon
ok 1 - GraphNodeCard - has MessageSquare conversation icon
---
duration_ms: 5.4138
...
# Subtest: GraphNodeCard - does NOT use useUrlState (ReactFlow context/timing issues)
ok 2 - GraphNodeCard - does NOT use useUrlState (ReactFlow context/timing issues)
---
duration_ms: 0.8329
...
# Subtest: GraphNodeCard - reads onConversationOpen callback from node data
ok 3 - GraphNodeCard - reads onConversationOpen callback from node data
---
duration_ms: 0.6903
...
# Subtest: GraphNodeCard - stops event propagation on icon click
ok 4 - GraphNodeCard - stops event propagation on icon click
---
duration_ms: 1.2454
...
# Subtest: GraphNodeCard - highlights icon when selectedTaskId matches this node
ok 5 - GraphNodeCard - highlights icon when selectedTaskId matches this node
---
duration_ms: 0.7095
...
# Subtest: WorkflowGraph - passes onConversationOpen into node data
ok 6 - WorkflowGraph - passes onConversationOpen into node data
---
duration_ms: 0.6598
...
# Subtest: WorkflowGraph - passes selectedTaskId into node data for icon highlight
ok 7 - WorkflowGraph - passes selectedTaskId into node data for icon highlight
---
duration_ms: 0.728
...
# Subtest: ContextualRightPanel - task branch onClose is NOT a no-op
ok 8 - ContextualRightPanel - task branch onClose is NOT a no-op
---
duration_ms: 0.6707
...
# Subtest: ContextualRightPanel - task branch onClose clears taskId
ok 9 - ContextualRightPanel - task branch onClose clears taskId
---
duration_ms: 0.8296
...
# Subtest: ContextualRightPanel - swarm branch onClose clears swarmId
ok 10 - ContextualRightPanel - swarm branch onClose clears swarmId
---
duration_ms: 0.8731
...
# Subtest: ContextualRightPanel - taskId if-branch appears before epicId if-branch
ok 11 - ContextualRightPanel - taskId if-branch appears before epicId if-branch
---
duration_ms: 0.6104
...
# Subtest: UnifiedShell - right panel NOT gated behind panel === open
ok 12 - UnifiedShell - right panel NOT gated behind panel === open
---
duration_ms: 0.6447
...
# Subtest: UnifiedShell - passes taskId to ContextualRightPanel
ok 13 - UnifiedShell - passes taskId to ContextualRightPanel
---
duration_ms: 0.5937
...
# Subtest: page.tsx - wraps UnifiedShell in Suspense for useSearchParams
ok 14 - page.tsx - wraps UnifiedShell in Suspense for useSearchParams
---
duration_ms: 0.592
...
1..14
# tests 14
# suites 0
# pass 14
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 303.4901
TAP version 13
# Subtest: validateCoordEventEnvelope accepts valid SEND
ok 1 - validateCoordEventEnvelope accepts valid SEND
---
duration_ms: 0.9228
...
# Subtest: validateCoordEventEnvelope rejects READ without event_ref
ok 2 - validateCoordEventEnvelope rejects READ without event_ref
---
duration_ms: 0.2944
...
# Subtest: validateCoordEventEnvelope accepts TAKEOVER with stale mode
ok 3 - validateCoordEventEnvelope accepts TAKEOVER with stale mode
---
duration_ms: 0.1236
...
# Subtest: validateCoordEventEnvelope rejects TAKEOVER with invalid mode
ok 4 - validateCoordEventEnvelope rejects TAKEOVER with invalid mode
---
duration_ms: 0.1481
...
1..4
# tests 4
# suites 0
# pass 4
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 269.5262
TAP version 13
# Subtest: validateInstallerManifest accepts canonical installer.v1 shape
ok 1 - validateInstallerManifest accepts canonical installer.v1 shape
---
duration_ms: 0.8823
...
# Subtest: validateInstallerManifest rejects wrong version
ok 2 - validateInstallerManifest rejects wrong version
---
duration_ms: 0.2628
...
# Subtest: validateInstallerManifest rejects missing runtime status command
ok 3 - validateInstallerManifest rejects missing runtime status command
---
duration_ms: 0.1537
...
# Subtest: validateInstallerManifest rejects driver mode that is not detect_only
ok 4 - validateInstallerManifest rejects driver mode that is not detect_only
---
duration_ms: 0.1365
...
1..4
# tests 4
# suites 0
# pass 4
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 254.0237
TAP version 13
# Subtest: writeCoordEvent rejects invalid payload
ok 1 - writeCoordEvent rejects invalid payload
---
duration_ms: 1.0079
...
# Subtest: writeCoordEvent invokes bd audit record with --stdin payload
ok 2 - writeCoordEvent invokes bd audit record with --stdin payload
---
duration_ms: 0.8609
...
1..2
# tests 2
# suites 0
# pass 2
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 261.1351
TAP version 13
# Subtest: handleCoordEventsPost returns 400 for invalid body
ok 1 - handleCoordEventsPost returns 400 for invalid body
---
duration_ms: 5.2884
...
# Subtest: handleCoordEventsPost writes event and returns success
ok 2 - handleCoordEventsPost writes event and returns success
---
duration_ms: 0.8855
...
1..2
# tests 2
# suites 0
# pass 2
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 399.1944
TAP version 13
# Subtest: projectMessageState derives unread -> read -> acked
ok 1 - projectMessageState derives unread -> read -> acked
---
duration_ms: 10.3467
...
# Subtest: projectInbox tolerates out-of-order and unknown refs
ok 2 - projectInbox tolerates out-of-order and unknown refs
---
duration_ms: 0.3784
...
1..2
# tests 2
# suites 0
# pass 2
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 272.6123
TAP version 13
# Subtest: isTakeoverAllowed enforces active/stale/evicted policy
ok 1 - isTakeoverAllowed enforces active/stale/evicted policy
---
duration_ms: 0.7999
...
# Subtest: projectReservations applies reserve/release transitions
ok 2 - projectReservations applies reserve/release transitions
---
duration_ms: 10.0466
...
# Subtest: projectReservations rejects stale takeover when owner active
ok 3 - projectReservations rejects stale takeover when owner active
---
duration_ms: 0.1748
...
# Subtest: projectReservations allows stale takeover when owner stale
ok 4 - projectReservations allows stale takeover when owner stale
---
duration_ms: 0.1624
...
# Subtest: calculateReservationIncursions finds partial overlap
ok 5 - calculateReservationIncursions finds partial overlap
---
duration_ms: 0.448
...
1..5
# tests 5
# suites 0
# pass 5
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 274.6244
TAP version 13
# Subtest: ConversationDrawer coord action payloads
# Subtest: builds READ event with event_ref to message id
ok 1 - builds READ event with event_ref to message id
---
duration_ms: 0.7032
...
# Subtest: builds ACK event with recipient as actor
ok 2 - builds ACK event with recipient as actor
---
duration_ms: 0.1394
...
1..2
ok 1 - ConversationDrawer coord action payloads
---
duration_ms: 1.7238
type: 'suite'
...
# Subtest: ConversationDrawer comment payload
# Subtest: includes actor when provided
ok 1 - includes actor when provided
---
duration_ms: 0.16
...
# Subtest: omits actor when blank
ok 2 - omits actor when blank
---
duration_ms: 0.105
...
1..2
ok 2 - ConversationDrawer comment payload
---
duration_ms: 0.4482
type: 'suite'
...
1..2
# tests 4
# suites 2
# pass 4
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 393.5646
TAP version 13
# Subtest: beadboard launcher status --json reports running server
ok 1 - beadboard launcher status --json reports running server
---
duration_ms: 109.0013
...
# Subtest: beadboard launcher open --json supports noop mode
ok 2 - beadboard launcher open --json supports noop mode
---
duration_ms: 77.5411
...
1..2
# tests 2
# suites 0
# pass 2
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 429.2062
TAP version 13
# Subtest: install wrapper scripts exist with canonical filenames
ok 1 - install wrapper scripts exist with canonical filenames
---
duration_ms: 4.2528
...
# Subtest: install wrappers provision both bb and beadboard shims
ok 2 - install wrappers provision both bb and beadboard shims
---
duration_ms: 1.4403
...
1..2
# tests 2
# suites 0
# pass 2
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 246.3488
TAP version 13
# Subtest: install.sh supports install and reinstall into BB_INSTALL_HOME
not ok 1 - install.sh supports install and reinstall into BB_INSTALL_HOME
---
duration_ms: 177.653
location: 'C:\\Users\\Zenchant\\codex\\beadboard\\tests\\scripts\\install-sh-smoke.test.ts:2:1314'
failureType: 'testCodeFailure'
error: |-
Command failed: bash C:\Users\Zenchant\codex\beadboard\install\install.sh
/bin/bash: C:UsersZenchantcodexbeadboardinstallinstall.sh: No such file or directory
code: 127
stack: |-
genericNodeError (node:internal/errors:983:15)
wrappedFn (node:internal/errors:537:14)
ChildProcess.exithandler (node:child_process:414:12)
ChildProcess.emit (node:events:524:28)
maybeClose (node:internal/child_process:1101:16)
ChildProcess._handle.onexit (node:internal/child_process:304:5)
...
1..1
# tests 1
# suites 0
# pass 0
# fail 1
# cancelled 0
# skipped 0
# todo 0
# duration_ms 419.6451