Commit graph

69 commits

Author SHA1 Message Date
Leivur R. Djurhuus
1fa8803bfc feat: add visual review tool with image viewer and upload infrastructure (A1)
Canvas-based image viewer with zoom-to-cursor, pan, retina support, and
minimap navigation. Image upload API with PNG alpha compositing (sharp)
for CG renders with transparent backgrounds, TIFF-to-PNG conversion,
and auto-generated thumbnails. Review page accessible from stage cards
on the deliverable detail page.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 22:16:05 -05:00
Leivur Djurhuus
0ca56a5201 Dynamic Pipeline Builder pretty functional now. 2026-03-17 22:09:42 -05:00
Leivur Djurhuus
4434e24569 pipeline template fixed and now visible in settings 2026-03-17 21:19:43 -05:00
Leivur R. Djurhuus
2c75317e9f docs: update roadmap with Phase 2 (Dynamic Pipelines) completion status
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-14 22:46:41 -05:00
Leivur R. Djurhuus
40028b7ced feat: add pipeline stage resolver and organization access control
- Implemented `stage-resolver.ts` to unify old and new pipeline stage definitions.
- Created `org-scope.ts` for organization access verification and scoping queries.
- Added role-based permissions management in `permissions.ts` and `rbac-service.ts`.
- Introduced invitation management in `invitation-service.ts` with validation schemas.
- Developed custom field and notification rule services with respective validators.
- Established pipeline template CRUD operations in `pipeline-template-service.ts`.
- Added Zustand store for managing pipeline builder state in `pipeline-builder-store.ts`.
2026-03-14 22:43:43 -05:00
Leivur R. Djurhuus
9d0677419d feat: update roadmap with workload utilization heatmap and calendar view enhancements 2026-03-14 13:20:58 -05:00
Leivur R. Djurhuus
b37c7d0bf4 Refactor code structure for improved readability and maintainability 2026-03-14 13:17:19 -05:00
Leivur R. Djurhuus
fb72ef6dc4 feat: implement reference image comparison tools and upload functionality 2026-03-14 12:58:57 -05:00
Leivur Djurhuus
bac6d4c107 feat: add heatmap feature with toggle and bar visualization in calendar 2026-03-13 18:28:26 -05:00
Leivur Djurhuus
d01e663ecf feat: add weekly report API and components
- Implemented GET endpoint for weekly report data retrieval.
- Created components for displaying various sections of the weekly report:
  - At-Risk Projects
  - Completed Deliverables
  - Deadline Compliance
  - KPI Strip
  - Pipeline Snapshot
  - Upcoming Deliverables
  - Report Header
