veritas-kanban/docs/MAINTENANCE-CENTER.md
2026-07-25 03:24:29 -05:00

3.8 KiB

v5.0 Maintenance Center

The Maintenance Center is the operator surface for local-first upkeep. It lives in Settings -> Maintenance and is backed by /api/v1/maintenance.

What It Shows

  • Health checks for storage, disk space, logs, work products, agent runner registry state, recent run success, and lifecycle policy loading.
  • Storage usage for task files, attachments, telemetry/traces, workflow runs, worktrees, logs, debug bundles, and work products.
  • Cleanup previews that separate active work, archived/restorable work, and safe-to-review generated data.
  • Redacted log tails from allowlisted sources only.
  • Redacted debug bundles with a manifest of included and excluded categories.
  • CLI runtime snapshots through vk snapshot, with JSON or Markdown output safe to paste into support handoffs by default.
  • SQLite export/import actions that report bundle path, database path, table counts, warnings, and failure messages.
  • Redacted authoritative SQLite filesystem type/posture, detection and decision source, effective journal mode, override source, and last one-time integrity check when SQLite storage is active.
  • SQLite journal previews and restart-time conversion status, including sidecars, ownership, backup class, risks, degraded single-host policy, expiry, revocation, rollback, and recovery-required state without raw paths.
  • Admin-only skill security scans through /api/v1/maintenance/skill-security/scan, with redacted JSON and Markdown reports persisted for audit review.

Safety Rules

  • Cleanup is preview-only until a dedicated delete handler exists for the affected data class.
  • Destructive cleanup must require explicit confirmation and must never delete active task worktrees or current run state silently.
  • Debug bundles include redacted log tails, health metadata, storage summaries, lifecycle policy metadata, work-product preview metadata, and a bounded phase-authority.json diagnostic export. Phase diagnostics retain identities, source kinds, scope counts, transition expansions, and completion bindings while omitting exact scopes, paths, credential references, and full digests.
  • Maintenance summaries and log-tail responses redact local log paths before returning data to the UI.
  • SQLite posture diagnostics omit the database path, mount point, and mount source. Known-unsafe or unknown filesystems refuse startup before Maintenance becomes reachable.
  • Journal conversion never runs inside a normal API request. An authenticated admin schedules an exact, short-lived preview; the bootstrap executes it before any SQLite consumer opens. A verified backup and fsynced external stage journal remain available after failures.
  • DELETE compatibility mode is explicitly degraded and single-host. It requires VERITAS_SQLITE_TOPOLOGY=single-host, a stable VERITAS_SQLITE_HOST_ID, an expiring/revocable signed policy, and a process/host ownership lock. Clustered or known-unsafe storage is rejected.
  • Schedule a return to supported-local WAL mode before a compatibility policy expires. Expired or revoked policy fails readiness immediately and refuses the next database open; it never silently widens or renews authority.
  • Debug bundles exclude raw tokens, token hashes, cookies, private keys, raw prompts, raw chat content, and generated sensitive text.
  • Local home, project, storage, runtime, and log paths are redacted in bundle files by default.

Verification

Focused regression coverage:

pnpm --filter @veritas-kanban/server test -- maintenance-service.test.ts
pnpm --filter @veritas-kanban/server exec vitest run src/__tests__/sqlite-journal-maintenance-service.test.ts src/__tests__/sqlite-journal-ownership-policy.test.ts
pnpm --filter @veritas-kanban/server test -- skill-security-service.test.ts
pnpm --filter @veritas-kanban/web test -- settings-maintenance-mantine.test.tsx