Overview
The /api/projects/{id}/tasks endpoint returns hardcoded mock data instead of querying the database.
Current State
File: codeframe/ui/routers/projects.py lines 220-229
@router.get("/{project_id}/tasks")
async def get_tasks(project_id: int, status: str | None = None, limit: int = 50):
"""Get project tasks."""
# TODO: Query database with filters
return {
"tasks": [
{
"id": 27,
"title": "JWT refresh token flow",
# ... hardcoded mock data
Expected Behavior
- Query
tasks table from database with filters
- Support filtering by status, assignee, priority
- Apply limit and offset for pagination
- Return actual task data as Task objects
- Handle empty results gracefully
Implementation Requirements
- Import
Database instance (from FastAPI dependency injection)
- Call
db.get_tasks_for_project(project_id, filters={'status': status})
- Convert Task objects to dictionaries for JSON response
- Add pagination parameters (limit, offset)
- Handle database errors gracefully
Acceptance Criteria
Priority
P1 - Critical: Dashboard needs real data to display task progress.
References
- Issues Analysis: CODEFRAME_ISSUES_ANALYSIS.md lines 76-82
- User Documentation: CODEFRAME_USER_DOCUMENTATION.md lines 242
Overview
The
/api/projects/{id}/tasksendpoint returns hardcoded mock data instead of querying the database.Current State
File:
codeframe/ui/routers/projects.pylines 220-229Expected Behavior
taskstable from database with filtersImplementation Requirements
Databaseinstance (from FastAPI dependency injection)db.get_tasks_for_project(project_id, filters={'status': status})Acceptance Criteria
Priority
P1 - Critical: Dashboard needs real data to display task progress.
References