417c6ab49c
feat(web): integrate xterm.js with WebSocket terminal backend ( #518 )
...
ci/woodpecker/push/orchestrator Pipeline was successful
ci/woodpecker/push/api Pipeline was successful
ci/woodpecker/push/web Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-26 02:55:53 +00:00
d5ecc0b107
feat(web): add markdown round-trip and replace textarea with Tiptap ( #501 )
...
ci/woodpecker/push/orchestrator Pipeline was successful
ci/woodpecker/push/api Pipeline was successful
ci/woodpecker/push/web Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-24 01:40:34 +00:00
a81c4a5edd
feat(web): add Tiptap WYSIWYG KnowledgeEditor component ( #500 )
...
ci/woodpecker/push/orchestrator Pipeline was successful
ci/woodpecker/push/api Pipeline was successful
ci/woodpecker/push/web Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-24 01:23:57 +00:00
172ed1d40f
feat(web): add kanban board page with drag-and-drop ( #478 )
...
ci/woodpecker/push/web Pipeline failed
ci/woodpecker/push/orchestrator Pipeline was successful
ci/woodpecker/push/api Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-23 04:26:25 +00:00
7480deff10
fix(web): add Tailwind CSS setup for design system rendering ( #436 )
...
ci/woodpecker/push/orchestrator Pipeline was successful
ci/woodpecker/push/api Pipeline was successful
ci/woodpecker/push/web Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-21 23:36:16 +00:00
a5ee974765
feat( #375 ): frontend token usage and cost dashboard
...
- Install recharts for data visualization
- Add Usage nav item to sidebar navigation
- Create telemetry API service with data fetching functions
- Build dashboard page with summary cards, charts, and time range selector
- Token usage line chart, cost breakdown bar chart, task outcome pie chart
- Loading and empty states handled
- Responsive layout with PDA-friendly design
- Add unit tests (14 tests passing)
Refs #375
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-15 02:10:22 -06:00
Jason Woltje
6e63508f97
fix(#M5-QA): address security findings from code review
...
Fixes 2 important-level security issues identified in M5 QA:
1. XSS Protection (SearchResults.tsx):
- Add DOMPurify sanitization for search result snippets
- Configure to allow only <mark> tags for highlighting
- Provides defense-in-depth against potential XSS
2. Error State (SearchPage):
- Add user-facing error message when search fails
- Display friendly error notification instead of silent failure
- Improves UX by informing users of temporary issues
Testing:
- All 32 search component tests passing
- TypeScript typecheck passing
- DOMPurify properly sanitizes HTML while preserving highlighting
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-02-02 16:50:38 -06:00
Jason Woltje
abbf886483
fix: resolve TypeScript errors in migrated components
2026-01-29 22:00:14 -06:00
Jason Woltje
af8f5df111
feat: add theme system from jarvis frontend
2026-01-29 21:45:18 -06:00
Jason Woltje
f47dd8bc92
feat: add domains, ideas, layouts, widgets API modules
...
- Add DomainsModule with full CRUD, search, and activity logging
- Add IdeasModule with quick capture endpoint
- Add LayoutsModule for user dashboard layouts
- Add WidgetsModule for widget definitions (read-only)
- Update ActivityService with domain/idea logging methods
- Register all new modules in AppModule
2026-01-29 13:47:03 -06:00
Jason Woltje
973502f26e
feat(#37-41): Add domains, ideas, relationships, agents, widgets schema
...
Schema additions for issues #37-41:
New models:
- Domain (#37 ): Life domains (work, marriage, homelab, etc.)
- Idea (#38 ): Brain dumps with pgvector embeddings
- Relationship (#39 ): Generic entity linking (blocks, depends_on)
- Agent (#40 ): ClawdBot agent tracking with metrics
- AgentSession (#40 ): Conversation session tracking
- WidgetDefinition (#41 ): HUD widget registry
- UserLayout (#41 ): Per-user dashboard configuration
Updated models:
- Task, Event, Project: Added domainId foreign key
- User, Workspace: Added new relations
New enums:
- IdeaStatus: CAPTURED, PROCESSING, ACTIONABLE, ARCHIVED, DISCARDED
- RelationshipType: BLOCKS, BLOCKED_BY, DEPENDS_ON, etc.
- AgentStatus: IDLE, WORKING, WAITING, ERROR, TERMINATED
- EntityType: Added IDEA, DOMAIN
Migration: 20260129182803_add_domains_ideas_agents_widgets
2026-01-29 12:29:21 -06:00
Jason Woltje
355cf2124b
fix( #1 ): Address code review findings
...
- Convert ApiResponse to discriminated union for type-safe error handling
- Add HealthStatus type with HealthState literal union
- Make BaseEntity fields readonly for immutability
- Add GlobalExceptionFilter with structured logging
- Add port validation with clear error messages in main.ts
- Improve parseDate to log warnings for invalid dates
- Add comprehensive Button tests (variants, onClick, disabled)
- Add slugify edge case tests (empty, special chars, numbers)
- Create ESLint configs for all packages
- Remove compiled JS files from src directories
- Convert .prettierrc.js to .prettierrc.json
Refs #1
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-01-28 15:07:04 -06:00
Jason Woltje
92e20b1686
feat( #1 ): Set up monorepo scaffold with pnpm workspaces + TurboRepo
...
Implements the foundational project structure including:
- pnpm workspaces configuration
- TurboRepo for build orchestration
- NestJS 11.1.12 API (apps/api)
- Next.js 16.1.6 web app (apps/web)
- Shared packages (config, shared, ui)
- TypeScript strict mode configuration
- ESLint + Prettier setup
- Vitest for unit testing (19 passing tests)
Fixes #1
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-28 13:31:33 -06:00