Commit Graph

53 Commits

Author SHA1 Message Date
Roberto Musso
b4e97e14f3 feat(floating-ai): step 2 — create section registry + FloatingChatContext
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 22:43:05 +01:00
Roberto Musso
78b4df1028 chore: remove unused Claude configuration files and update .gitignore 2026-02-27 22:35:18 +01:00
Roberto Musso
96101e4310 feat(floating-ai): step 1 — extract shared useAIChat hook
Refactor AIChatPanel to consume the existing useAIChat hook instead of
managing chat state inline. Removes duplicate ChatMessage interface,
inline state (messages, input, isStreaming, streamingContent), and the
65-line handleSend callback, replacing them with a single useAIChat()
call and a thin briefLoading guard wrapper.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 22:27:11 +01:00
Roberto Musso
4b2162505c Merge branch 'develop' into feature/popup-ai 2026-02-26 23:46:14 +01:00
Roberto Musso
8f1ba08e54 delete unused file 2026-02-26 23:41:25 +01:00
Roberto Musso
a16e1cc42a feat: add custom hook useAIChat for managing AI chat interactions
- Implemented useAIChat hook to handle chat messages, input state, and streaming responses.
- Added types for ChatMessage and ChatContext to ensure type safety.
- Integrated TRPC mutation for sending messages and handling responses.
- Included functionality for clearing messages and managing streaming content.
2026-02-26 23:31:41 +01:00
Roberto Musso
e19582201f feat: enhance AIChatPanel UI with improved button styles and layout adjustments 2026-02-26 16:36:13 +01:00
Roberto Musso
f09afd2d9e feat: add daily brief functionality and integrate into AI chat panel 2026-02-26 16:18:41 +01:00
Roberto
f4eb278692 Update AI instructions 2026-02-26 14:27:01 +01:00
Roberto
3ec501388c Add local settings for MCP and update command execution
- Created a new settings.local.json file to enable MCP servers with "shadcn".
- Updated .mcp.json to change the command execution from "npx" to "cmd" for better compatibility.
2026-02-26 14:22:02 +01:00
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
77b94e2b27 US-023 2026-02-24 22:02:46 +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
e70982c8b6 feat: update task user stories and enhance task dialogs with timezone support 2026-02-24 16:56:54 +01:00
Roberto Musso
7a1aec0d9f feat: implement project action tools for enhanced project management capabilities 2026-02-24 15:53:32 +01:00
Roberto Musso
5eb19e022e feat: implement full context-scoped AI chat UI in AIChatPanel
- Added AIChatPanel component with context header, user and AI message handling.
- Integrated streaming responses via IPC and error handling for chat mutations.
- Enhanced user experience with input handling and auto-scrolling features.
- Updated AppShell to derive AI chat context from the current route.
- Introduced ScrollArea component for better scrolling behavior in various dialogs.
- Added support for Tailwind typography and improved global styles.
- Updated project and task dialogs to utilize ScrollArea for better UX.
2026-02-24 12:02:06 +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
98acf6220e US-017 completed 2026-02-22 23:21:37 +01:00
Roberto Musso
2308158976 feat: integrate Milkdown editor for note-taking functionality
- Added Milkdown dependencies: @milkdown/kit, @milkdown/react, @milkdown/theme-nord.
- Implemented MilkdownEditor component for rich text editing in notes.
- Updated /notes/$noteId route to include editable title and auto-saving functionality.
- Enhanced UI with loading states, saving indicators, and delete confirmation dialog.
- Applied Milkdown-specific CSS overrides for consistent theming and styling.
- Improved note update logic with debounced saving and cleanup on unmount.
2026-02-22 22:47:05 +01:00
Roberto Musso
7860ca6ad1 feat: add inline project timeline and notes section to Project Detail
- Implemented a Gantt timeline using GanttChart component scoped to project checkpoints.
- Added functionality to create and manage checkpoints with AddCheckpointDialog.
- Introduced EditCheckpointDialog for editing existing checkpoints.
- Created a notes section displaying a list of notes with the ability to add new notes.
- Updated routing to include notes detail page.
- Enhanced GanttChart with context menu for editing and deleting checkpoints.
- Improved UI components for better user experience.
2026-02-22 15:15:30 +01:00
Roberto Musso
40ac075633 feat: Integrate KanbanBoard component with drag-and-drop functionality using @hello-pangea/dnd 2026-02-21 01:10:16 +01:00
Roberto Musso
c75788503f feat: Implement comprehensive database schema and tRPC routers for clients, projects, tasks, checkpoints, and notes
- Established database schema with five tables using better-sqlite3 and drizzle-orm
- Developed tRPC routers for clients, projects, tasks, checkpoints, and notes with full CRUD operations
- Integrated lazy initialization for electron-store to manage app settings
- Enhanced UI components for task management, including NewTaskDialog and GanttChart
- Implemented search and filter functionalities across various views
- Ensured type safety and strict TypeScript configurations throughout the codebase
- Documented learnings and best practices for future iterations in progress.txt
2026-02-20 23:41:47 +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
ab517549a9 feat: US-012 — GanttChart SVG component and global Timeline view
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 12:47:34 +01:00
Roberto Musso
e92d58a46e feat: US-011 — Global Tasks view UI
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 12:43:42 +01:00
Roberto Musso
3f1208f5ad fix: correct default sidebar state initialization and adjust sidebar width 2026-02-20 12:34:23 +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
99140c2c48 refactor: update UI components and styles for improved consistency and functionality
- Refactored Skeleton component to include data-slot attribute and updated class names.
- Enhanced Switch component with size prop and improved styling.
- Updated Tooltip components to include data-slot attributes and improved styling.
- Refactored global CSS to use custom properties for theming and improved dark mode support.
- Added useIsMobile hook for responsive design handling.
- Updated IPC link implementation for tRPC in Electron.
- Adjusted ProjectsPage layout for better responsiveness.
- Removed outdated Tailwind configuration file and integrated Tailwind CSS with Vite.
2026-02-20 00:45:22 +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
6bf465c983 feat: US-009 — Project CRUD UI in Projects sidebar
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 22:47:07 +01:00
Roberto Musso
e7826c24cf feat: update user stories for Project CRUD UI and sidebar tree view 2026-02-19 22:43:51 +01:00
Roberto Musso
167b24e3eb feat: add project requirements and user stories for Adiuva MVP
- Created prd.json with detailed user stories, acceptance criteria, and implementation notes for the Adiuva project.
- Updated progress.txt to reflect recent implementations of routers for checkpoints and notes, along with learnings for future iterations.
- Modified ralph.sh to change the default tool from "amp" to "claude" for improved compatibility.
2026-02-19 22:33:09 +01:00
Roberto Musso
1206a73db8 feat: add Input, Separator, Sheet, and Sidebar components
- Implemented Input component for user input fields.
- Created Separator component for visual separation in UI.
- Added Sheet component for modal-like overlays with customizable content.
- Developed Sidebar component with collapsible functionality and mobile responsiveness.
- Introduced Skeleton component for loading placeholders.
- Implemented Tooltip component for contextual hints.
- Updated global CSS variables for sidebar theming.
- Added useIsMobile hook for responsive design handling.
- Modified projects route to include ProjectSidebar.
- Enhanced Tailwind CSS configuration for improved styling.
- Updated Vite preload configuration for custom entry file naming.
2026-02-19 18:44:13 +01:00
Roberto Musso
30fde857f4 chore: mark US-008 complete in prd.json and update progress log
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-19 17:05:29 +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
3d6459850c chore: mark US-007 complete in prd.json and update progress log
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-19 17:02:41 +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
bdfaab85b6 chore: mark US-006 complete in prd.json and update progress log
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-19 16:59:06 +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
14e0a3aca6 chore: mark US-005 complete in prd.json and update progress log
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-19 16:56:48 +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
7c063e5aab chore: mark US-004 complete in prd.json and update progress log
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-19 16:51:18 +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
e7f64b385a chore: create progress.txt with US-003 learnings and codebase patterns
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-19 16:42:12 +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
Roberto Musso
b5a9b18be4 chore: mark US-002 complete in prd.json and update progress log
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-19 16:37:48 +01:00
Roberto Musso
8a869f90ad feat: US-002 — SQLite + Drizzle ORM schema and migrations
- Install better-sqlite3 + drizzle-orm as runtime deps; drizzle-kit + @types/better-sqlite3 as devDeps
- Define 5 tables in src/main/db/schema.ts: clients, projects, tasks, checkpoints, notes
- All IDs are TEXT (UUID); types inferred via InferSelectModel/InferInsertModel
- initDb() in src/main/db/index.ts opens adiuva.db at app.getPath('userData'), runs CREATE TABLE IF NOT EXISTS (non-destructive push), enables WAL mode
- Call initDb() in main process app ready handler
- Externalize better-sqlite3 in vite.main.config.mts; add AutoUnpackNativesPlugin to forge.config.ts
- Add drizzle.config.ts for drizzle-kit CLI support

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-19 16:37:24 +01:00
Roberto Musso
bc778f9a8f update git credential 2026-02-19 16:31:17 +01:00