Files
Neo-ZQYY/docs/audit
Neo 6df02f8efe docs(audit): F1-5b BE-3 + T3 测试回归覆盖 (W1)
补强 F1-5a runtime_context 落地后的测试覆盖,防止未来 PR 回归。
测试文件本地通过,因 .gitignore:71 不入仓(同 T1 / T2 / af02446 处理)。

BE-3 ai_run_logs runtime 写入回归(5 case,本地 PASS):
- apps/backend/tests/test_ai_run_logs_runtime.py
- 覆盖 AIRunLogService.create_log() 在 live / sandbox 模式下分别写入
  正确的 runtime_mode + sandbox_instance_id 字段
- 边界:prompt 截断、INSERT 失败 rollback、bind_to_session=True 调用

T3 dispatcher runtime 单测(5 case,本地 PASS):
- apps/backend/tests/test_dispatcher_runtime.py
- 覆盖 AIDispatcher._run_step 在 4 条路径(circuit_open / rate_limited
  / budget_exceeded / 正常)下都把 context["site_id"] 正确传给
  run_log_svc.create_log
- 防御目标:dispatcher 内部不该意外丢失 site_id,否则 sandbox 切换
  在 dispatcher 路径上失效

依赖 F1-5b A3(commit af02446)的 RuntimeContext 接口契约。
两份测试与 T2(test_admin_ai_batch_runtime,af02446 已 PASS)互补,
一起构成 F1-5a 落地后的回归守护网。

审计:
- docs/audit/changes/2026-05-05__wave1_f1_5b_be3_run_log_runtime_regression.md
- docs/audit/changes/2026-05-05__wave1_f1_5b_t3_dispatcher_runtime.md

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-05 19:17:19 +08:00
..

审计目录docs/audit/

项目级统一审计落地点。所有模块ETL、后端、小程序、管理后台等的审计产物均写入此目录。

子目录与文件

目录/文件 说明
changes/ AI 逐次变更审计记录(<YYYY-MM-DD>__<slug>.md
prompt_logs/ Prompt 日志文件(每次 prompt 生成一个独立文件,按时间戳命名)
session_logs/ 全量会话记录(按 YYYY-MM/DD/ 分层),含双索引和 LLM 操作摘要。详见 SESSION-LOG-GUIDE.md
audit_dashboard.md 审计一览表(自动生成,勿手动编辑)
SESSION-LOG-GUIDE.md Session 日志使用指南(索引字段、查询方法、典型场景)

维护约定

  • prompt_logs/prompt-audit-log Hook 自动管理,请勿手动编辑
  • session_logs/agentStop Hook 自动提取,索引由提取脚本自动更新
  • audit_dashboard.md/audit 流程自动刷新,也可通过 python scripts/audit/gen_audit_dashboard.py 手动重新生成
  • 变更审计记录由 /audit 流程audit-writer 子代理)生成,包含 session_id 字段与 Session 日志双向关联
  • 历史记录(迁移前 ETL 子项目的审计)已合并至此目录

审计追溯链

Prompt 日志 ←→ Session 日志 ←→ 变更审计记录
(用户说了什么)   (AI 做了什么)   (正式变更文档)

通过 Prompt-ID 和 Session-ID 可在三者之间双向追溯。详见 SESSION-LOG-GUIDE.md