dc00a4f8f5
Wave 5-1 mypy adoption (D-058 relaxed-first): mypy 2.3.1, [tool.mypy] check_untyped_defs + no_implicit_optional + warn_unused_ignores + warn_redundant_casts + warn_unreachable, no overrides (every dep ships py.typed), files = ai_service + scripts/sandbox-agent.py + tests (not excluded). 215 errors → 0: ~140 fixed at source incl. genuine bugs found by the gate (LLMProvider protocol async-generator shape, SessionStore protocol sync/async mismatch, structured_reply genericity, get_args migrations, sandbox-agent Optional guard honesty, proctor test arg-order, dead ExecResult kwarg, 16 sqlmodel col() sites); 34 live suppressions scoped-coded + reasoned. Original 27 type:ignore dispositioned: 12 dead removed, 15 scoped (warn_unused_ignores self-eliminates the rest). Wired: scripts/typecheck.sh + package.json + turbo task + root ai:typecheck — pnpm typecheck now 5 tsc + mypy. Wave 5-2 recharts 2.15.4 → 3.10.1 (D-049/D-059): one breaking class (Tooltip formatter ValueType typing); 2 one-line inference fixes on the 2 chart files; no rollback needed (well inside the G-106 timebox). Deprecated direct dep resolved; uuid@9 gone from the tree. Build 248/248 with chart SSR markers verified in exported employer + dashboard pages. Wave 5-3 deprecated-transitive audit (G-109): 4 lockfile entries remain, all dev-only, none actionable within NFR budget — glob@7.2.3 + inflight + rimraf@3 via Storybook docgen chain (flat-cache@3); glob@10.5.0 via c8→test-exclude (D-052-binding coverage tool — swapping it is out of budget). Python: no EOL packages; zero-warning regime under filterwarnings=error is the machine-checked proof. Counts: 670 py / 44 web / 64 cli, zero warnings, G-104 allowlist still exactly 2. ---ci--- phase: 5 milestone: v0.7 status: execute ---/ci---
42 lines
1.5 KiB
JSON
42 lines
1.5 KiB
JSON
{
|
|
"name": "nextcraft",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"packageManager": "pnpm@12.3.4",
|
|
"engines": {
|
|
"node": ">=20.0.0",
|
|
"pnpm": ">=12.3.4"
|
|
},
|
|
"scripts": {
|
|
"dev": "turbo dev",
|
|
"build": "turbo build",
|
|
"lint": "turbo lint",
|
|
"typecheck": "turbo typecheck",
|
|
"clean": "turbo clean && rm -rf node_modules",
|
|
"ai:dev": "turbo run dev --filter=@nextcraft/ai-service",
|
|
"ai:test": "turbo run test --filter=@nextcraft/ai-service",
|
|
"ai:bootstrap": "turbo run bootstrap --filter=@nextcraft/ai-service",
|
|
"ai:lint": "turbo run lint --filter=@nextcraft/ai-service",
|
|
"ai:typecheck": "turbo run typecheck --filter=@nextcraft/ai-service",
|
|
"ai:test:fast": "cd apps/ai-service && FAST=1 bash scripts/test.sh",
|
|
"cli:dev": "pnpm --filter @nextcraft/cli dev",
|
|
"test": "turbo run test",
|
|
"web:test": "pnpm --filter web test",
|
|
"web:test:cov": "pnpm --filter web test:cov",
|
|
"cli:test": "pnpm --filter @nextcraft/cli test",
|
|
"cli:test:cov": "pnpm --filter @nextcraft/cli test:cov",
|
|
"cli:test:e2e": "pnpm --filter @nextcraft/cli test:e2e",
|
|
"cli:typecheck": "pnpm --filter @nextcraft/cli typecheck",
|
|
"cli:build": "pnpm --filter @nextcraft/cli build"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/js": "^10.0.1",
|
|
"eslint": "^10.11.0",
|
|
"eslint-plugin-react-hooks": "^7.1.1",
|
|
"globals": "^17.12.0",
|
|
"turbo": "^2.3.3",
|
|
"typescript": "^5.7.2",
|
|
"typescript-eslint": "^8.70.1"
|
|
}
|
|
} |