# Runtime test migration inventory

Generated by `npm run test:inventory` (script: `scripts/classify-tests.mjs`).

_Tests considered "runtime-importing" if they import from `../lib/`, `../routes/`, `../bin/`, `../server`, or `../config`._

Total: 177 (runtime: 61, contract: 116)

## Runtime-importing tests
- `tests/agent-mode-auto-planner-contract.test.ts`
- `tests/agent-mode-parallel-contract.test.ts`
- `tests/agent-mode-queue-contract.test.ts`
- `tests/agent-mode-queue-migration-contract.test.ts`
- `tests/agent-mode-runtime-contract.test.ts`
- `tests/agent-mode-slash-command-contract.test.ts`
- `tests/agent-video-intent.test.ts`
- `tests/api-cache-policy.test.ts`
- `tests/api-provider-parity.test.ts`
- `tests/billing-source.test.ts`
- `tests/card-news-contract.test.ts`
- `tests/cli-error-hints.test.ts`
- `tests/cli-lib.test.ts`
- `tests/comfy-bridge-contract.test.ts`
- `tests/error-classify.test.ts`
- `tests/generate-route-validation-error.test.ts`
- `tests/generated-static-privacy.test.ts`
- `tests/generation-errors.test.ts`
- `tests/grok-command-login-contract.test.ts`
- `tests/grok-planner-adapter.test.ts`
- `tests/grok-proxy-launcher.test.ts`
- `tests/grok-size-mapper.test.ts`
- `tests/grokVideoAdapter.test.ts`
- `tests/history-metadata-fallback.test.ts`
- `tests/history-tombstone.test.ts`
- `tests/history-video-row.test.ts`
- `tests/image-metadata-route.test.ts`
- `tests/image-metadata-xmp.test.ts`
- `tests/image-model.test.ts`
- `tests/inflight-persistence.test.ts`
- `tests/inflight.test.ts`
- `tests/local-import-contract.test.ts`
- `tests/logging.test.ts`
- `tests/node-parent-source-contract.test.ts`
- `tests/node-route-refs.test.ts`
- `tests/node-streaming-sse.test.ts`
- `tests/node-validation-error-contract.test.ts`
- `tests/oauth-normalize.test.ts`
- `tests/oauth-proxy-error-safety.test.ts`
- `tests/open-directory.test.ts`
- `tests/prompt-discovery-contract.test.ts`
- `tests/prompt-fidelity.test.ts`
- `tests/prompt-import-folder-contract.test.ts`
- `tests/prompt-import-github-contract.test.ts`
- `tests/prompt-index-ranking-contract.test.ts`
- `tests/reference-image-compress.test.ts`
- `tests/refs-size.test.ts`
- `tests/request-logging.test.ts`
- `tests/responses-adapter-safety.test.ts`
- `tests/responses-empty-taxonomy.test.ts`
- `tests/responses-parse-diagnostics.test.ts`
- `tests/runtime-context-normalize.test.ts`
- `tests/runtime-ports.test.ts`
- `tests/serve-ui-build-contract.test.ts`
- `tests/star-prompt.test.ts`
- `tests/storage-migration.test.ts`
- `tests/style-sheet.test.ts`
- `tests/thumb-backfill.test.ts`
- `tests/videoContinuity.test.ts`
- `tests/videoExtendedRoute.test.ts`
- `tests/videoRoute.test.ts`

