* chore: move @types/canvas-confetti to devDependencies, remove unused get-tsconfig direct dep * chore: configure knip with workspace entry points for all packages * refactor(shared): split 1119-line types.ts into domain modules under types/ * refactor: remove llm-service.ts shim, migrate all import sites to llm/service directly * refactor(settings): migrate 4 manually-resolved settings into conversion registry * refactor: split gmail-sync.ts into gmail-api, email-router, and thin orchestrator * refactor(orchestrator): extract useKeyboardShortcuts and usePipelineControls from OrchestratorPage Splits the 840-line OrchestratorPage into a thin orchestration shell (~480 lines) by extracting keyboard shortcut handling into useKeyboardShortcuts.ts and pipeline control logic into usePipelineControls.ts. Net negative line count across all files. * feat: create settings registry (Step 1) Introduces a single source of truth for all settings, combining schema definitions, default logic, parsing, and serialization into a single configuration object. * feat: derive schema, keys, and types from settings registry (Step 2) Derives AppSettings nested shape, SettingKey DB union, and updateSettingsSchema Zod shape automatically from the settings registry. * refactor: gut envSettings and remove settings-conversion (Step 3) Replaces manual env arrays with registry-driven maps in envSettings.ts. Deletes settings-conversion.ts since all parsing/defaults now live in the registry. * refactor: simplify getEffectiveSettings with generic loop (Step 4) Replaces ~334 lines of manual key-by-key unpacking with a generic registry-driven iteration loop (~40 lines). Models, typed, string, and virtual kinds are automatically derived. * refactor: simplify settingsUpdateRegistry (Step 5) Replaces ~350 lines of explicit per-key update handlers with a dynamic generic loop over the settings registry, properly routing persistence and side effects. * refactor(settings): implement nested settings registry and clean up tests - Migrate settings system to use a centralized nested registry (`settings-schema.ts`, `registry.ts`) - Remove obsolete flat-to-nested conversion logic (`settings-conversion.ts`) - Address Biome warnings by explicitly ignoring intentional `any` usage in generic runtime schema builder and registry logic - Clean up unused variables in test files (`SettingsPage.test.tsx`) to achieve a 100% green CI pipeline * refactor(settings): address PR comments on env data and registry parsing - Narrow `getEnvSettingsData` return type to `Partial<AppSettings>` to satisfy strict typing and omit 'typed' registry entries - Introduce `parseNonEmptyStringOrNull` for typed string settings so empty-string overrides cleanly fall back to defaults (matching original `||` logic) - Add missing unit tests for registry parse/serialize helpers (JSON, bools, numeric clamping)
47 lines
1.1 KiB
JSON
47 lines
1.1 KiB
JSON
{
|
|
"$schema": "https://unpkg.com/knip@5/schema.json",
|
|
"tags": ["-lintignore"],
|
|
"workspaces": {
|
|
".": {
|
|
"entry": [],
|
|
"project": []
|
|
},
|
|
"orchestrator": {
|
|
"entry": [
|
|
"src/server/index.ts",
|
|
"src/server/db/migrate.ts",
|
|
"src/server/db/clear.ts",
|
|
"src/server/pipeline/run.ts",
|
|
"src/client/main.tsx",
|
|
"vite.config.ts",
|
|
"src/setupTests.ts",
|
|
"src/**/*.test.ts",
|
|
"src/**/*.test.tsx"
|
|
],
|
|
"project": ["src/**/*.{ts,tsx}"],
|
|
"ignore": ["dist/**", "src/components/ui/**"]
|
|
},
|
|
"shared": {
|
|
"entry": ["src/index.ts"],
|
|
"project": ["src/**/*.ts"],
|
|
"ignore": ["src/**/*.test.ts"]
|
|
},
|
|
"extractors/adzuna": {
|
|
"entry": ["src/main.ts"],
|
|
"project": ["src/**/*.ts"]
|
|
},
|
|
"extractors/gradcracker": {
|
|
"entry": ["src/main.ts"],
|
|
"project": ["src/**/*.ts"]
|
|
},
|
|
"extractors/hiringcafe": {
|
|
"entry": ["src/main.ts"],
|
|
"project": ["src/**/*.ts"]
|
|
},
|
|
"extractors/ukvisajobs": {
|
|
"entry": ["src/main.ts"],
|
|
"project": ["src/**/*.ts"]
|
|
}
|
|
}
|
|
}
|