- Added a custom hook for fetching weekly report data using React Query.
- Developed service functions to generate weekly report data from the database.
- Enhanced UI with responsive design and improved accessibility features.
2026-03-13 16:39:23 -05:00
Leivur Djurhuus
5b8c09de9e feat: implement stage date override and scheduling features
- Add PATCH endpoint to handle date overrides and clear manual overrides in the stage API.
- Introduce hooks for overriding stage dates and clearing overrides.
- Enhance the stage dependency engine to allow reopening from terminal states.
- Update stage status transitions to support reopening stages.
- Implement scheduling logic to auto-schedule stages based on due dates, considering manual overrides.
- Create a new component for managing stage dates with a popover interface.
- Add database migration for new fields related to manual scheduling and schedule conflicts.
- Document the executive overview and producer guide for the HP CG Production Tracker.
2026-03-12 23:13:29 -05:00
Leivur Djurhuus
336575b39f refactor: remove unused evaluation scripts and dependencies from package.json 2026-03-12 22:02:35 -05:00
Leivur Djurhuus
4f71486742 chore: remove Promptfoo integration plan and related configuration files 2026-03-12 22:00:25 -05:00
Leivur Djurhuus
550fa8659d chore: remove obsolete AI Agents and OpenViking integration plans and related subprojects 2026-03-12 21:58:24 -05:00
Leivur Djurhuus
cf46a8ecd3 feat: add db:seed-team script to package.json and remove unused producer entries from seed.ts 2026-03-12 21:45:59 -05:00
Leivur Djurhuus
1bbc9fd195 feat(calendar): implement calendar view with event filtering and detail display
- Added CalendarDayDetail component for displaying detailed event information for a selected day.
- Created CalendarEventPill component to represent individual events in a compact format.
- Introduced CalendarFilters component to filter events by project, stage type, and status.
- Developed CalendarGrid component to render the calendar layout and manage event interactions.
- Implemented CalendarView component to manage the overall calendar state and navigation.
- Added useCalendar hook to fetch calendar events based on specified filters.
- Created calendar-service to handle fetching events from the database with filtering capabilities.
- Updated data model to include necessary fields for calendar events and filters.
- Added system prompt and tools for AI assistant to manage calendar-related tasks.
2026-03-12 21:20:11 -05:00
Leivur Djurhuus
aa0bcc91d9 feat: add relevanceScore to EntityCard and update entity extraction logic 2026-03-12 17:27:11 -05:00
Leivur Djurhuus
438b330b97 feat: add entity card extraction and display in chat panel
- Implemented entity card extraction from tool results in the chat API.
- Added new EntityCard interface to define the structure of entity cards.
- Enhanced chat panel to display navigable entity cards for projects, deliverables, and users.
- Introduced status color helper for better visual representation of entity statuses.
- Updated chat message structure to include extracted entities.
- Improved chat formatting guidelines to avoid markdown tables and utilize bullet points.
- Added Tailwind Typography plugin for improved text styling in the application.
2026-03-12 16:36:44 -05:00
Leivur Djurhuus
78b6d2133e fix: Append tool_result messages to conversation history in tool loop
Each iteration of the tool-calling loop was appending the assistant's
tool_use blocks to conversationMessages but not the corresponding
tool_result blocks. On the next iteration, Claude saw orphaned tool_use
IDs without matching tool_results, causing a 400 error.

Now tool_result blocks are appended directly to conversationMessages
after each iteration, so the full conversation is always well-formed.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 15:35:47 -05:00
Leivur Djurhuus
78240d6d3f refactor: Remove Ollama LLM fallback from chat provider
Ollama can't use tools so it was never useful as a chat fallback — it
just caused confusing "both providers unavailable" errors. The chat
now uses Claude exclusively with clear error messages on failure.

- Remove chatWithOllama(), checkOllamaHealth()
- Simplify chat() to call Claude directly
- Remove Ollama UI indicators and "Limited mode" warning
- Clean up provider types (remove "ollama" union member)

Note: Ollama is still used for embedding generation (nomic-embed-text)
via the embedding service — only the LLM chat fallback is removed.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 15:32:11 -05:00
Leivur Djurhuus
19cd24c07a fix: Send plain text history to prevent orphaned tool_use block errors
Claude's API requires every tool_use block to be followed by a matching
tool_result. Since tool interactions are fully resolved server-side within
a single request, the client should only send plain text in conversation
history — never structured content blocks that contain tool_use references.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 15:29:20 -05:00
Leivur Djurhuus
7c70c3aba3 feat: Use pgvector semantic search in chat search_entities tool
Replace word-level text matching with pgvector cosine similarity search
for projects and deliverables. The search query is embedded via Ollama's
nomic-embed-text model and compared against stored 768-dim vectors, so
natural language queries like "manx beetroot mauve" match "[BPS] ManxR2 -
Beetroot Mauve" through semantic proximity.

- Primary: pgvector cosine similarity (projects + deliverables)
- Fallback: word-level text search when Ollama is unavailable
- Users: text search only (no embedding column on users table)
- Results filtered by relevance score > 0.3, sorted by similarity
- Stage details fetched for top deliverable matches

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 15:25:41 -05:00
Leivur Djurhuus
92cb9567de feat: Overhaul AI chat with SSE streaming, fuzzy search, and clickable suggestions
- Add SSE streaming to chat API so users see real-time tool call progress
  instead of waiting for the full response
- Enrich system prompt with full data model, pipeline stages, enums, and
  domain knowledge so Claude makes fewer errors
- Implement word-level fuzzy search in search_entities — splits queries into
  individual terms and scores results by match count, so "manx beetroot mauve"
  finds "[BPS] ManxR2 - Beetroot Mauve"
