Commit graph

240 commits

Author SHA1 Message Date
Brad Groux
2be11ca299 Add secure device pairing sessions 2026-06-03 01:56:49 -07:00
Brad Groux
847c9d1287
Document v5 remote server security posture
Adds the v5 remote/server-mode security posture ADR and links it from deployment, self-hosting, security, API reference, and GA checklist docs.
2026-06-03 01:25:02 -07:00
Brad Groux
e6c15c036d Add Mantine QA release gate 2026-06-01 14:17:56 -07:00
Brad Groux
c425a07cd7 Finish Mantine feature surface cleanup 2026-06-01 12:47:43 -07:00
Brad Groux
ab32d7ce89 Migrate governance surfaces to Mantine 2026-06-01 12:06:49 -07:00
Brad Groux
a6bc49aa8d Migrate activity and chat overlays to Mantine 2026-06-01 11:02:42 -07:00
Brad Groux
f5c1695952 Migrate dashboard widgets to Mantine 2026-06-01 10:43:44 -07:00
Brad Groux
c133bb7e87 Migrate dashboard drilldowns to Mantine 2026-06-01 10:16:34 -07:00
Brad Groux
79f509afff Migrate workflow surfaces to Mantine 2026-06-01 09:54:07 -07:00
Brad Groux
4f707c418e Migrate task detail agent template metrics controls to Mantine 2026-06-01 08:41:16 -07:00
Brad Groux
2d494101ae Migrate task detail review preview controls to Mantine 2026-06-01 08:22:31 -05:00
Brad Groux
5907333156 Migrate task detail Git workflow controls to Mantine 2026-06-01 07:39:10 -05:00
Brad Groux
6bd0b3015a Migrate task detail support sections to Mantine 2026-06-01 06:51:09 -05:00
Brad Groux
bd1e6badd3 Migrate task detail work sections to Mantine 2026-06-01 06:03:43 -05:00
Brad Groux
42bf8f035f Migrate task detail validation controls to Mantine 2026-06-01 05:33:09 -05:00
Brad Groux
7c2f18b832 Migrate task detail core to Mantine 2026-06-01 05:01:38 -05:00
Brad Groux
e62b66e657 Migrate layout chrome to Mantine 2026-06-01 03:41:40 -05:00
Brad Groux
d6ce607d2b
Migrate command dialogs to Mantine modals (#493) 2026-06-01 03:18:27 -05:00
Brad Groux
33924fc680
Migrate auth screens to Mantine controls (#492) 2026-06-01 03:02:04 -05:00
Brad Groux
23ff49fb16
Migrate search dialog controls to Mantine (#491) 2026-06-01 02:34:59 -05:00
Brad Groux
756dcaf849
Migrate board chrome controls to Mantine (#490) 2026-06-01 02:15:00 -05:00
Brad Groux
778dc4d2cb
Migrate agents settings controls to Mantine (#489)
Some checks are pending
CI / Security Audit (push) Waiting to run
CI / Lint & Type Check (push) Waiting to run
CI / Workspace Unit Tests (push) Waiting to run
CI / Build (push) Waiting to run
2026-06-01 01:39:39 -05:00
Brad Groux
f476a70cd2
Migrate multi-user settings controls to Mantine (#488) 2026-06-01 01:05:25 -05:00
Brad Groux
04279b4c72
Migrate governance settings controls to Mantine (#487) 2026-06-01 00:47:37 -05:00
Brad Groux
6c0a24c232
Migrate manage settings tab to Mantine (#486) 2026-06-01 00:09:24 -05:00
Brad Groux
5258f4965e
Migrate managed list settings controls to Mantine (#485) 2026-05-31 23:44:23 -05:00
Brad Groux
63c72a12fc
Migrate delegation settings to Mantine (#484) 2026-05-31 23:15:32 -05:00
Brad Groux
d999558421
Migrate security settings to Mantine (#483) 2026-05-31 23:05:17 -05:00
Brad Groux
63208b3192
Migrate general settings tab to Mantine (#482) 2026-05-31 22:37:42 -05:00
Brad Groux
2b7ec7b863
Migrate settings tab controls to Mantine (#481) 2026-05-31 22:14:47 -05:00
Brad Groux
54f636504d
Migrate shared settings rows to Mantine (#480) 2026-05-31 21:59:41 -05:00
Brad Groux
5b2ae3af6b
Migrate settings shell to Mantine (#479) 2026-05-31 21:44:46 -05:00
Brad Groux
e7e550ded3
Migrate create task form to Mantine (#478) 2026-05-31 21:05:42 -05:00
Brad Groux
bf9520ff1c
Migrate archive and backlog surfaces to Mantine (#477) 2026-05-31 20:34:40 -05:00
Brad Groux
f0dceac22f
Add macOS desktop release pipeline (#473) 2026-05-31 17:48:50 -05:00
Brad Groux
21d46f3107 Document v5 desktop architecture decision 2026-05-31 14:29:52 -05:00
Brad Groux
579d3de129 Remove unused Radix primitive dependencies 2026-05-31 14:18:33 -05:00
Brad Groux
4a056a92a8 Migrate shared select wrapper to Mantine 2026-05-31 14:08:51 -05:00
Brad Groux
c48c94e61a Migrate shared alert dialog wrapper to Mantine 2026-05-31 13:55:41 -05:00
Brad Groux
7995cd6dc2 Migrate shared sheet wrapper to Mantine 2026-05-31 13:47:46 -05:00
Brad Groux
5ec20a7fb1 Migrate shared dialog wrapper to Mantine 2026-05-31 13:40:00 -05:00
Brad Groux
7e0b0ce7fa Migrate shared tooltip wrapper to Mantine 2026-05-31 13:25:17 -05:00
Brad Groux
3c713de42f Migrate shared popover tabs and number inputs to Mantine 2026-05-31 13:13:50 -05:00
Brad Groux
28aee90b82
feat: add actor attribution and optimistic concurrency
## Summary

- adds task/comment/workflow revision metadata, ETag headers, and stale-write 409 conflict responses
- records actors on task, comment, activity, audit, and workflow API mutations
- sends cached revisions from web task/comment mutations and reloads the current task on conflicts
- documents the conflict contract and adds route/API regression coverage

## Verification

- `VERITAS_DISABLE_WATCHERS=1 node_modules/.bin/vitest run server/src/__tests__/routes/tasks-coverage.test.ts server/src/__tests__/routes/optimistic-concurrency.test.ts`
- `node_modules/.bin/prettier --check server/src/__tests__/routes/tasks-coverage.test.ts`
- `pnpm --filter @veritas-kanban/server typecheck`
- `git diff --check`
- PR checks: Build, Lint & Type Check, Security Audit, Workspace Unit Tests
2026-05-31 10:54:53 -05:00
Brad Groux
cb70bc42f9
fix: tighten agent approval RBAC guards
Some checks are pending
CI / Lint & Type Check (push) Waiting to run
CI / Workspace Unit Tests (push) Waiting to run
CI / Build (push) Waiting to run
CI / Security Audit (push) Waiting to run
## Summary

- splits agent register, permission, and routing route guards so read-like POSTs stay available without treating all agent self-service POSTs as read-only safe
- requires task:write for agent approval requests, telemetry:write for agent registration writes, and admin:manage for approval review/routing configuration/permission elevation
- mirrors the route guard changes in the shared CLI/MCP permission preflight map
- expands REST, CLI, and MCP authorization tests for read-only mutation denial and scoped agent approval requests

Closes #336.

## Verification

- VERITAS_DISABLE_WATCHERS=1 node_modules/.bin/vitest run server/src/__tests__/routes/v1-permission-guards.test.ts cli/src/__tests__/api-permissions.test.ts mcp/src/__tests__/api-permissions.test.ts
- node scripts/check-permission-coverage.mjs
- pnpm --filter @veritas-kanban/shared build
- pnpm --filter @veritas-kanban/server typecheck
- pnpm --filter @veritas-kanban/cli typecheck
- pnpm --filter @veritas-kanban/mcp build
- pnpm build
- pnpm lint:budget
- pnpm audit --prod --audit-level=high
- node_modules/.bin/prettier --check server/src/routes/v1/permissions.ts server/src/routes/v1/index.ts shared/src/utils/api-permissions.ts server/src/__tests__/routes/v1-permission-guards.test.ts cli/src/__tests__/api-permissions.test.ts mcp/src/__tests__/api-permissions.test.ts docs/security.md
- git diff --check

## Notes

- pnpm audit --prod --audit-level=high passes the high-severity gate and still reports 3 moderate existing vulnerabilities.
- pnpm lint:budget passed with 705 warnings under the 714 warning budget.
- pnpm --filter @veritas-kanban/mcp typecheck is not available because the package has no typecheck script; pnpm --filter @veritas-kanban/mcp build covers TypeScript compilation.
2026-05-31 05:53:32 -05:00
Brad Groux
022889bf26
feat: add SQLite migration recovery drills
## Summary

- adds migration journals, recovery-state reporting, and restore-from-pre-migration-backup service support
- exposes admin recovery and restore endpoints for SQLite migration rollback drills
- documents the v5 recovery contract, downgrade policy, and support bundle contents
- expands portability tests for completed journals, corrupt target failure recovery, rerun, restore, duplicate IDs, and missing attachment files

Closes #419.

## Verification

- VERITAS_DISABLE_WATCHERS=1 node_modules/.bin/vitest run server/src/__tests__/sqlite-portability-service.test.ts
- pnpm --filter @veritas-kanban/server typecheck
- pnpm build
- pnpm lint:budget
- pnpm audit --prod --audit-level=high
- node_modules/.bin/prettier --check server/src/services/sqlite-portability-service.ts server/src/routes/sqlite-portability.ts server/src/__tests__/sqlite-portability-service.test.ts docs/API-REFERENCE.md docs/SQLITE-SCHEMA.md docs/MIGRATION-RECOVERY.md README.md
- git diff --check

## Notes

- pnpm audit --prod --audit-level=high passes the high-severity gate and still reports 3 moderate existing vulnerabilities.
- pnpm lint:budget passed with 705 warnings under the 714 warning budget.
2026-05-31 05:43:25 -05:00
Brad Groux
f7cff20cd8
test: add v5 dual-storage parity gate
## Summary

- adds the v5 dual-storage parity fixture and focused parity test suite
- covers rich task metadata, archive lifecycle, comments/chat history, settings/templates, prompt usage, telemetry/activity/status history, and a workflow run
- adds an explicit CI parity step for file and SQLite storage drift
- preserves newer file-mode task metadata on reload and stabilizes SQLite chat ordering
- hardens workflow parity polling for asynchronous run writes

## Verification

- GitHub Actions: Build, Lint & Type Check, Security Audit, Workspace Unit Tests
- Local focused parity test, server typecheck, lint budget, build, and audit high gate
2026-05-31 05:26:10 -05:00
Brad Groux
522162ae89
test: add v5 permission coverage manifest gate
## Summary

- adds a v5 permission coverage manifest with classifications, required permissions, denial reasons, and review justifications across REST, WebSocket, CLI, MCP, workflow, transition hook, command palette, and background job surfaces
- adds a Node-based coverage checker that fails when tracked surfaces are missing from the manifest or when REST route prefixes drift from the shared permission map
- wires the checker into CI and documents the manifest gate in the security guide

Closes #420.

## Verification

- `node scripts/check-permission-coverage.mjs`
- `./node_modules/.bin/prettier --check package.json .github/workflows/ci.yml scripts/check-permission-coverage.mjs docs/security/permission-coverage.json docs/security.md`
- `git diff --check`
- `pnpm lint:budget`
- `pnpm build`
- `pnpm audit --prod --audit-level=high` (passes high gate; 3 existing moderate findings)
- GitHub Actions: Build, Lint & Type Check, Security Audit, Workspace Unit Tests
2026-05-31 05:02:26 -05:00
Brad Groux
3f5c9a03af
feat: enforce CLI and MCP token permissions
## Summary

- adds a shared client-side API permission mapper and guarded API client for CLI and MCP calls
- exposes a non-secret /api/auth/context endpoint for scoped token preflight
- routes CLI and MCP task lookup helpers through the guarded client
- preflights direct summary text fetches that bypass the JSON API helper
- adds focused CLI and MCP token authorization coverage and documents the behavior

Refs #336.

## Verification

- pnpm --filter @veritas-kanban/shared build
- pnpm --filter @veritas-kanban/cli typecheck
- pnpm --filter @veritas-kanban/mcp build
- pnpm --filter @veritas-kanban/server typecheck
- focused CLI and MCP api-permissions tests
- pnpm lint:budget
- pnpm audit --prod --audit-level=high
- pnpm build
- GitHub Actions: Build, Lint & Type Check, Security Audit, Workspace Unit Tests
2026-05-31 04:35:10 -05:00
Brad Groux
e97d01846a
feat: add SQLite provenance queries
## Summary

- adds a SQLite operational provenance repository with bounded task, run, and recent artifact queries
- exposes lightweight provenance metadata for work products, task deliverables, attachments, workflow runs, scheduled run snapshots, notifications, and task chat messages without returning raw JSON payloads
- wires the provenance repository into the SQLite storage provider
- documents the query surface in the SQLite schema guide

Closes #332.

## Verification

- CI: Build
- CI: Lint & Type Check
- CI: Security Audit
- CI: Workspace Unit Tests
- Local: `./node_modules/.bin/vitest run server/src/__tests__/storage/sqlite-provenance-repository.test.ts`
- Local: `pnpm --filter @veritas-kanban/server typecheck`
- Local: `pnpm lint:budget`
- Local: `pnpm audit --prod --audit-level=high`
- Local: `pnpm build`
- Local: prettier check for changed files
- Local: `git diff --check`
2026-05-31 03:52:38 -05:00