265 lines
8.9 KiB
JSON
265 lines
8.9 KiB
JSON
{
|
|
"projectName": "metal-kompanion-mcp",
|
|
"projectDescription": "MCP backend for Kompanion: memory/context/embedding provider over MCP, built from scratch (qtmcp-based) to persist conversation state and serve embeddings + retrieval to avoid forgetting across threads.",
|
|
"lastTaskId": 24,
|
|
"tasks": [
|
|
{
|
|
"id": 22,
|
|
"title": "Handlers → DAL integration",
|
|
"description": "Wire kom.memory.v1.upsert_memory/search_memory to IDatabase. Parse JSON with a real parser, validate against schemas, enforce scope and sensitivity rules.",
|
|
"status": "todo",
|
|
"priority": 490,
|
|
"priorityDisplay": "P0",
|
|
"dependsOn": [],
|
|
"createdAt": "2025-10-14T00:30:26.285Z",
|
|
"updatedAt": "2025-10-14T00:30:26.285Z",
|
|
"subtasks": [
|
|
{
|
|
"id": "22.1",
|
|
"title": "Replace ad-hoc JSON with parser (nlohmann/json or simdjson)",
|
|
"status": "todo",
|
|
"createdAt": "2025-10-14T00:30:33.761Z",
|
|
"updatedAt": "2025-10-14T00:30:33.761Z",
|
|
"activityLog": [
|
|
{
|
|
"timestamp": "2025-10-14T00:30:33.761Z",
|
|
"type": "log",
|
|
"message": "Subtask created with title: \"Replace ad-hoc JSON with parser (nlohmann/json or simdjson)\""
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "22.2",
|
|
"title": "Validate request bodies against schemas before DAL calls",
|
|
"status": "todo",
|
|
"createdAt": "2025-10-14T00:30:39.868Z",
|
|
"updatedAt": "2025-10-14T00:30:39.868Z",
|
|
"activityLog": [
|
|
{
|
|
"timestamp": "2025-10-14T00:30:39.868Z",
|
|
"type": "log",
|
|
"message": "Subtask created with title: \"Validate request bodies against schemas before DAL calls\""
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "22.3",
|
|
"title": "Scope & sensitivity enforcement (namespace/user + skip secret embeddings)",
|
|
"status": "todo",
|
|
"createdAt": "2025-10-14T00:30:45.261Z",
|
|
"updatedAt": "2025-10-14T00:30:45.261Z",
|
|
"activityLog": [
|
|
{
|
|
"timestamp": "2025-10-14T00:30:45.261Z",
|
|
"type": "log",
|
|
"message": "Subtask created with title: \"Scope & sensitivity enforcement (namespace/user + skip secret embeddings)\""
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"lastSubtaskIndex": 3,
|
|
"relatedFiles": [],
|
|
"activityLog": [
|
|
{
|
|
"timestamp": "2025-10-14T00:30:26.285Z",
|
|
"type": "log",
|
|
"message": "Task created with title: \"Handlers → DAL integration\""
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 23,
|
|
"title": "Contract tests: DAL-backed tools",
|
|
"description": "Expand CTest to cover DAL-backed upsert/search and backup export/import; include error cases and schema violations; run against build-komhands.",
|
|
"status": "todo",
|
|
"priority": 511,
|
|
"priorityDisplay": "P1",
|
|
"dependsOn": [],
|
|
"createdAt": "2025-10-14T00:30:51.716Z",
|
|
"updatedAt": "2025-10-14T00:30:51.716Z",
|
|
"subtasks": [],
|
|
"lastSubtaskIndex": 0,
|
|
"relatedFiles": [],
|
|
"activityLog": [
|
|
{
|
|
"timestamp": "2025-10-14T00:30:51.716Z",
|
|
"type": "log",
|
|
"message": "Task created with title: \"Contract tests: DAL-backed tools\""
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 24,
|
|
"title": "Implement KompanionAI SDK",
|
|
"description": "",
|
|
"status": "todo",
|
|
"priority": 489,
|
|
"priorityDisplay": "medium",
|
|
"dependsOn": [],
|
|
"createdAt": "2025-10-16T09:24:13.006Z",
|
|
"updatedAt": "2025-10-16T09:30:49.564Z",
|
|
"subtasks": [
|
|
{
|
|
"id": "24.1",
|
|
"title": "Define Message & Thread Model",
|
|
"status": "done",
|
|
"createdAt": "2025-10-16T09:25:41.659Z",
|
|
"updatedAt": "2025-10-16T09:30:49.396Z",
|
|
"activityLog": [
|
|
{
|
|
"timestamp": "2025-10-16T09:25:41.660Z",
|
|
"type": "log",
|
|
"message": "Subtask created with title: \"Define Message & Thread Model\""
|
|
},
|
|
{
|
|
"timestamp": "2025-10-16T09:30:49.396Z",
|
|
"type": "log",
|
|
"message": "Status changed from \"todo\" to \"done\""
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "24.2",
|
|
"title": "Implement Tool / Function Calling",
|
|
"status": "done",
|
|
"createdAt": "2025-10-16T09:25:41.835Z",
|
|
"updatedAt": "2025-10-16T09:30:49.564Z",
|
|
"activityLog": [
|
|
{
|
|
"timestamp": "2025-10-16T09:25:41.835Z",
|
|
"type": "log",
|
|
"message": "Subtask created with title: \"Implement Tool / Function Calling\""
|
|
},
|
|
{
|
|
"timestamp": "2025-10-16T09:30:49.564Z",
|
|
"type": "log",
|
|
"message": "Status changed from \"todo\" to \"done\""
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "24.3",
|
|
"title": "Implement Provider abstraction (multi-backend)",
|
|
"status": "todo",
|
|
"createdAt": "2025-10-16T09:25:42.021Z",
|
|
"updatedAt": "2025-10-16T09:25:42.021Z",
|
|
"activityLog": [
|
|
{
|
|
"timestamp": "2025-10-16T09:25:42.021Z",
|
|
"type": "log",
|
|
"message": "Subtask created with title: \"Implement Provider abstraction (multi-backend)\""
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "24.4",
|
|
"title": "Implement Completion / Reply / Streaming Events",
|
|
"status": "todo",
|
|
"createdAt": "2025-10-16T09:25:42.197Z",
|
|
"updatedAt": "2025-10-16T09:25:42.197Z",
|
|
"activityLog": [
|
|
{
|
|
"timestamp": "2025-10-16T09:25:42.197Z",
|
|
"type": "log",
|
|
"message": "Subtask created with title: \"Implement Completion / Reply / Streaming Events\""
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "24.5",
|
|
"title": "Implement Options / Policies / Privacy",
|
|
"status": "todo",
|
|
"createdAt": "2025-10-16T09:25:42.371Z",
|
|
"updatedAt": "2025-10-16T09:25:42.371Z",
|
|
"activityLog": [
|
|
{
|
|
"timestamp": "2025-10-16T09:25:42.371Z",
|
|
"type": "log",
|
|
"message": "Subtask created with title: \"Implement Options / Policies / Privacy\""
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "24.6",
|
|
"title": "Implement Embeddings (for RAG / memory)",
|
|
"status": "todo",
|
|
"createdAt": "2025-10-16T09:25:42.547Z",
|
|
"updatedAt": "2025-10-16T09:25:42.547Z",
|
|
"activityLog": [
|
|
{
|
|
"timestamp": "2025-10-16T09:25:42.547Z",
|
|
"type": "log",
|
|
"message": "Subtask created with title: \"Implement Embeddings (for RAG / memory)\""
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "24.7",
|
|
"title": "Implement Agent Loop Conveniences",
|
|
"status": "todo",
|
|
"createdAt": "2025-10-16T09:25:42.723Z",
|
|
"updatedAt": "2025-10-16T09:25:42.724Z",
|
|
"activityLog": [
|
|
{
|
|
"timestamp": "2025-10-16T09:25:42.724Z",
|
|
"type": "log",
|
|
"message": "Subtask created with title: \"Implement Agent Loop Conveniences\""
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "24.8",
|
|
"title": "Implement Error Model & Cancellation",
|
|
"status": "todo",
|
|
"createdAt": "2025-10-16T09:25:42.898Z",
|
|
"updatedAt": "2025-10-16T09:25:42.898Z",
|
|
"activityLog": [
|
|
{
|
|
"timestamp": "2025-10-16T09:25:42.898Z",
|
|
"type": "log",
|
|
"message": "Subtask created with title: \"Implement Error Model & Cancellation\""
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "24.9",
|
|
"title": "Expose to QML",
|
|
"status": "todo",
|
|
"createdAt": "2025-10-16T09:25:43.075Z",
|
|
"updatedAt": "2025-10-16T09:25:43.075Z",
|
|
"activityLog": [
|
|
{
|
|
"timestamp": "2025-10-16T09:25:43.075Z",
|
|
"type": "log",
|
|
"message": "Subtask created with title: \"Expose to QML\""
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "24.10",
|
|
"title": "Migrate KLLM to KompanionAI",
|
|
"status": "todo",
|
|
"createdAt": "2025-10-16T09:25:43.252Z",
|
|
"updatedAt": "2025-10-16T09:25:43.252Z",
|
|
"activityLog": [
|
|
{
|
|
"timestamp": "2025-10-16T09:25:43.252Z",
|
|
"type": "log",
|
|
"message": "Subtask created with title: \"Migrate KLLM to KompanionAI\""
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"lastSubtaskIndex": 10,
|
|
"relatedFiles": [],
|
|
"activityLog": [
|
|
{
|
|
"timestamp": "2025-10-16T09:24:13.006Z",
|
|
"type": "log",
|
|
"message": "Task created with title: \"Implement KompanionAI SDK\""
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|