> 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.5408 ... # Subtest: package.json has next/react/typescript scripts and deps ok 2 - package.json has next/react/typescript scripts and deps --- duration_ms: 0.6082 ... 1..2 # tests 2 # suites 0 # pass 2 # fail 0 # cancelled 0 # skipped 0 # todo 0 # duration_ms 89.6484 TAP version 13 # Subtest: BaseCard Component Contract # Subtest: exports BaseCard component ok 1 - exports BaseCard component --- duration_ms: 48.4903 ... 1..1 ok 1 - BaseCard Component Contract --- duration_ms: 49.1763 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: 1.6433 ... # Subtest: applies correct status border class for "ready" status ok 2 - applies correct status border class for "ready" status --- duration_ms: 8.9211 ... # Subtest: applies correct status border class for "blocked" status ok 3 - applies correct status border class for "blocked" status --- duration_ms: 1.9781 ... # Subtest: applies selection ring when selected prop is true ok 4 - applies selection ring when selected prop is true --- duration_ms: 1.3742 ... 1..4 ok 2 - BaseCard Styling Logic --- duration_ms: 14.3343 type: 'suite' ... 1..2 # tests 5 # suites 2 # pass 5 # fail 0 # cancelled 0 # skipped 0 # todo 0 # duration_ms 359.7963 TAP version 13 # Subtest: AgentAvatar Component Contract # Subtest: exports AgentAvatar component ok 1 - exports AgentAvatar component --- duration_ms: 112.1114 ... 1..1 ok 1 - AgentAvatar Component Contract --- duration_ms: 112.7409 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: 7.7314 ... # Subtest: applies correct role color class for "orchestrator" role ok 2 - applies correct role color class for "orchestrator" role --- duration_ms: 2.3245 ... 1..2 ok 2 - AgentAvatar Role Styling --- duration_ms: 10.3257 type: 'suite' ... # Subtest: AgentAvatar ZFC States # Subtest: applies working pulse glow ok 1 - applies working pulse glow --- duration_ms: 1.7868 ... 1..1 ok 3 - AgentAvatar ZFC States --- duration_ms: 2.1043 type: 'suite' ... 1..3 # tests 4 # suites 3 # pass 4 # fail 0 # cancelled 0 # skipped 0 # todo 0 # duration_ms 414.8522 TAP version 13 # Subtest: SessionsHeader: Agent Grouping # Subtest: groups agents by swarm ok 1 - groups agents by swarm --- duration_ms: 2.028 ... # Subtest: shows fallback bucket for unassigned agents ok 2 - shows fallback bucket for unassigned agents --- duration_ms: 0.163 ... # Subtest: handles empty swarm groups ok 3 - handles empty swarm groups --- duration_ms: 0.1271 ... 1..3 ok 1 - SessionsHeader: Agent Grouping --- duration_ms: 3.2566 type: 'suite' ... 1..1 # tests 3 # suites 1 # pass 3 # fail 0 # cancelled 0 # skipped 0 # todo 0 # duration_ms 259.5842 TAP version 13 # Subtest: getAgentRoleColor returns correct color for known roles ok 1 - getAgentRoleColor returns correct color for known roles --- duration_ms: 0.7893 ... # Subtest: getAgentRoleColor returns default for unknown role ok 2 - getAgentRoleColor returns default for unknown role --- duration_ms: 0.1416 ... 1..2 # tests 2 # suites 0 # pass 2 # fail 0 # cancelled 0 # skipped 0 # todo 0 # duration_ms 260.6046 TAP version 13 # Subtest: parseIssuesJsonl applies defaults and preserves priority 0 ok 1 - parseIssuesJsonl applies defaults and preserves priority 0 --- duration_ms: 1.1468 ... # Subtest: parseIssuesJsonl skips malformed and blank lines ok 2 - parseIssuesJsonl skips malformed and blank lines --- duration_ms: 0.2118 ... # Subtest: parseIssuesJsonl filters tombstones by default ok 3 - parseIssuesJsonl filters tombstones by default --- duration_ms: 0.1758 ... # Subtest: parseIssuesJsonl can include tombstones when requested ok 4 - parseIssuesJsonl can include tombstones when requested --- duration_ms: 0.1626 ... # 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: 0.7949 ... 1..5 # tests 5 # suites 0 # pass 5 # fail 0 # cancelled 0 # skipped 0 # todo 0 # duration_ms 269.9367 TAP version 13 # Subtest: canonicalizeWindowsPath normalizes separators and drive casing ok 1 - canonicalizeWindowsPath normalizes separators and drive casing --- duration_ms: 1.4342 ... # Subtest: windowsPathKey is case-insensitive stable key ok 2 - windowsPathKey is case-insensitive stable key --- duration_ms: 0.4737 ... # Subtest: toDisplayPath renders forward slashes for UI readability ok 3 - toDisplayPath renders forward slashes for UI readability --- duration_ms: 0.2287 ... # Subtest: sameWindowsPath handles case/separator differences ok 4 - sameWindowsPath handles case/separator differences --- duration_ms: 0.2269 ... 1..4 # tests 4 # suites 0 # pass 4 # fail 0 # cancelled 0 # skipped 0 # todo 0 # duration_ms 290.6242 TAP version 13 # Subtest: LeftPanel Component Contract # Subtest: exports LeftPanel component ok 1 - exports LeftPanel component --- duration_ms: 291.6468 ... # Subtest: LeftPanel accepts issues and onEpicSelect props ok 2 - LeftPanel accepts issues and onEpicSelect props --- duration_ms: 1.3553 ... 1..2 ok 1 - LeftPanel Component Contract --- duration_ms: 294.0487 type: 'suite' ... # Subtest: LeftPanel Tree Structure # Subtest: renders epics as expandable tree items ok 1 - renders epics as expandable tree items --- duration_ms: 1.1796 ... # Subtest: groups beads under their parent epic ok 2 - groups beads under their parent epic --- duration_ms: 1.1357 ... 1..2 ok 2 - LeftPanel Tree Structure --- duration_ms: 2.5592 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.4154 ... 1..1 ok 3 - LeftPanel Responsive Behavior --- duration_ms: 1.6082 type: 'suite' ... # Subtest: LeftPanel Scope Controls # Subtest: renders scope section ok 1 - renders scope section --- duration_ms: 1.2414 ... 1..1 ok 4 - LeftPanel Scope Controls --- duration_ms: 1.5705 type: 'suite' ... 1..4 # tests 6 # suites 4 # pass 6 # fail 0 # cancelled 0 # skipped 0 # todo 0 # duration_ms 586.4632 TAP version 13 # Subtest: TopBar Component Contract # Subtest: exports TopBar component ok 1 - exports TopBar component --- duration_ms: 576.3556 ... # Subtest: TopBar component can be imported without errors ok 2 - TopBar component can be imported without errors --- duration_ms: 1.4049 ... 1..2 ok 1 - TopBar Component Contract --- duration_ms: 578.6933 type: 'suite' ... # Subtest: TopBar View Tabs # Subtest: renders view tabs: Social, Graph ok 1 - renders view tabs: Social, Graph --- duration_ms: 1.1653 ... # Subtest: active tab has bold text and accent underline ok 2 - active tab has bold text and accent underline --- duration_ms: 1.0756 ... 1..2 ok 2 - TopBar View Tabs --- duration_ms: 2.4564 type: 'suite' ... # Subtest: TopBar Filter and Controls # Subtest: renders filter/search input placeholder ok 1 - renders filter/search input placeholder --- duration_ms: 1.2466 ... # Subtest: renders settings placeholder ok 2 - renders settings placeholder --- duration_ms: 1.0997 ... 1..2 ok 3 - TopBar Filter and Controls --- duration_ms: 2.7634 type: 'suite' ... 1..3 # tests 6 # suites 3 # pass 6 # fail 0 # cancelled 0 # skipped 0 # todo 0 # duration_ms 843.1609 TAP version 13 # Subtest: Mobile Navigation - Hamburger Menu # Subtest: exports MobileNav component ok 1 - exports MobileNav component --- duration_ms: 122.7061 ... # Subtest: renders tab buttons: Social, Graph ok 2 - renders tab buttons: Social, Graph --- duration_ms: 1.5081 ... # Subtest: highlights active tab with accent color ok 3 - highlights active tab with accent color --- duration_ms: 1.5626 ... # Subtest: uses setView from useUrlState on tab click ok 4 - uses setView from useUrlState on tab click --- duration_ms: 1.3467 ... 1..4 ok 1 - Mobile Navigation - Hamburger Menu --- duration_ms: 128.9482 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: 487.0038 ... # Subtest: hamburger button opens left panel drawer ok 2 - hamburger button opens left panel drawer --- duration_ms: 1.478 ... # Subtest: hides hamburger on desktop ok 3 - hides hamburger on desktop --- duration_ms: 1.1051 ... 1..3 ok 2 - TopBar Hamburger Menu --- duration_ms: 490.1177 type: 'suite' ... 1..2 # tests 7 # suites 2 # pass 7 # fail 0 # cancelled 0 # skipped 0 # todo 0 # duration_ms 899.3239 TAP version 13 # Subtest: SwarmCard Component Contract # Subtest: exports SwarmCard component ok 1 - exports SwarmCard component --- duration_ms: 238.5797 ... # Subtest: SwarmCard component can be imported without errors ok 2 - SwarmCard component can be imported without errors --- duration_ms: 1.6861 ... 1..2 ok 1 - SwarmCard Component Contract --- duration_ms: 241.2828 type: 'suite' ... # Subtest: SwarmCard Agent Roster # Subtest: renders agent avatars with liveness glow ok 1 - renders agent avatars with liveness glow --- duration_ms: 1.7451 ... # Subtest: displays agent current task when available ok 2 - displays agent current task when available --- duration_ms: 1.4825 ... 1..2 ok 2 - SwarmCard Agent Roster --- duration_ms: 3.5718 type: 'suite' ... # Subtest: SwarmCard Progress Bar # Subtest: renders progress bar showing completion percentage ok 1 - renders progress bar showing completion percentage --- duration_ms: 1.6795 ... 1..1 ok 3 - SwarmCard Progress Bar --- duration_ms: 1.8984 type: 'suite' ... # Subtest: SwarmCard Attention Items # Subtest: renders attention items with warning styling ok 1 - renders attention items with warning styling --- duration_ms: 1.7077 ... 1..1 ok 4 - SwarmCard Attention Items --- duration_ms: 2.1567 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.7431 ... 1..1 ok 5 - SwarmCard View-Jump Icons --- duration_ms: 2.0339 type: 'suite' ... 1..5 # tests 7 # suites 5 # pass 7 # fail 0 # cancelled 0 # skipped 0 # todo 0 # duration_ms 515.754 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.8379 ... # 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.2068 ... # 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.1241 ... 1..3 ok 1 - Valid URL Patterns - Social View --- duration_ms: 1.803 type: 'suite' ... # Subtest: Valid URL Patterns - Graph View # Subtest: /?view=graph - graph view default not ok 1 - /?view=graph - graph view default --- duration_ms: 3.2799 location: 'C:\\Users\\Zenchant\\codex\\beadboard\\tests\\hooks\\url-state-integration.test.ts:2:2578' failureType: 'testCodeFailure' error: |- Expected values to be strictly equal: 'overview' !== 'flow' code: 'ERR_ASSERTION' name: 'AssertionError' expected: 'flow' actual: 'overview' operator: 'strictEqual' stack: |- TestContext. (C:\Users\Zenchant\codex\beadboard\tests\hooks\url-state-integration.test.ts:53:14) Test.runInAsyncScope (node:async_hooks:211:14) Test.run (node:internal/test_runner/test:934:25) Test.start (node:internal/test_runner/test:833:17) node:internal/test_runner/test:1318:71 node:internal/per_context/primordials:483:82 new Promise () new SafePromise (node:internal/per_context/primordials:451:29) node:internal/per_context/primordials:483:9 Array.map () ... # 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.1241 ... # Subtest: /?view=graph&graphTab=flow - flow tab selected ok 3 - /?view=graph&graphTab=flow - flow tab selected --- duration_ms: 0.2827 ... # Subtest: /?view=graph&graphTab=overview - overview tab selected ok 4 - /?view=graph&graphTab=overview - overview tab selected --- duration_ms: 0.1152 ... # Subtest: /?view=graph&swarm=bb-buff - graph filtered by swarm ok 5 - /?view=graph&swarm=bb-buff - graph filtered by swarm --- duration_ms: 0.3114 ... 1..5 not ok 2 - Valid URL Patterns - Graph View --- duration_ms: 4.4826 type: 'suite' location: 'C:\\Users\\Zenchant\\codex\\beadboard\\tests\\hooks\\url-state-integration.test.ts:2:2515' failureType: 'subtestsFailed' error: '1 subtest failed' code: 'ERR_TEST_FAILURE' ... # 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.176 ... # 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.3375 ... # 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.1203 ... 1..3 ok 3 - Deprecated Swarm View Fallback --- duration_ms: 0.8018 type: 'suite' ... # Subtest: Valid URL Patterns - Activity View # Subtest: /?view=activity - activity view default ok 1 - /?view=activity - activity view default --- duration_ms: 0.1469 ... # Subtest: /?view=activity&agent=bb-silver-castle - filtered by agent ok 2 - /?view=activity&agent=bb-silver-castle - filtered by agent --- duration_ms: 0.0856 ... # Subtest: /?view=activity&swarm=bb-buff - filtered by swarm ok 3 - /?view=activity&swarm=bb-buff - filtered by swarm --- duration_ms: 0.0813 ... 1..3 ok 4 - Valid URL Patterns - Activity View --- duration_ms: 0.4565 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.1489 ... # Subtest: /?view=graph&graphTab=invalid - invalid graphTab defaults to flow not ok 2 - /?view=graph&graphTab=invalid - invalid graphTab defaults to flow --- duration_ms: 0.4762 location: 'C:\\Users\\Zenchant\\codex\\beadboard\\tests\\hooks\\url-state-integration.test.ts:2:6479' failureType: 'testCodeFailure' error: |- Expected values to be strictly equal: 'overview' !== 'flow' code: 'ERR_ASSERTION' name: 'AssertionError' expected: 'flow' actual: 'overview' operator: 'strictEqual' stack: |- TestContext. (C:\Users\Zenchant\codex\beadboard\tests\hooks\url-state-integration.test.ts:138:14) Test.runInAsyncScope (node:async_hooks:211:14) Test.run (node:internal/test_runner/test:934:25) Suite.processPendingSubtests (node:internal/test_runner/test:633:18) Test.postRun (node:internal/test_runner/test:1045:19) Test.run (node:internal/test_runner/test:973:12) async Promise.all (index 0) async Suite.run (node:internal/test_runner/test:1320:7) async Suite.processPendingSubtests (node:internal/test_runner/test:633:7) ... # Subtest: /?panel=invalid - invalid panel defaults to open ok 3 - /?panel=invalid - invalid panel defaults to open --- duration_ms: 0.1006 ... # 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.0841 ... 1..4 not ok 5 - Invalid Param Handling --- duration_ms: 0.9701 type: 'suite' location: 'C:\\Users\\Zenchant\\codex\\beadboard\\tests\\hooks\\url-state-integration.test.ts:2:6178' failureType: 'subtestsFailed' error: '1 subtest failed' code: 'ERR_TEST_FAILURE' ... # Subtest: URL Building - State to URL # Subtest: builds social view URL ok 1 - builds social view URL --- duration_ms: 0.2194 ... # Subtest: builds graph view with task URL ok 2 - builds graph view with task URL --- duration_ms: 0.0932 ... # Subtest: builds swarm view with swarm param ok 3 - builds swarm view with swarm param --- duration_ms: 0.085 ... # Subtest: builds activity view with agent filter ok 4 - builds activity view with agent filter --- duration_ms: 0.1405 ... # Subtest: preserves existing params when adding new ones ok 5 - preserves existing params when adding new ones --- duration_ms: 0.1868 ... # Subtest: removes params when set to null ok 6 - removes params when set to null --- duration_ms: 0.1154 ... # Subtest: returns root when all params cleared ok 7 - returns root when all params cleared --- duration_ms: 0.0926 ... 1..7 ok 6 - URL Building - State to URL --- duration_ms: 1.1103 type: 'suite' ... # Subtest: Complex URL Scenarios # Subtest: handles all params together ok 1 - handles all params together --- duration_ms: 0.123 ... # Subtest: empty string values treated as null/empty ok 2 - empty string values treated as null/empty --- duration_ms: 0.0893 ... 1..2 ok 7 - Complex URL Scenarios --- duration_ms: 0.351 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.1287 ... # Subtest: SwarmCard Graph icon: /?view=graph&swarm={id} ok 2 - SwarmCard Graph icon: /?view=graph&swarm={id} --- duration_ms: 0.0785 ... # Subtest: SwarmCard Timeline icon: /?view=activity&swarm={id} ok 3 - SwarmCard Timeline icon: /?view=activity&swarm={id} --- duration_ms: 0.1411 ... # Subtest: Agent avatar click: /?view=activity&agent={id} ok 4 - Agent avatar click: /?view=activity&agent={id} --- duration_ms: 0.076 ... 1..4 ok 8 - Deep Link Patterns - From Card Icons --- duration_ms: 0.5678 type: 'suite' ... 1..8 not ok 1 - URL State Integration - bb-ui2.22 --- duration_ms: 11.4418 type: 'suite' location: 'C:\\Users\\Zenchant\\codex\\beadboard\\tests\\hooks\\url-state-integration.test.ts:2:1269' failureType: 'subtestsFailed' error: '2 subtests failed' code: 'ERR_TEST_FAILURE' ... 1..1 # tests 31 # suites 9 # pass 29 # fail 2 # cancelled 0 # skipped 0 # todo 0 # duration_ms 447.3716