ui-automation-control-plane

Reference: Dependency Governance

This document is the canonical dependency-governance reference for the public repository and must move together with manifest and lockfile changes.

Security Patch Baseline

Active Closeout Baseline

Current Python lock snapshot

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

Current JS tooling snapshot

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

Scope

This policy governs baseline, upgrades, and lockfiles for:

Baseline Matrix (Current SSOT)

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

Baseline Strategy

Upgrade Cadence

Upgrade Playbook

  1. Create a dedicated branch and choose one dependency group.
  2. Bump versions only in relevant package.json files.
  3. Refresh lockfiles with deterministic install:
    • Root: pnpm install --frozen-lockfile (expect fail before bump), then pnpm install
    • Workspace-only bumps: pnpm -C apps/command-center install or pnpm -C tooling/automation install
  4. Run validation gates:
    • pnpm typecheck
    • pnpm test:unit
    • pnpm test:ct when React/Vitest/Playwright surfaces changed
    • pnpm test:e2e:frontend for runtime-impacting upgrades
  5. Document outcome in PR:
    • baseline delta
    • risk notes
    • rollback command and evidence paths

Upgrade Rules (Hard Requirements)

  1. Upgrade one dependency group per PR when possible (React or TypeScript or Playwright or Vitest).
  2. Regenerate lockfiles only via package manager commands; no manual lockfile edits.
  3. Every dependency PR must include:
    • changed package manifests
    • corresponding lockfile diff
    • validation evidence (pnpm typecheck + relevant test suite)
  4. If a workspace cannot move with root baseline in the same cycle, document blocker and target cycle in the PR description.

Lockfile Policy

Tracked lockfiles:

CI and bootstrap baselines that move with dependency governance:

Rules:

Shared Dependency Roots

Dependency Boundary Contract

Failure Handling Flow

Install fails after version bump

Typecheck or build fails

Runtime or E2E regressions

Security advisory with no safe upgrade available

Validation Gate for Dependency PRs

Rollback Playbook

  1. Revert dependency bump commit.
  2. Reinstall lockfiles with pnpm install.
  3. Re-run pnpm typecheck and pnpm test:unit.
  4. Attach rollback evidence to PR and reschedule upgrade in next cycle.