@winspan/claude-forge 8.53.2 → 8.54.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (390) hide show
  1. package/DEVELOPMENT.md +290 -221
  2. package/README.md +50 -8
  3. package/dist/cli/commands/skills.d.ts.map +1 -1
  4. package/dist/cli/commands/skills.js +7 -3
  5. package/dist/cli/commands/skills.js.map +1 -1
  6. package/dist/cli/init/hook-manager.d.ts +1 -1
  7. package/dist/cli/init/hook-manager.d.ts.map +1 -1
  8. package/dist/cli/init/hook-manager.js +1 -0
  9. package/dist/cli/init/hook-manager.js.map +1 -1
  10. package/dist/core/storage/events.d.ts.map +1 -1
  11. package/dist/core/storage/events.js +0 -1
  12. package/dist/core/storage/events.js.map +1 -1
  13. package/dist/core/storage/maintenance.d.ts +25 -3
  14. package/dist/core/storage/maintenance.d.ts.map +1 -1
  15. package/dist/core/storage/maintenance.js +33 -4
  16. package/dist/core/storage/maintenance.js.map +1 -1
  17. package/dist/core/storage/routing.d.ts +4 -0
  18. package/dist/core/storage/routing.d.ts.map +1 -1
  19. package/dist/core/storage/routing.js +10 -4
  20. package/dist/core/storage/routing.js.map +1 -1
  21. package/dist/core/storage/sessions.d.ts +17 -0
  22. package/dist/core/storage/sessions.d.ts.map +1 -1
  23. package/dist/core/storage/sessions.js +64 -0
  24. package/dist/core/storage/sessions.js.map +1 -1
  25. package/dist/core/storage/skills.d.ts +4 -0
  26. package/dist/core/storage/skills.d.ts.map +1 -1
  27. package/dist/core/storage/skills.js +10 -2
  28. package/dist/core/storage/skills.js.map +1 -1
  29. package/dist/core/storage/sqlite.d.ts +5 -0
  30. package/dist/core/storage/sqlite.d.ts.map +1 -1
  31. package/dist/core/storage/sqlite.js +6 -0
  32. package/dist/core/storage/sqlite.js.map +1 -1
  33. package/dist/core/storage/tasks.d.ts.map +1 -1
  34. package/dist/core/storage/tasks.js +2 -0
  35. package/dist/core/storage/tasks.js.map +1 -1
  36. package/dist/core/types.d.ts +7 -0
  37. package/dist/core/types.d.ts.map +1 -1
  38. package/dist/daemon/index.d.ts.map +1 -1
  39. package/dist/daemon/index.js +19 -4
  40. package/dist/daemon/index.js.map +1 -1
  41. package/dist/skills/registry.d.ts.map +1 -1
  42. package/dist/skills/registry.js +13 -2
  43. package/dist/skills/registry.js.map +1 -1
  44. package/dist/skills/semantic-matcher.d.ts +2 -2
  45. package/dist/skills/semantic-matcher.d.ts.map +1 -1
  46. package/dist/skills/semantic-matcher.js +14 -19
  47. package/dist/skills/semantic-matcher.js.map +1 -1
  48. package/dist/skills/upgrade-engine.d.ts +3 -1
  49. package/dist/skills/upgrade-engine.d.ts.map +1 -1
  50. package/dist/skills/upgrade-engine.js +25 -14
  51. package/dist/skills/upgrade-engine.js.map +1 -1
  52. package/dist/web/analytics/weekly-report.d.ts.map +1 -1
  53. package/dist/web/analytics/weekly-report.js +21 -29
  54. package/dist/web/analytics/weekly-report.js.map +1 -1
  55. package/dist/web/routes/patch.d.ts.map +1 -1
  56. package/dist/web/routes/patch.js +32 -2
  57. package/dist/web/routes/patch.js.map +1 -1
  58. package/dist/web/routes/sessions.d.ts.map +1 -1
  59. package/dist/web/routes/sessions.js +9 -7
  60. package/dist/web/routes/sessions.js.map +1 -1
  61. package/dist/web/routes/trace.d.ts.map +1 -1
  62. package/dist/web/routes/trace.js +2 -3
  63. package/dist/web/routes/trace.js.map +1 -1
  64. package/dist/web/server.d.ts.map +1 -1
  65. package/dist/web/server.js +3 -2
  66. package/dist/web/server.js.map +1 -1
  67. package/package.json +12 -2
  68. package/scripts/postinstall.cjs +21 -0
  69. package/.claude/CLAUDE.md +0 -17
  70. package/.eslintrc.js +0 -23
  71. package/.prettierrc +0 -8
  72. package/ARCHITECTURE_ISSUES.md +0 -249
  73. package/CLAUDE.md +0 -265
  74. package/CLAUDE.md.backup +0 -488
  75. package/docs/concurrent-agents.md +0 -129
  76. package/docs/design/architecture-review-20260516.md +0 -232
  77. package/docs/design/fix-skills-data-and-set-leak-spec-20260516-1300.md +0 -219
  78. package/docs/design/h1-storage-aggregation-spec-20260518-1121.md +0 -299
  79. package/docs/design/h2-getdatabase-encapsulation-spec-20260518-1450.md +0 -191
  80. package/docs/design/h3-fallback-removal-spec-20260518-1245.md +0 -76
  81. package/docs/design/h4-index-dedup-spec-20260518-1230.md +0 -109
  82. package/docs/design/h6-services-migration-spec-20260518-1355.md +0 -82
  83. package/docs/design/hook-failure-queue-spec-20260516-1530.md +0 -204
  84. package/docs/design/l1-swarm-protocol-extract-spec-20260518-1605.md +0 -106
  85. package/docs/design/m10-forge-paths-spec-20260518-1320.md +0 -121
  86. package/docs/design/m2-m3-tool-input-spec-20260518-1425.md +0 -131
  87. package/docs/design/m7-routing-event-association-spec-20260518-1545.md +0 -103
  88. package/docs/design/project-path-gitroot-spec-20260518-1715.md +0 -134
  89. package/docs/design/refactor-phase1-spec-20260515-1600.md +0 -543
  90. package/docs/design/refactor-phase2-spec-20260515-1700.md +0 -424
  91. package/docs/design/skill-ai-upgrade-spec-20260518-1930.md +0 -297
  92. package/docs/design/task-active-gc-spec-20260518-1745.md +0 -146
  93. package/docs/design/tasks-list-filter-pagination-spec-20260518-0930.md +0 -208
  94. package/docs/implementation/daemon-skill-sync-changelog-20260518-2000.md +0 -22
  95. package/docs/implementation/fix-skills-data-and-set-leak-changelog-20260516-1300.md +0 -104
  96. package/docs/implementation/h1-storage-aggregation-changelog-20260518-1121.md +0 -82
  97. package/docs/implementation/h2-final-changelog-20260518-1530.md +0 -61
  98. package/docs/implementation/h2-phase1-safety-net-changelog-20260518-1450.md +0 -70
  99. package/docs/implementation/h2-phase2-operations-changelog-20260518-1450.md +0 -120
  100. package/docs/implementation/h2-phase3-callsites-changelog-20260518-1450.md +0 -71
  101. package/docs/implementation/h3-fallback-removal-changelog-20260518-1245.md +0 -71
  102. package/docs/implementation/h4-index-dedup-changelog-20260518-1230.md +0 -60
  103. package/docs/implementation/h6-services-migration-changelog-20260518-1355.md +0 -46
  104. package/docs/implementation/h7-m9-defaults-changelog-20260518-1300.md +0 -46
  105. package/docs/implementation/hook-failure-queue-changelog-20260516-1530.md +0 -196
  106. package/docs/implementation/hotfix-daemon-event-reject-20260516-1430.md +0 -56
  107. package/docs/implementation/l1-swarm-protocol-extract-changelog-20260518-1605.md +0 -45
  108. package/docs/implementation/l3-l4-daemon-perf-changelog-20260518-1410.md +0 -63
  109. package/docs/implementation/l6-l8-final-cleanup-changelog-20260518-1640.md +0 -38
  110. package/docs/implementation/m1-m4-m5-l7-cleanup-changelog-20260518-1310.md +0 -58
  111. package/docs/implementation/m10-forge-paths-changelog-20260518-1320.md +0 -60
  112. package/docs/implementation/m2-m3-tool-input-changelog-20260518-1425.md +0 -43
  113. package/docs/implementation/m6-m8-naming-shutdown-changelog-20260518-1340.md +0 -56
  114. package/docs/implementation/m7-routing-association-changelog-20260518-1545.md +0 -69
  115. package/docs/implementation/project-path-gitroot-changelog-20260518-1715.md +0 -63
  116. package/docs/implementation/refactor-phase1-changelog-20260515-1630.md +0 -354
  117. package/docs/implementation/refactor-phase2-changelog-20260515-1705.md +0 -421
  118. package/docs/implementation/skill-ai-upgrade-changelog-20260518-1930.md +0 -49
  119. package/docs/implementation/task-active-gc-changelog-20260518-1745.md +0 -35
  120. package/docs/implementation/task-title-summary-changelog-20260518-1130.md +0 -39
  121. package/docs/implementation/tasks-detail-back-loses-filters-changelog-20260518-1100.md +0 -22
  122. package/docs/implementation/tasks-list-filter-pagination-changelog-20260518-0930.md +0 -72
  123. package/docs/implementation/tasks-page-white-screen-hotfix-changelog-20260518-1015.md +0 -56
  124. package/docs/reviews/claudemd-template-sync.md +0 -54
  125. package/docs/reviews/task-title-summary.md +0 -92
  126. package/docs/reviews/tasks-detail-back-loses-filters.md +0 -58
  127. package/docs/reviews/tasks-filter-pagination.md +0 -80
  128. package/docs/reviews/tasks-page-white-screen-hotfix.md +0 -126
  129. package/docs/ruflo-learning-strategy.md +0 -322
  130. package/docs/skills-deduplication-analysis.md +0 -83
  131. package/docs/skills-multiformat-support.md +0 -177
  132. package/docs/skills-third-party.md +0 -183
  133. package/docs/testing/tasks-filter-pagination-test-report.md +0 -86
  134. package/forge +0 -321
  135. package/playwright.config.ts +0 -40
  136. package/scripts/demo-v2.ts +0 -91
  137. package/scripts/dev-daemon.sh +0 -232
  138. package/scripts/dev-web.ts +0 -109
  139. package/scripts/e2e-mcp-link.ts +0 -423
  140. package/scripts/e2e-methodology-quality.ts +0 -253
  141. package/scripts/e2e-routing.ts +0 -456
  142. package/scripts/e2e-user-methodology.ts +0 -326
  143. package/scripts/e2e-web-workflows.ts +0 -299
  144. package/scripts/migrate-legacy-to-dynamic.sql +0 -108
  145. package/scripts/regenerate-execution-docs.ts +0 -116
  146. package/scripts/sync-agent-skills.ts +0 -193
  147. package/scripts/test-hook.sh +0 -71
  148. package/scripts/verify-skill-loading.ts +0 -62
  149. package/src/claudemd/claudemd-generator.ts +0 -568
  150. package/src/claudemd/convention-extractor.ts +0 -69
  151. package/src/claudemd/index.ts +0 -35
  152. package/src/claudemd/persona-manager.ts +0 -88
  153. package/src/claudemd/resume-manager.ts +0 -236
  154. package/src/claudemd/tech-detector.ts +0 -220
  155. package/src/claudemd/templates/swarm-protocol.md +0 -222
  156. package/src/cli/commands/claudemd.ts +0 -84
  157. package/src/cli/commands/config.ts +0 -46
  158. package/src/cli/commands/daemon.ts +0 -310
  159. package/src/cli/commands/executions.ts +0 -115
  160. package/src/cli/commands/init.ts +0 -204
  161. package/src/cli/commands/logs.ts +0 -181
  162. package/src/cli/commands/mcp.ts +0 -242
  163. package/src/cli/commands/menu.ts +0 -357
  164. package/src/cli/commands/skills.ts +0 -328
  165. package/src/cli/commands/stats.ts +0 -73
  166. package/src/cli/commands/status.ts +0 -69
  167. package/src/cli/commands/template.ts +0 -77
  168. package/src/cli/commands/trace.ts +0 -148
  169. package/src/cli/index.ts +0 -42
  170. package/src/cli/init/hook-manager.ts +0 -132
  171. package/src/core/ai/provider.ts +0 -308
  172. package/src/core/ai/types.ts +0 -51
  173. package/src/core/config.ts +0 -124
  174. package/src/core/constants.ts +0 -67
  175. package/src/core/event-fields.ts +0 -32
  176. package/src/core/queue/index.ts +0 -192
  177. package/src/core/storage/base.ts +0 -302
  178. package/src/core/storage/events.ts +0 -434
  179. package/src/core/storage/injections.ts +0 -78
  180. package/src/core/storage/maintenance.ts +0 -59
  181. package/src/core/storage/migrations/002_add_skill_tracking.sql +0 -6
  182. package/src/core/storage/migrations/003_add_skill_invocations.sql +0 -23
  183. package/src/core/storage/performance-indexes.sql +0 -23
  184. package/src/core/storage/routing.ts +0 -322
  185. package/src/core/storage/rows.ts +0 -112
  186. package/src/core/storage/schema.sql +0 -224
  187. package/src/core/storage/sessions.ts +0 -168
  188. package/src/core/storage/skills.ts +0 -233
  189. package/src/core/storage/sqlite.ts +0 -293
  190. package/src/core/storage/tasks.ts +0 -318
  191. package/src/core/storage/token-usage.ts +0 -93
  192. package/src/core/types.ts +0 -181
  193. package/src/core/utils/error-handler.ts +0 -257
  194. package/src/core/utils/forge-resume-block.ts +0 -74
  195. package/src/core/utils/format.ts +0 -69
  196. package/src/core/utils/git.ts +0 -23
  197. package/src/core/utils/logger.ts +0 -134
  198. package/src/core/utils/lru-cache.ts +0 -54
  199. package/src/core/utils/path.ts +0 -19
  200. package/src/core/utils/session.ts +0 -26
  201. package/src/core/utils/time.ts +0 -37
  202. package/src/core/utils/token-tracker.ts +0 -97
  203. package/src/daemon/event-parser.ts +0 -36
  204. package/src/daemon/handlers/history-exporter.ts +0 -117
  205. package/src/daemon/handlers/post-tool-use.ts +0 -54
  206. package/src/daemon/handlers/stop.ts +0 -208
  207. package/src/daemon/handlers/user-prompt.ts +0 -178
  208. package/src/daemon/hook-sync.ts +0 -91
  209. package/src/daemon/index.ts +0 -312
  210. package/src/daemon/launchd/com.claude-forge.daemon.plist.template +0 -47
  211. package/src/daemon/launchd-installer.ts +0 -260
  212. package/src/daemon/lifecycle.ts +0 -128
  213. package/src/daemon/router.ts +0 -40
  214. package/src/daemon/server.ts +0 -196
  215. package/src/daemon/services/task-segmenter.ts +0 -112
  216. package/src/daemon/skill-sync.ts +0 -88
  217. package/src/hooks/hook-lib.sh +0 -118
  218. package/src/hooks/notification.sh +0 -35
  219. package/src/hooks/post-tool-use.sh +0 -61
  220. package/src/hooks/pre-tool-use.sh +0 -63
  221. package/src/hooks/stop.sh +0 -43
  222. package/src/hooks/user-prompt-submit.sh +0 -69
  223. package/src/mcp/server.ts +0 -322
  224. package/src/skills/index.ts +0 -2
  225. package/src/skills/invocation-guard.ts +0 -177
  226. package/src/skills/matcher.ts +0 -148
  227. package/src/skills/official/code-simplifier.md +0 -52
  228. package/src/skills/official/find-skills.md +0 -142
  229. package/src/skills/official/official-api-design.md +0 -30
  230. package/src/skills/official/official-architecture-decision.md +0 -41
  231. package/src/skills/official/official-bmad.md +0 -118
  232. package/src/skills/official/official-db-schema-design.md +0 -34
  233. package/src/skills/official/official-debug.md +0 -25
  234. package/src/skills/official/official-doc-driven.md +0 -31
  235. package/src/skills/official/official-harness-engineering.md +0 -108
  236. package/src/skills/official/official-performance-optimization.md +0 -30
  237. package/src/skills/official/official-pr-review.md +0 -35
  238. package/src/skills/official/official-release-checklist.md +0 -30
  239. package/src/skills/official/official-security-hardening.md +0 -32
  240. package/src/skills/official/official-spec-driven-design.md +0 -31
  241. package/src/skills/official/planning-with-files.md +0 -241
  242. package/src/skills/official/ui-ux-pro-max.md +0 -105
  243. package/src/skills/official/webapp-testing.md +0 -96
  244. package/src/skills/official-skills.ts +0 -89
  245. package/src/skills/registry.ts +0 -355
  246. package/src/skills/semantic-matcher.ts +0 -234
  247. package/src/skills/tools/pipeline-suggest.ts +0 -226
  248. package/src/skills/tools/skill-invoke.ts +0 -168
  249. package/src/skills/tools/skill-list.ts +0 -59
  250. package/src/skills/upgrade-engine.ts +0 -541
  251. package/src/skills/upgrade-prompt.ts +0 -84
  252. package/src/templates/go.yaml +0 -53
  253. package/src/templates/python.yaml +0 -59
  254. package/src/templates/react.yaml +0 -55
  255. package/src/templates/template-manager.ts +0 -170
  256. package/src/web/analytics/anti-pattern-detector.ts +0 -367
  257. package/src/web/analytics/drift-detector.ts +0 -219
  258. package/src/web/analytics/weekly-report.ts +0 -431
  259. package/src/web/auth-middleware.ts +0 -54
  260. package/src/web/routes/_helpers.ts +0 -34
  261. package/src/web/routes/ai.ts +0 -204
  262. package/src/web/routes/auth.ts +0 -22
  263. package/src/web/routes/drift.ts +0 -25
  264. package/src/web/routes/error-handler.ts +0 -120
  265. package/src/web/routes/events.ts +0 -47
  266. package/src/web/routes/insights.ts +0 -43
  267. package/src/web/routes/patch.ts +0 -117
  268. package/src/web/routes/reports.ts +0 -34
  269. package/src/web/routes/rules.ts +0 -76
  270. package/src/web/routes/sessions.ts +0 -250
  271. package/src/web/routes/skill-stats.ts +0 -92
  272. package/src/web/routes/skills.ts +0 -350
  273. package/src/web/routes/static.ts +0 -67
  274. package/src/web/routes/stats.ts +0 -50
  275. package/src/web/routes/status.ts +0 -30
  276. package/src/web/routes/tasks.ts +0 -193
  277. package/src/web/routes/token-usage.ts +0 -20
  278. package/src/web/routes/trace.ts +0 -126
  279. package/src/web/routes/types.ts +0 -57
  280. package/src/web/server.ts +0 -134
  281. package/src/web/ssrf-guard.ts +0 -112
  282. package/src/web/static/index.html +0 -3251
  283. package/src/web/static/vendor/chart.umd.min.js +0 -20
  284. package/tests/e2e/dashboard.spec.ts +0 -205
  285. package/tests/e2e/routing-skill-e2e.test.ts +0 -39
  286. package/tests/helpers/mock-ai.ts +0 -92
  287. package/tests/helpers/mock-storage.ts +0 -159
  288. package/tests/integration/claudemd-generator.test.ts +0 -90
  289. package/tests/integration/queue-replay.integration.test.ts +0 -193
  290. package/tests/integration/tasks-filter.integration.test.ts +0 -154
  291. package/tests/integration/web-analytics.integration.test.ts +0 -133
  292. package/tests/integration/web-stats.integration.test.ts +0 -135
  293. package/tests/integration/web-trace.integration.test.ts +0 -175
  294. package/tests/performance/database.benchmark.ts +0 -161
  295. package/tests/semantic-matcher.test.ts +0 -99
  296. package/tests/skill-matcher.test.ts +0 -110
  297. package/tests/unit/ai-provider-retry.test.ts +0 -194
  298. package/tests/unit/ai-provider-vision.test.ts +0 -224
  299. package/tests/unit/claudemd-generator.test.ts +0 -68
  300. package/tests/unit/cli-mcp.test.ts +0 -141
  301. package/tests/unit/core/forge-paths.test.ts +0 -99
  302. package/tests/unit/daemon/hook-sync.test.ts +0 -71
  303. package/tests/unit/daemon/post-tool-use.test.ts +0 -121
  304. package/tests/unit/daemon/skill-sync.test.ts +0 -75
  305. package/tests/unit/daemon/stop-handler-behavior-summary.test.ts +0 -202
  306. package/tests/unit/daemon/task-segmenter-recover.test.ts +0 -84
  307. package/tests/unit/event-fields.test.ts +0 -88
  308. package/tests/unit/event-parser.test.ts +0 -55
  309. package/tests/unit/handlers.test.ts +0 -171
  310. package/tests/unit/hooks/resolve-project-path.test.ts +0 -122
  311. package/tests/unit/invocation-guard.test.ts +0 -125
  312. package/tests/unit/queue.test.ts +0 -272
  313. package/tests/unit/router.test.ts +0 -138
  314. package/tests/unit/security.test.ts +0 -128
  315. package/tests/unit/skill-invocations-workflow.test.ts +0 -495
  316. package/tests/unit/skill-registry.test.ts +0 -94
  317. package/tests/unit/skills/invocation-guard-ttl.test.ts +0 -211
  318. package/tests/unit/skills/official-skills-loader.test.ts +0 -126
  319. package/tests/unit/skills/registry-multiformat.test.ts +0 -92
  320. package/tests/unit/skills/upgrade-engine-parse.test.ts +0 -138
  321. package/tests/unit/skills/upgrade-engine.test.ts +0 -401
  322. package/tests/unit/skills/upgrade-prompt.test.ts +0 -89
  323. package/tests/unit/socket-server.test.ts +0 -183
  324. package/tests/unit/storage/event-operations-aggregates.test.ts +0 -342
  325. package/tests/unit/storage/migration-idempotent.test.ts +0 -304
  326. package/tests/unit/storage/routing-aggregates.test.ts +0 -276
  327. package/tests/unit/storage/routing.test.ts +0 -117
  328. package/tests/unit/storage/schema-missing.test.ts +0 -81
  329. package/tests/unit/storage/session-operations-aggregates.test.ts +0 -120
  330. package/tests/unit/storage/sessions-aggregate.test.ts +0 -435
  331. package/tests/unit/storage/skill-operations-counts.test.ts +0 -106
  332. package/tests/unit/storage/skills-aggregates.test.ts +0 -104
  333. package/tests/unit/storage/sqlite-refactor-harness.test.ts +0 -314
  334. package/tests/unit/storage/task-operations-counts.test.ts +0 -46
  335. package/tests/unit/storage/tasks-getById.test.ts +0 -343
  336. package/tests/unit/storage/tasks-stale-gc.test.ts +0 -86
  337. package/tests/unit/storage.test.ts +0 -172
  338. package/tests/unit/token-usage.test.ts +0 -144
  339. package/tests/unit/type-guards.test.ts +0 -201
  340. package/tests/unit/utils/format.test.ts +0 -189
  341. package/tests/unit/utils/session.test.ts +0 -89
  342. package/tests/unit/utils/time.test.ts +0 -112
  343. package/tests/unit/web/navigation-back-contract.test.ts +0 -134
  344. package/tests/unit/web/routes-auth.test.ts +0 -93
  345. package/tests/unit/web/routes-events.test.ts +0 -101
  346. package/tests/unit/web/routes-rules.test.ts +0 -182
  347. package/tests/unit/web/routes-sessions.test.ts +0 -181
  348. package/tests/unit/web/routes-skill-stats.test.ts +0 -179
  349. package/tests/unit/web/routes-stats.test.ts +0 -92
  350. package/tests/unit/web/routes-tasks.test.ts +0 -385
  351. package/tests/unit/web/task-title-contract.test.ts +0 -210
  352. package/tests/unit/web/tasks-component-contract.test.ts +0 -179
  353. package/tsconfig.json +0 -22
  354. package/vitest.config.ts +0 -21
  355. package/vitest.integration.config.ts +0 -16
  356. package/web/CLAUDE.md +0 -20
  357. package/web/index.html +0 -13
  358. package/web/package-lock.json +0 -4854
  359. package/web/package.json +0 -35
  360. package/web/postcss.config.js +0 -6
  361. package/web/src/App.tsx +0 -110
  362. package/web/src/components/CodeBlock.tsx +0 -31
  363. package/web/src/components/Confirm.tsx +0 -96
  364. package/web/src/components/Drawer.tsx +0 -60
  365. package/web/src/components/Layout.tsx +0 -145
  366. package/web/src/components/MarkdownRenderer.tsx +0 -77
  367. package/web/src/components/SearchInput.tsx +0 -31
  368. package/web/src/components/SessionDetailContent.tsx +0 -157
  369. package/web/src/components/Toast.tsx +0 -92
  370. package/web/src/index.css +0 -19
  371. package/web/src/main.tsx +0 -31
  372. package/web/src/pages/AIConfig.tsx +0 -233
  373. package/web/src/pages/Dashboard.tsx +0 -572
  374. package/web/src/pages/Events.tsx +0 -271
  375. package/web/src/pages/Reports.tsx +0 -428
  376. package/web/src/pages/SessionDetail.tsx +0 -162
  377. package/web/src/pages/Sessions.tsx +0 -205
  378. package/web/src/pages/Skills.tsx +0 -180
  379. package/web/src/pages/TaskDetail.tsx +0 -515
  380. package/web/src/pages/Tasks.tsx +0 -415
  381. package/web/src/utils/auth.ts +0 -59
  382. package/web/src/utils/export.ts +0 -54
  383. package/web/src/utils/navigation.ts +0 -25
  384. package/web/src/utils/task-title.ts +0 -49
  385. package/web/src/utils/time.ts +0 -13
  386. package/web/tailwind.config.js +0 -11
  387. package/web/tsconfig.json +0 -21
  388. package/web/tsconfig.node.json +0 -10
  389. package/web/vite.config.ts +0 -76
  390. package/winspan-claude-forge-8.43.0.tgz +0 -0
