Originally created by: adityaharishch
- Filter Jira REST queries to fetch only Task and Feature issue types
- Add separate parent_key column for epic/parent relationship tracking
- Use only normalized status_category values (todo, in_progress, done)
- Remove redundant status column via database migration
- Fix Rust daemon pm_tasks upsert SQL parameter binding
Changes:
- src/intelligence/providers/jira.rs: Updated JQL, added parent handling, fixed SQL
- scripts/refresh_pm_tasks.py: Filter subtasks, normalize status, add parent tracking
- services/agents/run_task_linker.py: Query parent_key from db, filter subtasks
- services/agents/_system_context.py: Update column documentation
- src/migrations/021_remove_subtasks.sql: Delete existing subtasks
- src/migrations/022_drop_status_keep_category.sql: Drop status column
- tests/task_linker_smoke.rs: Update migration runs
- services/requirements.txt: Add dependencies
- .gitignore: Ignore tool artifacts
Originally posted by: Akarsh-Hegde
Code Review - PR [#25]: Fix PM Tasks
✅ Overall Assessment
Good work on cleaning up the PM tasks schema and filtering logic. The changes improve data quality by excluding subtasks and normalizing status categories.
🔍 Detailed Review
1. JQL Filtering Logic (src/intelligence/providers/jira.rs)
AND type NOT IN (Subtask)is the correct way to filter subtasks in Jira2. Status Category Normalization (Migrations 021 & 022)
3. parent_key Column
4. Python Changes (services/agents/run_task_linker.py)
5. SQL Parameter Binding (Rust upsert)
cargo testto confirm no test regressions?⚠️ Potential Issues
🚀 Suggestions
Add a unit test for the new JQL in jira.rs:
rust #[test] fn test_jql_excludes_subtasks() { /* ... */ }Add a comment to the parent_key column documenting its semantics
Verify the migrations work on a fresh DB and also on an existing DB with data
✨ Nice to Have
Status: Request Review After Addressing [#1] & [#2]
Let me know if you'd like me to review the full diff in more detail or pair on the migration consolidation.
Related
Tickets:
#1Tickets:
#2Tickets:
#25Ticket changed by: adityaharishch