feat: update task user stories and enhance task dialogs with timezone support

This commit is contained in:
Roberto Musso
2026-02-24 16:56:54 +01:00
parent 7a1aec0d9f
commit e70982c8b6
8 changed files with 206 additions and 72 deletions

View File

@@ -1,4 +1,4 @@
## Your Task US-021
## Your Task US-022
1. Read the full app PRD at `prd-main.md` (in the same directory as this file)
2. Read the PRD at `prd.json` (in the same directory as this file)
@@ -23,18 +23,17 @@ APPEND to progress.txt (never replace, always append):
## USER REQUEST
{
"id": "US-021",
"title": "@ProjectAgent with project action tools",
"description": "As a user, I want the AI to answer project-specific questions and take actions like adding tasks, summarizing the project, and suggesting checkpoints.",
"id": "US-022",
"title": "LanceDB vector store setup and note embedding pipeline",
"description": "As a developer, I need notes embedded into LanceDB so that semantic search across all project notes is possible.",
"acceptanceCriteria": [
"read_project_notes tool: fetches all notes for the scoped projectId from SQLite and returns combined content to the model",
"add_task tool: creates a task in the project via tasks.create and confirms with 'Task added: [title]' in the chat response",
"get_summary tool: calls the SDK to generate a 2-3 sentence summary of the project based on its notes and tasks, then calls projects.update to persist the result in project.aiSummary",
"suggest_checkpoints tool: returns a JSON array of { title: string, date: string } proposed checkpoints based on date-anchored commitments found in notes",
"@Orchestrator routes project-context messages to @ProjectAgent",
"vectordb (LanceDB Node.js binding) installed and initialized in main process only; vector DB stored at app.getPath('userData')/vectors/",
"After notes.create or notes.update, note content is embedded via the GitHub Copilot SDK embeddings endpoint and upserted in LanceDB with metadata: { noteId, projectId, content }",
"On first app startup, a migration routine checks if the 'notes' LanceDB table exists; if not, embeds all existing SQLite notes and populates LanceDB",
"Embedding errors are caught and logged to console (console.error) but do not reject the notes.update/create promise",
"Typecheck passes"
],
"priority": 21,
"priority": 22,
"passes": false,
"notes": ""
}