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
7868a92bea
fix: squad chat panel not scrollable ( #224 ) ( #225 )
...
Add min-h-0 to ScrollArea in flex column layout. Without it,
flex-1 items default to min-height:auto which prevents the
container from shrinking below content size, breaking overflow
scroll.
Co-authored-by: Brad Groux <bradgroux@users.noreply.github.com>
2026-03-21 11:23:52 -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
65e9ca21cd
feat: Draggable & Resizable Dashboard Widget Grid ( #183 ) ( #223 )
...
* feat: draggable & resizable dashboard widget grid (#183 )
* feat: draggable & resizable dashboard widget grid (#183 )
---------
Co-authored-by: Brad Groux <bradgroux@users.noreply.github.com>
2026-03-21 11:14:37 -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
dependabot[bot]
7e08df8cff
chore: bump vite from 7.3.1 to 8.0.0 ( #204 )
...
* chore: bump vite from 7.3.1 to 8.0.0
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite ) from 7.3.1 to 8.0.0.
- [Release notes](https://github.com/vitejs/vite/releases )
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md )
- [Commits](https://github.com/vitejs/vite/commits/create-vite@8.0.0/packages/vite )
---
updated-dependencies:
- dependency-name: vite
dependency-version: 8.0.0
dependency-type: direct:development
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
* fix: convert manualChunks to function for Vite 8/Rolldown
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Brad Groux <3053586+BradGroux@users.noreply.github.com>
2026-03-21 10:06:38 -05:00
Brad Groux
b297bfdd95
chore: upgrade shadcn/ui components to v4 ( #219 )
...
* chore: upgrade shadcn/ui components to v4 CLI compatibility (closes #186 )
- Update 16 registry components to v4 API (function components, data-slot, radix-ui unified import)
- Migrate components.json style from new-york to radix-nova with new v4 fields (rtl, menuColor, menuAccent)
- Convert CSS variables from HSL to oklch color format with @theme inline block for Tailwind v4
- Preserve VK custom purple accent (primary/ring) in dark mode: oklch(0.389 0.15 303.5)
- Add new dependencies: radix-ui, shadcn, tw-animate-css, @fontsource-variable/geist
- Add WCAG accessibility rules, reduced-motion and focus-visible in consolidated @layer base
- Update docs/SHADCN-V4.md with v4 migration details and oklch theme reference
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: revert font stack to system-ui/Roboto per review
Removes Geist Variable font and restores the original system font stack
as requested by BradGroux. Also adds missing trailing newline to globals.css.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: francois352 <francois@neurofeedback-luxembourg.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-21 09:58:24 -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
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
dependabot[bot]
afbbf6e064
chore: bump jsdom from 28.1.0 to 29.0.0 ( #203 )
...
Bumps [jsdom](https://github.com/jsdom/jsdom ) from 28.1.0 to 29.0.0.
- [Release notes](https://github.com/jsdom/jsdom/releases )
- [Changelog](https://github.com/jsdom/jsdom/blob/v29.0.0/Changelog.md )
- [Commits](https://github.com/jsdom/jsdom/compare/v28.1.0...v29.0.0 )
---
updated-dependencies:
- dependency-name: jsdom
dependency-version: 29.0.0
dependency-type: direct:development
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-19 19:48:25 -05:00
dependabot[bot]
f533772d16
chore: bump the production-dependencies group with 10 updates ( #199 )
...
Bumps the production-dependencies group with 10 updates:
| Package | From | To |
| --- | --- | --- |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ) | `25.3.3` | `25.4.0` |
| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin ) | `8.56.1` | `8.57.0` |
| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser ) | `8.56.1` | `8.57.0` |
| [lint-staged](https://github.com/lint-staged/lint-staged ) | `16.3.1` | `16.3.2` |
| [file-type](https://github.com/sindresorhus/file-type ) | `21.3.0` | `21.3.1` |
| [@types/multer](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/multer ) | `2.0.0` | `2.1.0` |
| [@types/sanitize-html](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/sanitize-html ) | `2.16.0` | `2.16.1` |
| [dompurify](https://github.com/cure53/DOMPurify ) | `3.3.1` | `3.3.2` |
| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react ) | `0.576.0` | `0.577.0` |
| [recharts](https://github.com/recharts/recharts ) | `3.7.0` | `3.8.0` |
Updates `@types/node` from 25.3.3 to 25.4.0
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
Updates `@typescript-eslint/eslint-plugin` from 8.56.1 to 8.57.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.57.0/packages/eslint-plugin )
Updates `@typescript-eslint/parser` from 8.56.1 to 8.57.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.57.0/packages/parser )
Updates `lint-staged` from 16.3.1 to 16.3.2
- [Release notes](https://github.com/lint-staged/lint-staged/releases )
- [Changelog](https://github.com/lint-staged/lint-staged/blob/main/CHANGELOG.md )
- [Commits](https://github.com/lint-staged/lint-staged/compare/v16.3.1...v16.3.2 )
Updates `file-type` from 21.3.0 to 21.3.1
- [Release notes](https://github.com/sindresorhus/file-type/releases )
- [Commits](https://github.com/sindresorhus/file-type/compare/v21.3.0...v21.3.1 )
Updates `@types/multer` from 2.0.0 to 2.1.0
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/multer )
Updates `@types/sanitize-html` from 2.16.0 to 2.16.1
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/sanitize-html )
Updates `dompurify` from 3.3.1 to 3.3.2
- [Release notes](https://github.com/cure53/DOMPurify/releases )
- [Commits](https://github.com/cure53/DOMPurify/compare/3.3.1...3.3.2 )
Updates `lucide-react` from 0.576.0 to 0.577.0
- [Release notes](https://github.com/lucide-icons/lucide/releases )
- [Commits](https://github.com/lucide-icons/lucide/commits/0.577.0/packages/lucide-react )
Updates `recharts` from 3.7.0 to 3.8.0
- [Release notes](https://github.com/recharts/recharts/releases )
- [Changelog](https://github.com/recharts/recharts/blob/main/CHANGELOG.md )
- [Commits](https://github.com/recharts/recharts/compare/v3.7.0...v3.8.0 )
---
updated-dependencies:
- dependency-name: "@types/node"
dependency-version: 25.4.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: production-dependencies
- dependency-name: "@typescript-eslint/eslint-plugin"
dependency-version: 8.57.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: production-dependencies
- dependency-name: "@typescript-eslint/parser"
dependency-version: 8.57.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: production-dependencies
- dependency-name: lint-staged
dependency-version: 16.3.2
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: production-dependencies
- dependency-name: file-type
dependency-version: 21.3.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: production-dependencies
- dependency-name: "@types/multer"
dependency-version: 2.1.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: production-dependencies
- dependency-name: "@types/sanitize-html"
dependency-version: 2.16.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: production-dependencies
- dependency-name: dompurify
dependency-version: 3.3.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: production-dependencies
- dependency-name: lucide-react
dependency-version: 0.577.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: production-dependencies
- dependency-name: recharts
dependency-version: 3.8.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: production-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-09 19:24:54 -05:00
Brad Groux
2afff60cc8
fix: resolve CI type errors in useTasks-patchCache test
...
- Widen assertPatchOnly hookFn parameter to accept any mutation hook return type
instead of narrowly typing to useAddSubtask's signature
- Add explicit type annotation for 'call' parameter (TS7006)
- Update multer 2.1.0→2.1.1, express-rate-limit 8.2.1→8.2.2,
hono 4.12.3→4.12.4+, @hono/node-server 1.19.9→1.19.10+,
@modelcontextprotocol/sdk to resolve 4 high severity audit findings
2026-03-09 13:14:50 -05:00
Francois Altwies
678689299a
feat: add global system health status bar ( #185 ) ( #195 )
...
Aggregate system, agent, and operations health signals into a single
status bar displayed below the header. The bar shows one of five states
(stable/reviewing/drifting/elevated/alert) with color-coded indicators
and expands on click to show per-signal details.
Backend: GET /api/v1/system/health aggregates storage/disk/memory checks,
agent registry stats, and 24h run metrics into a unified response.
Frontend: SystemHealthBar component with useSystemHealth hook polling
via @tanstack/react-query (30s connected, 60s disconnected).
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 07:42:35 -05:00
Francois Altwies
9625009c39
feat(web): support sub-path deployment via VITE_BASE_PATH ( #189 )
...
* feat(web): support deployment under a sub-path (VITE_BASE_PATH)
Enable deploying Veritas Kanban behind a reverse proxy under a sub-path
(e.g., /kanban/) without code modifications.
Changes:
- Dockerfile: add VITE_BASE_PATH build arg (default: /)
- vite.config.ts: set `base` from VITE_BASE_PATH
- config.ts: derive API_BASE from Vite's BASE_URL
- helpers.ts: prefix absolute URLs in apiFetch with BASE_URL
- useWebSocket.ts: include base path in default WS URL
- SecurityTab.tsx: prefix auth reset URL with BASE_URL
Usage:
docker build --build-arg VITE_BASE_PATH=/kanban/ -t veritas-kanban .
The reverse proxy should strip the prefix before forwarding to the
server (e.g., Traefik StripPrefix, nginx proxy_pass with trailing /).
Note: Some components use raw fetch('/api/...') instead of apiFetch().
These should be migrated incrementally — apiFetch now handles the
prefix automatically.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix(web): migrate remaining raw fetch calls to use API_BASE
Replace hardcoded fetch('/api/...') with fetch(`${API_BASE}/...`)
in 9 component files that were bypassing the base path config:
- ExportDialog (telemetry export)
- DelegationTab (delegation CRUD)
- ToolPoliciesTab (policy save/delete)
- DependenciesSection (dependency management)
- WorkflowSection (workflow status)
- TaskDetailsTab (task creation)
- WorkflowRunList (run listing)
- WorkflowRunView (run details + resume)
- WorkflowsPage (workflow listing + run start)
This ensures all API calls respect VITE_BASE_PATH for sub-path
deployments (e.g., /kanban/).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-09 07:42:14 -05:00
BradGroux
c8ee5004cd
fix(web): eliminate 11 redundant full-list refetches from detail mutations
...
Detail-level mutations (subtasks, comments, observations, verification
steps) previously called invalidateQueries(['tasks']) on success, which
triggered a full GET /api/tasks re-fetch — even though the mutation
response already contained the complete updated task.
Replaced with patchTaskInCaches() helper that does an in-place cache
update of both the list cache (['tasks']) and individual task cache
(['tasks', id]). The existing polling interval and WebSocket events
still handle eventual consistency for multi-client scenarios.
Affected hooks (11 total):
- useAddSubtask, useUpdateSubtask, useDeleteSubtask
- useToggleSubtaskCriteria
- useAddComment, useEditComment, useDeleteComment
- useAddObservation, useDeleteObservation
- useAddVerificationStep, useUpdateVerificationStep, useDeleteVerificationStep
Added 12 regression tests verifying each mutation patches the cache
without triggering full-list invalidation.
All 95 tests pass (83 existing + 12 new).
2026-03-05 22:50:03 -06:00
dependabot[bot]
b88eb8d46d
chore: bump the production-dependencies group with 4 updates ( #172 )
...
Bumps the production-dependencies group with 4 updates: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ), [lint-staged](https://github.com/lint-staged/lint-staged ), [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react ) and [postcss](https://github.com/postcss/postcss ).
Updates `@types/node` from 25.3.2 to 25.3.3
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
Updates `lint-staged` from 16.3.0 to 16.3.1
- [Release notes](https://github.com/lint-staged/lint-staged/releases )
- [Changelog](https://github.com/lint-staged/lint-staged/blob/main/CHANGELOG.md )
- [Commits](https://github.com/lint-staged/lint-staged/compare/v16.3.0...v16.3.1 )
Updates `lucide-react` from 0.575.0 to 0.576.0
- [Release notes](https://github.com/lucide-icons/lucide/releases )
- [Commits](https://github.com/lucide-icons/lucide/commits/0.576.0/packages/lucide-react )
Updates `postcss` from 8.5.6 to 8.5.8
- [Release notes](https://github.com/postcss/postcss/releases )
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md )
- [Commits](https://github.com/postcss/postcss/compare/8.5.6...8.5.8 )
---
updated-dependencies:
- dependency-name: "@types/node"
dependency-version: 25.3.3
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: production-dependencies
- dependency-name: lint-staged
dependency-version: 16.3.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: production-dependencies
- dependency-name: lucide-react
dependency-version: 0.576.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: production-dependencies
- dependency-name: postcss
dependency-version: 8.5.8
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: production-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-04 00:45:58 -06: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
Brad Groux
112da181c8
fix(stability): Complete Zod 4 API migration ( #162 )
...
* fix(stability): complete Zod 4 API migration
BREAKING CHANGE: Migrated from Zod 3 to Zod 4 API patterns
Changes:
- Replace ZodError.errors with ZodError.issues (Zod 4 API)
- Update z.record(valueSchema) to z.record(z.string(), valueSchema)
- Fix env.ts schema defaults to use correct types (numbers/booleans)
- Replace required_error with message in Zod schemas
This resolves 50+ TypeScript compilation errors that were blocking
CI/CD and potentially causing runtime issues.
Fixes: type checking errors in server and web packages
Risk: Low - straightforward API migration with full test coverage
* fix(zod4): use string defaults for transform/pipe schemas
Zod v4 changed .default() to require the input type (string) rather
than the output type. Fixed PORT, VERITAS_AUTH_ENABLED,
VERITAS_AUTH_LOCALHOST_BYPASS, CSP_REPORT_ONLY, and RATE_LIMIT_MAX
to pass string defaults to their respective portSchema / booleanString
/ positiveIntString coercing schemas.
---------
Co-authored-by: BradGroux <super.seth.vos@gmail.com>
2026-03-01 13:52:49 -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
supersethvos
8c4eb42d76
feat(sync): task↔agent state sync + reconciliation ( #155 )
...
* feat(sync): implement task↔agent state sync with reconciliation and flap guard
* fix(sync): add sync auth context, ref validation, and reconcile bounds
---------
Co-authored-by: SETH VOS <sethai@SETHs-Mac-mini.lan>
2026-03-01 12:05:23 -06:00
Brad Groux
0d7dfb135c
chore: release v3.3.1
2026-02-28 09:57:48 -06:00
dependabot[bot]
12478768cc
chore: bump the production-dependencies group across 1 directory with 8 updates ( #154 )
...
Bumps the production-dependencies group with 8 updates in the / directory:
| Package | From | To |
| --- | --- | --- |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ) | `25.3.0` | `25.3.2` |
| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin ) | `8.56.0` | `8.56.1` |
| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser ) | `8.56.0` | `8.56.1` |
| [lint-staged](https://github.com/lint-staged/lint-staged ) | `16.2.7` | `16.3.0` |
| [multer](https://github.com/expressjs/multer ) | `2.0.2` | `2.1.0` |
| [simple-git](https://github.com/steveukx/git-js/tree/HEAD/simple-git ) | `3.32.1` | `3.32.3` |
| [autoprefixer](https://github.com/postcss/autoprefixer ) | `10.4.24` | `10.4.27` |
| [@modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/typescript-sdk ) | `1.26.0` | `1.27.1` |
Updates `@types/node` from 25.3.0 to 25.3.2
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
Updates `@typescript-eslint/eslint-plugin` from 8.56.0 to 8.56.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.56.1/packages/eslint-plugin )
Updates `@typescript-eslint/parser` from 8.56.0 to 8.56.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.56.1/packages/parser )
Updates `lint-staged` from 16.2.7 to 16.3.0
- [Release notes](https://github.com/lint-staged/lint-staged/releases )
- [Changelog](https://github.com/lint-staged/lint-staged/blob/main/CHANGELOG.md )
- [Commits](https://github.com/lint-staged/lint-staged/compare/v16.2.7...v16.3.0 )
Updates `multer` from 2.0.2 to 2.1.0
- [Release notes](https://github.com/expressjs/multer/releases )
- [Changelog](https://github.com/expressjs/multer/blob/main/CHANGELOG.md )
- [Commits](https://github.com/expressjs/multer/compare/v2.0.2...v2.1.0 )
Updates `simple-git` from 3.32.1 to 3.32.3
- [Release notes](https://github.com/steveukx/git-js/releases )
- [Changelog](https://github.com/steveukx/git-js/blob/main/simple-git/CHANGELOG.md )
- [Commits](https://github.com/steveukx/git-js/commits/simple-git@3.32.3/simple-git )
Updates `autoprefixer` from 10.4.24 to 10.4.27
- [Release notes](https://github.com/postcss/autoprefixer/releases )
- [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md )
- [Commits](https://github.com/postcss/autoprefixer/compare/10.4.24...10.4.27 )
Updates `@modelcontextprotocol/sdk` from 1.26.0 to 1.27.1
- [Release notes](https://github.com/modelcontextprotocol/typescript-sdk/releases )
- [Commits](https://github.com/modelcontextprotocol/typescript-sdk/compare/v1.26.0...v1.27.1 )
---
updated-dependencies:
- dependency-name: "@types/node"
dependency-version: 25.3.2
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: production-dependencies
- dependency-name: "@typescript-eslint/eslint-plugin"
dependency-version: 8.56.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: production-dependencies
- dependency-name: "@typescript-eslint/parser"
dependency-version: 8.56.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: production-dependencies
- dependency-name: lint-staged
dependency-version: 16.3.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: production-dependencies
- dependency-name: multer
dependency-version: 2.1.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: production-dependencies
- dependency-name: simple-git
dependency-version: 3.32.3
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: production-dependencies
- dependency-name: autoprefixer
dependency-version: 10.4.27
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: production-dependencies
- dependency-name: "@modelcontextprotocol/sdk"
dependency-version: 1.27.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: production-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-28 09:50:16 -06:00
dependabot[bot]
2fb6f6c5a6
chore: bump tailwindcss from 3.4.19 to 4.2.1 ( #149 )
...
* chore: bump tailwindcss from 3.4.19 to 4.2.1
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss ) from 3.4.19 to 4.2.1.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases )
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md )
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.2.1/packages/tailwindcss )
---
updated-dependencies:
- dependency-name: tailwindcss
dependency-version: 4.2.1
dependency-type: direct:development
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
* fix: migrate to Tailwind CSS v4 Vite plugin
- Replace postcss.config.js with @tailwindcss/vite plugin
- Update CSS to use @import 'tailwindcss' syntax
- Reference existing config via @config directive
- Add type assertion for Vite plugin compatibility
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Brad Groux <bradgroux@Brads-Mac-mini.local>
2026-02-28 09:20:52 -06:00
dependabot[bot]
33c3429f92
chore: bump vite from 6.4.1 to 7.3.1 ( #148 )
...
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite ) from 6.4.1 to 7.3.1.
- [Release notes](https://github.com/vitejs/vite/releases )
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md )
- [Commits](https://github.com/vitejs/vite/commits/v7.3.1/packages/vite )
---
updated-dependencies:
- dependency-name: vite
dependency-version: 7.3.1
dependency-type: direct:development
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-28 09:08:25 -06:00
V.K. Watson
50dfff84ef
revert: restore port 3001 across codebase, keep Express 5 path fix
...
Reverts port change from 1b7a9fe . OpenClaw gateway will move off 3001 instead.
2026-02-20 21:12:49 -06:00
V.K. Watson
1b7a9feb03
fix: update default API port from 3001 to 3002 across codebase
...
Avoids conflict with OpenClaw gateway on port 3001.
Updated: server config, docs, README, WebSocket hook.
2026-02-20 21:11:40 -06:00
dependabot[bot]
ae00ae009b
chore: bump @vitejs/plugin-react to 5.1.4 (dependabot #139 )
...
Bumps [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react ) from 4.7.0 to 5.1.4.
- [Release notes](https://github.com/vitejs/vite-plugin-react/releases )
- [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md )
- [Commits](https://github.com/vitejs/vite-plugin-react/commits/plugin-react@5.1.4/packages/plugin-react )
---
updated-dependencies:
- dependency-name: "@vitejs/plugin-react"
dependency-version: 5.1.4
dependency-type: direct:development
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-20 02:03:47 -06:00
dependabot[bot]
80b2873931
chore: bump jsdom to 28.1.0 (dependabot #137 )
...
Bumps [jsdom](https://github.com/jsdom/jsdom ) from 27.4.0 to 28.1.0.
- [Release notes](https://github.com/jsdom/jsdom/releases )
- [Changelog](https://github.com/jsdom/jsdom/blob/main/Changelog.md )
- [Commits](https://github.com/jsdom/jsdom/compare/27.4.0...28.1.0 )
---
updated-dependencies:
- dependency-name: jsdom
dependency-version: 28.1.0
dependency-type: direct:development
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-20 02:00:42 -06:00
dependabot[bot]
36217cc38e
chore: bump tailwind-merge to 3.5.0 (dependabot #135 )
...
Bumps [tailwind-merge](https://github.com/dcastil/tailwind-merge ) from 2.6.0 to 3.5.0.
- [Release notes](https://github.com/dcastil/tailwind-merge/releases )
- [Commits](https://github.com/dcastil/tailwind-merge/compare/v2.6.0...v3.5.0 )
---
updated-dependencies:
- dependency-name: tailwind-merge
dependency-version: 3.5.0
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-20 01:57:28 -06:00
dependabot[bot]
707039a171
chore: update production deps (dependabot #134 )
...
Bumps the production-dependencies group with 15 updates:
| Package | From | To |
| --- | --- | --- |
| [@playwright/test](https://github.com/microsoft/playwright ) | `1.58.0` | `1.58.2` |
| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin ) | `8.54.0` | `8.56.0` |
| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser ) | `8.54.0` | `8.56.0` |
| [ajv](https://github.com/ajv-validator/ajv ) | `8.17.1` | `8.18.0` |
| [dotenv](https://github.com/motdotla/dotenv ) | `17.2.3` | `17.3.1` |
| [pino](https://github.com/pinojs/pino ) | `10.3.0` | `10.3.1` |
| [sanitize-html](https://github.com/apostrophecms/apostrophe/tree/HEAD/packages/sanitize-html ) | `2.17.0` | `2.17.1` |
| [simple-git](https://github.com/steveukx/git-js/tree/HEAD/simple-git ) | `3.30.0` | `3.31.1` |
| [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query ) | `5.90.20` | `5.90.21` |
| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react ) | `0.468.0` | `0.575.0` |
| [react](https://github.com/facebook/react/tree/HEAD/packages/react ) | `19.2.3` | `19.2.4` |
| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react ) | `19.2.9` | `19.2.14` |
| [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom ) | `19.2.3` | `19.2.4` |
| [autoprefixer](https://github.com/postcss/autoprefixer ) | `10.4.23` | `10.4.24` |
| [hono](https://github.com/honojs/hono ) | `4.11.7` | `4.12.0` |
Updates `@playwright/test` from 1.58.0 to 1.58.2
- [Release notes](https://github.com/microsoft/playwright/releases )
- [Commits](https://github.com/microsoft/playwright/compare/v1.58.0...v1.58.2 )
Updates `@typescript-eslint/eslint-plugin` from 8.54.0 to 8.56.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.56.0/packages/eslint-plugin )
Updates `@typescript-eslint/parser` from 8.54.0 to 8.56.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.56.0/packages/parser )
Updates `ajv` from 8.17.1 to 8.18.0
- [Release notes](https://github.com/ajv-validator/ajv/releases )
- [Commits](https://github.com/ajv-validator/ajv/compare/v8.17.1...v8.18.0 )
Updates `dotenv` from 17.2.3 to 17.3.1
- [Changelog](https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md )
- [Commits](https://github.com/motdotla/dotenv/compare/v17.2.3...v17.3.1 )
Updates `pino` from 10.3.0 to 10.3.1
- [Release notes](https://github.com/pinojs/pino/releases )
- [Commits](https://github.com/pinojs/pino/compare/v10.3.0...v10.3.1 )
Updates `sanitize-html` from 2.17.0 to 2.17.1
- [Changelog](https://github.com/apostrophecms/apostrophe/blob/main/packages/sanitize-html/CHANGELOG.md )
- [Commits](https://github.com/apostrophecms/apostrophe/commits/2.17.1/packages/sanitize-html )
Updates `simple-git` from 3.30.0 to 3.31.1
- [Release notes](https://github.com/steveukx/git-js/releases )
- [Changelog](https://github.com/steveukx/git-js/blob/main/simple-git/CHANGELOG.md )
- [Commits](https://github.com/steveukx/git-js/commits/simple-git@3.31.1/simple-git )
Updates `@tanstack/react-query` from 5.90.20 to 5.90.21
- [Release notes](https://github.com/TanStack/query/releases )
- [Changelog](https://github.com/TanStack/query/blob/main/packages/react-query/CHANGELOG.md )
- [Commits](https://github.com/TanStack/query/commits/@tanstack/react-query@5.90.21/packages/react-query )
Updates `lucide-react` from 0.468.0 to 0.575.0
- [Release notes](https://github.com/lucide-icons/lucide/releases )
- [Commits](https://github.com/lucide-icons/lucide/commits/0.575.0/packages/lucide-react )
Updates `react` from 19.2.3 to 19.2.4
- [Release notes](https://github.com/facebook/react/releases )
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md )
- [Commits](https://github.com/facebook/react/commits/v19.2.4/packages/react )
Updates `@types/react` from 19.2.9 to 19.2.14
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react )
Updates `react-dom` from 19.2.3 to 19.2.4
- [Release notes](https://github.com/facebook/react/releases )
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md )
- [Commits](https://github.com/facebook/react/commits/v19.2.4/packages/react-dom )
Updates `@types/react` from 19.2.9 to 19.2.14
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react )
Updates `autoprefixer` from 10.4.23 to 10.4.24
- [Release notes](https://github.com/postcss/autoprefixer/releases )
- [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md )
- [Commits](https://github.com/postcss/autoprefixer/compare/10.4.23...10.4.24 )
Updates `hono` from 4.11.7 to 4.12.0
- [Release notes](https://github.com/honojs/hono/releases )
- [Commits](https://github.com/honojs/hono/compare/v4.11.7...v4.12.0 )
---
updated-dependencies:
- dependency-name: "@playwright/test"
dependency-version: 1.58.2
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: production-dependencies
- dependency-name: "@typescript-eslint/eslint-plugin"
dependency-version: 8.56.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: production-dependencies
- dependency-name: "@typescript-eslint/parser"
dependency-version: 8.56.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: production-dependencies
- dependency-name: ajv
dependency-version: 8.18.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: production-dependencies
- dependency-name: dotenv
dependency-version: 17.3.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: production-dependencies
- dependency-name: pino
dependency-version: 10.3.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: production-dependencies
- dependency-name: sanitize-html
dependency-version: 2.17.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: production-dependencies
- dependency-name: simple-git
dependency-version: 3.31.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: production-dependencies
- dependency-name: "@tanstack/react-query"
dependency-version: 5.90.21
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: production-dependencies
- dependency-name: lucide-react
dependency-version: 0.575.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: production-dependencies
- dependency-name: react
dependency-version: 19.2.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: production-dependencies
- dependency-name: "@types/react"
dependency-version: 19.2.14
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: production-dependencies
- dependency-name: react-dom
dependency-version: 19.2.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: production-dependencies
- dependency-name: "@types/react"
dependency-version: 19.2.14
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: production-dependencies
- dependency-name: autoprefixer
dependency-version: 10.4.24
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: production-dependencies
- dependency-name: hono
dependency-version: 4.12.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: production-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-20 01:55:18 -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
TylonHH
76ba0ef8fa
fix: improve LAN dev access for CORS and Vite hosts ( #129 )
2026-02-19 18:05:21 -06:00
TylonHH
08919fa242
fix(web): resolve noUnused and missing observation hook refs ( #128 )
2026-02-19 18:05:10 -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
694969f60a
fix: address 4x10 review findings — module-scope constant, variable ordering, case-insensitive types, new tests
2026-02-12 05:26:49 -06:00
Brad Groux
94f5933a5c
style: squad chat system messages — consistent gray styling
2026-02-12 05:01:19 -06:00
Brad Groux
6d95533180
fix: system messages now display in squad chat
2026-02-12 04:54:59 -06:00
Brad Groux
231e78405d
fix: EnforcementTab reviewGate warning text layout and styling
...
- Removed divide-y causing text to run together
- Changed to space-y-3 for proper vertical spacing
- Added explicit border-t on Closing Comments row
- Warning text now has proper mt-2 separation from toggle
- Changed emoji from ⚠️ to ℹ️ (informational, not warning)
- Lightened bg with bg-muted/50 for subtle appearance
- Moved ml-1 to warning div for better alignment
2026-02-12 04:46:03 -06:00
Brad Groux
0f495f2c7e
fix: defensive settings access in NotificationsTab, GeneralTab, and EnforcementTab
2026-02-12 04:44:08 -06:00
Brad Groux
1ef80874d4
fix: settings update merge — spread current state before patching to prevent data loss
2026-02-12 04:43:47 -06:00
Brad Groux
38e2653d17
style: remove redundant Quality Gates header from enforcement settings
2026-02-12 04:42:42 -06:00
Brad Groux
491da9ac3f
style: fix reviewGate warning spacing — contained within divide-y row
2026-02-12 04:42:09 -06:00
Brad Groux
05fe8ac7fb
fix: defensive settings access in SharedResourcesTab — fallback to defaults
2026-02-12 04:41:09 -06:00
Brad Groux
d1ebe94ad8
fix: defensive settings access in TasksTab, BoardTab, DataTab, and AgentsTab to prevent crash on missing config sections
2026-02-12 04:40:18 -06:00
Brad Groux
b0d50d176c
style: reviewGate warning text — proper formatting with muted bg, only shown when enabled
2026-02-12 04:38:42 -06:00