Overview
Issue dependencies are not parsed from database storage, always returning empty array.
Current State
File: codeframe/persistence/database.py line 1941
"depends_on": [], # TODO: Parse from database if stored
Expected Behavior
- Store issue dependencies in database (junction table)
- Parse dependencies when loading issues
- Return list of issue IDs this issue depends on
- Support multiple dependency types (blocks, related, etc.)
Implementation Requirements
- Create
issue_dependencies table if not exists
- Store dependencies on issue creation
- Parse dependencies when loading issues
- Return dependency list in Issue object
Database Schema
CREATE TABLE IF NOT EXISTS issue_dependencies (
id INTEGER PRIMARY KEY AUTOINCREMENT,
issue_id INTEGER NOT NULL,
depends_on_issue_id INTEGER NOT NULL,
dependency_type TEXT DEFAULT 'blocks', -- blocks, related, parent-child
created_at TEXT NOT NULL,
FOREIGN KEY (issue_id) REFERENCES issues(id),
FOREIGN KEY (depends_on_issue_id) REFERENCES issues(id),
UNIQUE(issue_id, depends_on_issue_id, dependency_type)
);
Example Usage
# Create issue with dependencies
issue = Issue(
issue_number="2.1",
title="User authentication",
depends_on=["1.5", "1.8"] # Depends on these issues
)
db.save_issue(issue)
# Load issue with dependencies
loaded = db.get_issue_by_number("2.1")
print(loaded.depends_on) # ["1.5", "1.8"]
Acceptance Criteria
Priority
P3 - Advanced: Useful for complex project planning, but not critical for MVP.
References
- File: codeframe/persistence/database.py line 1941
Overview
Issue dependencies are not parsed from database storage, always returning empty array.
Current State
File:
codeframe/persistence/database.pyline 1941Expected Behavior
Implementation Requirements
issue_dependenciestable if not existsDatabase Schema
Example Usage
Acceptance Criteria
Priority
P3 - Advanced: Useful for complex project planning, but not critical for MVP.
References