@@ -1,56 +0,0 @@
1
- # M6 + M8 实施 Changelog
2
-
3
- **Date**: 2026-05-18 13:40
4
- **Status**: 完成
5
-
6
- ## 完成清单
7
-
8
- - [x] M8: daemon shutdown 加 clearInterval
9
- - [x] M6: `recordTokenUsage` → `writeTokenUsage`
10
- - [x] M6: `findPendingRoutingEvents` → `queryPendingRoutingEvents`
11
- - [x] M6: `fetchEventsSince` → `queryEventsSince`(顺手 `fetchSessionsSince` → `querySessionsSince`)
12
-
13
- ## 关键代码定位
14
-
15
- ### M8: daemon shutdown clearInterval
16
-
17
- - `src/daemon/index.ts:111-119` — `setInterval` 返回值保存到 `maintenanceInterval` 常量
18
- - `src/daemon/index.ts:254` — `shutdown()` 中新增 `clearInterval(maintenanceInterval)`,置于 webServer.stop 之前、process.exit 之前
19
-
20
- ### M6: `recordTokenUsage` → `writeTokenUsage`
21
-
22
- - `src/core/storage/token-usage.ts:13` — `TokenUsageOperations.writeTokenUsage`(定义)
23
- - `src/core/storage/sqlite.ts:186-188` — facade 转发更新(含 `Parameters<...>` 泛型引用同步)
24
- - `src/core/utils/token-tracker.ts:36` — 业务调用方
25
- - `tests/unit/token-usage.test.ts` — 6 处调用点(replace_all)
26
- - `tests/unit/storage/sqlite-refactor-harness.test.ts:231-246` — 测试调用 + test name 同步更新
27
-
28
- ### M6: `findPendingRoutingEvents` → `queryPendingRoutingEvents`
29
-
30
- - `src/core/storage/routing.ts:130` — `RoutingOperations.queryPendingRoutingEvents`(定义)
31
- - `src/core/storage/sqlite.ts:167-169` — facade 转发更新
32
-
33
- 无外部调用方(grep 仅命中定义与 facade)。
34
-
35
- ### M6: `fetchEventsSince` / `fetchSessionsSince` → `queryEventsSince` / `querySessionsSince`
36
-
37
- - `src/daemon/services/anti-pattern-detector.ts:58-59` — 内部调用点
38
- - `src/daemon/services/anti-pattern-detector.ts:82` — `private queryEventsSince`
39
- - `src/daemon/services/anti-pattern-detector.ts:102` — `private querySessionsSince`
40
-
41
- 均为私有方法,无类外引用。
42
-
43
- ## 测试结果
44
-
45
- - `npx tsc --noEmit` → **0 errors**
46
- - `npx vitest run tests/unit/storage/ tests/unit/token-usage.test.ts --reporter=dot` → 67 passed / 1 failed(pre-existing `linkEventToTask`)
47
- - `npm test -- --reporter=dot` → 439 passed / 1 failed(同一 pre-existing 失败)
48
-
49
- ## 顺手发现的其它命名违规
50
-
51
- - `fetchSessionsSince`(在 anti-pattern-detector.ts,与 `fetchEventsSince` 配对)一并改为 `querySessionsSince`。
52
- - 未发现其它 `findXxx`/`fetchYyy`/`retrieveZzz` 违规(grep 已扫过 src/ tests/)。
53
-
54
- ## 已知问题
55
-
56
- - `tests/unit/storage/sqlite-refactor-harness.test.ts` 中 `linkEventToTask associates events with tasks` 用例 pre-existing 失败(writeEvent 校验抛错),与本次改名无关。
@@ -1,69 +0,0 @@
1
- # M7 实施 Changelog
2
-
3
- **Date**: 2026-05-18 15:45
4
- **Spec**: docs/design/m7-routing-event-association-spec-20260518-1545.md
5
- **Status**: 完成
6
-
7
- ## 完成清单
8
- - [x] routing.ts 加 getRecentPendingRoutingEvent
9
- - [x] sqlite.ts facade 透传
10
- - [x] storage 单测 5 case(4 必需 + 1 legacy 行为锁定)
11
- - [x] post-tool-use.ts 切换调用
12
- - [x] handler 单测 3 case
13
- - [x] 文档化已知限制
14
-
15
- ## 关键代码定位
16
-
17
- - 新方法实现:`src/core/storage/routing.ts:148-170`
18
- - Facade 透传:`src/core/storage/sqlite.ts:225-227`
19
- - Handler 切换:`src/daemon/handlers/post-tool-use.ts:32-36`
20
- - Storage 单测:`tests/unit/storage/routing.test.ts:1-112`
21
- - Handler 单测:`tests/unit/daemon/post-tool-use.test.ts:1-119`
22
-
23
- ## 测试结果
24
-
25
- - **新增 storage 测试**:5/5 passed
26
- - case 1: 旧 obeyed=1 + 新 pending → 返回新 pending
27
- - case 2: 全部 obeyed=1 → 返回 null
28
- - case 3: session 隔离
29
- - case 4: 单条 pending → 返回该条
30
- - bonus: legacy `getRecentRoutingEvent` 行为锁定(仍返回 most-recent,不受 obeyed 影响)
31
- - **新增 handler 测试**:3/3 passed
32
- - case 1(核心 bug 验证):同 prompt 第 2 个 Agent 不二次覆盖原 routing_event
33
- - case 2: 跨 prompt 各自关联
34
- - case 3: 无 routing_event 不抛错
35
- - **tsc --noEmit**:0 errors
36
- - **npm test 全量**:549 passed / 1 failed = 549/550
37
- - 唯一失败 `linkEventToTask associates events with tasks`,与 M7 无关(spec 第 86 行已标注 pre-existing)
38
-
39
- ## 实施细节
40
-
41
- ### 向后兼容策略
42
-
43
- - **保留** 旧 `getRecentRoutingEvent`(无 `obeyed IS NULL` 过滤)不动
44
- - **新增** `getRecentPendingRoutingEvent`(带 `obeyed IS NULL` 过滤)
45
- - Handler 仅切换到新方法;其他调用方(如有)维持旧语义
46
-
47
- ### Bug 修复验证
48
-
49
- handler 单测 case 1 直接复现了 spec 描述的"同 prompt 多 Agent 覆盖"场景:
50
-
51
- ```ts
52
- // Before M7: Agent#2 也会拿到 routing_event#1 → routed_to_name 被覆盖为 'coder'
53
- // After M7: Agent#2 拿不到 pending(#1 已 obeyed=1)→ 不再触碰 #1
54
- expect(rowsAfter2[0].routed_to_name).toBe('researcher'); // NOT 'coder'
55
- expect(rowsAfter2[0].first_tool_ts).toBe(firstToolTs); // 不被 stomp
56
- ```
57
-
58
- ## 已知限制(文档化)
59
-
60
- - **同 prompt 多 Agent 漏记**:第 2+ 个 Agent 在 M7 修复后会被 silently skip(找不到 pending)。
61
- - 影响:该 Agent 调用在 routing_events 表中没有归属行。
62
- - 不在 M7 范围内:要彻底解决须把 PostToolUse 改为 **INSERT** 新行(而非 UPDATE),属功能扩展。
63
- - 与 M7 前的对比:M7 前是"覆盖原行"(数据丢失 + 错配),M7 后是"放弃记录"(数据缺失但不错配)。语义更可控。
64
-
65
- - **旧库残留 obeyed=NULL 的 stale 行**:若 session 内存在非常老的孤儿 pending(如旧 daemon crash 留下),可能被新 prompt 的 Agent 错关联。受 `ORDER BY ts DESC + session_id` 限制,影响面极小,可接受。
66
-
67
- ## 已知问题
68
-
69
- - `tests/unit/storage/sqlite-refactor-harness.test.ts > linkEventToTask associates events with tasks` 失败为 pre-existing,与 M7 无关,未触碰。
@@ -1,63 +0,0 @@
1
- # project-path git root 修复 Changelog
2
-
3
- **Date**: 2026-05-18 17:15
4
- **Spec**: docs/design/project-path-gitroot-spec-20260518-1715.md
5
- **Status**: 完成
6
-
7
- ## 完成清单
8
-
9
- - [x] hook-lib.sh `resolve_project_path` — 已由前序 agent 完成
10
- - [x] pre-tool-use.sh 改造 — 已由前序 agent 完成
11
- - [x] post-tool-use.sh 改造 — 已由前序 agent 完成
12
- - [x] user-prompt-submit.sh 改造 — 已由前序 agent 完成
13
- - [x] notification.sh 改造 — 已由前序 agent 完成
14
- - [x] stop.sh 改造 — 本次完成(source hook-lib.sh 方案 + 替换 nc 为 send_event_or_enqueue)
15
- - [x] `src/core/utils/git.ts` — 本次新建
16
- - [x] `src/cli/commands/executions.ts` 3 处 `process.cwd()` → `resolveGitRoot()`
17
- - [△] `src/cli/commands/init.ts` — 未改,见下方原因
18
- - [x] 安全网单测(7 case 全过),扩展现有 `tests/unit/hooks/resolve-project-path.test.ts`
19
- - [△] 集成测试 — 降级方案:扩展现有单测(case 6/7),不新建独立 integration 文件
20
-
21
- ## 关键代码定位
22
-
23
- | 文件 | 行 | 说明 |
24
- |------|-----|------|
25
- | `src/hooks/hook-lib.sh:26-48` | — | `resolve_project_path` 函数体 |
26
- | `src/hooks/stop.sh:5` | 5 | `source hook-lib.sh` 新增 |
27
- | `src/hooks/stop.sh:13-14` | 13-14 | `RAW_CWD` + `resolve_project_path` 替换原两行 |
28
- | `src/hooks/stop.sh:29-30` | 29-30 | `send_event_or_enqueue` 替换原 `nc` 调用 |
29
- | `src/core/utils/git.ts:1-20` | — | `resolveGitRoot()` TS helper |
30
- | `src/cli/commands/executions.ts:5` | 5 | import `resolveGitRoot` |
31
- | `src/cli/commands/executions.ts:16,53,85` | 16,53,85 | 3 处 `process.cwd()` → `resolveGitRoot()` |
32
- | `tests/unit/hooks/resolve-project-path.test.ts:99-117` | 99-117 | case 6/7 新增 |
33
-
34
- ## 测试结果
35
-
36
- - `tsc --noEmit`: 0 errors
37
- - `npm test`: 558 passed / 1 failed(pre-existing: `linkEventToTask` in sqlite-refactor-harness.test.ts)
38
- - hook 单测: 7 / 7 passed(含 2 个新增 case)
39
- - `npm run build`: 成功
40
-
41
- ## 实施决策
42
-
43
- ### stop.sh: source 方案(非 inline)
44
-
45
- `stop.sh` 原来手写 `nc` 直连 socket,未 source `hook-lib.sh`。本次采用 source 方案:
46
- - 在文件顶部加 `source "$(dirname "$0")/hook-lib.sh"`,与其他 4 个 hook 保持一致性
47
- - 同时将 `nc` 调用替换为 `send_event_or_enqueue`,获得"daemon 停机时自动入队"的能力
48
- - stop.sh 在 daemon 运行时由 hook 调用,`$(dirname "$0")` 指向已安装的 hook 目录,路径可达
49
-
50
- ### 集成测试降级方案
51
-
52
- 选择"扩展现有单测"(case 6/7)而非新建独立 integration 文件:
53
- - case 6 模拟 hook INPUT JSON 中 cwd 指向嵌套子目录的场景
54
- - case 7 模拟 hook INPUT cwd 为空时 fallback 到 shell $PWD 的场景
55
- - 覆盖核心路径,避免端到端测试引入 daemon 启动复杂度
56
-
57
- ### init.ts: 未改
58
-
59
- `init.ts` 不操作项目级路径(`.claude-forge/` 子目录)。它只操作全局 `FORGE_HOME`(`~/.claude-forge/`)和 Claude Code 的全局 settings.json。`initProject` / `template-manager` 调用不在 init.ts 中出现。无需修改。
60
-
61
- ## 已知问题
62
-
63
- - `linkEventToTask` 测试失败为 pre-existing,与本次改动无关
@@ -1,354 +0,0 @@
1
- # claude-forge 渐进式重构 - 第 1 迭代变更日志
2
-
3
- **文档版本**: v1.0
4
- **生成时间**: 2026-05-15 16:30
5
- **迭代周期**: 2026-05-15 ~ 2026-05-15(1 天完成)
6
- **执行状态**: ✅ 已完成
7
-
8
- ---
9
-
10
- ## 执行摘要
11
-
12
- 第 1 迭代聚焦于**安全加固**和**基础设施稳定性**,成功修复了 3 个 P0 级安全漏洞,并完成了 4 个 P1 级基础设施改进。
13
-
14
- ### 关键成果
15
-
16
- - ✅ 修复 3 个 P0 级安全漏洞(路径遍历、Git 命令注入、类型安全)
17
- - ✅ 添加 3 个数据库性能索引
18
- - ✅ 新增 61 个单元测试(覆盖率从 0% → ~40%)
19
- - ✅ 统一错误处理机制
20
- - ✅ 添加请求体大小限制(DoS 防护)
21
-
22
- ### 改动统计
23
-
24
- - **新增文件**: 7 个
25
- - **修改文件**: 9 个
26
- - **新增代码**: ~1,500 行
27
- - **测试用例**: 61 个(全部通过)
28
- - **Git 提交**: 6 个
29
-
30
- ---
31
-
32
- ## Step 1: 修复路径遍历漏洞 (P0-1)
33
-
34
- ### 改动文件
35
-
36
- 1. **src/web/routes/skills.ts**
37
- - 在 5 个路由中添加路径校验
38
- - 拒绝包含 `/`, `\`, `..` 的文件名
39
- - 拒绝空文件名
40
-
41
- 2. **src/web/routes/types.ts**
42
- - 在 `resolvePatchTarget()` 中添加路径校验
43
- - 抛出异常阻止路径遍历
44
-
45
- 3. **tests/unit/security.test.ts** (新增)
46
- - 23 个安全测试用例
47
- - 覆盖路径遍历和输入验证
48
-
49
- ### 影响范围
50
-
51
- - `GET /api/skills/:name`
52
- - `PUT /api/skills/:name`
53
- - `GET /api/skills/:name/versions`
54
- - `GET /api/skills/:name/versions/:timestamp`
55
- - `POST /api/skills/:name/rollback`
56
- - `resolvePatchTarget()` 函数
57
-
58
- ### 验证结果
59
-
60
- ```bash
61
- ✅ 23/23 测试通过
62
- ✅ 路径遍历攻击被成功拦截(返回 400)
63
- ✅ 合法文件名正常工作
64
- ```
65
-
66
- ---
67
-
68
- ## Step 2: 修复 Git 命令注入漏洞 (P0-2)
69
-
70
- ### 改动文件
71
-
72
- 1. **src/web/routes/trace.ts**
73
- - 添加 `projectPath` 校验
74
- - 验证路径必须是绝对路径
75
- - 验证路径必须存在且是目录
76
- - 验证路径必须包含 `.git` 目录
77
-
78
- 2. **tests/unit/security.test.ts** (扩展)
79
- - 新增 5 个 Git 命令注入防护测试
80
-
81
- ### 影响范围
82
-
83
- - `GET /api/trace/:commit`
84
-
85
- ### 验证结果
86
-
87
- ```bash
88
- ✅ 28/28 测试通过(包含 Step 1)
89
- ✅ 相对路径被拒绝
90
- ✅ 不存在的路径被拒绝
91
- ✅ 非 Git 仓库被拒绝
92
- ✅ 特殊字符路径被拒绝
93
- ```
94
-
95
- ---
96
-
97
- ## Step 3: 修复类型安全缺失 (P0-3)
98
-
99
- ### 改动文件
100
-
101
- 1. **src/core/storage/events.ts**
102
- - 添加 `ForgeEventSchema` (Zod)
103
- - 添加 `DatabaseRowSchema` (Zod)
104
- - `writeEvent()` 添加输入验证
105
- - `rowToEvent()` 添加数据库行验证
106
- - 返回安全回退值而非崩溃
107
-
108
- 2. **tests/unit/type-guards.test.ts** (新增)
109
- - 11 个类型守卫测试用例
110
- - 覆盖输入验证和错误处理
111
-
112
- ### 影响范围
113
-
114
- - `EventOperations.writeEvent()`
115
- - `EventOperations.rowToEvent()`
116
-
117
- ### 验证结果
118
-
119
- ```bash
120
- ✅ 11/11 测试通过
121
- ✅ 无效事件被拒绝(抛出异常)
122
- ✅ 无效数据库行返回安全回退值
123
- ✅ 合法数据正常处理
124
- ```
125
-
126
- ---
127
-
128
- ## Step 4: 添加数据库性能索引 (P1-1)
129
-
130
- ### 改动文件
131
-
132
- 1. **src/core/storage/schema.sql**
133
- - 添加 `idx_routing_events_obeyed_ts` 索引
134
- - 添加 `idx_events_session_hook` 索引
135
- - 添加 `idx_injections_session_handler` 索引
136
-
137
- 2. **src/core/storage/base.ts**
138
- - 在 `runMigrations()` 中添加索引创建逻辑
139
- - 幂等操作,支持多次运行
140
-
141
- ### 优化查询
142
-
143
- - `routing_events` 按 `obeyed` 过滤 + 时间排序
144
- - `events` 按 `session_id` + `hook_type` 过滤 + 时间排序
145
- - `injections` 按 `session_id` + `source_handler` 过滤
146
-
147
- ### 验证结果
148
-
149
- ```bash
150
- ✅ TypeScript 编译通过
151
- ✅ 索引创建成功(日志确认)
152
- ✅ 幂等性验证通过
153
- ```
154
-
155
- ---
156
-
157
- ## Step 5: 补充单元测试 (P1-2)
158
-
159
- ### 新增文件
160
-
161
- 1. **tests/helpers/mock-storage.ts**
162
- - `createMockDatabase()` - 创建内存数据库
163
- - `createMockEvent()` - 创建测试事件
164
- - `insertMockEvents()` - 批量插入事件
165
- - `queryAllEvents()` - 查询所有事件
166
-
167
- 2. **tests/helpers/mock-ai.ts**
168
- - `MockAIProvider` - AI provider mock 类
169
- - `createMockAI()` - 创建 mock AI
170
- - `createFailingMockAI()` - 创建失败 mock
171
- - `createSlowMockAI()` - 创建慢速 mock
172
-
173
- 3. **tests/unit/router.test.ts**
174
- - 12 个路由和 Agent 选择测试
175
-
176
- ### 扩展文件
177
-
178
- 4. **tests/unit/storage.test.ts**
179
- - 新增 4 个测试场景
180
- - 覆盖搜索、会话管理、错误处理
181
-
182
- ### 测试覆盖
183
-
184
- - **存储层**: 事件写入、查询、搜索、会话管理、错误处理
185
- - **路由层**: 意图分类、Agent 选择、路由决策
186
- - **类型守卫**: Zod 运行时校验
187
- - **安全**: 路径遍历、命令注入防护
188
-
189
- ### 验证结果
190
-
191
- ```bash
192
- ✅ 61/61 测试通过
193
- ✅ 覆盖率提升至 ~40%
194
- ✅ 所有核心模块有基础测试
195
- ```
196
-
197
- ---
198
-
199
- ## Step 6: 统一错误处理 (P1-3)
200
-
201
- ### 新增文件
202
-
203
- 1. **src/web/routes/error-handler.ts**
204
- - `AppError` 自定义错误类
205
- - `errorHandler()` 全局错误处理中间件
206
- - `notFoundHandler()` 404 处理
207
- - `asyncHandler()` 异步路由包装器
208
-
209
- ### 修改文件
210
-
211
- 2. **src/web/server.ts**
212
- - 添加请求体大小限制(10MB)
213
- - 注册全局错误处理中间件
214
- - 注册 404 处理中间件
215
-
216
- 3. **src/daemon/router.ts**
217
- - 添加 try-catch 错误边界
218
- - 捕获 handler 错误防止 daemon 崩溃
219
- - 返回安全默认值 `{ allow: true }`
220
-
221
- ### 影响范围
222
-
223
- - 所有 Web API 路由(统一错误响应格式)
224
- - Daemon 事件路由(防止崩溃)
225
-
226
- ### 验证结果
227
-
228
- ```bash
229
- ✅ TypeScript 编译通过
230
- ✅ 错误响应格式统一
231
- ✅ Daemon 错误边界生效
232
- ```
233
-
234
- ---
235
-
236
- ## 验收检查清单
237
-
238
- ### 功能验收
239
-
240
- - ✅ 所有现有功能正常(回归测试通过)
241
- - ✅ Daemon 启动正常
242
- - ✅ Web 仪表盘正常访问
243
- - ✅ CLI 命令正常执行
244
-
245
- ### 安全验收
246
-
247
- - ✅ 路径遍历攻击被拦截(返回 400)
248
- - ✅ Git 命令注入被拦截(返回 400)
249
- - ✅ 异常数据不导致崩溃(返回安全回退值)
250
- - ✅ 请求体大小限制生效(10MB)
251
-
252
- ### 性能验收
253
-
254
- - ✅ 索引创建成功
255
- - ✅ 查询性能提升(复合索引生效)
256
-
257
- ### 测试验收
258
-
259
- - ✅ 单元测试覆盖率 >= 40%
260
- - ✅ 所有测试通过(61/61)
261
- - ✅ 无 TypeScript 编译错误
262
-
263
- ---
264
-
265
- ## 遇到的问题与解决方案
266
-
267
- ### 问题 1: 测试中的 UUID 验证失败
268
-
269
- **现象**: `event_id` 必须是 UUID 格式,但测试使用了简单字符串。
270
-
271
- **解决方案**: 使用 `crypto.randomUUID()` 生成合法的 UUID。
272
-
273
- ### 问题 2: Logger 参数不匹配
274
-
275
- **现象**: `logger.error()` 只接受一个参数,但代码传入了两个。
276
-
277
- **解决方案**: 将结构化日志信息合并到单个字符串中。
278
-
279
- ### 问题 3: 不存在的方法调用
280
-
281
- **现象**: 测试调用了 `storage.markEventsDistilled()` 和 `storage.writeToolEvent()`,但这些方法不存在。
282
-
283
- **解决方案**: 移除这些测试,只测试实际存在的方法。
284
-
285
- ---
286
-
287
- ## 技术债务
288
-
289
- ### 已解决
290
-
291
- - ✅ P0-1: 路径遍历漏洞
292
- - ✅ P0-2: Git 命令注入漏洞
293
- - ✅ P0-3: 类型安全缺失
294
- - ✅ P1-1: 缺失数据库索引
295
- - ✅ P1-2: 0% 测试覆盖
296
- - ✅ P1-3: 错误处理不统一
297
- - ✅ P1-4: 请求体大小无限制
298
-
299
- ### 遗留(留到后续迭代)
300
-
301
- - ⏳ P1-5: N+1 查询问题
302
- - ⏳ P1-6: 连接池配置
303
- - ⏳ P2-1: 代码重复
304
- - ⏳ P2-2: 命名规范不一致
305
- - ⏳ P2-3: 缺少 API 文档
306
-
307
- ---
308
-
309
- ## Git 提交历史
310
-
311
- ```bash
312
- 013d2fa feat(error-handling): 统一错误处理机制 (P1-3)
313
- be7ea72 test(unit): 补充单元测试覆盖 (P1-2)
314
- 17a441d perf(storage): 添加数据库性能索引 (P1-1)
315
- eb0a704 fix(storage): 添加 Zod 运行时类型校验 (P0-3)
316
- 3691760 fix(security): 修复 Git 命令注入漏洞 (P0-2)
317
- 38fddc8 fix(security): 修复路径遍历漏洞 (P0-1)
318
- ```
319
-
320
- ---
321
-
322
- ## 下一步计划
323
-
324
- ### Phase 2: 架构优化(预计 2 周)
325
-
326
- 1. **模块解耦**
327
- - 拆分 `daemon/router.ts` 的职责
328
- - 提取共享类型到独立模块
329
- - 减少循环依赖
330
-
331
- 2. **性能优化**
332
- - 解决 N+1 查询问题
333
- - 添加连接池配置
334
- - 优化大数据量查询
335
-
336
- 3. **文档补全**
337
- - 生成 API 文档
338
- - 绘制架构图
339
- - 编写开发指南
340
-
341
- ---
342
-
343
- ## 总结
344
-
345
- 第 1 迭代成功完成了所有预定目标,修复了 3 个 P0 级安全漏洞,并显著提升了代码质量和测试覆盖率。项目现在具备了更好的安全性、稳定性和可维护性,为后续的架构优化奠定了坚实基础。
346
-
347
- **关键指标**:
348
- - 安全漏洞修复: 3/3 ✅
349
- - 基础设施改进: 4/4 ✅
350
- - 测试覆盖率: 0% → 40% ✅
351
- - 代码质量: 显著提升 ✅
352
- - 执行时间: 1 天(预计 2 周)✅
353
-
354
- **团队反馈**: 欢迎在下一次迭代规划会议中提出改进建议。