Skip to content

Commit a9ce182

Browse files
author
CodeAI Hub Bot
committed
docs: add Session 196 report
1 parent e288037 commit a9ce182

1 file changed

Lines changed: 81 additions & 0 deletions

File tree

doc/Sessions/Session196.md

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
# Session 196 — Replace ts-prune with Knip + Dead Code Cleanup
2+
3+
**Date:** 2026-03-30
4+
**Version:** 1.1.843 → 1.1.844
5+
**Scope:** Quality gate upgrade — replace deprecated ts-prune with knip; remove verified dead code across the entire codebase.
6+
7+
## Context
8+
9+
ts-prune (v0.10.3) is deprecated and no longer maintained. Knip is its recommended successor with broader capabilities: unused files, unused dependencies, unused exports, and duplicate exports detection. The project had accumulated dead code from older feature iterations (idea collector, flow wizard, session store, diagram editor modules, recovery subsystem).
10+
11+
## What Was Done
12+
13+
### 1. Tooling Swap
14+
- Uninstalled `ts-prune`, installed `knip` as devDependency.
15+
- Created `knip.json` with workspace-aware config: root entry points (`extension.ts`, `index.tsx` for webview and project-manager), plus 9 workspace packages. Test files registered as entry points so knip sees their imports.
16+
- Updated `package.json` script: `check:tsprune``check:knip`.
17+
- Updated `.husky/pre-commit`: `npm run check:tsprune``npm run check:knip`.
18+
- Updated `.github/workflows/ci.yml`: CI step renamed and rewired.
19+
- Updated `AGENTS.md`, `assets/flow/continuity/create-report-code.md`, `packages/core/src/flow-node-continuity/template-loader.ts` — all ts-prune references replaced with knip.
20+
21+
### 2. Dead Code Verification and Cleanup
22+
Every file and export flagged by knip was **manually verified via grep** before removal. False positives were identified and preserved.
23+
24+
**Unused files removed (59):**
25+
- `packages/Claude_Module/src/sdk/` — 2 orphaned usage-limits files
26+
- `packages/Codex_Module/src/response-policy/` — 1 unused facade
27+
- `packages/core/src/` — 4 recovery files, 3 unused barrel index.ts files
28+
- `src/client/project-manager/components/diagram-editor/` — 10 module editor files (closed dead cluster)
29+
- `src/client/ui/src/` — 35 files: entire idea collector, flow wizard, action-bar, session store, questionnaire subsystems
30+
- `src/client/ui/src/session/dialog-panel-pending-thinking.ts` — 1 unused file
31+
- `src/extension-module/ui/index.ts` — empty barrel
32+
- 7 orphaned test files for deleted modules
33+
34+
**Files kept (false positives):**
35+
- `packages/core/src/workflow/diagram-dsl/` — 6 parser files (diagram-cluster-parser, diagram-legacy-ownership-parser, diagram-module-parser, diagram-modules-parser, diagram-ownership-parser, diagram-relations-parser) — form a live dependency chain anchored by test imports. Added to knip ignore.
36+
37+
**Unused exports cleaned (105):**
38+
- ~40 exports: removed `export` keyword (symbol still used locally)
39+
- ~25 exports: deleted entirely (no local or external usage)
40+
- ~10 re-exports: removed from barrel files
41+
- ~30 exports: confirmed as false positives (cross-workspace imports knip couldn't trace)
42+
43+
**Duplicate exports fixed (3):**
44+
- 2 files had both named + default export of same component; removed redundant named export.
45+
- 1 file had duplicate function name in barrel; removed.
46+
47+
**Lint fixes (2):**
48+
- Removed 2 functions that became unused locals after export removal (`normalizeOptionalString`, `calculateRemainingPercent`).
49+
50+
### 3. Knip Configuration
51+
Final `knip.json` excludes: `unlisted`, `binaries`, `devDependencies`, `types` (high noise, low signal for pre-commit). Active checks: unused files, unused exports, unused dependencies, duplicate exports.
52+
53+
### 4. Release Build
54+
- v1.1.844 built and verified: all providers, core, CEF launcher, VSIX (1.71 MB).
55+
- README.md and CHANGELOG.md synced to v1.1.844.
56+
- Pushed to GitHub.
57+
58+
## Commits
59+
1. `12029c86``refactor: replace ts-prune with knip and remove dead code`
60+
2. `553e0341``chore: prepare v1.1.844 artifacts`
61+
3. `e2880373``docs: sync release docs to v1.1.844`
62+
63+
## Gates
64+
- `./scripts/check-architecture.sh`: OK
65+
- `npx ultracite check`: OK (546 files, 0 errors)
66+
- `npx knip`: OK (0 issues)
67+
- `tsc --noEmit` (root): OK
68+
- `tsc -p tsconfig.webview.json`: OK
69+
- `jscpd` (duplication): OK (2.02%, under 3% threshold)
70+
- `check-markdown-links`: OK (427 files)
71+
72+
## Stats
73+
- Files deleted: 59
74+
- Lines removed: ~6900
75+
- Unused exports cleaned: 105
76+
- Net file count change: -59
77+
78+
## Deferred
79+
- Phase 104 item 23: move optimistic guard into shared WorkflowStateStore
80+
- Gemini delay after submit: queueMicrotask() for session ID emission
81+
- Stale allowlist entry: `packages/Codex_Module/src/sdk/codex-sdk-manager.ts` now at 300 lines — can be removed from debt allowlist

0 commit comments

Comments
 (0)