- Add clickable entity suggestion chips when search returns multiple candidates,
  eliminating the need to retype exact names
- Move page context from fake conversation turns into the system prompt param
- Preserve structured content blocks (tool_use/tool_result) in client-side
  message history for proper multi-turn context
- Remove dryRun confirmation pattern — mutations execute directly
- Increase Claude API timeout from 30s to 60s and max tool iterations from 5 to 10
- Show Ollama fallback warning ("Limited mode — no tool access") in UI

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 15:21:45 -05:00
Leivur Djurhuus
8c95d4befe feat: Enhance chat message handling to support structured content blocks for tool interactions 2026-03-12 14:49:50 -05:00
Leivur Djurhuus
94c43af318 feat: Enhance chat functionality with project and deliverable context integration 2026-03-12 14:44:06 -05:00
Leivur Djurhuus
3a0bd22d0d feat: Implement Assign Artist functionality with user assignment management 2026-03-12 14:34:47 -05:00
Leivur Djurhuus
f653b65df4 feat: Add bulk import functionality for Master CG Tracker Excel files 2026-03-12 13:55:14 -05:00
Leivur Djurhuus
877bc085dd feat: Update skill names and simplify user skill mappings in seed data 2026-03-12 13:22:20 -05:00
Leivur Djurhuus
e5b398d7da feat: Implement automation event bus and rule engine
- Add event bus for dispatching automation events with handlers.
- Create rule engine to evaluate events against defined triggers.
- Introduce chat provider to interface with Claude API and Ollama fallback.
- Define tool schemas for Claude-compatible operations.
- Implement tool executor to map tool calls to service layer functions.
- Develop automation service for CRUD operations on rules and event handling.
2026-03-12 11:20:21 -05:00
Leivur R. Djurhuus
a4b5bbf5c9
Add files via upload
CLI Anything plan for producer automation. Step by step guide ad executive brief
2026-03-12 02:43:23 -05:00
Leivur Djurhuus
172533b6d7 feat: update LLM model version and increase context size for semantic search 2026-03-11 16:16:10 -05:00
Leivur Djurhuus
13066502cf feat: enhance Smart Search Panel with formatted text rendering and improve semantic search response structure 2026-03-06 19:34:59 -06:00
Leivur Djurhuus
9d5acf1683 feat: add Smart Search Panel with semantic search capabilities
- Implemented Smart Search Panel component for enhanced project and deliverable search functionality.
- Introduced useSemanticSearch and useOllamaHealth hooks for managing search queries and AI availability.
- Developed embedding-service to generate and store vector embeddings for projects and deliverables.
- Created semantic-search-service to handle vector search, structural query detection, and LLM summarization.
- Added support for hybrid search combining structural filters and semantic queries.
- Integrated UI components for displaying search results and user interactions.
2026-03-06 16:13:36 -06:00
Leivur Djurhuus
ed079ffbe1 feat(pinecone): add research document assessing relevance of Pinecone for HP Prod Tracker 2026-03-06 15:25:52 -06:00
Leivur Djurhuus
1c268e725a feat(timeline): implement drag-to-pan and keyboard navigation for timeline views 2026-03-04 15:06:11 -06:00
Leivur Djurhuus
8765888d72 feat(timeline): update default zoom level to day and enhance production timeline with weekend highlighting and improved header layout 2026-03-03 16:16:32 -06:00
Leivur Djurhuus
56cfeb53b3 feat(gantt-timeline): enhance Gantt chart with weekend highlighting and overdue indicators 2026-03-03 16:01:37 -06:00
Leivur Djurhuus
fd92956e9d feat(timeline): implement production timeline view and API integration 2026-03-03 15:54:17 -06:00
Leivur Djurhuus
c8f88c6ab8 feat(workload): add capacity management components and hooks
- Implemented `CapacityCell`, `CapacityDetailPopover`, and `CapacityGrid` components for displaying user workload and capacity.
- Created `UtilizationHeatmap` component to visualize team member utilization over weeks.
- Added hooks for managing skills (`useSkills`, `useCreateSkill`, `useDeleteSkill`, `useUserSkills`, `useSetUserSkill`, `useRemoveUserSkill`, `useStageSuggestions`) and workload (`useWorkload`, `useUpdateCapacity`).
- Developed services for skill management (`skill-service.ts`) and workload management (`workload-service.ts`) to interact with the database.
- Introduced logic for calculating user workload, including active assignments and capacity overload detection.
- Enhanced UI with tooltips and badges for better user experience.
2026-03-03 15:17:45 -06:00
Leivur Djurhuus
edcf31672e feat: enhance UI components and add assignment feature to deliverables
- Updated CommandItem component to use rounded-lg for better aesthetics.
- Modified DialogOverlay and DialogContent to improve backdrop and border radius.
- Changed DropdownMenuItem, DropdownMenuCheckboxItem, and DropdownMenuRadioItem to use rounded-md for consistency.
- Enhanced SelectItem with rounded-md for a more modern look.
- Updated SheetOverlay to improve backdrop styling.
- Adjusted Toaster component border radius for a more refined appearance.
- Enhanced Table component with rounded-xl and shadow for better visual hierarchy.
- Added assignment display feature in DeliverableTable and KanbanBoard components, showing assigned users with badges.
- Updated deliverable service to include assignments in the data fetching process.
- Created a new seed script for tracker data to facilitate testing and development.
2026-03-02 13:46:55 -06:00
Leivur Djurhuus
a47c6791d9 feat: add validators for PowerPoint and Word documents, and Excel recalculation script
- Implement PPTXSchemaValidator for validating PowerPoint presentation XML files against XSD schemas.
- Create RedliningValidator to check tracked changes in Word documents, ensuring proper author tracking.
- Introduce recalc.py script to recalculate Excel formulas using LibreOffice, including error handling for Excel-specific errors.
- Add UI components for collapsible sections and tabs using Radix UI.
- Implement stage validation schema using Zod for managing project stages.
2026-03-02 12:23:09 -06:00
Leivur Djurhuus
24b8a706a4 feat: add .xlsx files to .gitignore to prevent tracking of spreadsheet files 2026-03-02 11:09:54 -06:00
Leivur Djurhuus
f642c09fad feat: add deliverable, project, and revision services with CRUD operations
feat: implement excel export and import functionality for projects

