Skip to content

[Future] Parse issue dependencies from database storage #122

Description

@frankbria

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

  1. Create issue_dependencies table if not exists
  2. Store dependencies on issue creation
  3. Parse dependencies when loading issues
  4. 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

  • issue_dependencies table created
  • Dependencies saved on issue creation
  • Dependencies parsed when loading issues
  • Multiple dependency types supported
  • Circular dependencies detected and prevented
  • Unit tests verify dependency storage/retrieval

Priority

P3 - Advanced: Useful for complex project planning, but not critical for MVP.

References

  • File: codeframe/persistence/database.py line 1941

Metadata

Metadata

Assignees

Labels

FutureDeferred - beyond v1/v2 scope, consider for future versionsenhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions