fix: use bd ready for dependency-aware task ordering#109
Conversation
Override getNextTask() in BeadsTrackerPlugin to use `bd ready --json` instead of relying on the base implementation with `bd list`. The previous approach failed because `bd list --json` doesn't include dependency data, causing all tasks to appear "ready" regardless of their actual blockers. This led to tasks being shown in wrong order (e.g., task 18 before task 1 in a chained dependency setup). The fix leverages `bd ready` which: - Performs server-side dependency filtering - Returns only truly unblocked tasks - Uses hybrid sorting (priority + other factors) - Supports the same filters (parent, labels, priority, assignee) Fixes #97
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
WalkthroughAdds a Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~22 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches
📜 Recent review detailsConfiguration used: Organization UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (2)
🧰 Additional context used📓 Path-based instructions (2)**/*.{js,ts,jsx,tsx}📄 CodeRabbit inference engine (CLAUDE.md)
Files:
**/*.{js,ts,tsx,jsx}📄 CodeRabbit inference engine (AGENTS.md)
Files:
🧬 Code graph analysis (2)src/plugins/trackers/builtin/beads.ts (1)
tests/plugins/beads-tracker.test.ts (1)
🔇 Additional comments (3)
✏️ Tip: You can disable this entire section by setting 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. Comment |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #109 +/- ##
==========================================
+ Coverage 26.35% 26.54% +0.19%
==========================================
Files 69 69
Lines 16516 16559 +43
==========================================
+ Hits 4352 4395 +43
Misses 12164 12164
🚀 New features to boost your workflow:
|
The PR #109 fix added getNextTask() to BeadsTrackerPlugin but the engine never called it. The engine was doing its own getTasks() + isTaskReady() loop which returned tasks in wrong order since bd list doesn't include dependency data. Changes: - Add excludeIds to TaskFilter for skipped task handling - Update engine's getNextAvailableTask() to delegate to tracker.getNextTask() - Add tests for delegation and excludeIds filter Fixes #97
fix: use bd ready for dependency-aware task ordering
The PR subsy#109 fix added getNextTask() to BeadsTrackerPlugin but the engine never called it. The engine was doing its own getTasks() + isTaskReady() loop which returned tasks in wrong order since bd list doesn't include dependency data. Changes: - Add excludeIds to TaskFilter for skipped task handling - Update engine's getNextAvailableTask() to delegate to tracker.getNextTask() - Add tests for delegation and excludeIds filter Fixes subsy#97
Summary
getNextTask()inBeadsTrackerPluginto usebd ready --jsonfor server-side dependency filteringbd list --jsondidn't include dependency data, causing all tasks to appear "ready"Changes
getNextTask()override that usesbd readywith support for parent, labels, priority, and assignee filtersgetNextTask()behaviorTest plan
bun run typecheckpassesbun run lintpassesbun run buildpassesbun test tests/plugins/beads-tracker.test.tspasses (25 pass, 6 todo)Fixes #97
Summary by CodeRabbit
Release Notes
New Features
Tests
✏️ Tip: You can customize this high-level summary in your review settings.