feat: create notification service for user notifications

feat: add user management service with role updates

feat: implement middleware for authentication checks

feat: add sidebar state management with Zustand

feat: create utility functions for class name merging

feat: add validation schemas for assignments, comments, deliverables, projects, and revisions

chore: initialize TypeScript configuration
2026-03-02 11:07:43 -06:00
Leivur R. Djurhuus
f34e232497 feat: add development setup guide and instructions for local environment configuration 2026-03-01 12:16:17 -06:00
Leivur R. Djurhuus
693fc99d4c feat: add revision history timeline and feedback action items for enhanced review process 2026-03-01 12:06:24 -06:00
Leivur R. Djurhuus
42ad52fc46 feat: add comprehensive upgrade plan for phases 5 to 11, including detailed feature descriptions, implementation strategies, data model changes, new API routes, and third-party library dependencies 2026-03-01 11:45:16 -06:00
Leivur R. Djurhuus
4eb9684291 Refactor login page layout and styles for improved branding and accessibility 2026-02-28 22:34:23 -06:00
Leivur R. Djurhuus
6422428333 Add dev bypass for authentication checks in middleware and session retrieval 2026-02-28 22:23:14 -06:00
Leivur R. Djurhuus
f4e6da9210 Add performance optimizations and accessibility improvements
Dynamic imports for heavy components (Kanban, Gantt, CommandPalette),
skip-to-content link, ARIA landmarks/labels on sidebar, breadcrumbs,
topbar notifications, kanban board, gantt timeline, and pipeline
progress. Focus-visible ring styles for keyboard navigation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 22:01:40 -06:00
Leivur R. Djurhuus
8691f1a1c2 Add command palette, bulk operations, error boundaries, responsive sidebar
- Cmd+K command palette: search projects, navigate pages, toggle theme
- Bulk operations in table: checkbox selection, bulk status/priority/delete
- Error boundaries at root and app level, 404 page, app loading state
- Responsive sidebar: hidden on mobile, Sheet-based hamburger menu
- Sidebar state persisted to localStorage via Zustand persist middleware

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 21:56:15 -06:00