Skip to content

[Task]: Implement relationships/dependencies between tasks #55

@luizhcastro

Description

@luizhcastro

Objective

Implement a system to create and manage dependencies/relationships between tasks. This includes defining dependency types (blocks, blocked by, relates to), ensuring dependency integrity, and providing APIs to query task relationships.

Scope

In scope:

  • Create task_relationships entity with relationship types (blocks, blocked_by, relates_to, duplicates, parent_of, child_of)
  • API endpoints to add/remove task relationships
  • GET /api/tasks/:id/dependencies to retrieve all relationships
  • Validation to prevent circular dependencies
  • Cascade handling when tasks are deleted
  • Support for querying blocked/blocking tasks

Out of scope:

  • Gantt chart or timeline visualization
  • Automatic dependency resolution
  • Critical path calculation
  • Dependency notifications (separate issue)

Acceptance criteria

  • task_relationships entity created with all relationship types
  • POST /api/tasks/:id/relationships endpoint to create relationship
  • DELETE /api/tasks/:id/relationships/:relationshipId endpoint
  • GET /api/tasks/:id/dependencies returning all related tasks
  • Circular dependency validation implemented
  • Cascading delete handling when tasks are removed
  • Can query tasks blocked by a specific task
  • Can query tasks blocking a specific task
  • Unit tests covering all relationship types
  • API documentation updated

Deadline (optional)

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions