The renderGraph function was being called with nil instead of the
loaded subgraph, causing a nil pointer dereference in
computeDependencyCounts when iterating over subgraph.Dependencies.
Changes:
- Pass subgraph variable to renderGraph instead of nil
- Add defensive nil check in computeDependencyCounts
- Add test case for nil subgraph handling
Fixes GH#657
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- graph.go: Pass subgraph to renderGraph() instead of nil (fixes#657)
The nil subgraph was dereferenced in computeDependencyCounts()
causing a panic when running `bd graph` on epics.
- postinstall.js: Wait for file.close() callback before resolving (fixes#652)
On Windows, the file was still locked when extraction started
because resolve() was called immediately after file.close()
without waiting for the close to complete.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Restore the subgraph parameter in renderGraph (previously marked as
unused with _) and use it to display meaningful dependency information:
- Add computeDependencyCounts() to calculate blocks/blocked-by counts
- Add renderNodeBoxWithDeps() to render nodes with dependency info
- Show "blocks:N" when an issue blocks N other issues
- Show "needs:N" when an issue depends on N other issues
- Add dependency summary showing total blocking relationships
This makes the graph visualization more informative by showing how
issues relate to each other in the dependency chain.
Tests added:
- TestComputeDependencyCounts: verifies dependency counting logic
- TestRenderNodeBoxWithDeps: verifies box rendering with dep info
Co-authored-by: Charles P. Cross <cpdata@users.noreply.github.com>
The subgraph parameter was passed to renderGraph but not used in the
function body, causing an unparam lint error. Replace with _ to
indicate intentional non-use.
The graph command now shows issues connected via any dependency type
(blocks, parent-child, etc.), not just parent-child relationships.
This makes bd graph useful for epics where children are connected via
blocks dependencies rather than hierarchical parent-child.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
New command to visualize issue dependency graphs:
- Layered layout (Sugiyama-style) shows execution order
- Status coloring (open/in_progress/blocked/closed)
- Works with epics to show full subgraph
- Layer 0 = ready tasks (no blockers)
Usage: bd graph <issue-id>
Part of bd-r6a workflow system redesign.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>