Commit Graph

85 Commits

Author SHA1 Message Date
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
Roberto Musso
38cdd4762b feat: add CLAUDE.md for Ralph agent instructions and workflow
feat: implement ralph.sh for long-running AI agent loop with tool selection and iteration control

feat: create PRD for Adiuva MVP implementation detailing goals, user stories, and technical considerations
2026-02-19 16:28:02 +01:00
Roberto Musso
4af727f28a feat: rename project references from NeuralDesk to Adiuva 2026-02-19 16:10:26 +01:00
Roberto Musso
f6cc8bb23a feat: US-001 — scaffold NeuralDesk Electron + React app
- electron-forge 7 + Vite plugin (vite-typescript template)
- React 19 + TypeScript 5 strict mode
- TanStack Router with file-based routing (4 routes: /, /timeline, /tasks, /projects)
- Tailwind CSS 3 + PostCSS with Figma design tokens (sidebar, primary, muted)
- Framer Motion, Lucide React, shadcn/ui utilities (cn, CVA, clsx, twMerge)
- AppShell layout: 240px sidebar with collapse toggle, active route highlighting
- Vite configs use .mts extension to avoid ESM/CJS conflict with electron-forge
- Full package build verified (linux x64)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-19 15:28:31 +01:00