Skip to content

feat: show task dependencies in iteration detail view (Issue #180)#189

Merged
subsy merged 7 commits intomainfrom
claude/show-task-dependencies-Iztjo
Jan 22, 2026
Merged

feat: show task dependencies in iteration detail view (Issue #180)#189
subsy merged 7 commits intomainfrom
claude/show-task-dependencies-Iztjo

Conversation

@subsy
Copy link
Copy Markdown
Owner

@subsy subsy commented Jan 22, 2026

Summary

  • Display task dependencies in iteration detail view with "Blocked by:" and "Blocks:" sections
  • Update task status icons for better visual distinction (green circle for actionable, green play for active, red no-entry for blocked)
  • Compute blocks field (inverse of dependsOn) for trackers that don't provide it natively
  • Works across all tracker types (JSON, beads, beads-rust, beads-bv)

Changes

Iteration Detail View

  • Added Dependencies section showing blocking relationships
  • Compact single-line format with middle dot separator: Blocked by: US-001 · US-002

Task Status Icons

Status Icon Color
Actionable (ready) Green
Active (running) Green
Blocked Red
Error Red
Done/Closed Green/Grey

Dependency Logic

  • dependsOn: Tasks this task depends on (provided by tracker)
  • blocks: Tasks that depend on this task (computed if not provided)
  • Beads trackers provide both from CLI; JSON tracker computes blocks

Test plan

  • Added 18 tests for computeBlocksMap and applyBlocksToTasks logic
  • Added 10 tests for updated task status icons and colors
  • theme.ts has 100% test coverage
  • All 2032 tests pass (2 pre-existing failures unrelated to this PR)
  • Manual: Load test-prd.json and verify dependency chains display correctly
  • Manual: Verify task list shows correct icons for actionable/blocked tasks

Closes #180

Summary by CodeRabbit

  • New Features

    • Added a Dependencies section displaying blocked-by and blocks relationships for tasks.
  • Style

    • Updated task status visual indicators with new icons (done ✓, active ▶, actionable ○, blocked ⊘, error ✗).
    • Revised colour scheme: green for active/actionable tasks, red for blocked/error, grey for pending.

✏️ Tip: You can customize this high-level summary in your review settings.

claude and others added 7 commits January 22, 2026 12:17
Add a Dependencies section to the IterationDetailView that displays:
- "Blocked by:" showing tasks that this task depends on
- "Blocks:" showing tasks that depend on this task

This provides clearer visibility into task relationships when viewing
iteration details, matching the information shown in TaskDetailView.
This project uses bun.lock as its lockfile. Adding package-lock.json
to gitignore prevents accidental commits when npm is used as a fallback.
Use middle dot (·) separator to show all dependency IDs on one line
for a more compact vertical display in the iteration detail view.
- Change 'actionable' icon from ▶ to ○ (green circle for ready tasks)
- Change 'active' color from blue to green (running task)
- Update documentation to reflect new icon meanings

Task status icons now clearly distinguish:
- ○ green: ready/actionable (can be picked)
- ▶ green: active/running
- ⊘ red: blocked by dependencies
- ✗ red: error/failed
- ✓ green: done
- ✓ grey: closed (historical)
Added computation of the 'blocks' field in convertTasksWithDependencyStatus().
This field shows which other tasks depend on each task, which is the inverse
of the dependsOn relationship. Now the iteration detail view can correctly
display both "Blocked by" (tasks this one depends on) and "Blocks" (tasks
that depend on this one).
Beads trackers (beads, beads-bv, beads-rust) already provide the 'blocks'
field from their CLI output. The computed version should only be used as
a fallback for trackers that don't provide it (like the JSON tracker).
Added tests for:
- computeBlocksMap: inverse of dependsOn relationship
- applyBlocksToTasks: preferring tracker-provided blocks
- Task status icons: verifying correct symbols for each status
- Task status colors: verifying green for active/actionable, red for blocked/error

These tests mirror the logic added to convertTasksWithDependencyStatus
in RunApp.tsx without requiring React component testing.
@vercel
Copy link
Copy Markdown

vercel bot commented Jan 22, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Review Updated (UTC)
ralph-tui Ignored Ignored Jan 22, 2026 0:17am

Request Review

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Jan 22, 2026

Walkthrough

The pull request adds task dependency visualisation features, including a new Dependencies section in the iteration detail view, computation of inverse dependency relationships, status indicator styling updates with green for active tasks and red for blocked tasks, and comprehensive test coverage for these additions.

Changes

Cohort / File(s) Summary
Dependencies UI & Data Enrichment
src/tui/components/IterationDetailView.tsx, src/tui/components/RunApp.tsx
New Dependencies section renders blocking relationships with conditional display of "Blocked by" and "Blocks" items. Parallel inverse mapping computation (blocksMap) enriches TaskItem with derived blocks data when missing.
Status Indicators & Colours
src/tui/theme.ts
Task status indicators remapped: actionable ▶→○, blocked with explicit ⊘, error with explicit ✗. Task.active colour changed from blue to green. Documentation updated to describe new iconography and colour assignments (green for active/actionable, red for blocked/error, grey for pending, dimmed for closed).
Configuration
.gitignore
Added package-lock.json to ignore list.
Test Coverage
tests/tui/state-utils.test.ts, tests/tui/theme.test.ts
Comprehensive test suites added for computeBlocksMap and applyBlocksToTasks functions covering dependency computation scenarios. New theme tests validate status indicators return correct Unicode symbols and colours align with Issue 180 requirements (active/actionable green #9ece6a, blocked/error red #f7768e, pending grey #565f89, closed dimmed #414868).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

A rabbit hops through dependencies now,
Blocks and blocked-by, a visual wow! 🐰
Green for the racing, red for the stuck,
Status and symbols—good UI luck!
Task relationships clear as can be,
Dependencies mapped for all eyes to see ✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Linked Issues check ⚠️ Warning The PR adds dependency visibility and improves task status indicators, but does not implement automatic task starting or fix the tabs/instances functionality that issue #180 requests. Issue #180 asks for a 'Just GO' workflow that reduces manual steps to start tasks and fixes non-functional UI controls (tabs, instances). This PR only addresses visual dependency display, not the core 'go/go/go' automation or control functionality requested.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main feature addition: displaying task dependencies in the iteration detail view, and correctly references the linked issue #180.
Out of Scope Changes check ✅ Passed All changes are scoped to displaying dependencies and updating status icons/colours. The .gitignore update is minor housekeeping. No unrelated changes detected.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@codecov
Copy link
Copy Markdown

codecov bot commented Jan 22, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 44.83%. Comparing base (6c15061) to head (cd7fe28).
⚠️ Report is 8 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##             main     #189   +/-   ##
=======================================
  Coverage   44.83%   44.83%           
=======================================
  Files          76       76           
  Lines       22029    22029           
=======================================
  Hits         9877     9877           
  Misses      12152    12152           
Files with missing lines Coverage Δ
src/tui/theme.ts 100.00% <100.00%> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@subsy subsy merged commit 84f1f6c into main Jan 22, 2026
9 checks passed
sakaman pushed a commit to sakaman/ralph-tui that referenced this pull request Feb 15, 2026
…-Iztjo

feat: show task dependencies in iteration detail view (Issue subsy#180)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Just GO mode?

2 participants