Commit graph

24 commits

Author SHA1 Message Date
Brad Groux
44b63455ea fix(docker): standardize path resolution across all services (#102)
Created shared paths.ts utility as single source of truth for all path
resolution. Refactored 7 services to use it:

- server/src/utils/paths.ts: New shared utility with JSDoc docs
- task-service: Uses getTasksActiveDir()/getTasksArchiveDir()
- activity-service: Uses getDataDir()
- chat-service: Uses getChatsDir()
- audit-service: Uses getAuditDir()
- metrics/helpers: Uses getProjectRoot()/getTelemetryDir()
- backlog-repository: Uses getTasksBacklogDir()

Resolution priority: DATA_DIR/VERITAS_DATA_DIR env var > auto-discovery
of monorepo root (walks up looking for pnpm-workspace.yaml) > cwd fallback.
Filesystem root guard prevents silent '/' resolution (the original EACCES bug).

Backwards compatible: existing DATA_DIR configurations unchanged.
Cross-model reviewed: 10/10/10/10 (GPT-5.1 authored, Claude Sonnet 4.5 reviewed).

Closes #102

[author: gpt-5.1]
[reviewed-by: claude-sonnet-4.5]
Version: 2.1.3
2026-02-07 22:02:05 -06:00
Brad Groux
d9b946b215 chore: bump version to 2.1.2 — Docker path resolution fix
- Version bumped in all package.json files (root, server, web, shared)
- CHANGELOG: v2.1.2 entry documenting WORKDIR fix and root cause
- README: version badge updated to 2.1.2
- DEPLOYMENT.md: path resolution note added
- TROUBLESHOOTING.md: EACCES fix guide added
- docker-compose.yml: WORKDIR comment added

Reviewed: 10/10/10/10
Related: #102
2026-02-07 16:57:37 -06:00
Brad Groux
e79b7c3f5b v2.1.0: Documentation, security hardening, performance optimizations
Documentation:
- Updated README with all new features (squad chat, broadcasts, deliverables, polling, delegation, OpenClaw integration)
- Added Pre-Commit Review Protocol to CONTRIBUTING.md (mandatory 4 checks: code, functionality, performance, security)
- Added One Agent Per File development rule
- Created 5 comprehensive feature docs (docs/features/)
- Consolidated and cleaned up 8 scattered implementation docs
- Updated lessons learned with 6 additional insights from today

Security:
- Stripped gateway token from all API responses (write-only field)
- Added file locking to notification-service and config-service

Performance:
- Removed double cache invalidation in squad chat
- Added React.memo to message bubble components

Version bump: 2.0.0 → 2.1.0

All reviews passed 10/10 (code, functionality, performance, security)
Contributors: TARS, CASE, Ava, K-2SO, R2-D2, VERITAS
2026-02-07 11:51:24 -06:00
Brad Groux
69cf3c334c chore: v2.0.0 release prep
Version:
- Bump all packages to 2.0.0 (root, server, web, shared, mcp)

Security:
- Patch MCP SDK from ^1.25.3 to ^1.26.0 (GHSA-345p-7cg4-v4c7)
- Add rate limiting warning to README security section

Documentation:
- CHANGELOG: comprehensive v2.0.0 entry (18 features, fixes, credits)
- README: updated roadmap with v2.0 shipped features
- README: added v2.0 feature highlights (multi-agent, dashboard, lifecycle)
- README: version badge updated to 2.0.0
- AGENT-REGISTRY.md: VERITAS naming consistency (all caps)

Maintenance:
- Cleaned 21 stale feature branches (down to main only)
- Dashboard widget toggles scaffolding (#92)
- Pre-commit secret scan: clean
2026-02-05 20:45:36 -06:00
Brad Groux
9c2f193658 feat: add markdown rendering for task descriptions and comments (closes #63) 2026-02-05 17:55:44 -06:00
Brad Groux
931d437b67 chore: Release v1.6.0
## Highlights
- Activity Page Redesign — Full-width status history, clickable navigation, color-coded badges
- Task Templates UI (#39) — Full management interface for templates
- Analytics API (#43) — Timeline and aggregate metrics endpoints
- Status Transition Hooks — Quality gates for task status changes
- 7 GitHub Issues Closed (#47, #48, #49, #51, #53, #56, #82)

## Changes
- Bump all packages to 1.6.0
- Update CHANGELOG.md with comprehensive release notes
- Update README.md version badge and roadmap
- Update FEATURES.md with new sections:
  - Task Templates (v1.6.0)
  - Analytics API (v1.6.0)
  - Dashboard Filter Bar (v1.6.0)
  - Redesigned Activity Feed section
- Activity page: purple for sub-agent, amber for in-progress, blue for done
- Status badges: uniform width, color-coded by status type
2026-02-04 22:11:13 -06:00
Brad Groux
9291ba1cb3 fix: Update version to 1.5.0 in all package.json files
- Root package.json: 1.4.1 → 1.5.0
- server/package.json: 1.4.1 → 1.5.0
- web/package.json: 1.4.1 → 1.5.0
- shared/package.json: 1.4.1 → 1.5.0

Health endpoint now reflects correct version.
2026-02-04 08:40:24 -06:00
Brad Groux
a87c28decf docs: align versioning to v1.4.1 (packages, README, changelog) 2026-02-03 01:51:21 -06:00
Brad Groux
d8dab5a612 chore: bump version to v1.1.0 + changelog 2026-01-31 07:09:18 -06:00
Brad Groux
0c0f5b344d security+quality: final codebase review fixes
Security (critical):
- Remove shell:true from preview-service spawn (command injection fix)
- Replace exec() with execFile() in github-service (no shell interpolation)
- Add SIGKILL fallback after SIGTERM timeout in worktree-service

Stability:
- Add process cleanup handlers (SIGTERM/SIGINT) for preview servers
- Add MAX_PREVIEW_SERVERS=5 limit to prevent resource exhaustion
- Memoize WebSocket context value to prevent unnecessary re-renders

Code quality:
- Remove hardcoded 'Brad' author → 'User' (3 files)
- Replace hardcoded localhost:3001 URLs with API_BASE (AttachmentsSection)
- Fix SECURITY-AUDIT.md date (2025 → 2026)
- Add license/repository/author to all 6 package.json files

Data hygiene:
- Untrack all runtime data files (.veritas-kanban/*.json, telemetry, activity)
- Simplify .gitignore: .veritas-kanban/* except .gitkeep
- Removed ~15,700 lines of runtime data from git history
2026-01-29 06:13:10 -06:00
Brad Groux
e59c5072cf fix: resolve infinite render loop in useKeyboard test + memoize context value
Two bugs fixed:
1. TestConsumer's default param (tasks=[]) created a new array ref every render,
   causing an infinite useEffect loop with setTasks. Fixed with stable EMPTY_TASKS constant.
2. KeyboardProvider's context value was a new object literal every render.
   Wrapped in useMemo to prevent unnecessary consumer re-renders.
3. Destructured useKeyboard() return in test to use stable callback refs
   instead of the whole context object as useEffect deps.

Also: added root vitest.config.ts with workspace projects for mono-repo test runs.
2026-01-29 05:54:22 -06:00
Brad Groux
28a7d9e395 feat(server): add file write locking to prevent race conditions 2026-01-29 04:37:24 -06:00
Brad Groux
3edffec98c chore: bump version to 1.0.0, add CHANGELOG
- Bump all 6 package.json files from 0.1.0 to 1.0.0
- Add CHANGELOG.md with full feature summary
- Git history scrubbed of security.json (JWT secret)
2026-01-29 01:42:04 -06:00
Brad Groux
6793b23310 perf: reduce polling when WebSocket connected 2026-01-28 12:13:48 -06:00
Brad Groux
12c9f4ed65 feat(deploy): add production Dockerfile with multi-stage build 2026-01-28 12:08:14 -06:00
Brad Groux
fbb6aed001 feat(US-1005): Add dashboard drill-down views
- Make dashboard metric cards clickable
- Add DrillDownPanel component for slide-out panel
- Add TasksDrillDown for filtered task list view
- Add ErrorsDrillDown for failed runs list with task links
- Add TokensDrillDown with per-agent breakdown
- Add DurationDrillDown with per-agent breakdown
- Add /api/metrics/failed-runs endpoint
- Add useFailedRuns, useTokenMetrics, useDurationMetrics hooks
- Back navigation to return to dashboard
2026-01-28 08:03:13 -06:00
Brad Groux
a4a8d1d765 US-1152: Add error boundaries to Settings dialog tabs
- Created SettingsErrorBoundary with friendly fallback + retry
- Each tab wrapped individually — one crash doesn't affect others
- Error details logged with tab context
2026-01-28 02:58:58 -06:00
Brad Groux
fc087bba50 feat: US-914 Project management with dropdown selection 2026-01-27 22:16:41 -06:00
Brad Groux
d952e1aa5c feat(US-703): Subtasks with progress tracking
- Added Subtask type to shared types
- Added subtask routes: add, update, delete
- Added subtask hooks: useAddSubtask, useUpdateSubtask, useDeleteSubtask
- Created SubtasksSection component with:
  - Progress bar (X/Y complete)
  - Checkbox completion
  - Inline add/delete
  - Auto-complete parent option
- Added Checkbox and Switch UI components
2026-01-26 05:49:28 -06:00
Brad Groux
3df4414b11 feat(US-605): activity log
- Add ActivityService for logging task events
- Activity sidebar with filter, refresh, clear
- Log task create, update, status change, archive, delete
- Relative timestamps in activity feed
- Add ScrollArea UI component

Sprint 6 complete!
2026-01-26 05:03:26 -06:00
Brad Groux
a210a2d287 feat(US-402): line-level review comments
- Add review comments to task schema
- Inline comment input on diff lines
- Comment display with amber highlighting
- Comment counts in file tree and headers
- Remove comment with X button
- Auto-save comments with debounced update
2026-01-26 03:33:05 -06:00
Brad Groux
6fbbce09ce feat(US-401): diff viewer component
- DiffService for git diff operations
- Diff API routes (summary, file, full)
- DiffViewer component with file tree
- Unified diff display with line numbers
- Syntax highlighting by file extension
- Added/removed line counts
- Tabs UI in task detail panel (Details, Git, Agent, Changes)
2026-01-26 03:30:24 -06:00
Brad Groux
b8cc446b6b feat: complete US-104 to US-108 (Kanban UI)
US-104: Kanban board UI shell
- Loading skeleton while fetching
- 4 columns with task counts
- Empty state with drop zone highlight

US-105: Task card component
- Type icons and color-coded borders
- Priority badges
- Project tags
- Tooltip on hover for full title
- Click opens detail panel

US-106: Create task dialog
- All fields working
- Validation and defaults

US-107: Task detail panel (new)
- Slide-out sheet from right
- Inline editing for all fields
- Debounced auto-save (500ms)
- Delete with confirmation dialog
- Escape key to close
- Metadata display (created/updated)

US-108: Drag and drop
- Visual feedback (ring highlight, ghost card)
- Status update on drop
- Persists to file via API

Added shadcn components: sheet, skeleton, tooltip, alert-dialog
2026-01-26 02:54:25 -06:00
Brad Groux
a489c5358f feat: initial project scaffolding
- Dev container with Node.js 22
- pnpm workspace monorepo structure
- Express + WebSocket server
- React + Vite + shadcn/ui frontend
- Shared TypeScript types package
- Kanban board with drag-and-drop
- Task CRUD with file-based persistence
- Dark mode styling

Sprint 1 - US-101: Project scaffolding with dev container
2026-01-26 02:34:54 -06:00