checkpoint: pre-split branch cleanup

This commit is contained in:
ZenchantLive 2026-03-03 16:43:42 -08:00
parent 4c2ae2e5b7
commit b5db7a7753
276 changed files with 35912 additions and 60119 deletions

View file

@ -1,23 +1,23 @@
#!/usr/bin/env sh
# bd-shim v1
# bd-hooks-version: 0.53.0
#
# bd (beads) post-checkout hook - thin shim
#
# This shim delegates to 'bd hook post-checkout' which contains
# the actual hook logic. This pattern ensures hook behavior is always
# in sync with the installed bd version - no manual updates needed.
#
# The 'bd hook' command (singular) supports:
# - Guard against frequent firing (only imports if JSONL changed)
# - Per-worktree state tracking
# - Dolt branch-then-merge pattern
# - Hook chaining configuration
# Check if bd is available
if ! command -v bd >/dev/null 2>&1; then
# Silently skip - post-checkout is called frequently
exit 0
fi
exec bd hook post-checkout "$@"
#!/usr/bin/env sh
# bd-shim v1
# bd-hooks-version: 0.53.0
#
# bd (beads) post-checkout hook - thin shim
#
# This shim delegates to 'bd hook post-checkout' which contains
# the actual hook logic. This pattern ensures hook behavior is always
# in sync with the installed bd version - no manual updates needed.
#
# The 'bd hook' command (singular) supports:
# - Guard against frequent firing (only imports if JSONL changed)
# - Per-worktree state tracking
# - Dolt branch-then-merge pattern
# - Hook chaining configuration
# Check if bd is available
if ! command -v bd >/dev/null 2>&1; then
# Silently skip - post-checkout is called frequently
exit 0
fi
exec bd hook post-checkout "$@"

View file

@ -1,24 +1,24 @@
#!/usr/bin/env sh
# bd-shim v1
# bd-hooks-version: 0.53.0
#
# bd (beads) post-merge hook - thin shim
#
# This shim delegates to 'bd hook post-merge' which contains
# the actual hook logic. This pattern ensures hook behavior is always
# in sync with the installed bd version - no manual updates needed.
#
# The 'bd hook' command (singular) supports:
# - Branch-then-merge pattern for Dolt (cell-level conflict resolution)
# - Per-worktree state tracking
# - Hook chaining configuration
# Check if bd is available
if ! command -v bd >/dev/null 2>&1; then
echo "Warning: bd command not found in PATH, skipping post-merge hook" >&2
echo " Install bd: brew install beads" >&2
echo " Or add bd to your PATH" >&2
exit 0
fi
exec bd hook post-merge "$@"
#!/usr/bin/env sh
# bd-shim v1
# bd-hooks-version: 0.53.0
#
# bd (beads) post-merge hook - thin shim
#
# This shim delegates to 'bd hook post-merge' which contains
# the actual hook logic. This pattern ensures hook behavior is always
# in sync with the installed bd version - no manual updates needed.
#
# The 'bd hook' command (singular) supports:
# - Branch-then-merge pattern for Dolt (cell-level conflict resolution)
# - Per-worktree state tracking
# - Hook chaining configuration
# Check if bd is available
if ! command -v bd >/dev/null 2>&1; then
echo "Warning: bd command not found in PATH, skipping post-merge hook" >&2
echo " Install bd: brew install beads" >&2
echo " Or add bd to your PATH" >&2
exit 0
fi
exec bd hook post-merge "$@"

View file

@ -1,25 +1,25 @@
#!/usr/bin/env sh
# bd-shim v2
# bd-hooks-version: 0.53.0
#
# bd (beads) pre-commit hook — thin shim
#
# Delegates to 'bd hook pre-commit' which contains the actual hook logic.
# This pattern ensures hook behavior is always in sync with the installed
# bd version — no manual updates needed.
#
# The 'bd hook' command supports:
# - Per-worktree export state tracking
# - Dolt in-process export (no lock deadlocks)
# - Sync-branch routing
# - Hook chaining configuration
# Check if bd is available
if ! command -v bd >/dev/null 2>&1; then
echo "Warning: bd command not found in PATH, skipping pre-commit hook" >&2
echo " Install bd: brew install beads" >&2
echo " Or add bd to your PATH" >&2
exit 0
fi
exec bd hook pre-commit "$@"
#!/usr/bin/env sh
# bd-shim v2
# bd-hooks-version: 0.53.0
#
# bd (beads) pre-commit hook — thin shim
#
# Delegates to 'bd hook pre-commit' which contains the actual hook logic.
# This pattern ensures hook behavior is always in sync with the installed
# bd version — no manual updates needed.
#
# The 'bd hook' command supports:
# - Per-worktree export state tracking
# - Dolt in-process export (no lock deadlocks)
# - Sync-branch routing
# - Hook chaining configuration
# Check if bd is available
if ! command -v bd >/dev/null 2>&1; then
echo "Warning: bd command not found in PATH, skipping pre-commit hook" >&2
echo " Install bd: brew install beads" >&2
echo " Or add bd to your PATH" >&2
exit 0
fi
exec bd hook pre-commit "$@"

View file

@ -1,19 +1,19 @@
#!/usr/bin/env sh
# bd-shim v1
# bd-hooks-version: 0.53.0
#
# bd (beads) pre-push hook - thin shim
#
# This shim delegates to 'bd hooks run pre-push' which contains
# the actual hook logic. This pattern ensures hook behavior is always
# in sync with the installed bd version - no manual updates needed.
# Check if bd is available
if ! command -v bd >/dev/null 2>&1; then
echo "Warning: bd command not found in PATH, skipping pre-push hook" >&2
echo " Install bd: brew install beads" >&2
echo " Or add bd to your PATH" >&2
exit 0
fi
exec bd hooks run pre-push "$@"
#!/usr/bin/env sh
# bd-shim v1
# bd-hooks-version: 0.53.0
#
# bd (beads) pre-push hook - thin shim
#
# This shim delegates to 'bd hooks run pre-push' which contains
# the actual hook logic. This pattern ensures hook behavior is always
# in sync with the installed bd version - no manual updates needed.
# Check if bd is available
if ! command -v bd >/dev/null 2>&1; then
echo "Warning: bd command not found in PATH, skipping pre-push hook" >&2
echo " Install bd: brew install beads" >&2
echo " Or add bd to your PATH" >&2
exit 0
fi
exec bd hooks run pre-push "$@"

View file

@ -1,24 +1,24 @@
#!/usr/bin/env sh
# bd-shim v1
# bd-hooks-version: 0.48.0
#
# bd (beads) prepare-commit-msg hook - thin shim
#
# This shim delegates to 'bd hooks run prepare-commit-msg' which contains
# the actual hook logic. This pattern ensures hook behavior is always
# in sync with the installed bd version - no manual updates needed.
#
# Arguments:
# $1 = path to the commit message file
# $2 = source of commit message (message, template, merge, squash, commit)
# $3 = commit SHA-1 (if -c, -C, or --amend)
# Check if bd is available
if ! command -v bd >/dev/null 2>&1; then
echo "Warning: bd command not found in PATH, skipping prepare-commit-msg hook" >&2
echo " Install bd: brew install beads" >&2
echo " Or add bd to your PATH" >&2
exit 0
fi
exec bd hooks run prepare-commit-msg "$@"
#!/usr/bin/env sh
# bd-shim v1
# bd-hooks-version: 0.48.0
#
# bd (beads) prepare-commit-msg hook - thin shim
#
# This shim delegates to 'bd hooks run prepare-commit-msg' which contains
# the actual hook logic. This pattern ensures hook behavior is always
# in sync with the installed bd version - no manual updates needed.
#
# Arguments:
# $1 = path to the commit message file
# $2 = source of commit message (message, template, merge, squash, commit)
# $3 = commit SHA-1 (if -c, -C, or --amend)
# Check if bd is available
if ! command -v bd >/dev/null 2>&1; then
echo "Warning: bd command not found in PATH, skipping prepare-commit-msg hook" >&2
echo " Install bd: brew install beads" >&2
echo " Or add bd to your PATH" >&2
exit 0
fi
exec bd hooks run prepare-commit-msg "$@"

