This document is the canonical dependency-governance reference for the public repository and must move together with manifest and lockfile changes.
pnpm.overrides.axios, undici,
form-data, fast-xml-parser, flatted, socket.io-parser, file-type,
underscore, hono, esbuild, and the currently-governed
path-to-regexp vulnerable transitive lines (0.1.12 -> 0.1.13,
8.3.0 -> 8.4.0).basic-ftp to 5.2.1 so the
root workspace no longer carries the command-injection advisory from the
previous 5.2.0 line.lodash and lodash-es to 4.18.1
because GitHub advisories GHSA-f23m-r3pf-42rh and GHSA-r5fr-rjxr-66jc
surfaced through Dependabot for the transitive runtime lines used by
Lighthouse and Artillery, and 4.18.1 is the current non-deprecated npm
release after the short-lived 4.18.0 bad publish.pnpm-lock.yaml with the same
pnpm major line used by CI so frozen installs do not fail with
ERR_PNPM_LOCKFILE_CONFIG_MISMATCH before repo gates even start.ajv on the Ajv v8 line because the MCP SDK and
ajv-formats validation chain require that major version during test-harness
client initialization.vite to 7.3.2 so the
default shipping branch no longer carries the open GitHub advisories tied to
the older 7.3.1 line.pnpm-lock.yaml, and rerun repo gates
before merge.uv.lock
transitive resolution, refresh the lock with uv lock --upgrade-package <name>
and record the accepted residual advisories, if any, in CHANGELOG.md until
the upstream package publishes a fixed release.cryptography to
46.0.7 through uv.lock, which is the first patched release after the
buffer-overflow advisory that affected 46.0.6.| Package | Current locked version |
|---|---|
fastapi |
0.135.3 |
cryptography |
46.0.7 |
mypy |
1.20.0 |
requests |
2.33.1 |
ruff |
0.15.9 |
schemathesis |
4.15.0 |
sqlalchemy |
2.0.49 |
| Workspace | @types/node |
@vitejs/plugin-react |
playwright family |
Extra governed note |
|---|---|---|---|---|
repo root (package.json) |
25.5.2 |
4.7.0 |
1.59.1 (playwright, @playwright/test, @playwright/experimental-ct-react) |
@commitlint/config-conventional=20.5.0, react-router-dom=7.14.0, vite=7.3.2 |
apps/command-center/package.json |
n/a | 4.7.0 |
1.59.1 (playwright) |
@vitejs/plugin-react 5.x is intentionally rejected for now after local smoke regression evidence |
tooling/automation/package.json |
25.5.2 |
n/a | 1.59.1 (playwright, @playwright/test) |
automation runtime stays on the same Playwright baseline as root |
services/mcp-server/package.json |
25.5.2 |
n/a | n/a | MCP server keeps the same Node type baseline as root |
This policy governs baseline, upgrades, and lockfiles for:
playwright + @playwright/test)| Workspace | Ajv | React | TypeScript | Playwright | Vitest |
|---|---|---|---|---|---|
repo root (package.json) |
8.18.0 |
19.1.1 |
5.9.2 |
1.59.1 |
3.2.4 |
apps/command-center/package.json |
n/a | 19.1.1 |
5.9.2 |
1.59.1 |
3.2.4 |
tooling/automation/package.json |
n/a | n/a | 5.9.2 |
1.59.1 |
n/a |
services/mcp-server/package.json |
n/a | n/a | 5.9.2 |
n/a | n/a |
ajv must stay on the v8 line expected by the MCP SDK and
ajv-formats; downgrading it reintroduces MCP client bootstrap failures in
the current harness/runtime combination.apps/command-center/ and tooling/automation/ must track the same TypeScript/Playwright baseline as root.apps/command-center/.playwright, @playwright/test, and
@playwright/experimental-ct-react must stay aligned by major/minor in the
same workspace when those packages coexist.@vitejs/plugin-react 5.2.x
until the frontend smoke path can be reverified on a compatible operator
Node/Vite baseline without the observed runtime regression.5 per governed ecosystem in .github/dependabot.yml.package.json files.pnpm install --frozen-lockfile (expect fail before bump), then pnpm installpnpm -C apps/command-center install or pnpm -C tooling/automation installpnpm typecheckpnpm test:unitpnpm test:ct when React/Vitest/Playwright surfaces changedpnpm test:e2e:frontend for runtime-impacting upgradespnpm typecheck + relevant test suite)Tracked lockfiles:
pnpm-lock.yaml (repo root)uv.lock (Python toolchain)CI and bootstrap baselines that move with dependency governance:
docker/ci/base.Dockerfile and docker/ci/browser.Dockerfile define the
pinned CI runtime dependency baseline for Node, Python, pnpm, Playwright, and
related bootstrap tooling.package.json is also part of that bootstrap truth:
changes to package-manager-driven gate composition must keep dependency and
workflow-governance expectations aligned in the same public reference.Rules:
pnpm install --frozen-lockfile, uv sync --frozen when applicable).pnpm-lock.yaml is the single Node lockfile truth source; nested apps/command-center/ and tooling/automation/ lockfiles are forbidden.pnpm install and recommitting deterministic output./public-repo workspace uses repo-local node_modules as the
authoritative Node root for repo-local installs.~/.cache/uiq/node-modules are tolerated
as shared recovery layers, not the primary workspace truth./tmp/uiq-runner/uiq-node-modules must not be
left behind as dangling steady-state symlinks.configs/governance/dependency-boundaries.yamlnode scripts/ci/check-dependency-boundaries.mjspackages/ must not import apps/, apps/command-center/, services/api/, tooling/automation/, or tests/apps/ and apps/command-center/ must consume packages/ and contracts/ surfaces, not backend internalspnpm -r --filter ./... list --depth 0bash scripts/ci/pnpm-install-safe.sh --frozen-lockfilepnpm typecheck --filter apps/command-center...pnpm test:e2e:frontend -- --reporter=line.runtime-cache/artifacts/runs/<runId>/.pnpm typecheckpnpm test:unitpnpm test:ct (when Playwright/React/Vitest changes affect UI test surface)pnpm test:e2e:frontend (when frontend runtime/testing stack changes)pnpm install.pnpm typecheck and pnpm test:unit.docs/quality-gates.md and docs/reference/public-artifact-policy.md.docs/architecture.md