## Contract-only tests
- `tests/agent-mode-frontend-contract.test.js`
- `tests/agent-mode-layout-contract.test.js`
- `tests/agent-mode-right-sidebar-contract.test.js`
- `tests/agent-mode-tool-folding-contract.test.js`
- `tests/app-weight-splitting-contract.test.js`
- `tests/background-cleanup-brush-rasterize.test.js`
- `tests/background-cleanup-mask-compose.test.js`
- `tests/bin.test.js`
- `tests/blank-canvas-size-contract.test.js`
- `tests/browser-attention-badge-contract.test.js`
- `tests/canvas-alpha-controls-contract.test.js`
- `tests/canvas-annotation-contract.test.js`
- `tests/canvas-apply-merged-contract.test.js`
- `tests/canvas-background-cleanup-2x2-contract.test.js`
- `tests/canvas-background-cleanup-contract.test.js`
- `tests/canvas-edit-mask-flow-contract.test.js`
- `tests/canvas-eraser-contract.test.js`
- `tests/canvas-export-contract.test.js`
- `tests/canvas-history-contract.test.js`
- `tests/canvas-hit-test-contract.test.js`
- `tests/canvas-mask-contract.test.js`
- `tests/canvas-memo-contract.test.js`
- `tests/canvas-mode-contract.test.js`
- `tests/canvas-object-key-contract.test.js`
- `tests/canvas-persistence-contract.test.js`
- `tests/canvas-selection-contract.test.js`
- `tests/canvas-style-contract.test.js`
- `tests/canvas-version-api.test.js`
- `tests/canvas-version-contract.test.js`
- `tests/canvas-viewport-pan-contract.test.js`
- `tests/card-news-42-43-contract.test.js`
- `tests/card-news-frontend-contract.test.js`
- `tests/card-news-smoke.test.js`
- `tests/card-news-visible-text-language-contract.test.ts`
- `tests/cli-capabilities-contract.test.js`
- `tests/cli-commands.test.js`
- `tests/cli-config-keys-contract.test.js`
- `tests/cli-default-output-dir-contract.test.js`
- `tests/cli-defaults-command-contract.test.js`
- `tests/cli-destructive-safety-contract.test.js`
- `tests/cli-doctor-status-contract.test.js`
- `tests/cli-feature-parity-contract.test.js`
- `tests/cli-output-recovery-contract.test.js`
- `tests/cli-prompt-builder-contract.test.js`
- `tests/cli-prompt-import-contract.test.js`
- `tests/cli-skill-command-contract.test.js`
- `tests/cli-video-command-contract.test.js`
- `tests/comfy-export-ui-contract.test.js`
- `tests/comfyui-custom-node-contract.test.js`
- `tests/config.test.js`
- `tests/current-image-actions-readiness-contract.test.js`
- `tests/direct-mode-visual-contract.test.js`
- `tests/edit-mask-api-contract.test.js`
- `tests/gallery-load-older-contract.test.js`
- `tests/gallery-navigation-ux-contract.test.js`
- `tests/gallery-session-scope-contract.test.js`
- `tests/gallery-shortcuts-behavior.test.js`
- `tests/gallery-shortcuts-visible-domain-contract.test.js`
- `tests/gallery-viewer-navigation-contract.test.js`
- `tests/generation-controls-ux-contract.test.js`
- `tests/health.test.js`
- `tests/history-index-contract.test.js`
- `tests/history-permanent-delete.test.js`
- `tests/history-strip-duplicate-contract.test.js`
- `tests/image-metadata-ui-contract.test.js`
- `tests/inflight-cancel-contract.test.js`
- `tests/inflight-list-tooltip-contract.test.js`
- `tests/inflight-reload-race.test.js`
- `tests/inflight-reload-reconcile-contract.test.js`
- `tests/issue75-prompt-studio-state-contract.test.js`
- `tests/issue77-long-prompt-preview-contract.test.js`
- `tests/mobile-generate-entry-contract.test.js`
- `tests/multimode-backend-contract.test.js`
- `tests/multimode-concurrent-store-contract.test.js`
- `tests/multimode-ui-contract.test.js`
- `tests/node-batch-contract.test.js`
- `tests/node-child-refs-contract.test.js`
- `tests/node-child-refs-payload.test.js`
- `tests/node-context-policy.test.js`
- `tests/node-diagnostics-contract.test.js`
- `tests/node-edge-disconnect-contract.test.js`
- `tests/node-footer-compact-contract.test.js`
- `tests/node-generation-lock-contract.test.js`
- `tests/node-layout-contract.test.js`
- `tests/node-pending-recovery-contract.test.js`
- `tests/node-regen-actions-contract.test.js`
- `tests/node-session-evaporation-contract.test.js`
- `tests/node-ui-contract.test.js`
- `tests/oauth-masked-edit-contract.test.js`
- `tests/oauth-proxy-edit-mask-contract.test.js`
- `tests/package-smoke.test.js`
- `tests/png-info-contract.test.js`
- `tests/prompt-builder-contract.test.ts`
- `tests/prompt-curated-search-contract.test.js`
- `tests/prompt-discovery-ui-contract.test.js`
- `tests/prompt-import-dialog-ui-contract.test.js`
- `tests/prompt-import-folder-ui-contract.test.js`
- `tests/prompt-import-search-ux-contract.test.js`
- `tests/prompt-library-ui-contract.test.js`
- `tests/prompt-studio-docs-contract.test.js`
- `tests/prompt-studio-ui-contract.test.js`
- `tests/server-fallback-contract.test.js`
- `tests/server.test.js`
- `tests/session-conflict.test.js`
- `tests/settings-persistence-contract.test.js`
- `tests/settings-workspace-layout-contract.test.js`
- `tests/size-custom-input-contract.test.js`
- `tests/size-presets.test.js`
- `tests/slash-command-menu-contract.test.ts`
- `tests/storage-open-generated-dir.test.js`
- `tests/style-feature-removal-contract.test.js`
- `tests/toast-stack-contract.test.js`
- `tests/ui-error-code-contract.test.js`
- `tests/video-continuity-ui-contract.test.js`
- `tests/vite-dev-port-contract.test.js`
- `tests/web-search-toggle-contract.test.js`
