- T40 UI 审计计划和结果文档(docs/qa/) - wiki 更新:miniprogram 设计系统合规审计记录 + index 关键数字更新 - 审计 V2 完整报告(docs/audits/v2/) - 讨论记录文档(docs/discussions/) - 设计规格和实施计划(docs/superpowers/) - 角色测试计划和结果(docs/qa/role-test-*) - Docker 生产部署配置
4.5 KiB
4.5 KiB
技术债务清单
审计日期:2026-05-04 | 范围:
crates/*+apps/*
1. #[allow(dead_code)] / #[allow(unused 抑制清单(17 处)
| 文件 | 行号 | 说明 |
|---|---|---|
erp-ai/service/reanalysis.rs |
:14 | FromQueryResult 映射字段 |
erp-ai/provider/claude.rs |
:55,:66,:72,:74 | serde 反序列化字段(4 处) |
erp-auth/service/wechat_service.rs |
:43 | WeChat 服务字段 |
erp-plugin/host.rs |
:42,:44 | 插件宿主字段(2 处) |
erp-plugin/data_service.rs |
:462,:775,:1173,:1536 | FromQueryResult chk/id/check_result 字段(4 处) |
erp-server/middleware/rate_limit.rs |
:27 | 限流结构体字段 |
erp-server/handlers/analytics.rs |
:11 | 客户端上报字段,待接入 |
erp-health/service/action_inbox_service.rs |
:119,:131,:140 | FromQueryResult 映射字段(3 处) |
erp-health/service/stats_service/health.rs |
:295 | FromQueryResult total 字段 |
根因:大量来自 SeaORM FromQueryResult 宏,字段必须声明但当前未读取。建议在 DTO 转换层使用 _ 前缀或 #[serde(skip)]。
2. TODO / FIXME / HACK 注释(5 处)
| 文件 | 内容 |
|---|---|
erp-auth/handler/wechat_handler.rs:45 |
TODO: 多租户微信登录需要设计租户解析策略 |
erp-auth/handler/wechat_handler.rs:76 |
TODO: 多租户微信登录需要设计租户解析策略(重复) |
erp-plugin/data_service.rs:1075 |
TODO: 未来版本添加 Redis 缓存层 |
erp-health/event.rs:51 |
TODO: 患者认证和死亡记录流程尚未实现 |
web/pages/workflow/PendingTasks.tsx:208 |
TODO: 替换为 UserSelect 用户搜索选择组件 |
web/pages/health/components/ActionDetailDrawer.tsx:78 |
TODO: 调用实际 API 执行操作 |
风险:wechat_handler 多租户策略未定,影响 SaaS 化路线。ActionDetailDrawer TODO 说明功能未接通。
3. 硬编码检测
3.1 localhost / 127.0.0.1(14 处,排除 lock 文件)
| 文件 | 硬编码值 | 风险 |
|---|---|---|
apps/web/vite.config.ts |
localhost:3000 |
开发代理,可接受 |
apps/web/playwright.config.ts |
localhost:5174 |
E2E,可接受 |
apps/miniprogram/config/index.ts |
localhost:3000 |
MP 构建默认值 |
apps/miniprogram/src/services/request.ts |
localhost:3000 |
MP 运行时 fallback |
apps/miniprogram/e2e/helpers/api-client.ts |
localhost:3000 |
E2E |
apps/miniprogram/e2e/check-readiness.ts |
localhost:3000 |
E2E |
apps/web/e2e/check-readiness.ts |
localhost:3000 + localhost:5174 |
E2E |
apps/web/e2e/fixtures/api-client.ts |
localhost:3000 |
E2E |
apps/web/e2e/auth.fixture.ts |
localhost:3000 |
无 env fallback,纯硬编码 |
apps/web/e2e/fixtures/auth.fixture.ts |
localhost:3000 |
E2E |
integration-tests/test_workflow_module.rs |
localhost:3000 |
集成测试 |
integration-tests/test_common.rs |
localhost:3000 |
集成测试 |
integration-tests/test_auth_module.rs |
localhost:3000 |
集成测试 |
erp-server/tests/integration/test_db.rs |
localhost:5432 + 明文密码 |
安全风险 |
erp-core/test_helpers.rs |
localhost:5432 + 明文密码 |
安全风险 |
3.2 硬编码端口号
3000(API)、5174(Web dev)、5432(PostgreSQL) — 均为开发/测试用途,无生产风险。但 test_db.rs 中 postgres:123123@localhost 明文密码应移至 env。
4. 主要依赖版本
后端(Cargo.toml workspace)
| 依赖 | 版本 | 备注 |
|---|---|---|
| axum | 0.8 | 最新 stable |
| sea-orm | 1.1 | 最新 |
| tokio | 1 | LTS |
| serde / serde_json | 1 / 1 | stable |
| chrono | 0.4 | stable |
| thiserror / anyhow | 2 / 1 | thiserror v2 |
| utoipa | 5 | 最新 |
| redis | 0.27 | — |
| reqwest | 0.12 | — |
前端(apps/web/package.json)
| 依赖 | 版本 | 备注 |
|---|---|---|
| react | ^19.2 | React 19 |
| antd | ^6.3 | Ant Design 6 |
| react-router-dom | ^7.14 | React Router 7 |
| dayjs | ^1.11 | — |
| zustand | ^5.0 | — |
| typescript | ~6.0 | TS 6 |
| vite | ^8.0 | Vite 8 |
结论:依赖版本均较新,无重大过时风险。
优先修复建议
- P0 —
test_db.rs/test_helpers.rs明文数据库密码移至环境变量 - P1 —
web/e2e/auth.fixture.ts硬编码 API 地址应加 env fallback - P1 — 清理
wechat_handler.rs重复 TODO,明确多租户方案 - P2 — 统一 SeaORM 查询结果的字段抑制策略(
_前缀或 helper 宏) - P2 —
ActionDetailDrawerTODO 接通实际 API