3
.beads/agent.txt Normal file
View file

@ -0,0 +1,3 @@
✓ Created issue: beadboard-8bs — Agent: Antigravity Graph Orchestrator
Priority: P0
Status: open

61
.beads/create_help.txt Normal file
View file

@ -0,0 +1,61 @@
Create a new issue (or multiple issues from markdown file)
Usage:
bd create [title] [flags]
Aliases:
create, new
Flags:
--acceptance string Acceptance criteria
--agent-rig string Agent's rig name (requires --type=agent)
--append-notes string Append to existing notes (with newline separator)
-a, --assignee string Assignee
--body-file string Read description from file (use - for stdin)
--defer string Defer until date (issue hidden from bd ready until then). Same formats as --due
--deps strings Dependencies in format 'type:id' or 'id' (e.g., 'discovered-from:bd-20,blocks:bd-15' or 'bd-20')
-d, --description string Issue description
--design string Design notes
--dry-run Preview what would be created without actually creating
--due string Due date/time. Formats: +6h, +1d, +2w, tomorrow, next monday, 2025-01-15
--ephemeral Create as ephemeral (short-lived, subject to TTL compaction)
-e, --estimate int Time estimate in minutes (e.g., 60 for 1 hour)
--event-actor string Entity URI who caused this event (requires --type=event)
--event-category string Event category (e.g., patrol.muted, agent.started) (requires --type=event)
--event-payload string Event-specific JSON data (requires --type=event)
--event-target string Entity URI or bead ID affected (requires --type=event)
--external-ref string External reference (e.g., 'gh-9', 'jira-ABC')
-f, --file string Create multiple issues from markdown file
--force Force creation even if prefix doesn't match database prefix
-h, --help help for create
--id string Explicit issue ID (e.g., 'bd-42' for partitioning)
-l, --labels strings Labels (comma-separated)
--metadata string Set custom metadata (JSON string or @file.json to read from file)
--mol-type string Molecule type: swarm (multi-polecat), patrol (recurring ops), work (default)
--no-inherit-labels Don't inherit labels from parent issue
--notes string Additional notes
--parent string Parent issue ID for hierarchical child (e.g., 'bd-a3f8e9')
--prefix string Create issue in rig by prefix (e.g., --prefix bd- or --prefix bd or --prefix beads)
-p, --priority string Priority (0-4 or P0-P4, 0=highest) (default "2")
--repo string Target repository for issue (overrides auto-routing)
--rig string Create issue in a different rig (e.g., --rig beads)
--silent Output only the issue ID (for scripting)
--spec-id string Link to specification document
--title string Issue title (alternative to positional argument)
-t, --type string Issue type (bug|feature|task|epic|chore|decision); custom types require types.custom config; aliases: enhancement/feat→feature, dec/adr→decision (default "task")
--validate Validate description contains required sections for issue type
--waits-for string Spawner issue ID to wait for (creates waits-for dependency for fanout gate)
--waits-for-gate string Gate type: all-children (wait for all) or any-children (wait for first) (default "all-children")
--wisp-type string Wisp type for TTL-based compaction: heartbeat, ping, patrol, gc_report, recovery, error, escalation
Global Flags:
--actor string Actor name for audit trail (default: $BD_ACTOR, git user.name, $USER)
--allow-stale Allow operations on potentially stale data (skip staleness check)
--db string Database path (default: auto-discover .beads/*.db)
--dolt-auto-commit string Dolt auto-commit policy (off|on|batch). 'on': commit after each write. 'batch': defer commits to bd sync / bd dolt commit; uncommitted changes persist in the working set until then. SIGTERM/SIGHUP flush pending batch commits. Default: off. Override via config key dolt.auto-commit
--json Output in JSON format
--profile Generate CPU profile for performance analysis
-q, --quiet Suppress non-essential output (errors only)
--readonly Read-only mode: block write operations (for worker sandboxes)
--sandbox Sandbox mode: disables auto-sync
-v, --verbose Enable verbose/debug output

1
.beads/debug.txt Normal file
View file

@ -0,0 +1 @@
✓ Updated issue: beadboard-txj.2 — Apply Status Colors and Transitive Context to Graph Edges

42
.beads/dep_help.txt Normal file
View file

@ -0,0 +1,42 @@
Manage dependencies between issues.
When called with an issue ID and --blocks flag, creates a blocking dependency:
bd dep <blocker-id> --blocks <blocked-id>
This is equivalent to:
bd dep add <blocked-id> <blocker-id>
Examples:
bd dep bd-xyz --blocks bd-abc # bd-xyz blocks bd-abc
bd dep add bd-abc bd-xyz # Same as above (bd-abc depends on bd-xyz)
Usage:
bd dep [issue-id] [flags]
bd dep [command]
Available Commands:
add Add a dependency
cycles Detect dependency cycles
list List dependencies or dependents of an issue
relate Create a bidirectional relates_to link between issues
remove Remove a dependency
tree Show dependency tree
unrelate Remove a relates_to link between issues
Flags:
-b, --blocks string Issue ID that this issue blocks (shorthand for: bd dep add <blocked> <blocker>)
-h, --help help for dep
Global Flags:
--actor string Actor name for audit trail (default: $BD_ACTOR, git user.name, $USER)
--allow-stale Allow operations on potentially stale data (skip staleness check)
--db string Database path (default: auto-discover .beads/*.db)
--dolt-auto-commit string Dolt auto-commit policy (off|on|batch). 'on': commit after each write. 'batch': defer commits to bd sync / bd dolt commit; uncommitted changes persist in the working set until then. SIGTERM/SIGHUP flush pending batch commits. Default: off. Override via config key dolt.auto-commit
--json Output in JSON format
--profile Generate CPU profile for performance analysis
-q, --quiet Suppress non-essential output (errors only)
--readonly Read-only mode: block write operations (for worker sandboxes)
--sandbox Sandbox mode: disables auto-sync
-v, --verbose Enable verbose/debug output
Use "bd dep [command] --help" for more information about a command.

View file

@ -1 +1 @@
3840
1910

View file

@ -1 +0,0 @@
1772407425

File diff suppressed because it is too large Load diff

View file

@ -1 +0,0 @@
60816

View file

@ -1 +0,0 @@
3307

3
.beads/epic_create.txt Normal file
View file

@ -0,0 +1,3 @@
✓ Created issue: beadboard-txj — Epic: Enhanced Graph Edge Visualization
Priority: P0
Status: open

60
.beads/lint_output.txt Normal file
View file

@ -0,0 +1,60 @@
> beadboard@0.1.0 lint
> eslint .
C:\Users\Zenchant\codex\beadboard\.beads\fix.js
1:12 error A `require()` style import is forbidden @typescript-eslint/no-require-imports
2:14 error A `require()` style import is forbidden @typescript-eslint/no-require-imports
C:\Users\Zenchant\codex\beadboard\.beads\fix2.js
1:12 error A `require()` style import is forbidden @typescript-eslint/no-require-imports
2:14 error A `require()` style import is forbidden @typescript-eslint/no-require-imports
C:\Users\Zenchant\codex\beadboard\src\components\activity\activity-panel.tsx
285:16 warning 'e' is defined but never used @typescript-eslint/no-unused-vars
C:\Users\Zenchant\codex\beadboard\src\components\activity\swarm-command-feed.tsx
83:22 warning 'e' is defined but never used @typescript-eslint/no-unused-vars
C:\Users\Zenchant\codex\beadboard\src\components\graph\dependency-graph-page.tsx
641:17 warning 'unused_' is assigned a value but never used @typescript-eslint/no-unused-vars
C:\Users\Zenchant\codex\beadboard\src\components\graph\smart-dag.tsx
38:15 warning 'hideClosedProp' is assigned a value but never used @typescript-eslint/no-unused-vars
56:45 warning '_id' is defined but never used @typescript-eslint/no-unused-vars
62:44 warning '_id' is defined but never used @typescript-eslint/no-unused-vars
84:5 warning 'signalById' is assigned a value but never used @typescript-eslint/no-unused-vars
85:5 warning 'cycleNodeIdSet' is assigned a value but never used @typescript-eslint/no-unused-vars
87:5 warning 'blockerTooltipMap' is assigned a value but never used @typescript-eslint/no-unused-vars
170:53 warning 'shouldOpenDrawer' is defined but never used @typescript-eslint/no-unused-vars
176:9 warning 'selectedIssue' is assigned a value but never used @typescript-eslint/no-unused-vars
C:\Users\Zenchant\codex\beadboard\src\components\shared\top-bar.tsx
93:82 warning 'toggleBlockedOnly' is assigned a value but never used @typescript-eslint/no-unused-vars
C:\Users\Zenchant\codex\beadboard\src\components\shared\unified-shell.tsx
42:55 warning 'panel' is assigned a value but never used @typescript-eslint/no-unused-vars
C:\Users\Zenchant\codex\beadboard\src\components\shared\workflow-graph.tsx
251:17 warning 'unused_' is assigned a value but never used @typescript-eslint/no-unused-vars
C:\Users\Zenchant\codex\beadboard\src\components\social\social-card.tsx
116:3 warning 'onOpenThread' is defined but never used @typescript-eslint/no-unused-vars
C:\Users\Zenchant\codex\beadboard\src\components\swarm\swarm-detail.tsx
4:15 warning 'SwarmCardData' is defined but never used @typescript-eslint/no-unused-vars
6:10 warning 'cn' is defined but never used @typescript-eslint/no-unused-vars
53:16 warning 'e' is defined but never used @typescript-eslint/no-unused-vars
C:\Users\Zenchant\codex\beadboard\src\components\swarm\swarm-page.tsx
18:53 warning 'LayoutGrid' is defined but never used @typescript-eslint/no-unused-vars
C:\Users\Zenchant\codex\beadboard\src\hooks\use-mission-graph.ts
33:16 warning '_e' is defined but never used @typescript-eslint/no-unused-vars
C:\Users\Zenchant\codex\beadboard\src\hooks\use-swarm-topology.ts
35:16 warning '_err' is defined but never used @typescript-eslint/no-unused-vars
Γ£û 25 problems (4 errors, 21 warnings)

123
.beads/mem.txt Normal file
View file

@ -0,0 +1,123 @@
✓ beadboard-116 · [MEMORY][WORKFLOW][HARD] Evidence before completion claims [● P1 · CLOSED]
Owner: ZenchantLive · Type: decision
Created: 2026-03-02 · Updated: 2026-03-02
Close reason: Ratified canonical memory
DESCRIPTION
Scope: All new implementation tasks that change behavior or data flow.
Out of Scope: Purely informational discussions without code or workflow changes.
Rule: Start from explicit verification evidence and update work state in bd before claiming progress complete.
Rationale: Prevents status drift and false completion claims.
Failure Mode: Unverified completion claims lead to regressions and mistrust.
NOTES
Provenance linked: bb-92d.6, beadboard-jgy, beadboard-yz6
ACCEPTANCE CRITERIA
Given an implementation task, when work begins and ends, then bd state transitions and verification command evidence are recorded.
Verification command(s): bd show <task-id>; npm run typecheck; npm run lint; npm run test
LABELS: mem-canonical, mem-hard, memory, memory-workflow
METADATA
domain: memory-workflow
effective_date: 2026-03-02
evidence_ids: bb-92d.6,beadboard-jgy,beadboard-yz6
memory_strength: hard
memory_version: 1
owner: team
plan_refs: docs/plans/2026-03-01-beads-native-memory.md,docs/plans/2026-03-02-bd-memory-fabric-design.md
superseded_by: null
supersedes: null
RELATED
↔ ✓ bb-92d.6: Add guardrail test preventing direct writes to .beads/issues.jsonl ● P0
↔ ✓ beadboard-jgy: Document memory workflow in help/memory and AGENTS manuals ● P1
↔ ○ beadboard-nq9: (EPIC) [MEMORY-ANCHOR] Workflow Protocol ● P1
↔ ✓ beadboard-yz6: Bootstrap Phase 1 Memory Fabric (anchors + canonical nodes) ● P1
────────────────────────────────────────────────────────────
✓ beadboard-60a · [MEMORY][ARCH][HARD] Dependencies model execution order, not visual order [● P1 · CLOSED]
Owner: ZenchantLive · Type: decision
Created: 2026-03-02 · Updated: 2026-03-02
Close reason: Ratified canonical memory
DESCRIPTION
Scope: Dependency graph design and updates.
Out of Scope: Visual layout decisions that do not alter execution semantics.
Rule: Dependencies encode execution order and blocking semantics, never visual grouping.
Rationale: Keeps ready/blocked states truthful and machine-reliable.
Failure Mode: Incorrect dependency direction causes false blocking or unsafe parallelism.
NOTES
Provenance linked: bb-bvn, beadboard-r1i, beadboard-68k
ACCEPTANCE CRITERIA
Given a dependency update, when graph state is queried, then blocked/ready outcomes match intended execution order.
Verification command(s): bd dep tree <issue-id>; bd blocked; bd ready
LABELS: mem-canonical, mem-hard, memory, memory-arch
METADATA
domain: memory-arch
effective_date: 2026-03-02
evidence_ids: bb-bvn,beadboard-r1i,beadboard-68k
memory_strength: hard
memory_version: 1
owner: team
plan_refs: docs/plans/2026-02-22-dag-views-ux-design.md
superseded_by: null
supersedes: null
RELATED
↔ ✓ bb-bvn: Dependency Graph (React Flow) ● P0
↔ ✓ beadboard-68k: Phase 0: UX Wiring Fixes ● P0
↔ ○ beadboard-76p: (EPIC) [MEMORY-ANCHOR] Architecture ● P1
↔ ✓ beadboard-r1i: Phase 1: Contextual Right Panel ● P0
────────────────────────────────────────────────────────────
✓ beadboard-zas · [MEMORY][ARCH][HARD] Shared logic for cross-view behavior [● P1 · CLOSED]
Owner: ZenchantLive · Type: decision
Created: 2026-03-02 · Updated: 2026-03-02
Close reason: Ratified canonical memory
DESCRIPTION
Scope: Repeated logic used by multiple views or pages.
Out of Scope: One-off prototypes and disposable experiments.
Rule: Reuse shared paths/components for cross-view behavior; avoid one-off logic drift.
Rationale: Prevents silent divergence between Kanban, Graph, and API views.
Failure Mode: Patching one surface only creates inconsistent user behavior.
NOTES
Provenance linked: beadboard-68k.4, beadboard-68k.5, beadboard-r1i.1
ACCEPTANCE CRITERIA
Given a behavior change touching multiple views, when implementation lands, then shared logic path is reused and covered by tests.
Verification command(s): rg "<shared-function-or-hook>" src tests; npm run test
LABELS: mem-canonical, mem-hard, memory, memory-arch
METADATA
domain: memory-arch
effective_date: 2026-03-02
evidence_ids: beadboard-68k.4,beadboard-68k.5,beadboard-r1i.1
memory_strength: hard
memory_version: 1
owner: team
plan_refs: docs/plans/2026-02-22-dag-views-ux-design.md,docs/plans/2026-02-15-unified-ux-prd.md
superseded_by: null
supersedes: null
RELATED
↔ ✓ beadboard-68k.4: Fix thread drawer status badge (hardcoded 'In Progress') ● P0
↔ ✓ beadboard-68k.5: Wire TopBar metric tiles from live issue data ● P0
↔ ○ beadboard-76p: (EPIC) [MEMORY-ANCHOR] Architecture ● P1
↔ ✓ beadboard-r1i.1: Extend ContextualRightPanel props and thread taskId/swarmId from shell ● P0

794
.beads/npm_test_output.txt Normal file
View file

@ -0,0 +1,794 @@
> 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.<anonymous> (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 (<anonymous>)
new SafePromise (node:internal/per_context/primordials:451:29)
node:internal/per_context/primordials:483:9
Array.map (<anonymous>)
...
# 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.<anonymous> (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

919
.beads/npm_test_output2.txt Normal file
View file

@ -0,0 +1,919 @@
> 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: 2.2085
...
# Subtest: package.json has next/react/typescript scripts and deps
ok 2 - package.json has next/react/typescript scripts and deps
---
duration_ms: 0.5581
...
1..2
# tests 2
# suites 0
# pass 2
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 140.1608
TAP version 13
# Subtest: BaseCard Component Contract
# Subtest: exports BaseCard component
ok 1 - exports BaseCard component
---
duration_ms: 58.211
...
1..1
ok 1 - BaseCard Component Contract
---
duration_ms: 58.9965
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.4528
...
# Subtest: applies correct status border class for "ready" status
ok 2 - applies correct status border class for "ready" status
---
duration_ms: 10.367
...
# Subtest: applies correct status border class for "blocked" status
ok 3 - applies correct status border class for "blocked" status
---
duration_ms: 2.0545
...
# Subtest: applies selection ring when selected prop is true
ok 4 - applies selection ring when selected prop is true
---
duration_ms: 1.3688
...
1..4
ok 2 - BaseCard Styling Logic
---
duration_ms: 16.6551
type: 'suite'
...
1..2
# tests 5
# suites 2
# pass 5
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 447.2767
TAP version 13
# Subtest: AgentAvatar Component Contract
# Subtest: exports AgentAvatar component
ok 1 - exports AgentAvatar component
---
duration_ms: 154.6347
...
1..1
ok 1 - AgentAvatar Component Contract
---
duration_ms: 155.6009
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: 11.7114
...
# Subtest: applies correct role color class for "orchestrator" role
ok 2 - applies correct role color class for "orchestrator" role
---
duration_ms: 2.6704
...
1..2
ok 2 - AgentAvatar Role Styling
---
duration_ms: 14.7057
type: 'suite'
...
# Subtest: AgentAvatar ZFC States
# Subtest: applies working pulse glow
ok 1 - applies working pulse glow
---
duration_ms: 2.4504
...
1..1
ok 3 - AgentAvatar ZFC States
---
duration_ms: 2.8198
type: 'suite'
...
1..3
# tests 4
# suites 3
# pass 4
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 539.4517
TAP version 13
# Subtest: SessionsHeader: Agent Grouping
# Subtest: groups agents by swarm
ok 1 - groups agents by swarm
---
duration_ms: 2.114
...
# Subtest: shows fallback bucket for unassigned agents
ok 2 - shows fallback bucket for unassigned agents
---
duration_ms: 0.1808
...
# Subtest: handles empty swarm groups
ok 3 - handles empty swarm groups
---
duration_ms: 0.1339
...
1..3
ok 1 - SessionsHeader: Agent Grouping
---
duration_ms: 3.4059
type: 'suite'
...
1..1
# tests 3
# suites 1
# pass 3
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 283.1807
TAP version 13
# Subtest: getAgentRoleColor returns correct color for known roles
ok 1 - getAgentRoleColor returns correct color for known roles
---
duration_ms: 0.8966
...
# Subtest: getAgentRoleColor returns default for unknown role
ok 2 - getAgentRoleColor returns default for unknown role
---
duration_ms: 0.1598
...
1..2
# tests 2
# suites 0
# pass 2
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 309.895
TAP version 13
# Subtest: parseIssuesJsonl applies defaults and preserves priority 0
ok 1 - parseIssuesJsonl applies defaults and preserves priority 0
---
duration_ms: 1.1101
...
# Subtest: parseIssuesJsonl skips malformed and blank lines
ok 2 - parseIssuesJsonl skips malformed and blank lines
---
duration_ms: 0.1784
...
# Subtest: parseIssuesJsonl filters tombstones by default
ok 3 - parseIssuesJsonl filters tombstones by default
---
duration_ms: 0.1475
...
# Subtest: parseIssuesJsonl can include tombstones when requested
ok 4 - parseIssuesJsonl can include tombstones when requested
---
duration_ms: 0.1428
...
# 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.7034
...
1..5
# tests 5
# suites 0
# pass 5
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 279.9641
TAP version 13
# Subtest: canonicalizeWindowsPath normalizes separators and drive casing
ok 1 - canonicalizeWindowsPath normalizes separators and drive casing
---
duration_ms: 0.9528
...
# Subtest: windowsPathKey is case-insensitive stable key
ok 2 - windowsPathKey is case-insensitive stable key
---
duration_ms: 0.2036
...
# Subtest: toDisplayPath renders forward slashes for UI readability
ok 3 - toDisplayPath renders forward slashes for UI readability
---
duration_ms: 0.1337
...
# Subtest: sameWindowsPath handles case/separator differences
ok 4 - sameWindowsPath handles case/separator differences
---
duration_ms: 0.1696
...
1..4
# tests 4
# suites 0
# pass 4
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 300.62
TAP version 13
# Subtest: LeftPanel Component Contract
# Subtest: exports LeftPanel component
ok 1 - exports LeftPanel component
---
duration_ms: 306.6047
...
# Subtest: LeftPanel accepts issues and onEpicSelect props
ok 2 - LeftPanel accepts issues and onEpicSelect props
---
duration_ms: 1.3879
...
1..2
ok 1 - LeftPanel Component Contract
---
duration_ms: 309.0712
type: 'suite'
...
# Subtest: LeftPanel Tree Structure
# Subtest: renders epics as expandable tree items
ok 1 - renders epics as expandable tree items
---
duration_ms: 1.345
...
# Subtest: groups beads under their parent epic
ok 2 - groups beads under their parent epic
---
duration_ms: 1.7164
...
1..2
ok 2 - LeftPanel Tree Structure
---
duration_ms: 3.332
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.3508
...
1..1
ok 3 - LeftPanel Responsive Behavior
---
duration_ms: 1.5231
type: 'suite'
...
# Subtest: LeftPanel Scope Controls
# Subtest: renders scope section
ok 1 - renders scope section
---
duration_ms: 1.3167
...
1..1
ok 4 - LeftPanel Scope Controls
---
duration_ms: 1.7059
type: 'suite'
...
1..4
# tests 6
# suites 4
# pass 6
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 598.9805
TAP version 13
# Subtest: TopBar Component Contract
# Subtest: exports TopBar component
ok 1 - exports TopBar component
---
duration_ms: 683.336
...
# Subtest: TopBar component can be imported without errors
ok 2 - TopBar component can be imported without errors
---
duration_ms: 1.848
...
1..2
ok 1 - TopBar Component Contract
---
duration_ms: 686.5443
type: 'suite'
...
# Subtest: TopBar View Tabs
# Subtest: renders view tabs: Social, Graph
ok 1 - renders view tabs: Social, Graph
---
duration_ms: 1.4361
...
# Subtest: active tab has bold text and accent underline
ok 2 - active tab has bold text and accent underline
---
duration_ms: 1.6179
...
1..2
ok 2 - TopBar View Tabs
---
duration_ms: 3.3478
type: 'suite'
...
# Subtest: TopBar Filter and Controls
# Subtest: renders filter/search input placeholder
ok 1 - renders filter/search input placeholder
---
duration_ms: 1.7411
...
# Subtest: renders settings placeholder
ok 2 - renders settings placeholder
---
duration_ms: 1.2955
...
1..2
ok 3 - TopBar Filter and Controls
---
duration_ms: 3.5576
type: 'suite'
...
1..3
# tests 6
# suites 3
# pass 6
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 991.5175
TAP version 13
# Subtest: Mobile Navigation - Hamburger Menu
# Subtest: exports MobileNav component
ok 1 - exports MobileNav component
---
duration_ms: 160.2862
...
# Subtest: renders tab buttons: Social, Graph
ok 2 - renders tab buttons: Social, Graph
---
duration_ms: 1.5794
...
# Subtest: highlights active tab with accent color
ok 3 - highlights active tab with accent color
---
duration_ms: 1.2026
...
# Subtest: uses setView from useUrlState on tab click
ok 4 - uses setView from useUrlState on tab click
---
duration_ms: 1.1548
...
1..4
ok 1 - Mobile Navigation - Hamburger Menu
---
duration_ms: 166.2933
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: 520.9119
...
# Subtest: hamburger button opens left panel drawer
ok 2 - hamburger button opens left panel drawer
---
duration_ms: 1.9043
...
# Subtest: hides hamburger on desktop
ok 3 - hides hamburger on desktop
---
duration_ms: 1.566
...
1..3
ok 2 - TopBar Hamburger Menu
---
duration_ms: 525.0916
type: 'suite'
...
1..2
# tests 7
# suites 2
# pass 7
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 1031.056
TAP version 13
# Subtest: SwarmCard Component Contract
# Subtest: exports SwarmCard component
ok 1 - exports SwarmCard component
---
duration_ms: 263.9758
...
# Subtest: SwarmCard component can be imported without errors
ok 2 - SwarmCard component can be imported without errors
---
duration_ms: 1.4629
...
1..2
ok 1 - SwarmCard Component Contract
---
duration_ms: 266.6715
type: 'suite'
...
# Subtest: SwarmCard Agent Roster
# Subtest: renders agent avatars with liveness glow
ok 1 - renders agent avatars with liveness glow
---
duration_ms: 1.3692
...
# Subtest: displays agent current task when available
ok 2 - displays agent current task when available
---
duration_ms: 1.5995
...
1..2
ok 2 - SwarmCard Agent Roster
---
duration_ms: 3.3144
type: 'suite'
...
# Subtest: SwarmCard Progress Bar
# Subtest: renders progress bar showing completion percentage
ok 1 - renders progress bar showing completion percentage
---
duration_ms: 1.8139
...
1..1
ok 3 - SwarmCard Progress Bar
---
duration_ms: 2.0726
type: 'suite'
...
# Subtest: SwarmCard Attention Items
# Subtest: renders attention items with warning styling
ok 1 - renders attention items with warning styling
---
duration_ms: 1.8572
...
1..1
ok 4 - SwarmCard Attention Items
---
duration_ms: 2.3816
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.7362
...
1..1
ok 5 - SwarmCard View-Jump Icons
---
duration_ms: 1.9907
type: 'suite'
...
1..5
# tests 7
# suites 5
# pass 7
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 586.4929
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.8523
...
# 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.2088
...
# 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.1511
...
1..3
ok 1 - Valid URL Patterns - Social View
---
duration_ms: 1.865
type: 'suite'
...
# Subtest: Valid URL Patterns - Graph View
# Subtest: /?view=graph - graph view default
ok 1 - /?view=graph - graph view default
---
duration_ms: 0.2128
...
# 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.1196
...
# Subtest: /?view=graph&graphTab=flow - flow tab selected
ok 3 - /?view=graph&graphTab=flow - flow tab selected
---
duration_ms: 0.1573
...
# Subtest: /?view=graph&graphTab=overview - overview tab selected
ok 4 - /?view=graph&graphTab=overview - overview tab selected
---
duration_ms: 0.116
...
# Subtest: /?view=graph&swarm=bb-buff - graph filtered by swarm
ok 5 - /?view=graph&swarm=bb-buff - graph filtered by swarm
---
duration_ms: 0.2221
...
1..5
ok 2 - Valid URL Patterns - Graph View
---
duration_ms: 1.1579
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.7522
...
# 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.2523
...
# 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.1228
...
1..3
ok 3 - Deprecated Swarm View Fallback
---
duration_ms: 1.276
type: 'suite'
...
# Subtest: Valid URL Patterns - Activity View
# Subtest: /?view=activity - activity view default
ok 1 - /?view=activity - activity view default
---
duration_ms: 0.1366
...
# Subtest: /?view=activity&agent=bb-silver-castle - filtered by agent
ok 2 - /?view=activity&agent=bb-silver-castle - filtered by agent
---
duration_ms: 0.0823
...
# Subtest: /?view=activity&swarm=bb-buff - filtered by swarm
ok 3 - /?view=activity&swarm=bb-buff - filtered by swarm
---
duration_ms: 0.0788
...
1..3
ok 4 - Valid URL Patterns - Activity View
---
duration_ms: 0.4389
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.1141
...
# Subtest: /?view=graph&graphTab=invalid - invalid graphTab defaults to flow
ok 2 - /?view=graph&graphTab=invalid - invalid graphTab defaults to flow
---
duration_ms: 0.0807
...
# Subtest: /?panel=invalid - invalid panel defaults to open
ok 3 - /?panel=invalid - invalid panel defaults to open
---
duration_ms: 0.0801
...
# 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.086
...
1..4
ok 5 - Invalid Param Handling
---
duration_ms: 0.4767
type: 'suite'
...
# Subtest: URL Building - State to URL
# Subtest: builds social view URL
ok 1 - builds social view URL
---
duration_ms: 0.2155
...
# Subtest: builds graph view with task URL
ok 2 - builds graph view with task URL
---
duration_ms: 0.1448
...
# Subtest: builds swarm view with swarm param
ok 3 - builds swarm view with swarm param
---
duration_ms: 0.0849
...
# Subtest: builds activity view with agent filter
ok 4 - builds activity view with agent filter
---
duration_ms: 0.0913
...
# Subtest: preserves existing params when adding new ones
ok 5 - preserves existing params when adding new ones
---
duration_ms: 0.1507
...
# Subtest: removes params when set to null
ok 6 - removes params when set to null
---
duration_ms: 0.1207
...
# Subtest: returns root when all params cleared
ok 7 - returns root when all params cleared
---
duration_ms: 0.0871
...
1..7
ok 6 - URL Building - State to URL
---
duration_ms: 1.0559
type: 'suite'
...
# Subtest: Complex URL Scenarios
# Subtest: handles all params together
ok 1 - handles all params together
---
duration_ms: 0.1183
...
# Subtest: empty string values treated as null/empty
ok 2 - empty string values treated as null/empty
---
duration_ms: 0.0817
...
1..2
ok 7 - Complex URL Scenarios
---
duration_ms: 0.2733
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.1285
...
# Subtest: SwarmCard Graph icon: /?view=graph&swarm={id}
ok 2 - SwarmCard Graph icon: /?view=graph&swarm={id}
---
duration_ms: 0.1297
...
# Subtest: SwarmCard Timeline icon: /?view=activity&swarm={id}
ok 3 - SwarmCard Timeline icon: /?view=activity&swarm={id}
---
duration_ms: 0.0782
...
# Subtest: Agent avatar click: /?view=activity&agent={id}
ok 4 - Agent avatar click: /?view=activity&agent={id}
---
duration_ms: 0.0769
...
1..4
ok 8 - Deep Link Patterns - From Card Icons
---
duration_ms: 0.5198
type: 'suite'
...
1..8
ok 1 - URL State Integration - bb-ui2.22
---
duration_ms: 7.8584
type: 'suite'
...
1..1
# tests 31
# suites 9
# pass 31
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 435.1391
TAP version 13
# Subtest: useGraphAnalysis - module exports
ok 1 - useGraphAnalysis - module exports
---
duration_ms: 29.8133
...
# Subtest: useGraphAnalysis underlying logic - graphModel is built correctly
ok 2 - useGraphAnalysis underlying logic - graphModel is built correctly
---
duration_ms: 10.1561
...
# Subtest: useGraphAnalysis underlying logic - cycleNodeIdSet detects cycles
ok 3 - useGraphAnalysis underlying logic - cycleNodeIdSet detects cycles
---
duration_ms: 0.5465
...
# Subtest: useGraphAnalysis underlying logic - cycleNodeIdSet empty for acyclic graph
ok 4 - useGraphAnalysis underlying logic - cycleNodeIdSet empty for acyclic graph
---
duration_ms: 0.1687
...
# Subtest: useGraphAnalysis underlying logic - blockerAnalysis returns blockers
ok 5 - useGraphAnalysis underlying logic - blockerAnalysis returns blockers
---
duration_ms: 0.4643
...
# Subtest: useGraphAnalysis underlying logic - blockerTooltipMap shows blocker info
ok 6 - useGraphAnalysis underlying logic - blockerTooltipMap shows blocker info
---
duration_ms: 0.3071
...
1..6
# tests 6
# suites 0
# pass 6
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 559.0462
TAP version 13
# Subtest: SmartDag - file exists and exports
ok 1 - SmartDag - file exists and exports
---
duration_ms: 4.3779
...
# Subtest: SmartDag - contains Filters toggle button
ok 2 - SmartDag - contains Filters toggle button
---
duration_ms: 0.949
...
# Subtest: SmartDag - contains Assign toggle button
ok 3 - SmartDag - contains Assign toggle button
---
duration_ms: 0.7066
...
# Subtest: SmartDag - contains WorkflowTabs
ok 4 - SmartDag - contains WorkflowTabs
---
duration_ms: 1.1698
...
# Subtest: SmartDag - supports onAssignModeChange callback
ok 5 - SmartDag - supports onAssignModeChange callback
---
duration_ms: 1.4824
...
# Subtest: SmartDag - supports onSelectedIssueChange callback
ok 6 - SmartDag - supports onSelectedIssueChange callback
---
duration_ms: 0.8891
...
# Subtest: SmartDag - imports TaskCardGrid
ok 7 - SmartDag - imports TaskCardGrid
---
duration_ms: 0.93
...
# Subtest: SmartDag - imports WorkflowGraph
ok 8 - SmartDag - imports WorkflowGraph
---
duration_ms: 0.8032
...
# Subtest: SmartDag - passes assignMode to WorkflowGraph
ok 9 - SmartDag - passes assignMode to WorkflowGraph
---
duration_ms: 0.9817
...
# Subtest: SmartDag - manages hideClosed filter
ok 10 - SmartDag - manages hideClosed filter
---
duration_ms: 1.1005
...
# Subtest: SmartDag - manages sortReadyFirst filter
ok 11 - SmartDag - manages sortReadyFirst filter
---
duration_ms: 0.7155
...
# Subtest: SmartDag - uses useGraphAnalysis hook
ok 12 - SmartDag - uses useGraphAnalysis hook
---
duration_ms: 0.6575
...
1..12
# tests 12
# suites 0
# pass 12
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 326.9817
TAP version 13
# Subtest: UnifiedShell - file exists and exports
ok 1 - UnifiedShell - file exists and exports
---
duration_ms: 4.1613
...
# Subtest: UnifiedShell - has assignMode state
ok 2 - UnifiedShell - has assignMode state
---
duration_ms: 1.0953
...
# Subtest: UnifiedShell - has selectedAssignIssue state
ok 3 - UnifiedShell - has selectedAssignIssue state
---
duration_ms: 0.7628
...
# Subtest: UnifiedShell - passes onAssignModeChange to SmartDag
ok 4 - UnifiedShell - passes onAssignModeChange to SmartDag
---
duration_ms: 0.7559
...
# Subtest: UnifiedShell - passes onSelectedIssueChange to SmartDag
ok 5 - UnifiedShell - passes onSelectedIssueChange to SmartDag
---
duration_ms: 1.3606
...
# Subtest: UnifiedShell - imports AssignmentPanel
ok 6 - UnifiedShell - imports AssignmentPanel
---
duration_ms: 0.9392
...
# Subtest: UnifiedShell - checks bd health and renders setup warning
ok 7 - UnifiedShell - checks bd health and renders setup warning
---
duration_ms: 0.7768
...
# Subtest: UnifiedShell - renders AssignmentPanel conditionally
not ok 8 - UnifiedShell - renders AssignmentPanel conditionally
---
duration_ms: 1.9496
location: 'C:\\Users\\Zenchant\\codex\\beadboard\\tests\\components\\unified-shell.test.tsx:2:3626'
failureType: 'testCodeFailure'
error: 'Should check view === graph && assignMode condition for AssignmentPanel'
code: 'ERR_ASSERTION'
name: 'AssertionError'
expected: true
actual: false
operator: '=='
stack: |-
TestContext.<anonymous> (C:\Users\Zenchant\codex\beadboard\tests\components\unified-shell.test.tsx:53:10)
async Test.run (node:internal/test_runner/test:935:9)
async Test.processPendingSubtests (node:internal/test_runner/test:633:7)
...
# Subtest: UnifiedShell - does not import SwarmWorkspace
ok 9 - UnifiedShell - does not import SwarmWorkspace
---
duration_ms: 1.647
...
# Subtest: UnifiedShell - does not import SwarmMissionPicker
ok 10 - UnifiedShell - does not import SwarmMissionPicker
---
duration_ms: 1.0699
...
1..10
# tests 10
# suites 0
# pass 9
# fail 1
# cancelled 0
# skipped 0
# todo 0
# duration_ms 309.2239

1395
.beads/npm_test_output3.txt Normal file

File diff suppressed because it is too large Load diff

3
.beads/task1.txt Normal file
View file

@ -0,0 +1,3 @@
✓ Created issue: beadboard-txj.1 — Implement graph transitive reduction algorithm
Priority: P0
Status: open

3
.beads/task2.txt Normal file
View file

@ -0,0 +1,3 @@
✓ Created issue: beadboard-txj.2 — Apply Status Colors and Transitive Context to Graph Edges
Priority: P0
Status: open

3
.beads/task3.txt Normal file
View file

@ -0,0 +1,3 @@
✓ Created issue: beadboard-txj.3 — Implement Graph Focus (Selection) Interactivity
Priority: P1
Status: open

790
.beads/test_output.txt Normal file
View file

@ -0,0 +1,790 @@
TAP version 13
# Subtest: bootstrap scaffold files exist
ok 1 - bootstrap scaffold files exist
---
duration_ms: 1.7879
...
# Subtest: package.json has next/react/typescript scripts and deps
ok 2 - package.json has next/react/typescript scripts and deps
---
duration_ms: 0.7269
...
1..2
# tests 2
# suites 0
# pass 2
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 109.641
TAP version 13
# Subtest: BaseCard Component Contract
# Subtest: exports BaseCard component
ok 1 - exports BaseCard component
---
duration_ms: 49.7712
...
1..1
ok 1 - BaseCard Component Contract
---
duration_ms: 50.4334
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.6802
...
# Subtest: applies correct status border class for "ready" status
ok 2 - applies correct status border class for "ready" status
---
duration_ms: 14.5164
...
# Subtest: applies correct status border class for "blocked" status
ok 3 - applies correct status border class for "blocked" status
---
duration_ms: 5.9515
...
# Subtest: applies selection ring when selected prop is true
ok 4 - applies selection ring when selected prop is true
---
duration_ms: 2.9283
...
1..4
ok 2 - BaseCard Styling Logic
---
duration_ms: 25.6463
type: 'suite'
...
1..2
# tests 5
# suites 2
# pass 5
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 387.1692
TAP version 13
# Subtest: AgentAvatar Component Contract
# Subtest: exports AgentAvatar component
ok 1 - exports AgentAvatar component
---
duration_ms: 116.5064
...
1..1
ok 1 - AgentAvatar Component Contract
---
duration_ms: 117.1492
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.4888
...
# Subtest: applies correct role color class for "orchestrator" role
ok 2 - applies correct role color class for "orchestrator" role
---
duration_ms: 1.8762
...
1..2
ok 2 - AgentAvatar Role Styling
---
duration_ms: 9.6138
type: 'suite'
...
# Subtest: AgentAvatar ZFC States
# Subtest: applies working pulse glow
ok 1 - applies working pulse glow
---
duration_ms: 1.3946
...
1..1
ok 3 - AgentAvatar ZFC States
---
duration_ms: 1.6685
type: 'suite'
...
1..3
# tests 4
# suites 3
# pass 4
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 435.7079
TAP version 13
# Subtest: SessionsHeader: Agent Grouping
# Subtest: groups agents by swarm
ok 1 - groups agents by swarm
---
duration_ms: 2.0443
...
# Subtest: shows fallback bucket for unassigned agents
ok 2 - shows fallback bucket for unassigned agents
---
duration_ms: 0.1574
...
# Subtest: handles empty swarm groups
ok 3 - handles empty swarm groups
---
duration_ms: 0.1261
...
1..3
ok 1 - SessionsHeader: Agent Grouping
---
duration_ms: 3.2814
type: 'suite'
...
1..1
# tests 3
# suites 1
# pass 3
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 267.9904
TAP version 13
# Subtest: getAgentRoleColor returns correct color for known roles
ok 1 - getAgentRoleColor returns correct color for known roles
---
duration_ms: 0.7796
...
# Subtest: getAgentRoleColor returns default for unknown role
ok 2 - getAgentRoleColor returns default for unknown role
---
duration_ms: 0.1221
...
1..2
# tests 2
# suites 0
# pass 2
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 250.2131
TAP version 13
# Subtest: parseIssuesJsonl applies defaults and preserves priority 0
ok 1 - parseIssuesJsonl applies defaults and preserves priority 0
---
duration_ms: 1.1101
...
# Subtest: parseIssuesJsonl skips malformed and blank lines
ok 2 - parseIssuesJsonl skips malformed and blank lines
---
duration_ms: 0.1893
...
# Subtest: parseIssuesJsonl filters tombstones by default
ok 3 - parseIssuesJsonl filters tombstones by default
---
duration_ms: 0.148
...
# Subtest: parseIssuesJsonl can include tombstones when requested
ok 4 - parseIssuesJsonl can include tombstones when requested
---
duration_ms: 0.1451
...
# 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.7609
...
1..5
# tests 5
# suites 0
# pass 5
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 275.8118
TAP version 13
# Subtest: canonicalizeWindowsPath normalizes separators and drive casing
ok 1 - canonicalizeWindowsPath normalizes separators and drive casing
---
duration_ms: 0.9571
...
# Subtest: windowsPathKey is case-insensitive stable key
ok 2 - windowsPathKey is case-insensitive stable key
---
duration_ms: 0.2276
...
# Subtest: toDisplayPath renders forward slashes for UI readability
ok 3 - toDisplayPath renders forward slashes for UI readability
---
duration_ms: 0.1456
...
# Subtest: sameWindowsPath handles case/separator differences
ok 4 - sameWindowsPath handles case/separator differences
---
duration_ms: 0.1285
...
1..4
# tests 4
# suites 0
# pass 4
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 257.9372
TAP version 13
# Subtest: LeftPanel Component Contract
# Subtest: exports LeftPanel component
ok 1 - exports LeftPanel component
---
duration_ms: 476.382
...
# Subtest: LeftPanel accepts issues and onEpicSelect props
ok 2 - LeftPanel accepts issues and onEpicSelect props
---
duration_ms: 2.427
...
1..2
ok 1 - LeftPanel Component Contract
---
duration_ms: 480.2344
type: 'suite'
...
# Subtest: LeftPanel Tree Structure
# Subtest: renders epics as expandable tree items
ok 1 - renders epics as expandable tree items
---
duration_ms: 2.4781
...
# Subtest: groups beads under their parent epic
ok 2 - groups beads under their parent epic
---
duration_ms: 2.3032
...
1..2
ok 2 - LeftPanel Tree Structure
---
duration_ms: 5.297
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: 2.5744
...
1..1
ok 3 - LeftPanel Responsive Behavior
---
duration_ms: 2.8537
type: 'suite'
...
# Subtest: LeftPanel Scope Controls
# Subtest: renders scope section
ok 1 - renders scope section
---
duration_ms: 2.4409
...
1..1
ok 4 - LeftPanel Scope Controls
---
duration_ms: 3.207
type: 'suite'
...
1..4
# tests 6
# suites 4
# pass 6
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 762.0118
TAP version 13
# Subtest: TopBar Component Contract
# Subtest: exports TopBar component
ok 1 - exports TopBar component
---
duration_ms: 928.6733
...
# Subtest: TopBar component can be imported without errors
ok 2 - TopBar component can be imported without errors
---
duration_ms: 1.5359
...
1..2
ok 1 - TopBar Component Contract
---
duration_ms: 931.4628
type: 'suite'
...
# Subtest: TopBar View Tabs
# Subtest: renders view tabs: Social, Graph
ok 1 - renders view tabs: Social, Graph
---
duration_ms: 2.2099
...
# Subtest: active tab has bold text and accent underline
ok 2 - active tab has bold text and accent underline
---
duration_ms: 1.9226
...
1..2
ok 2 - TopBar View Tabs
---
duration_ms: 4.5329
type: 'suite'
...
# Subtest: TopBar Filter and Controls
# Subtest: renders filter/search input placeholder
ok 1 - renders filter/search input placeholder
---
duration_ms: 1.6872
...
# Subtest: renders settings placeholder
ok 2 - renders settings placeholder
---
duration_ms: 1.1945
...
1..2
ok 3 - TopBar Filter and Controls
---
duration_ms: 3.3144
type: 'suite'
...
1..3
# tests 6
# suites 3
# pass 6
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 1275.1308
TAP version 13
# Subtest: Mobile Navigation - Hamburger Menu
# Subtest: exports MobileNav component
ok 1 - exports MobileNav component
---
duration_ms: 146.0955
...
# Subtest: renders tab buttons: Social, Graph
ok 2 - renders tab buttons: Social, Graph
---
duration_ms: 2.4626
...
# Subtest: highlights active tab with accent color
ok 3 - highlights active tab with accent color
---
duration_ms: 2.4243
...
# Subtest: uses setView from useUrlState on tab click
ok 4 - uses setView from useUrlState on tab click
---
duration_ms: 2.3011
...
1..4
ok 1 - Mobile Navigation - Hamburger Menu
---
duration_ms: 155.4009
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: 594.7571
...
# Subtest: hamburger button opens left panel drawer
ok 2 - hamburger button opens left panel drawer
---
duration_ms: 1.5433
...
# Subtest: hides hamburger on desktop
ok 3 - hides hamburger on desktop
---
duration_ms: 1.3406
...
1..3
ok 2 - TopBar Hamburger Menu
---
duration_ms: 598.2042
type: 'suite'
...
1..2
# tests 7
# suites 2
# pass 7
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 1074.08
TAP version 13
# Subtest: SwarmCard Component Contract
# Subtest: exports SwarmCard component
ok 1 - exports SwarmCard component
---
duration_ms: 301.3252
...
# Subtest: SwarmCard component can be imported without errors
ok 2 - SwarmCard component can be imported without errors
---
duration_ms: 1.6098
...
1..2
ok 1 - SwarmCard Component Contract
---
duration_ms: 304.0952
type: 'suite'
...
# Subtest: SwarmCard Agent Roster
# Subtest: renders agent avatars with liveness glow
ok 1 - renders agent avatars with liveness glow
---
duration_ms: 2.012
...
# Subtest: displays agent current task when available
ok 2 - displays agent current task when available
---
duration_ms: 1.5509
...
1..2
ok 2 - SwarmCard Agent Roster
---
duration_ms: 3.8907
type: 'suite'
...
# Subtest: SwarmCard Progress Bar
# Subtest: renders progress bar showing completion percentage
ok 1 - renders progress bar showing completion percentage
---
duration_ms: 1.4962
...
1..1
ok 3 - SwarmCard Progress Bar
---
duration_ms: 1.7516
type: 'suite'
...
# Subtest: SwarmCard Attention Items
# Subtest: renders attention items with warning styling
ok 1 - renders attention items with warning styling
---
duration_ms: 2.1433
...
1..1
ok 4 - SwarmCard Attention Items
---
duration_ms: 2.818
type: 'suite'
...
# Subtest: SwarmCard View-Jump Icons
# Subtest: renders view-jump icons for navigation
ok 1 - renders view-jump icons for navigation
---
duration_ms: 2.1341
...
1..1
ok 5 - SwarmCard View-Jump Icons
---
duration_ms: 2.4614
type: 'suite'
...
1..5
# tests 7
# suites 5
# pass 7
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 612.9682
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.9839
...
# 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.2403
...
# 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.1425
...
1..3
ok 1 - Valid URL Patterns - Social View
---
duration_ms: 2.0615
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.8342
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.<anonymous> (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 (<anonymous>)
new SafePromise (node:internal/per_context/primordials:451:29)
node:internal/per_context/primordials:483:9
Array.map (<anonymous>)
...
# 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.2386
...
# Subtest: /?view=graph&graphTab=flow - flow tab selected
ok 3 - /?view=graph&graphTab=flow - flow tab selected
---
duration_ms: 0.1616
...
# Subtest: /?view=graph&graphTab=overview - overview tab selected
ok 4 - /?view=graph&graphTab=overview - overview tab selected
---
duration_ms: 0.1198
...
# Subtest: /?view=graph&swarm=bb-buff - graph filtered by swarm
ok 5 - /?view=graph&swarm=bb-buff - graph filtered by swarm
---
duration_ms: 0.2708
...
1..5
not ok 2 - Valid URL Patterns - Graph View
---
duration_ms: 5.0492
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.2049
...
# 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.271
...
# 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.1949
...
1..3
ok 3 - Deprecated Swarm View Fallback
---
duration_ms: 0.8363
type: 'suite'
...
# Subtest: Valid URL Patterns - Activity View
# Subtest: /?view=activity - activity view default
ok 1 - /?view=activity - activity view default
---
duration_ms: 0.1634
...
# Subtest: /?view=activity&agent=bb-silver-castle - filtered by agent
ok 2 - /?view=activity&agent=bb-silver-castle - filtered by agent
---
duration_ms: 0.0883
...
# Subtest: /?view=activity&swarm=bb-buff - filtered by swarm
ok 3 - /?view=activity&swarm=bb-buff - filtered by swarm
---
duration_ms: 0.0828
...
1..3
ok 4 - Valid URL Patterns - Activity View
---
duration_ms: 0.5275
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.167
...
# 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.3965
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.<anonymous> (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.1068
...
# 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.0904
...
1..4
not ok 5 - Invalid Param Handling
---
duration_ms: 0.9102
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.2367
...
# Subtest: builds graph view with task URL
ok 2 - builds graph view with task URL
---
duration_ms: 0.0983
...
# Subtest: builds swarm view with swarm param
ok 3 - builds swarm view with swarm param
---
duration_ms: 0.0888
...
# Subtest: builds activity view with agent filter
ok 4 - builds activity view with agent filter
---
duration_ms: 0.159
...
# Subtest: preserves existing params when adding new ones
ok 5 - preserves existing params when adding new ones
---
duration_ms: 0.1957
...
# Subtest: removes params when set to null
ok 6 - removes params when set to null
---
duration_ms: 0.1242
...
# Subtest: returns root when all params cleared
ok 7 - returns root when all params cleared
---
duration_ms: 0.0988
...
1..7
ok 6 - URL Building - State to URL
---
duration_ms: 1.1817
type: 'suite'
...
# Subtest: Complex URL Scenarios
# Subtest: handles all params together
ok 1 - handles all params together
---
duration_ms: 0.1361
...
# Subtest: empty string values treated as null/empty
ok 2 - empty string values treated as null/empty
---
duration_ms: 0.0964
...
1..2
ok 7 - Complex URL Scenarios
---
duration_ms: 0.317
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.1474
...
# Subtest: SwarmCard Graph icon: /?view=graph&swarm={id}
ok 2 - SwarmCard Graph icon: /?view=graph&swarm={id}
---
duration_ms: 0.086
...
# Subtest: SwarmCard Timeline icon: /?view=activity&swarm={id}
ok 3 - SwarmCard Timeline icon: /?view=activity&swarm={id}
---
duration_ms: 0.2482
...
# Subtest: Agent avatar click: /?view=activity&agent={id}
ok 4 - Agent avatar click: /?view=activity&agent={id}
---
duration_ms: 0.1616
...
1..4
ok 8 - Deep Link Patterns - From Card Icons
---
duration_ms: 0.8134
type: 'suite'
...
1..8
not ok 1 - URL State Integration - bb-ui2.22
---
duration_ms: 12.6296
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 481.6532