Commit Graph

184 Commits

Author SHA1 Message Date
Jason Woltje
48a643856f Merge PR: feat(#26) mosaic-plugin-gantt skill (closes #26) 2026-01-29 21:25:45 -06:00
Jason Woltje
9013bc0389 Merge PR: feat(#25) mosaic-plugin-tasks skill (closes #25) 2026-01-29 21:25:27 -06:00
Jason Woltje
b3ad572829 Merge PR: feat(#24) mosaic-plugin-calendar skill (closes #24) 2026-01-29 21:25:27 -06:00
Jason Woltje
f845387993 Merge PR: feat(#23) mosaic-plugin-brain skill (closes #23) 2026-01-29 21:25:27 -06:00
Jason Woltje
bbb2ed45ea fix: address code review feedback
- Replace unsafe JSON string concatenation with jq in cmd_create() and cmd_update()
- Add HTTP status code checking and error message extraction in api_call()
- Prevent JSON injection vulnerabilities from special characters
- Improve error messages with actual API responses
2026-01-29 21:24:01 -06:00
Jason Woltje
632b8fb2d2 fix: address code review feedback
- Fix incorrect API endpoint paths (removed /api prefix)
- Improve TypeScript strict typing with explicit metadata interfaces
- Update SKILL.md with clear trigger phrases and examples
- Fix README installation path reference
- Add clarification about API URL format (no /api suffix needed)
- Export new metadata type interfaces
2026-01-29 21:23:36 -06:00
Jason Woltje
ba9c272c20 fix: address code review feedback
- Fix API endpoint paths: /events (not /api/events) to match actual NestJS routes
- Convert script to ES modules (import/export) to match package.json type: module
- Add detailed error messages for common HTTP status codes (401, 403, 404, 400)
- Improve error handling with actionable guidance
2026-01-29 21:23:35 -06:00
Jason Woltje
e82974cca3 fix: address code review feedback - add metadata to SKILL.md frontmatter 2026-01-29 21:23:09 -06:00
Jason Woltje
ce01b4c081 fix(#25): rename tasks.js to tasks.cjs for CommonJS compatibility 2026-01-29 21:19:52 -06:00
Jason Woltje
68350b1588 docs: add implementation summary for gantt skill 2026-01-29 21:19:15 -06:00
Jason Woltje
18c7b8c723 feat(#26): implement mosaic-plugin-gantt skill 2026-01-29 21:18:14 -06:00
Jason Woltje
8c65e0dac9 feat(#25): implement mosaic-plugin-tasks skill 2026-01-29 21:16:54 -06:00
Jason Woltje
10b66ddb4a feat(#23): implement mosaic-plugin-brain skill
- Add brain skill for Ideas/Brain API integration
- Quick capture for brain dumps
- Semantic search and query capabilities
- Full CRUD operations on ideas
- Tag management and filtering
- Shell script CLI with colored output
- Comprehensive documentation (SKILL.md, README.md)
- Configuration via env vars or ~/.config/mosaic/brain.conf
2026-01-29 21:14:17 -06:00
Jason Woltje
93f6c87113 feat(#24): implement mosaic-plugin-calendar skill 2026-01-29 21:11:50 -06:00
Jason Woltje
9de0b2f92f Merge PR #112: Knowledge Search Service (closes #112) 2026-01-29 21:01:45 -06:00
Jason Woltje
856b7a20e9 fix: address code review feedback
- Add explicit return types to all SearchController methods
- Import necessary types (PaginatedSearchResults, PaginatedEntries)
- Define RecentEntriesResponse interface for type safety
- Ensures compliance with TypeScript strict typing standards
2026-01-29 20:58:33 -06:00
Jason Woltje
0edc24438d Merge PR #113: Kanban Board Implementation 2026-01-29 20:52:19 -06:00
Jason Woltje
bcb2913549 fix: address code review feedback - add explicit TypeScript return types
- Add explicit JSX.Element return types to all Kanban components
- Add explicit void return type to handleDragStart
- Add explicit Promise<void> return type to handleDragEnd (async)
- Import React for JSX namespace access
- Complies with typescript.md: explicit return types REQUIRED

Components updated:
- KanbanBoard.tsx
- KanbanColumn.tsx
- TaskCard.tsx

Per code review checklist (code-review.md section 4a):
✓ NO any types
✓ Explicit return types on all exported functions
✓ Explicit parameter types
✓ Interfaces for props
✓ Proper event handler types
2026-01-29 20:50:52 -06:00
Jason Woltje
148aa004e3 docs: add CONTRIBUTING.md 2026-01-29 20:36:16 -06:00
Jason Woltje
4fcc2b1efb feat(#17): implement kanban board view 2026-01-29 20:36:14 -06:00
Jason Woltje
c26b7d4e64 feat(knowledge): add search service 2026-01-29 20:35:07 -06:00
Jason Woltje
c6a65869c6 docs: add CONTRIBUTING.md 2026-01-29 20:34:52 -06:00
Jason Woltje
52aa1c4d06 Merge fix/controller-guards with conflict resolution 2026-01-29 20:30:57 -06:00
Jason Woltje
460bcd366c Merge remote-tracking branch 'origin/fix/rls-dto-errors' into develop 2026-01-29 20:30:20 -06:00
Jason Woltje
48abdbba8b fix(api): add WorkspaceGuard to controllers and fix route ordering 2026-01-29 20:15:33 -06:00
Jason Woltje
26a0df835f fix(api): fix RLS context, DTO validation, and error handling
- Wrap SET LOCAL in transactions for proper connection pooling
- Make workspaceId optional in query DTOs (derived from guards)
- Replace Error throws with UnauthorizedException in activity controller
- Update workspace guard to remove RLS context setting
- Document that services should use withUserContext/withUserTransaction
2026-01-29 20:14:27 -06:00
Jason Woltje
715481fbbb fix(database): add composite unique constraints for workspace isolation 2026-01-29 20:06:45 -06:00
9977d9bcf4 Merge pull request 'feat(#22): Implement brain query API endpoint' (#108) from feature/22-brain-api into develop
Reviewed-on: #108
2026-01-30 01:45:59 +00:00
Jason Woltje
540344d108 Merge develop to resolve conflicts 2026-01-29 19:45:29 -06:00
181fb6ce2a Merge pull request 'feat(#82): Implement personality module' (#107) from feature/82-personality into develop
Reviewed-on: #107
2026-01-30 01:43:56 +00:00
15e13129c7 Merge branch 'develop' into feature/82-personality 2026-01-30 01:43:40 +00:00
567a799c53 Merge pull request 'feat(#16): Implement WebSocket real-time updates' (#106) from feature/16-websocket into develop
Reviewed-on: #106
2026-01-30 01:43:32 +00:00
5a470a127f Merge branch 'develop' into feature/16-websocket 2026-01-30 01:43:06 +00:00
ac110beb4d Merge pull request 'feat(knowledge): Add link resolution service' (#105) from feature/know-link-resolution into develop
Reviewed-on: #105
2026-01-30 01:42:55 +00:00
cb0a16effa Merge branch 'develop' into feature/know-link-resolution 2026-01-30 01:42:44 +00:00
a75265e535 Merge pull request 'feat(#21): Implement Ollama integration' (#104) from feature/21-ollama into develop
Reviewed-on: #104
2026-01-30 01:42:36 +00:00
1e1a2b4960 Merge branch 'develop' into feature/21-ollama 2026-01-30 01:42:23 +00:00
f1f4b0792c Merge pull request 'feat(#15): Implement Gantt chart component' (#103) from feature/15-gantt-chart into develop
Reviewed-on: #103
2026-01-30 01:42:14 +00:00
d771fd269c Merge branch 'develop' into feature/15-gantt-chart 2026-01-30 01:41:23 +00:00
Jason Woltje
1bd21b33d7 feat(#22): implement brain query API
- Create brain module with service, controller, and DTOs
- POST /api/brain/query - Structured queries for tasks, events, projects
- GET /api/brain/context - Get current workspace context for agents
- GET /api/brain/search - Search across all entities
- Support filters: status, priority, date ranges, assignee, etc.
- 41 tests covering service (27) and controller (14)
- Integrated with AuthGuard, WorkspaceGuard, PermissionGuard
2026-01-29 19:40:30 -06:00
Jason Woltje
8383a98070 feat(#82): add prompt formatter service to personality module
- Add PromptFormatterService for formatting system prompts based on personality
- Support context variable interpolation (userName, workspaceName, etc.)
- Add formality level modifiers (VERY_CASUAL to VERY_FORMAL)
- Add template validation for custom variables
- Add preview endpoint for formatted prompts
- Fix UpdatePersonalityDto to avoid @nestjs/mapped-types dependency
- Update PersonalitiesController with new endpoints
- Add comprehensive tests (33 passing tests)

Closes #82
2026-01-29 19:38:18 -06:00
Jason Woltje
10ed2cdb4f feat(#16): implement websocket real-time updates
- Add WebSocket gateway with workspace-scoped rooms
- Define event types: task.created, task.updated, task.deleted
- Define event types: event.created, event.updated, event.deleted
- Define event types: project.created, project.updated, project.deleted
- Add shared WebSocket types for type safety
- WebSocketModule already integrated in AppModule
2026-01-29 19:37:53 -06:00
Jason Woltje
24768bd664 feat(knowledge): add link resolution service
- Add resolveLinksFromContent() to parse wiki links from content and resolve them
- Add getBacklinks() to find all entries that link to a target entry
- Import parseWikiLinks from utils for content parsing
- Export new types: ResolvedLink, Backlink
- Add comprehensive tests for new functionality (27 tests total)
2026-01-29 19:34:57 -06:00
Jason Woltje
16697bfb79 fix: address code review feedback
- Replace type assertions with type guards in types.ts (isDateString, isStringArray)
- Add useCallback for event handlers (handleTaskClick, handleKeyDown)
- Replace styled-jsx with CSS modules (gantt.module.css)
- Update tests to use CSS module class name patterns
2026-01-29 19:32:23 -06:00
Jason Woltje
f706b3b982 feat(#21): implement ollama integration
- Add Ollama client library (ollama npm package)
- Create LlmService for chat completion and embeddings
- Support streaming responses via Server-Sent Events
- Add configuration via env vars (OLLAMA_HOST, OLLAMA_TIMEOUT)
- Create endpoints: GET /llm/health, GET /llm/models, POST /llm/chat, POST /llm/embed
- Replace old OllamaModule with new LlmModule
- Add comprehensive tests with >85% coverage

Closes #21
2026-01-29 19:28:31 -06:00
Jason Woltje
aa6d466321 feat(#15): implement gantt chart component
- Add milestone support with diamond markers
- Implement dependency line rendering with SVG arrows
- Add isMilestone property to GanttTask type
- Create dependency calculation and visualization
- Add comprehensive tests for milestones and dependencies
- Add index module tests for exports
- Coverage: GanttChart 98.37%, types 91.66%, index 100%
2026-01-29 19:08:47 -06:00
Jason Woltje
1cb54b56b0 Merge feature/82-personality-module (#82) into develop
Implements Personality Module:
- Personality model and Prisma migration
- CRUD API with controller and service
- Comprehensive test suite
- Integration with workspace
2026-01-29 17:59:28 -06:00
Jason Woltje
5dd46c85af feat(#82): implement Personality Module
- Add Personality model to Prisma schema with FormalityLevel enum
- Create migration and seed with 6 default personalities
- Implement CRUD API with TDD approach (97.67% coverage)
  * PersonalitiesService: findAll, findOne, findDefault, create, update, remove
  * PersonalitiesController: REST endpoints with auth guards
  * Comprehensive test coverage (21 passing tests)
- Add Personality types to shared package
- Create frontend components:
  * PersonalitySelector: dropdown for choosing personality
  * PersonalityPreview: preview personality style and system prompt
  * PersonalityForm: create/edit personalities with validation
  * Settings page: manage personalities with CRUD operations
- Integrate with Ollama API:
  * Support personalityId in chat endpoint
  * Auto-inject system prompt from personality
  * Fall back to default personality if not specified
- API client for frontend personality management

All tests passing with 97.67% backend coverage (exceeds 85% requirement)
2026-01-29 17:58:09 -06:00
Jason Woltje
0b330464ba feat(#17): implement Kanban board view
- Drag-and-drop with @dnd-kit
- Four status columns (Not Started, In Progress, Paused, Completed)
- Task cards with priority badges and due dates
- PDA-friendly design (calm colors, gentle language)
- 70 tests (87% coverage)
- Demo page at /demo/kanban
2026-01-29 17:55:33 -06:00
Jason Woltje
5ce3bb0e28 Merge feature/41-widget-hud-system (#41) into develop
Implements Widget/HUD system:
- BaseWidget, WidgetRegistry, WidgetGrid
- TasksWidget, CalendarWidget, QuickCaptureWidget
- Layout persistence with useLayouts hooks
- Comprehensive test suite
2026-01-29 17:54:50 -06:00