Commit Graph

14 Commits

Author SHA1 Message Date
Roberto Musso
50b7fa784c US/025 2026-02-25 07:31:50 +01:00
Roberto Musso
5445bb0eec feat: implement AI checkpoint and task suggestion UI with approval flow 2026-02-24 22:29:09 +01:00
Roberto Musso
2cb2f0e4e8 feat: integrate vectordb for note embeddings
- Added `vectordb` as a dependency in `package.json`.
- Implemented `embedText` function in `src/main/ai/embeddings.ts` to handle text embeddings using GitHub Copilot OAuth token or OpenAI token.
- Created `vectordb.ts` for managing LanceDB connection and embedding notes with upsert strategy.
- Updated `index.ts` to initialize vector database and migrate existing notes on app ready.
- Modified `router/index.ts` to fire-and-forget embedding calls on note creation and updates.
- Enhanced `progress.txt` with detailed implementation notes and learnings regarding the integration.
2026-02-24 21:34:48 +01:00
Roberto Musso
00a43e0fbc feat: Integrate GitHub Copilot SDK and LangChain for provider-independent orchestration
- Added @github/copilot-sdk and related dependencies for GitHub Copilot integration.
- Implemented ChatCopilot adapter for LangChain compatibility.
- Created LLM factory to return provider-specific models (OpenAI, Anthropic, Copilot).
- Developed Orchestrator agent using LangGraph for intent routing and context assembly.
- Enhanced IPC communication for streaming AI responses to the renderer.
- Updated progress documentation with implementation details and learnings.
2026-02-23 17:58:00 +01:00
Roberto Musso
c1aa6829c9 feat: add task comments feature with CRUD operations
- Introduced a new `task_comments` table in the database schema.
- Implemented task comments API endpoints for listing, creating, and deleting comments.
- Enhanced the task detail dialog to display comments and allow users to add new comments.
- Updated task row component to handle click events for viewing task details.
- Added a theme provider to manage light/dark mode across the application.
- Refactored Milkdown editor to use Crepe for improved markdown editing experience.
- Updated global styles to accommodate new editor and theme changes.
- Enhanced task filtering and sorting functionality in the tasks page.
2026-02-23 12:54:14 +01:00
Roberto Musso
5bd9d72cc6 feat: add PriorityBadge component and integrate into TaskRow
- Implemented PriorityBadge component to display task priority with icons.
- Created TaskRow component to represent individual tasks with metadata.
- Added breadcrumb navigation for task hierarchy.
- Enhanced checkbox component to support indeterminate state.
- Introduced InputGroup for better input handling in task search.
- Updated tasks route to utilize new components and improve UI.
- Added empty state representation for task list.
2026-02-20 22:23:46 +01:00
Roberto Musso
8c1fb54afd feat: add context menu component and update dropdown, select styles
- Implemented a new ContextMenu component with various subcomponents for better UI interaction.
- Updated DropdownMenu and Select components to include hover effects for improved user experience.
- Enhanced global styles with new CSS variables for better theming and consistency across components.
2026-02-20 12:17:50 +01:00
Roberto Musso
4180c3d215 feat: US-010 — Projects sidebar tree view and project detail routing
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 22:54:02 +01:00
Roberto Musso
939d503f3a feat: US-008 — Checkpoint and Note tRPC procedures (CRUD)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-19 17:05:06 +01:00
Roberto Musso
9cff6a4126 feat: US-007 — Task tRPC procedures (CRUD + filtering)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-19 17:02:09 +01:00
Roberto Musso
fa1fd2b9f5 feat: US-006 — Project tRPC procedures (CRUD)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-19 16:58:46 +01:00
Roberto Musso
1794ab0416 feat: US-005 — Client tRPC procedures (CRUD)
Implemented full CRUD for the clients router:
- clients.list: returns all clients ordered by name
- clients.create: inserts with UUID + createdAt timestamp
- clients.update: partial update of name and/or industry
- clients.delete: guard check — returns error payload if client has
  sub-clients or projects (does not delete)
- clients.deleteWithCascade: BFS recursion to collect all descendant
  clients, nulls projectId on orphaned tasks, then deletes projects
  and all collected clients in order

Imports added: eq, asc, inArray from drizzle-orm; getDb and schema
tables (clients, projects, tasks) from db module.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-19 16:56:14 +01:00
Roberto Musso
c99799bb05 feat: US-004 — App shell layout and sidebar navigation
- Add electron-store@8 for sidebar collapse state persistence via settings tRPC router
- Add @fontsource/geist for self-hosted Geist font (remove Google Fonts CDN)
- Add right-edge vertical 'keep scrolling for AI' label with chevron-down in all views
- Wire AppShell collapse toggle to settings.setSidebarCollapsed tRPC mutation
- Fix ESLint config with eslint-import-resolver-typescript to resolve @/* path aliases

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-19 16:50:38 +01:00
Roberto Musso
5254d13e4e feat: US-003 — electron-trpc IPC bridge and appRouter scaffold
- Install electron-trpc, @trpc/server, @trpc/client, @trpc/react-query, @tanstack/react-query, zod
- Create appRouter in src/main/router/index.ts with stub routers for: health, clients, projects, tasks, checkpoints, notes, ai
- health.ping procedure returns 'pong'
- All procedure inputs validated with Zod schemas
- Configure IPC handler in main process (createIPCHandler) and preload (exposeElectronTRPC)
- Create renderer trpc client in src/renderer/lib/trpc.ts with ipcLink
- Wrap app with TRPCProvider + QueryClientProvider in src/renderer/index.tsx
- Verify health.ping in HomePage component (shows 'tRPC IPC bridge: pong')
- Typecheck passes

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-19 16:41:52 +01:00