Commit graph

94 commits

Author SHA1 Message Date
Brad Groux
70c8c06e56
docs: v4.0 documentation update and cleanup (closes #229) (#230)
v4.0 docs update: CHANGELOG, README, FEATURES, API-REFERENCE, 11 new SOPs, MCP docs, version bumps to 4.0.0, docs cleanup. Closes #229.
2026-03-21 12:20:16 -05:00
Brad Groux
415a095d31
feat: Prompt Template Registry with Version Control (#184) (#220)
* feat: prompt template registry with version control (#184)

- Add PromptTemplate, PromptVersion, PromptUsage, PromptStats types
- Implement prompt-registry service with full CRUD, versioning, and usage tracking
- Add prompt-registry REST endpoints with preview rendering and statistics
- Create React Query hooks (usePromptTemplates, usePromptStats, etc.)
- Implement multi-tab PromptRegistry component with Templates, Versions, Usage, Stats, Preview tabs
- Add INTEGRATION.md documenting manual merge points for existing files
- Supports variable interpolation {{variable_name}} and changelog tracking
- File-based storage pattern consistent with existing template system

* fix: export prompt-registry types from shared barrel

* fix: handle optional changelog in prompt version

* fix: handle optional content field in version creation

* fix: remove unused imports and variables in prompt registry

* fix: remove all unused imports in prompt registry web files

* ci: trigger checks (retry)

---------

Co-authored-by: Brad Groux <bradgroux@users.noreply.github.com>
2026-03-21 11:16:59 -05:00
Brad Groux
d0a2ee4922
feat: Global System Health Status Bar (#185) (#221)
* feat: global system health status bar (#185)

* fix: export system-health types from shared barrel

---------

Co-authored-by: Brad Groux <bradgroux@users.noreply.github.com>
2026-03-21 11:12:04 -05:00
Brad Groux
4e6d331a33
feat: User Feedback Loop with Sentiment Analytics (#182) (#222)
* feat: user feedback loop with sentiment analytics (#182)

* fix: export feedback types from shared barrel

* fix: TS errors in feedback panel and API client

* fix: tooltip formatter type compatibility

* ci: retry flaky test

---------

Co-authored-by: Brad Groux <bradgroux@users.noreply.github.com>
2026-03-21 10:56:36 -05:00
Brad Groux
45cfc822e4
feat: Behavioral Drift Detection & Alerting (#181) (#218)
* Implement drift detection and alerting

* fix: correct type predicate in drift service filter

* fix: resolve DriftMonitor formatter type and DriftAlertFilters cast

* fix: add rm export to fs-helpers for drift-service cleanup

* ci: trigger workflow

* chore: trigger ci

* fix: ViewContext union syntax error

* fix: add rm to docker-paths test node:fs/promises mock

---------

Co-authored-by: bradgroux <bradgroux@users.noreply.github.com>
2026-03-21 09:33:34 -05:00
Brad Groux
ac64785326
feat: Decision Audit Trail with Assumption Tracking (#179) (#216)
* feat: add decision audit trail with assumption tracking

* fix: mock node:fs/promises in tests for fs-helpers compat

* fix: add full fs/promises mock in docker-paths test

* fix: add mkdir to node:fs/promises mock in jwt-rotation test

* ci: trigger workflow

* chore: trigger ci

* fix: ViewContext union syntax, expand fs/promises mock

---------

Co-authored-by: bradgroux <bradgroux@users.noreply.github.com>
2026-03-21 09:28:35 -05:00
Brad Groux
50f76f811a
feat: Agent Output Evaluation & Scoring Framework (#180) (#217)
* Implement scoring evaluation framework

* fix: resolve TypeScript errors in ScoreExplorer component

---------

Co-authored-by: bradgroux <brad@digitalmeld.io>
Co-authored-by: Brad Groux <bradgroux@users.noreply.github.com>
2026-03-21 09:13:24 -05:00
Brad Groux
1a2476257e
feat: Agent Policy & Guard Engine (#178) (#215)
* Implement policy guard engine for agent actions

* fix: wrap policy routes with asyncHandler for type safety

* fix: prevent unhandled rejection race in security test cleanup

---------

Co-authored-by: bradgroux <bradgroux@users.noreply.github.com>
2026-03-21 09:03:01 -05:00
Brad Groux
9d453a09f6
feat(squad-chat): add Adaptive Card support to squad messages (#214)
Add optional 'card' field (Record<string, unknown>) to SquadMessage and
SquadMessageInput types, allowing callers to attach Adaptive Card v1.5
JSON payloads to squad chat messages.

Changes:
- shared: Add card? to SquadMessage and SquadMessageInput interfaces
- routes/chat: Add card to zod validation schema and passthrough
- chat-service: Accept and spread card into squad message object
- squad-webhook: Include card in webhook payload type and forwarding

The card field flows through the full pipeline: API validation → storage
→ API response → WebSocket broadcast → webhook forwarding. Cards are
transient (not serialized to markdown logs) and intended for real-time
delivery to Teams via Adaptive Card attachments.

Co-authored-by: Brad Groux <bradgroux@users.noreply.github.com>
2026-03-20 21:10:59 -05:00
Brad Groux
adbcfc930b
fix: resolve TypeScript build errors (#177)
- Add RunMode type and QaGateState interface to shared task.types.ts
- Add runMode and qaGate optional fields to Task and UpdateTaskInput interfaces
- Mirror changes in shared/src/types/task.types.d.ts (used by web bundler)
- Add RunModeGateSection.tsx component (was untracked, causing web build failure)
- Add qa-gate.test.ts and dependency-cycle.test.ts (untracked test files)

Co-authored-by: Brad Groux <bradgroux@users.noreply.github.com>
2026-03-19 22:09:46 -05:00
BradGroux
0b14f27488 chore(release): bump version to 3.3.3
Patch correction release delivering:
- fix(stability): Complete Zod 4 API migration (#162)
- fix(security): SSRF protection for webhook URLs (#165)
- perf(websocket): Batch broadcasts to prevent event loop blocking (#167)
- feat: Orchestrator Delegation Enforcement gate
- feat: Enforcement Gate Toast Notifications
- feat: Dashboard Enforcement Indicator
2026-03-01 14:00:13 -06:00
BradGroux
bd46ffb31a chore(release): v3.3.2
- Bump all package versions to 3.3.2
- Update CHANGELOG with #155 (task↔agent sync), #156 (circuit breaker tests), #159 (sync auth hardening), #161 (sprint CLI+MCP)
- Update README version badge to 3.3.2
2026-03-01 13:08:51 -06:00
Brad Groux
0d7dfb135c chore: release v3.3.1 2026-02-28 09:57:48 -06:00
V.K. Watson
9657e731b6
fix: guard updatedTask null check in task routes
also clean up observations section build warning
2026-02-20 01:51:45 -06:00
Brad Groux
97181e678d feat: v3.3.0 — Task Dependencies, Crash Recovery, Observational Memory, Agent Filter
## New Features (4x10 cross-model verified)

### #122 — Task Dependencies Graph
- Bidirectional dependency model (depends_on/blocks)
- DFS cycle detection traversing both directions
- Recursive dependency graph API
- Batch-loaded traversal (eliminated N+1 queries)
- Zod validation on dependency routes
- Full keyboard + ARIA accessibility

### #123 — Crash-Recovery Checkpointing
- Save/resume/clear API for sub-agent state persistence
- Secret sanitization (20+ key patterns + regex value detection)
- 1MB size limit, 24h expiry, resume counter
- Array sanitization (nested objects + primitive strings)
- NaN timestamp handling
- ARIA-accessible checkpoint UI

### #124 — Observational Memory
- CRUD observations per task (decision/blocker/insight/context)
- Importance scoring (1-10) with paginated full-text search
- XSS prevention via sanitizeCommentText()
- ARIA-accessible range slider + decorative icon handling

### #125 — Agent Filter
- GET /api/tasks?agent=name query parameter
- Input sanitized (trim + 100 char cap)
- JSDoc/OpenAPI documented

All features scored 10/10 across security, reliability, performance,
and accessibility. Cross-model verified (Sonnet authored, Codex reviewed).
2026-02-14 23:48:49 -06:00
Brad Groux
c53fca9a75 chore: bump version to v3.2.1 2026-02-12 05:41:49 -06:00
Brad Groux
5163e8debe chore: bump version to v3.2.0 + update CHANGELOG 2026-02-11 10:31:41 -06:00
Brad Groux
b6da969ac8
feat: add documentation freshness tracking with staleness alerts (#120)
* feat: add documentation freshness tracking with staleness alerts

* fix: address review feedback — route conflict, settings validation, card perf

---------

Co-authored-by: Brad Groux <bradgroux@Brads-Mac-mini.local>
2026-02-11 10:31:11 -06:00
Brad Groux
8ccf83f097
feat: add shared resources registry for cross-project resource mounting (#119)
Co-authored-by: Brad Groux <bradgroux@Brads-Mac-mini.local>
2026-02-11 10:28:24 -06:00
Brad Groux
debeda6a82
feat: add markdown editor for task descriptions and comments (#118)
* feat: add markdown editor for task descriptions and comments

- Add MarkdownEditor component with formatting toolbar (bold, italic, code, link, list, heading, code block)
- Add MarkdownRenderer component using react-markdown with remark-gfm and rehype-highlight
- Update TaskDetailsTab to use MarkdownEditor for task descriptions with preview
- Update CommentsSection to use MarkdownEditor for comments
- Update TaskCard to render markdown description snippets
- Add markdown settings schema (enableMarkdown, enableCodeHighlighting)
- Add Markdown section to TasksTab settings with feature toggles
- Support Ctrl+B/I/K keyboard shortcuts for formatting
- Respect enableMarkdown toggle to fallback to plain text
- All builds pass, no new lint errors

* fix: address review feedback — route conflict, settings validation, card perf

---------

Co-authored-by: Brad Groux <bradgroux@Brads-Mac-mini.local>
2026-02-11 10:28:10 -06:00
Brad Groux
711ad608b5 chore: bump version to v3.1.0 2026-02-10 08:12:45 -06:00
Brad Groux
eead46f98e fix(enforcement): correct gate logic, add tests and docs (#115) 2026-02-10 08:01:23 -06:00
Brad Groux
3b01be42e6 feat(enforcement): Add orchestratorDelegation gate (#115)
6th enforcement gate to warn when the orchestrator performs
implementation work directly instead of delegating to sub-agents.

New features:
- settings.enforcement.orchestratorDelegation toggle
- POST /api/agent/delegation-violation endpoint
- Logs warning when violation is reported
- Posts to squad chat if squadChat enforcement is also enabled

The endpoint is called by agent tooling when it detects the
orchestrator making direct file edits, code changes, or multi-step
work instead of spawning a sub-agent.

Part of #115
2026-02-10 07:30:07 -06:00
Brad Groux
eea5fe04df feat(enforcement): Add structural process enforcement gates (#115)
Implements server-side enforcement for mandatory processes:

## Enforcement Settings (settings.enforcement.*)
- squadChat: Auto-post task lifecycle events to squad chat
- reviewGate: Require 4x10 review scores before completion
- closingComments: Require deliverable summary in review comments
- autoTelemetry: Emit run.started/run.completed on status changes
- autoTimeTracking: Auto-start/stop timers on status changes

All enforcement toggles default to OFF for backward compatibility.
Enable via PATCH /api/settings/features with enforcement settings.

## New Fields
- Task.reviewScores: number[4] - Four review scores (0-10)
- EnforcementSettings: Toggle interface for all enforcement gates

## Files Changed
- shared/types/config.types.ts: Add EnforcementSettings interface
- shared/types/task.types.ts: Add reviewScores field
- server/services/hook-service.ts: Add enforcement settings cache
- server/services/task-service.ts: Implement all enforcement gates
- server/schemas/feature-settings-schema.ts: Add enforcement schema
- server/routes/settings.ts: Sync enforcement settings
- server/routes/tasks.ts: Add reviewScores to API schema
- server/config/swagger.ts: Document reviewScores in OpenAPI
- server/storage/backlog-repository.ts: Parse reviewScores

Closes #115
2026-02-10 07:27:17 -06:00
Brad Groux
c0cb96c05a feat: progress files + acceptance criteria (#108, #109)
#108 — Progress File Pattern for Cross-Session Agent Memory:
- New ProgressService (server/src/services/progress-service.ts)
- GET/PUT/POST /api/tasks/:id/progress endpoints
- ProgressTab component in task detail panel
- useTaskProgress hook with TanStack Query integration
- Auto-creates .veritas-kanban/progress/ directory

#109 — Acceptance Criteria on Subtasks:
- acceptanceCriteria?: string[] and criteriaChecked?: boolean[] on Subtask type
- Subtask creation UI with 'Add Acceptance Criteria' expandable section
- Independent criteria checkboxes with X/Y badge
- PATCH /api/tasks/:id/subtasks/:subtaskId/criteria/:index toggle endpoint
- Zod schema validation for new fields

11 files changed, 744 insertions(+), 65 deletions(-)
Built by: TARS (#108) + CASE (#109) in parallel (gh-sonnet)
Closes #108, #109
2026-02-09 15:31:54 -06:00
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
8cce9f24c4 feat: Squad chat protocol scripts, system events, model attribution
- Add squad-post.sh for regular agent messages
- Add squad-event.sh for lifecycle events (spawned/completed/failed/status)
- Add model field to squad messages (types, server, UI, scripts)
- System events render as divider lines in squad chat panel
- Model attribution displays next to agent names in UI
- Full protocol documented in SQUAD-CHAT-PROTOCOL.md
- Updated CONTRIBUTING.md, README.md, and all SOPs
- Added VK_HOST/VK_PORT env vars to .env.example

4-check cross-model review: 10/10 (Code/GPT-5.1, Func/Grok, Perf/Grok, Sec/GPT-5.1)
Agents: R2-D2 (feature), TARS/CASE/Ava/K-2SO (reviews)
2026-02-07 13:04:17 -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
a249dee1fb Merge: Squad chat, webhooks, delegation, polling + critical security fixes
Feature branches merged:
- Agent squad chat with real-time WebSocket updates
- Broadcast notifications (priority levels, read receipts)
- Task deliverables as first-class objects
- Efficient polling endpoint with change tracking
- Approval delegation / vacation mode

Security & stability fixes:
- Fix: path traversal vulnerability in broadcast storage
- Fix: TOCTTOU race condition in broadcast.markRead()
- Fix: double cache invalidation in squad chat
- Fix: file locking consistency for concurrent writes
- Add: default agent display name handling

Improvements:
- React.memo for message bubbles (perf)
- Save-on-blur for display name input
- Auto-scroll to latest in squad chat
- OpenClaw gateway wake integration
- One-agent-per-file development rule (CONTRIBUTING.md)

All reviews passed (code, functionality, performance, security)
27 files changed, comprehensive test coverage added

v2.0.0 ready for production
2026-02-07 11:30:52 -06:00
Brad Groux
c3f67da1f9 merge: integrate broadcast endpoint into main 2026-02-07 08:20:34 -06:00
Brad Groux
181939739f merge: resolve conflicts integrating polling + broadcast endpoints 2026-02-07 08:20:21 -06:00
Brad Groux
1eb93b1dd0 Merge branch 'feat/agent-squad-chat' 2026-02-07 08:20:06 -06:00
Brad Groux
c67173a7e0 feat: deliverables as first-class task objects (#95)
- Add Deliverable interface with type, status, path, agent fields
- Add deliverables field to Task, UpdateTaskInput, TaskSummary
- Create API endpoints: POST/GET/PATCH/DELETE /api/tasks/:id/deliverables
- Add requireDeliverableForDone setting (default: false)
- Validate done transition requires deliverable when setting enabled
- Add DeliverablesSection component to task detail panel
- Add deliverable count badge to board cards
- Add settings toggle in Tasks tab
- Log deliverable_added/updated/deleted activity events
- Add useDeliverables hooks for CRUD operations
2026-02-07 08:18:18 -06:00
Brad Groux
5225658e3a feat: agent squad chat channel (#97) 2026-02-07 08:14:54 -06:00
Brad Groux
f00bba7010 feat: broadcast endpoint for agent notifications (#98) 2026-02-07 08:09:53 -06:00
Brad Groux
4f513017f9 feat: add efficient agent polling endpoint (changes since) (#96) 2026-02-07 08:05:38 -06:00
UC-VR
f17568cd21
feat: configurable auto-save delay for task editor (#94)
- Add autoSaveDelayMs to TaskBehaviorSettings (default: 500ms)
- Update useDebouncedSave hook to use config setting instead of hardcoded value
- Add UI control in Tasks settings tab (slider: 200-5000ms, step 100)
- Add validation schema (min: 200ms, max: 5000ms)

The default 500ms delay was too aggressive for comfortable text editing,
causing interruptions mid-sentence. This makes the delay user-configurable
to accommodate different typing speeds and preferences.

Co-authored-by: OpenClaw Agent <agent@openclaw.ai>
2026-02-07 07:36:59 -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
21d3fed50b fix: resolve build errors — storage paths, type casts, import ordering, backward compat
- Replace non-existent getStorageBase with DATA_DIR inline constant
- Fix import ordering (path must be imported before DATA_DIR declaration)
- Fix req.params/req.query type casts for Express strict mode
- Add createNotification() to NotificationService for failure-alert backward compat
- Export NotificationService class for type imports
- Cast telemetry events properly in cost-prediction service
- Server builds clean and starts successfully
2026-02-05 18:49:39 -06:00
Brad Groux
dead22ba40 feat: add multi-agent task assignment with backward-compatible agent/agents fields (closes #29)
- Task schema: added agents[] field alongside existing agent field
- Agent helpers: getAssignedAgents(), isAgentAssigned(), normalizeAgentFields()
- MultiAgentSelector component: chips with colors, add/remove, primary star
- Registry integration: dropdown shows registered agents + custom input
- Backward compat: single agent auto-wrapped in array, agents[0] synced to agent
- Exported from shared package for CLI/server/web consumption
2026-02-05 18:17:25 -06:00
Brad Groux
c13ee08fbf feat: add task cost prediction at creation with accuracy tracking (closes #54)
- Cost Prediction Service: predicts task cost based on type, priority, complexity, history
- Prediction factors: type multiplier, priority multiplier, description complexity, project adjustment
- Historical base cost: calculated from telemetry data for similar tasks
- Confidence levels: low/medium/high based on sample size
- Accuracy tracking: predicted vs actual cost comparison for completed tasks
- Accuracy stats: MAE, mean/median accuracy, within-20%/50% metrics, per-type breakdown
- Task schema: added costPrediction and actualCost fields
- REST API: POST /predict, GET /accuracy, GET /accuracy/stats
2026-02-05 18:02:39 -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
64998b0757 feat: Multiple bug fixes and enhancements
- fix(REL-001): Add withFileLock to 5 unguarded services
- fix(REL-002): Replace plain objects with useRef in useFeatureSettings
- fix(REL-003): Only clear dirty state on mutation success in useDebouncedSave
- fix(REL-004): Fix ActivityFeed knownIdsRef stale reference
- fix(REL-005): Fix ArchiveSidebar useMemo used as useEffect
- fix(REL-006): Fix ConflictResolver render-time setState
- fix(REL-007): Fix useSortableList stale rollback + array mutation
- feat(A11Y-001): Add aria-labels to icon-only buttons
- feat(A11Y-002): Add keyboard support to clickable divs
- feat(#41): Lessons Learned Field - UI component + API endpoint

Co-authored-by: Veritas <veritas@digitalmeld.io>
2026-02-04 20:37:18 -06:00
Brad Groux
6fcab43803 feat: Status Transition Hooks (Quality Gates)
Add pre-transition gates that must pass before status change is allowed:
- require-agent: Task must have agent assigned
- require-plan: Description must contain Plan section
- require-verification-complete: All verification steps checked
- require-time-tracked: Time tracking must have entries
- require-closing-comment: Task must have at least one comment
- require-subtasks-complete: All subtasks completed
- require-blocker-reason: blockedReason must be set

Add post-transition actions that fire after status change:
- auto-start-timer: Start time tracking
- auto-stop-timer: Stop time tracking
- send-webhook: POST to URL
- send-notification: Send to channel
- prompt-lessons-learned: Flag for capture
- log-activity: Log to activity feed

API:
- GET/PUT/PATCH /api/settings/transition-hooks
- POST /api/settings/transition-hooks/validate
- CRUD for individual rules at /api/settings/transition-hooks/rules

Config stored in .veritas-kanban/transition-hooks.json

Also adds 'cancelled' status and 'critical' priority to shared types.

Ref: task_20260201_04iPHh
2026-02-04 19:50:57 -06:00
Brad Groux
ac1386ac12 fix(QA): Replace Math.random with crypto.randomUUID, align types, fix React issues
QA-001: Use crypto.randomUUID() for entity IDs (comments, subtasks, verification)
QA-002: Add 'critical' to TaskPriority, 'cancelled' to TaskStatus; guard process.env
QA-003: Fix GitSelectionForm useEffect deps, AgentStatusIndicator useMemo tick,
        ArchivePage Set mutation
Bonus: Add variant to Toast type (pre-existing build error)

Ref: RF-002a/b/c audit findings
2026-02-04 09:52:54 -06:00
Brad Groux
f176592259 feat(US-1611): Complete orchestrator-inspired features
- #73 Prompts registry: prompt-registry/ with 10 starter templates ✓
- #74 Doc freshness: CLAUDE.md template + SOP-documentation-freshness.md ✓
- #75 Setup wizard: vk setup command ✓
- #76 Lifecycle hooks: hook-service.ts + SOP-lifecycle-hooks.md ✓
- #77 Shared resources: SOP-shared-resources.md ✓

Credit: Inspired by Monika Voutov's BoardKit Orchestrator
https://github.com/BoardKit/orchestrator

Closes #73, closes #74, closes #75, closes #76, closes #77
2026-02-04 09:47:38 -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
6356a5e15e feat: backlog board, dashboard overhaul, UI/UX refinements (#65, #66)
Backlog Board (#65):
- BacklogRepository, BacklogService, API routes (/api/backlog/*)
- BacklogPage with inline expand/collapse, promote/demote actions
- CLI commands: vk backlog list|promote|demote|delete
- Activity events for demote/promote operations
- 47 tasks moved to backlog (sales, DM-Web, HubSpot, Customer.io)

Dashboard Overhaul:
- Recovered DashboardFilterBar from crashed branch (preset pills, custom date range, project filter)
- New metrics: Cost per Task, Agent Utilization (status-history-based)
- Fixed success rate calculation (backward-compat for status vs success field)
- Backfilled 23 estimated run.tokens events
- Task Activity per Day replaces Runs per Day chart
- Removed Sprint Velocity, Blocked Breakdown, period dropdowns
- Fixed ErrorsDrillDown empty state

Board & Sidebar:
- 5th column sidebar: Agent Status Panel (always visible), Recent Status Changes, Budget
- Clickable task names/IDs in agent status
- Removed planning column entirely (status, type, schemas, UI, CLI, MCP)
- Archive button in task detail panel (next to Delete)
- Select button moved to FilterBar row

Activity Page (#66):
- Removed tabs, side-by-side layout: Activity Feed (2/3) + Status History (1/3)
- Daily summary spans top

UI/UX:
- Command palette (Cmd+K)
- Theme toggle (Moon/Sun) in header
- Main padding increased, removed chat icon
- Cleaned up dead code (VelocityChart, MetricCard, unused imports)
- Fixed conditional hooks in CommandPalette
2026-02-02 04:56:47 -06:00