Commit graph

72 commits

Author SHA1 Message Date
Leivur R. Djurhuus
db82eb4fed refactor: simplify feedback from 4-level severity to action item / info callout
Replace FeedbackSeverity enum (Critical/Major/Minor/Suggestion) with a
simple isActionItem boolean. Annotations default to action items (things
the artist must fix). Any item can be toggled to an info callout (context
that doesn't need action). Progress bar and carry-forward only count
action items. Screenshot paste limited to 5MB with user notification.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 22:19:31 -05:00
Leivur R. Djurhuus
05061baf26 feat: add revision history timeline (A4) and feedback checklist (A5)
A4 — Revision History Timeline:
- Collapsible right panel with vertical timeline of all revision rounds
- Each node shows thumbnail, status badge, timestamp, annotation count,
  comment summary, and decision record
- Keyboard navigation (up/down arrows), auto-scroll to active round
- Filter by rounds with feedback, "Compare from here" action
- Enriched revision data hook aggregating annotations + comments

A5 — Feedback Checklist:
- FeedbackItem model with severity (Critical/Major/Minor/Suggestion),
  status flow (Open → In Progress → Resolved → Verified), and
  carry-forward between revision rounds
- Auto-creation from annotations (non-blocking, post-transaction)
- Checklist panel in review page with progress bar, severity grouping,
  resolve-with-note flow, verify/reopen actions
- FeedbackIndicator badge on stage cards in deliverable detail page
- CRUD API routes + TanStack Query hooks
- Prisma schema additions (requires db push)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 22:19:11 -05:00
Leivur R. Djurhuus
eba5e30c98 feat: add version comparison (A2) and annotation system (A3)
A2 — Version Comparison:
- 4 comparison modes: side-by-side, A-B wipe slider, overlay with
  opacity, toggle with crossfade
- Synced zoom/pan across all modes
- Revision selectors for left/right image
- Keyboard shortcuts: 1-4 switch modes, Escape exits

A3 — Annotations:
- SVG overlay with 7 annotation types: rectangle, ellipse, arrow,
  freehand, text, pin, screenshot paste (Cmd+V)
- All annotations anchored to image coordinates (accurate at any zoom)
- Annotation model added to Prisma schema (requires db push)
- CRUD API routes at /api/revisions/[id]/annotations
- Annotations linked to comments (transactional create)
- Screenshot callouts: draggable, resizable with corner handles
- Undo/redo stack, color picker, visibility toggle
- Floating toolbar with backdrop blur

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 22:17:44 -05:00
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