Commit graph

677 commits

Author SHA1 Message Date
Brad Groux
55d98a6017 fix task popout spacing and harden webhook
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
2026-05-03 22:40:24 -05:00
Brad Groux
179b1b709c
Merge pull request #278 from BradGroux/dependabot/npm_and_yarn/typescript-6.0.2
Some checks failed
CI / Lint & Type Check (push) Has been cancelled
CI / Workspace Unit Tests (push) Has been cancelled
CI / Build (push) Has been cancelled
CI / Security Audit (push) Has been cancelled
chore: bump typescript from 5.9.3 to 6.0.2
2026-04-14 22:21:03 -05:00
bradgroux
4c06d1faa2 chore: regenerate pnpm lockfile cleanly 2026-04-14 22:19:31 -05:00
bradgroux
ae392c0de4 fix(web): silence TypeScript 6 baseUrl deprecation 2026-04-14 22:16:51 -05:00
bradgroux
2b2d8d85a9 fix(shared): add DOM lib and node types for TypeScript 6 compatibility
TypeScript 6 tightened implicit global resolution; fetch/RequestInit
(TS2304) and process (TS2591) were no longer implicitly available.
Add DOM to lib for fetch/RequestInit and types:["node"] for process.
2026-04-14 22:16:51 -05:00
dependabot[bot]
acaf875d2d chore: bump typescript from 5.9.3 to 6.0.2
Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.9.3 to 6.0.2.
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.9.3...v6.0.2)

---
updated-dependencies:
- dependency-name: typescript
  dependency-version: 6.0.2
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-14 22:16:50 -05:00
Brad Groux
015d7adf4a
Merge pull request #277 from BradGroux/dependabot/npm_and_yarn/production-dependencies-5b6777a9a2
chore: bump the production-dependencies group with 21 updates
2026-04-14 21:42:35 -05:00
Brad Groux
9baf8946a1
Merge pull request #276 from BradGroux/dependabot/github_actions/pnpm/action-setup-6
chore: bump pnpm/action-setup from 5 to 6
2026-04-14 21:40:41 -05:00
dependabot[bot]
ef60d621cd
chore: bump the production-dependencies group with 21 updates
Bumps the production-dependencies group with 21 updates:

| Package | From | To |
| --- | --- | --- |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `25.5.2` | `25.6.0` |
| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.58.0` | `8.58.2` |
| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.58.0` | `8.58.2` |
| [prettier](https://github.com/prettier/prettier) | `3.8.1` | `3.8.2` |
| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.1.2` | `4.1.4` |
| [content-disposition](https://github.com/jshttp/content-disposition) | `1.0.1` | `1.1.0` |
| [dotenv](https://github.com/motdotla/dotenv) | `17.4.1` | `17.4.2` |
| [file-type](https://github.com/sindresorhus/file-type) | `22.0.0` | `22.0.1` |
| [simple-git](https://github.com/steveukx/git-js/tree/HEAD/simple-git) | `3.35.2` | `3.36.0` |
| [unpdf](https://github.com/unjs/unpdf) | `1.4.0` | `1.6.0` |
| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `4.1.2` | `4.1.4` |
| [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `5.96.2` | `5.99.0` |
| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `1.7.0` | `1.8.0` |
| [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.5` |
| [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.5` |
| [shadcn](https://github.com/shadcn-ui/ui/tree/HEAD/packages/shadcn) | `4.1.2` | `4.2.0` |
| [autoprefixer](https://github.com/postcss/autoprefixer) | `10.4.27` | `10.5.0` |
| [jsdom](https://github.com/jsdom/jsdom) | `29.0.1` | `29.0.2` |
| [postcss](https://github.com/postcss/postcss) | `8.5.8` | `8.5.9` |
| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `8.0.5` | `8.0.8` |
| [hono](https://github.com/honojs/hono) | `4.12.11` | `4.12.12` |


Updates `@types/node` from 25.5.2 to 25.6.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.58.0 to 8.58.2
- [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.58.2/packages/eslint-plugin)

Updates `@typescript-eslint/parser` from 8.58.0 to 8.58.2
- [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.58.2/packages/parser)

Updates `prettier` from 3.8.1 to 3.8.2
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.8.1...3.8.2)

Updates `vitest` from 4.1.2 to 4.1.4
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.4/packages/vitest)

Updates `content-disposition` from 1.0.1 to 1.1.0
- [Release notes](https://github.com/jshttp/content-disposition/releases)
- [Commits](https://github.com/jshttp/content-disposition/compare/v1.0.1...v1.1.0)

Updates `dotenv` from 17.4.1 to 17.4.2
- [Changelog](https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md)
- [Commits](https://github.com/motdotla/dotenv/compare/v17.4.1...v17.4.2)

Updates `file-type` from 22.0.0 to 22.0.1
- [Release notes](https://github.com/sindresorhus/file-type/releases)
- [Commits](https://github.com/sindresorhus/file-type/compare/v22.0.0...v22.0.1)

Updates `simple-git` from 3.35.2 to 3.36.0
- [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.36.0/simple-git)

Updates `unpdf` from 1.4.0 to 1.6.0
- [Release notes](https://github.com/unjs/unpdf/releases)
- [Commits](https://github.com/unjs/unpdf/compare/v1.4.0...v1.6.0)

Updates `@vitest/coverage-v8` from 4.1.2 to 4.1.4
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.4/packages/coverage-v8)

Updates `@tanstack/react-query` from 5.96.2 to 5.99.0
- [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.99.0/packages/react-query)

Updates `lucide-react` from 1.7.0 to 1.8.0
- [Release notes](https://github.com/lucide-icons/lucide/releases)
- [Commits](https://github.com/lucide-icons/lucide/commits/1.8.0/packages/lucide-react)

Updates `react` from 19.2.4 to 19.2.5
- [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.5/packages/react)

Updates `react-dom` from 19.2.4 to 19.2.5
- [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.5/packages/react-dom)

Updates `shadcn` from 4.1.2 to 4.2.0
- [Release notes](https://github.com/shadcn-ui/ui/releases)
- [Changelog](https://github.com/shadcn-ui/ui/blob/main/packages/shadcn/CHANGELOG.md)
- [Commits](https://github.com/shadcn-ui/ui/commits/shadcn@4.2.0/packages/shadcn)

Updates `autoprefixer` from 10.4.27 to 10.5.0
- [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.27...10.5.0)

Updates `jsdom` from 29.0.1 to 29.0.2
- [Release notes](https://github.com/jsdom/jsdom/releases)
- [Commits](https://github.com/jsdom/jsdom/compare/v29.0.1...v29.0.2)

Updates `postcss` from 8.5.8 to 8.5.9
- [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.8...8.5.9)

Updates `vite` from 8.0.5 to 8.0.8
- [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/v8.0.8/packages/vite)

Updates `hono` from 4.12.11 to 4.12.12
- [Release notes](https://github.com/honojs/hono/releases)
- [Commits](https://github.com/honojs/hono/compare/v4.12.11...v4.12.12)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 25.6.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: production-dependencies
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-version: 8.58.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: "@typescript-eslint/parser"
  dependency-version: 8.58.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: prettier
  dependency-version: 3.8.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: vitest
  dependency-version: 4.1.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: content-disposition
  dependency-version: 1.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production-dependencies
- dependency-name: dotenv
  dependency-version: 17.4.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: file-type
  dependency-version: 22.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: simple-git
  dependency-version: 3.36.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production-dependencies
- dependency-name: unpdf
  dependency-version: 1.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production-dependencies
- dependency-name: "@vitest/coverage-v8"
  dependency-version: 4.1.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: "@tanstack/react-query"
  dependency-version: 5.99.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production-dependencies
- dependency-name: lucide-react
  dependency-version: 1.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production-dependencies
- dependency-name: react
  dependency-version: 19.2.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: react-dom
  dependency-version: 19.2.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: shadcn
  dependency-version: 4.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production-dependencies
- dependency-name: autoprefixer
  dependency-version: 10.5.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: production-dependencies
- dependency-name: jsdom
  dependency-version: 29.0.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: postcss
  dependency-version: 8.5.9
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: vite
  dependency-version: 8.0.8
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: hono
  dependency-version: 4.12.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-13 23:31:09 +00:00
dependabot[bot]
f9df657d09
chore: bump pnpm/action-setup from 5 to 6
Bumps [pnpm/action-setup](https://github.com/pnpm/action-setup) from 5 to 6.
- [Release notes](https://github.com/pnpm/action-setup/releases)
- [Commits](https://github.com/pnpm/action-setup/compare/v5...v6)

---
updated-dependencies:
- dependency-name: pnpm/action-setup
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-13 23:21:19 +00:00
Brad Groux
bacbd07a1b
Merge pull request #274 from BradGroux/dependabot/npm_and_yarn/production-dependencies-cc85bb0106
Some checks failed
CI / Lint & Type Check (push) Has been cancelled
CI / Workspace Unit Tests (push) Has been cancelled
CI / Build (push) Has been cancelled
CI / Security Audit (push) Has been cancelled
chore: bump the production-dependencies group across 1 directory with 17 updates
2026-04-08 22:15:58 -05:00
dependabot[bot]
ccdffe2960
chore: bump the production-dependencies group across 1 directory with 17 updates
Bumps the production-dependencies group with 17 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@playwright/test](https://github.com/microsoft/playwright) | `1.58.2` | `1.59.1` |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `25.5.0` | `25.5.2` |
| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.57.2` | `8.58.0` |
| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.57.2` | `8.58.0` |
| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.1.1` | `4.1.2` |
| [dotenv](https://github.com/motdotla/dotenv) | `17.3.1` | `17.4.1` |
| [express-rate-limit](https://github.com/express-rate-limit/express-rate-limit) | `8.3.1` | `8.3.2` |
| [simple-git](https://github.com/steveukx/git-js/tree/HEAD/simple-git) | `3.33.0` | `3.35.2` |
| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `4.1.1` | `4.1.2` |
| [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `5.95.2` | `5.96.2` |
| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `1.0.1` | `1.7.0` |
| [react-grid-layout](https://github.com/STRML/react-grid-layout) | `2.2.2` | `2.2.3` |
| [recharts](https://github.com/recharts/recharts) | `3.8.0` | `3.8.1` |
| [shadcn](https://github.com/shadcn-ui/ui/tree/HEAD/packages/shadcn) | `4.1.0` | `4.1.2` |
| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `8.0.2` | `8.0.5` |
| [@modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/typescript-sdk) | `1.27.1` | `1.29.0` |
| [hono](https://github.com/honojs/hono) | `4.12.9` | `4.12.11` |



Updates `@playwright/test` from 1.58.2 to 1.59.1
- [Release notes](https://github.com/microsoft/playwright/releases)
- [Commits](https://github.com/microsoft/playwright/compare/v1.58.2...v1.59.1)

Updates `@types/node` from 25.5.0 to 25.5.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.57.2 to 8.58.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.58.0/packages/eslint-plugin)

Updates `@typescript-eslint/parser` from 8.57.2 to 8.58.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.58.0/packages/parser)

Updates `vitest` from 4.1.1 to 4.1.2
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.2/packages/vitest)

Updates `dotenv` from 17.3.1 to 17.4.1
- [Changelog](https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md)
- [Commits](https://github.com/motdotla/dotenv/compare/v17.3.1...v17.4.1)

Updates `express-rate-limit` from 8.3.1 to 8.3.2
- [Release notes](https://github.com/express-rate-limit/express-rate-limit/releases)
- [Commits](https://github.com/express-rate-limit/express-rate-limit/compare/v8.3.1...v8.3.2)

Updates `simple-git` from 3.33.0 to 3.35.2
- [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.35.2/simple-git)

Updates `@vitest/coverage-v8` from 4.1.1 to 4.1.2
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.2/packages/coverage-v8)

Updates `@tanstack/react-query` from 5.95.2 to 5.96.2
- [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.96.2/packages/react-query)

Updates `lucide-react` from 1.0.1 to 1.7.0
- [Release notes](https://github.com/lucide-icons/lucide/releases)
- [Commits](https://github.com/lucide-icons/lucide/commits/1.7.0/packages/lucide-react)

Updates `react-grid-layout` from 2.2.2 to 2.2.3
- [Release notes](https://github.com/STRML/react-grid-layout/releases)
- [Changelog](https://github.com/react-grid-layout/react-grid-layout/blob/master/CHANGELOG.md)
- [Commits](https://github.com/STRML/react-grid-layout/compare/2.2.2...2.2.3)

Updates `recharts` from 3.8.0 to 3.8.1
- [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.8.0...v3.8.1)

Updates `shadcn` from 4.1.0 to 4.1.2
- [Release notes](https://github.com/shadcn-ui/ui/releases)
- [Changelog](https://github.com/shadcn-ui/ui/blob/main/packages/shadcn/CHANGELOG.md)
- [Commits](https://github.com/shadcn-ui/ui/commits/shadcn@4.1.2/packages/shadcn)

Updates `vite` from 8.0.2 to 8.0.5
- [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/v8.0.5/packages/vite)

Updates `@modelcontextprotocol/sdk` from 1.27.1 to 1.29.0
- [Release notes](https://github.com/modelcontextprotocol/typescript-sdk/releases)
- [Commits](https://github.com/modelcontextprotocol/typescript-sdk/compare/v1.27.1...v1.29.0)

Updates `hono` from 4.12.9 to 4.12.11
- [Release notes](https://github.com/honojs/hono/releases)
- [Commits](https://github.com/honojs/hono/compare/v4.12.9...v4.12.11)

---
updated-dependencies:
- dependency-name: "@playwright/test"
  dependency-version: 1.59.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: production-dependencies
- dependency-name: "@types/node"
  dependency-version: 25.5.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-version: 8.58.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: production-dependencies
- dependency-name: "@typescript-eslint/parser"
  dependency-version: 8.58.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: production-dependencies
- dependency-name: vitest
  dependency-version: 4.1.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: dotenv
  dependency-version: 17.4.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production-dependencies
- dependency-name: express-rate-limit
  dependency-version: 8.3.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: simple-git
  dependency-version: 3.35.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production-dependencies
- dependency-name: "@vitest/coverage-v8"
  dependency-version: 4.1.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: "@tanstack/react-query"
  dependency-version: 5.96.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production-dependencies
- dependency-name: lucide-react
  dependency-version: 1.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production-dependencies
- dependency-name: react-grid-layout
  dependency-version: 2.2.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: recharts
  dependency-version: 3.8.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: shadcn
  dependency-version: 4.1.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: vite
  dependency-version: 8.0.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: "@modelcontextprotocol/sdk"
  dependency-version: 1.29.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production-dependencies
- dependency-name: hono
  dependency-version: 4.12.11
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-06 23:18:51 +00:00
dependabot[bot]
87a0c0fecd
chore: bump file-type from 21.3.4 to 22.0.0 (#273)
* chore: bump file-type from 21.3.4 to 22.0.0

Bumps [file-type](https://github.com/sindresorhus/file-type) from 21.3.4 to 22.0.0.
- [Release notes](https://github.com/sindresorhus/file-type/releases)
- [Commits](https://github.com/sindresorhus/file-type/compare/v21.3.4...v22.0.0)

---
updated-dependencies:
- dependency-name: file-type
  dependency-version: 22.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix: unblock security audit in dependabot file-type bump

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: bradgroux <brad@digitalmeld.io>
2026-03-31 03:15:55 -05:00
Brad Groux
766dfd19ab
Merge pull request #268 from BradGroux/docs/cleanup-and-freshness-sweep
docs: v4.0 documentation freshness sweep
2026-03-25 21:46:22 -05:00
bradgroux
aa4711b41c docs: add sweep history to DOC-FRESHNESS tracking
- Record 2026-03-25 documentation sweep covering version refs,
  governance docs, CHANGELOG, and examples
- Add Last Sweep table for tracking doc maintenance history
2026-03-25 21:42:34 -05:00
bradgroux
ced8ff11bf docs: update CHANGELOG with post-4.0 fixes and improvements
- Add all merged fixes since v4.0.0 release (security hardening,
  test isolation, build order, MIME validation)
- Add performance improvements (batch reads, type exports)
- Add security section with 6 hardening PRs
- Add docs section for governance audit and test coverage
2026-03-25 21:42:13 -05:00
bradgroux
6661cd0b3e docs: update agent task workflow SOP for v4.0
- Remove version tags from section headers
- Add Governance Compliance section covering policy checks,
  decision logging, and output scoring integration
2026-03-25 21:41:47 -05:00
bradgroux
19c2c4f449 docs: add v4.0 governance examples and remove version tags
- Add examples for policy evaluation, drift monitoring, and
  decision audit trail (sections 11-13)
- Remove version tags from section headers (7-10) since features
  are now part of the stable release
- Practical curl examples with realistic payloads
2026-03-25 21:41:19 -05:00
bradgroux
b01285ae2f docs: clean up TESTING_ANALYTICS with dynamic dates
- Replace hardcoded 2026-02-04/05 dates with dynamic shell variables
- Simplify parallelism example output to be date-agnostic
- Remove hardcoded timestamps from example error responses
2026-03-25 21:40:29 -05:00
bradgroux
c1b4711162 docs: add v4.0 governance quick tips to Tips & Tricks
- Add quick reference table for all v4.0 governance features
- Cover policy engine, decision audit, output scoring,
  drift detection, feedback analytics, system health,
  dashboard widgets, and prompt registry
- Remove version number from Workflow Engine header
2026-03-25 21:39:59 -05:00
bradgroux
f906644be7 docs: add v4.0 governance best practices section
- Rename v3.3 section to 'Advanced Features'
- Add 5 new best practices for v4.0 governance features:
  policy definition, drift monitoring, decision logging,
  output scoring, and feedback loops
- Reference correct API endpoints for each practice
2026-03-25 21:39:29 -05:00
bradgroux
e3a9abc2fc docs: update stale v3.x version references to v4.0
- FEATURES.md: update version header from v3.3 to v4.0
- BEST-PRACTICES.md: update section header for v3.3+ features
- WORKFLOW-GUIDE.md: update version and prerequisites to v4.0
- WORKFLOW_ENGINE_ARCHITECTURE.md: remove version from title (living doc)
- SOP-multi-agent-orchestration.md: remove version from section header
2026-03-25 21:39:01 -05:00
dependabot[bot]
02df89345a
chore: bump lucide-react from 0.577.0 to 1.0.1 (#262)
Bumps [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) from 0.577.0 to 1.0.1.
- [Release notes](https://github.com/lucide-icons/lucide/releases)
- [Commits](https://github.com/lucide-icons/lucide/commits/1.0.1/packages/lucide-react)

---
updated-dependencies:
- dependency-name: lucide-react
  dependency-version: 1.0.1
  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-03-23 21:42:15 -05:00
Brad Groux
bee813b2d6
fix(tests): use valid PNG IHDR chunks in mime-validation fixtures (#266)
file-type >=21.3.4 now validates PNG structure beyond just the 8-byte
signature. The minimal header+zeros buffer no longer detects as image/png.

Updated both the PNG acceptance test and the PNG-as-JPG mismatch test
to include a valid IHDR chunk (1x1 RGB pixel), making them compatible
with both current and upcoming file-type versions.

Co-authored-by: bradgroux <brad@digitalmeld.io>
2026-03-23 20:30:59 -05:00
dependabot[bot]
a4a506c5c4
chore: bump pnpm/action-setup from 4 to 5 (#260)
Bumps [pnpm/action-setup](https://github.com/pnpm/action-setup) from 4 to 5.
- [Release notes](https://github.com/pnpm/action-setup/releases)
- [Commits](https://github.com/pnpm/action-setup/compare/v4...v5)

---
updated-dependencies:
- dependency-name: pnpm/action-setup
  dependency-version: '5'
  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-03-23 20:26:33 -05:00
Brad Groux
9f49379b72
test: comprehensive unit tests for v4.0 governance services (#249) (#263)
* test: decision-service tests (issue #249)

* test: chat-service tests (issue #249)

* test: feedback-service tests (issue #249)

* docs: security audit findings for #254 — governance endpoint review

Audit-only report covering:
- v1 router rate limiting (confirmed global coverage)
- chat.ts: unbounded message/agent fields (MEDIUM)
- prompt-registry.ts: unbounded content/sampleVariables (MEDIUM)
- delegation.ts: missing .max() on string fields, unvalidated limit param (LOW)
- workflows.ts: unbounded context/config depth (LOW)
- No SSRF or path traversal vectors found in audited routes

No code changes. Fixes to be tracked in follow-up issues.

Closes #254 (audit report delivered)

* test: add remaining governance service coverage (#249)

* chore: remove stray audit file from wrong branch

---------

Co-authored-by: Brad Groux <bradgroux@users.noreply.github.com>
Co-authored-by: bradgroux <brad@digitalmeld.io>
2026-03-23 20:16:55 -05:00
Brad Groux
3328a79b3f
test: add governance dashboard e2e coverage (#264)
Co-authored-by: bradgroux <brad@digitalmeld.io>
2026-03-23 20:16:47 -05:00
Brad Groux
c89c5e5d7e
docs: add v4 governance security audit (#265)
Co-authored-by: bradgroux <brad@digitalmeld.io>
2026-03-23 20:16:41 -05:00
Brad Groux
07f1b9857e
test(routes): add feedback, chat, and system-health route tests (#250) (#257)
* perf(task-service): batch file reads with bounded concurrency (#253)

- Add batchedMap() to fs-helpers.ts: Promise.all-based worker pool capped
  at BATCH_CONCURRENCY (10) concurrent operations. Individual item errors
  become null — one bad file never aborts the entire batch.
- Replace unbounded Promise.all in loadCacheFromDisk() with batchedMap()
- Replace unbounded Promise.all in listArchivedTasks() with batchedMap()
- Add batch-reads-benchmark.test.ts: concurrency-cap proof, order
  preservation, error isolation, corrupt/missing file tolerance, and a
  50-file wall-clock benchmark (3.4× improvement on local tmpfs)

Closes #253

* Revert "perf(task-service): batch file reads with bounded concurrency (#253)"

This reverts commit a423e5ea25.

* test(routes): add feedback, chat, and system-health route tests (#250)

- feedback.test.ts: 27 tests covering GET/POST/PUT/DELETE, validation, auth, errors
- chat.test.ts: 32 tests covering sessions, squad messages, auth enforcement
- system-health.test.ts: 12 tests covering health check endpoints and response shape

All 71 tests pass. Closes #250

---------

Co-authored-by: Brad Groux <bradgroux@users.noreply.github.com>
2026-03-23 20:16:33 -05:00
Brad Groux
c23d261b9e
perf(task-service): batch file reads with bounded concurrency (#253) (#255)
- Add batchedMap() to fs-helpers.ts: Promise.all-based worker pool capped
  at BATCH_CONCURRENCY (10) concurrent operations. Individual item errors
  become null — one bad file never aborts the entire batch.
- Replace unbounded Promise.all in loadCacheFromDisk() with batchedMap()
- Replace unbounded Promise.all in listArchivedTasks() with batchedMap()
- Add batch-reads-benchmark.test.ts: concurrency-cap proof, order
  preservation, error isolation, corrupt/missing file tolerance, and a
  50-file wall-clock benchmark (3.4× improvement on local tmpfs)

Closes #253

Co-authored-by: Brad Groux <bradgroux@users.noreply.github.com>
2026-03-23 20:16:25 -05:00
Brad Groux
450ee469ce
feat(shared): export governance, policy, and workflow types (#252) (#256)
- Add shared/src/types/governance.ts — re-exports decision, drift, feedback, and scoring types from their canonical files
- Add shared/src/types/policy.ts — re-exports policy types from policy.types.ts
- Add shared/src/types/workflow.ts — extracts WorkflowDefinition, WorkflowRun, WorkflowStep, StepRunStatus and related types from server/src/types/workflow.ts into shared
- Update shared/src/types/index.ts to barrel-export workflow types
- Update shared/package.json with subpath exports for governance, policy, and workflow type paths

Closes #252

Co-authored-by: Brad Groux <bradgroux@users.noreply.github.com>
2026-03-23 20:16:11 -05:00
Brad Groux
c4cbd715de
Merge pull request #248 from BradGroux/fix/shared-typecheck-drift
fix: build shared before typecheck to prevent export drift
2026-03-22 14:36:56 -05:00
Brad Groux
8fe134bd7d fix: build shared before typecheck to prevent export drift
The root typecheck script ran `pnpm -r typecheck` without building
@veritas-kanban/shared first. Since shared/dist/ is gitignored, any
new type files added to shared/src/types/ (drift, decision, evaluation,
policy, prompt-registry, system-health, feedback) would not be compiled
to dist/, causing TS2305 errors in server imports.

CI already had the correct ordering (build shared → typecheck), but the
local dev script diverged. This aligns the root typecheck script with CI
by prepending `pnpm --filter @veritas-kanban/shared build`.

Resolves 80+ TS2305/TS2724 errors in server typecheck.

VK: task_20260322_l9Qj-A
2026-03-22 14:25:44 -05:00
Brad Groux
2fb680003e
Merge pull request #246 from BradGroux/fix/status-history-test-isolation
fix: isolate status history tests from real state
2026-03-22 14:24:26 -05:00
Brad Groux
ddca1b6cb4 fix: isolate status history tests from real state 2026-03-22 14:24:15 -05:00
Brad Groux
e9f63c9199
Merge pull request #244 from clintoncodewell/fix/build-shared-first
fix: build shared package before server and web
2026-03-22 14:06:18 -05:00
Ubuntu
6658294ce6 fix: build shared package before server and web 2026-03-22 08:58:08 +00:00
Brad Groux
7483cc67f3
fix(security): harden localhost bypass and broadcast frontmatter parsing (closes #236) (#242)
- auth: disable localhost bypass entirely in production mode instead of
  just logging a warning — prevents misconfigured deployments from
  allowing unauthenticated access
- broadcast-storage: wrap JSON.parse() calls for tags and readBy
  frontmatter fields in try-catch, defaulting to empty arrays on parse
  failure instead of crashing the route handler

Co-authored-by: Brad Groux <bradgroux@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 15:20:31 -05:00
Brad Groux
303b7935b6
fix(api): make startup init failures fatal and add shutdown timeouts (closes #235) (#241)
- Service initialization (telemetry, policy, config, migrations) now
  calls process.exit(1) on failure instead of silently continuing with
  a partially broken server
- WebSocket server close gets a 3s timeout so stuck clients don't block
  shutdown indefinitely
- Telemetry flush gets a 5s timeout so a stuck write queue doesn't
  prevent shutdown

Co-authored-by: Brad Groux <bradgroux@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 15:20:28 -05:00
Brad Groux
0fc2c834ae
fix(api): prevent config cache stampede and log corrupted activity files (closes #234) (#240)
- config-service: coalesce concurrent getConfig() calls into a single
  disk read via pendingRead promise, preventing cache stampede under load
- activity-service: log warning when corrupted activity file is reset
  instead of silently discarding data

Co-authored-by: Brad Groux <bradgroux@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 15:20:26 -05:00
Brad Groux
74dc3a9074
fix(api): WebSocket event listener leaks and add message rate limiting (closes #233) (#239)
- Replace per-subscribe ws.on('close') listeners with tracked emitter
  references, preventing listener accumulation when clients re-subscribe
- Add message rate limiting (30 msgs / 10s window) to prevent DoS via
  WebSocket message spam
- Clean up emitter listeners on close handler to prevent callbacks on
  destroyed sockets

Co-authored-by: Brad Groux <bradgroux@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 15:20:23 -05:00
Brad Groux
aaf0f47ac6
fix(api): resolve promise handling issues causing crashes and data loss (closes #232) (#238)
- gateway-chat-client: add settled flag to prevent multiple resolve/reject
  on the same promise from concurrent timeout, error, and close events
- file-lock: add rejection handler on previous.then() in timeout path so
  a rejected predecessor doesn't cause an unhandled rejection
- telemetry-service: capture event reference at enqueue time instead of
  shifting from queue at write time, preventing event loss under concurrency
- status-history-service: await async init before any public method runs,
  preventing race conditions when logStatusChange is called before
  loadLastEntry completes

Co-authored-by: Brad Groux <bradgroux@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 15:20:20 -05:00
Brad Groux
43725e69e2
fix(security): enforce HS256 algorithm in JWT verification (closes #231) (#237)
Add explicit `algorithms: ['HS256']` to all `jwt.verify()` calls to
prevent algorithm confusion attacks (CVE-2015-9235). Without this,
an attacker could switch the algorithm header to exploit key type
mismatches and forge valid tokens.

Co-authored-by: Brad Groux <bradgroux@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 15:20:18 -05:00
Brad Groux
dd35ad8a72 docs: update README for v4.0.0 release
- Move v4.0 roadmap items to Shipped section
- Add new SOP docs and self-hosting guide to documentation map
- Verify feature descriptions match shipped functionality
2026-03-21 12:51:39 -05:00
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
e50119ab1e
feat(mcp): project management tools (reimplements #151) (#227)
Adds full CRUD project management tools to the MCP server:
- list_projects (with includeHidden filter)
- get_project (by ID)
- create_project (with Tailwind color validation)
- update_project (PATCH by ID)
- delete_project (with optional force flag)
- get_project_stats (NEW: task counts per status via GET /api/tasks?project=)
- reorder_projects (NEW: POST /api/projects/reorder)

Registers tools in mcp/src/index.ts alongside existing tool modules.
Includes 34 unit tests (all mocked, no server required).

Original implementation by @hekr4jivs in PR #151.

Co-authored-by: Brad Groux <bradgroux@users.noreply.github.com>
2026-03-21 11:51:56 -05:00
Brad Groux
66f498fd6d
docs: comprehensive self-hosting guide (reimplements #126) (#226)
Adds docs/guides/SELF_HOST.md covering:
- Prerequisites (Node.js, pnpm)
- Build steps
- Local hosting
- LAN access (HOST=0.0.0.0, CORS, VITE_ALLOWED_HOSTS)
- Tailscale Serve — root path and sub-path (/kanban/) routing
- Reverse proxy (nginx, Caddy) with sub-path examples
- Docker / docker-compose with sub-path build args
- Security (VERITAS_ADMIN_KEY, API keys, TRUST_PROXY, roles)
- Full environment variables reference table
- Troubleshooting (CORS, WebSocket, base path, rate limits, sessions)

Original contribution by @xechehot in PR #126 — the Vite base path
and VITE_ALLOWED_HOSTS config from that PR are already merged into main;
this adds the missing documentation guide.

Co-authored-by: Brad Groux <bradgroux@users.noreply.github.com>
2026-03-21 11:51:49 -05:00
Brad Groux
f084ce7d39
fix: add missing requireDeliverableForDone to settings schema (#228)
The requireDeliverableForDone field was used in task-service.ts and
the UI (TasksTab.tsx) but was missing from the Zod validation schema
in feature-settings-schema.ts. Due to .strict() mode on
TaskBehaviorSettingsSchema, PATCH /api/settings/features rejected
any payload containing this field with a 400 error.

Fix: Add requireDeliverableForDone: z.boolean().optional() to
TaskBehaviorSettingsSchema after autoSaveDelayMs.

Also add tests verifying the field is accepted (true and false) and
that unknown fields are still rejected by strict mode.

Reimplements #130. Original contribution by @TylonHH.

Co-authored-by: Brad Groux <bradgroux@users.noreply.github.com>
2026-03-21 11:51:40 -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