# 审计记录 — 2026-06-01 全量 Bug 修复 ## 审计信息 - **日期**: 2026-06-01 - **触发**: 交接 P0~P3 全量修复 - **范围**: 见 changelog `docs/changelog/2026-06-01-bug-remediation.md` ## Step 3 规则扫描 H | H | 规则 | 文件 | |---|------|------| | H1 | 批量 server_ids 须为整数 | ServersPage + normalizeServerIds | | H2 | Access JWT 15–60min | auth_service + config | | H3 | Refresh Cookie + credentials | api/index.ts, auth store | | H4 | script-callback API Key | agent.py + script_jobs curl | | H5 | 心跳不写 MySQL 实时 | agent.py 移除 update_heartbeat | | H6 | 未知 server 200 discarded | agent.py | | H7 | Admin 废弃列 DROP | migrations + model | ## Closure 表 | H | 判定 | 依据 | |---|------|------| | H1 | ✅ SAFE | `normalizeServerIds` 过滤非正整数 | | H2 | ✅ SAFE | `_access_token_expire_minutes()` clamp 15–60 | | H3 | ✅ SAFE | 401 刷新一次;login 路径不 forceLogout | | H4 | ✅ SAFE | `shlex.quote(api_key)` + Depends 校验 | | H5 | ✅ SAFE | 仅 Redis;flush 任务已有 | | H6 | ✅ SAFE | 不泄露存在性(先验 Key 再查库) | | H7 | ✅ SAFE | DROP 迁移可重复跳过 | ## 改动文件清单 - frontend/src/pages/ServersPage.vue - frontend/src/api/index.ts - frontend/src/stores/auth.ts - frontend/src/router/index.ts - frontend/src/pages/TerminalPage.vue - frontend/src/utils/serverSelection.ts - frontend/src/utils/apiError.ts - server/api/agent.py - server/application/services/auth_service.py - server/config.py - server/application/services/script_jobs.py - server/application/services/script_service.py - server/domain/models/__init__.py - server/infrastructure/database/admin_repo.py - server/domain/repositories/__init__.py - server/infrastructure/database/migrations.py - server/main.py - server/api/settings.py - tests/test_api.py - tests/test_nexus_v6.py - tests/test_step1to5_features.py ## DoD - [x] len(H) == Closure 行数 (7) - [x] ruff check server/ 通过 - [x] import server.main 通过 - [x] pytest 模型/认证单元 35 passed - [x] changelog ≥10 行