本文件记录用于本 change 功能对照的源仓库状态。参考工作区仍可继续变化,但本 change 已通过第 6 节登记的只读 patch bundle 固定实施基线;后续实现只以该冻结包和本 change specs 为依据。
| 字段 | 值 |
|---|---|
| 源仓库 | /Users/mt/code/mt-ai/aicodex/aicodex-api |
| 采集时间 | 2026-07-16 20:21:19 CST (+0800) |
| 分支 | yjb |
| HEAD | 7a50378851a80650cb0c086260b23abeb3469e6b |
| 工作区 | dirty |
| 已跟踪差异 | 38 files changed, 1306 insertions(+), 227 deletions(-) |
| 未跟踪范围 | Prompt Guard 实现/测试 6 个文件,加 1 个 OpenSpec change 目录 |
| 冻结状态 | 已用只读 patch bundle 冻结并在 detached worktree 恢复验证 |
当前 HEAD 只代表已提交历史,不能单独代表要迁移的完整功能。同步 fail-closed Guard、出站安全校验、WebSocket/路由顺序测试以及相应 OpenSpec 当前存在于未提交或未跟踪状态。因此,本 change 的临时功能参考是“上述 HEAD + 采集时磁盘工作区”,最终行为权威仍是本 change 的 specs。
ai-gateway/cmd/aicodex/main.goai-gateway/internal/controller/prompt_audit.goai-gateway/internal/router/relay-router.goai-gateway/internal/router/video-router.goai-gateway/internal/relay/ws_responses.goai-gateway/internal/gatewayadapter/transport/anthropic.goai-gateway/internal/gatewayadapter/transport/gemini.goai-gateway/internal/gatewayadapter/transport/jimeng.goai-gateway/internal/gatewayadapter/transport/kling.goai-gateway/internal/gatewayadapter/transport/midjourney.goai-gateway/internal/gatewayadapter/transport/openai.goai-gateway/internal/gatewayadapter/transport/suno.goai-gateway/internal/gatewayadapter/transport/task.goai-gateway/internal/service/promptaudit/client.goai-gateway/internal/service/promptaudit/config.goai-gateway/internal/service/promptaudit/enqueue.goai-gateway/internal/service/promptaudit/openai_client.goai-gateway/internal/service/promptaudit/probe.goai-gateway/internal/service/promptaudit/qwen3guard.goai-gateway/internal/service/promptaudit/runtime.goai-gateway/internal/service/promptaudit/runtime_coverage_test.goai-gateway/internal/service/promptaudit/types.goai-gateway/internal/service/promptaudit/worker.goai-gateway/internal/types/error.goai-gateway/internal/gatewayadapter/transport/user_concurrency_order_test.gowebui/src/api/promptAudit.test.tswebui/src/features/prompt-audit/PromptAuditPage.tsxwebui/src/features/prompt-audit/PromptAuditPage.test.tsxwebui/src/features/prompt-audit/promptAuditViewModel.tswebui/src/features/prompt-audit/promptAuditViewModel.test.tswebui/src/types/promptAudit.tsdeploy/.env.exampledocs/constraints/41-ai-readable-logging.mddocs/workflows/02-local-dev.md以下文件不在 HEAD 中,但属于“完整功能必须要有”的关键证据:
ai-gateway/internal/gatewaycore/prompt_guard.goai-gateway/internal/service/promptaudit/outbound_security.goai-gateway/internal/service/promptaudit/synchronous_guard.goai-gateway/internal/service/promptaudit/synchronous_guard_test.goai-gateway/internal/relay/ws_responses_prompt_guard_order_test.goai-gateway/internal/router/prompt_guard_order_test.goopenspec/changes/add-prompt-audit-synchronous-blocking/不得只执行 git diff HEAD 后就声称已冻结,因为普通 diff 不包含这些未跟踪文件。
遇到源实现、源测试和本 change 描述不一致时,按以下顺序决策:
design.md 和 implementation-guide.md:目标架构与落地约束。目标项目不得复制源仓库的 Ent、Caddy/gatewaycore、React 或全局 option 依赖;只迁移可以被规格和测试证明的行为。
在源仓库所有者确认工作区内容属于迁移基线后,选择一种方式:
禁止把包含真实 API Key、Redis payload、.env 私密值或运行日志中的完整 Prompt 放入基线包。
| 字段 | 待填写值 |
|---|---|
| 冻结方式 | 只读 tracked patch + untracked tar archive |
| 冻结 commit/tag | base commit 7a50378851a80650cb0c086260b23abeb3469e6b(detached restore) |
| patch/archive 绝对路径 | /Users/mt/code/mt-ai/sub2api/sub2api-mt/openspec/changes/add-openai-compatible-prompt-audit/source-freeze/ |
| manifest SHA-256 | badab312bf6af4d2c77857a9400381f4da4fbf45722d9f4a6df23bc7005273b6 |
| tracked patch SHA-256 | f751a13cce3f3a73cd60cae3aececcef6e1e76dcec8c551a7a4747f032234d2b |
| untracked archive SHA-256 | 1536e2781703b7620e26f2d08b249431fa5846ad9e32b2e8b0d547c3fa3b3632 |
| 冻结人/复核人 | Codex;由恢复后的文件清单、git diff --check 和测试命令复核 |
| 冻结时间 | 2026-07-16 20:21:19 CST (+0800) |
| 源测试结果 | 恢复副本中 Prompt Audit 核心、router、relay、gateway transport 目标测试全部通过,详见 source-freeze/MANIFEST.md |
cd /Users/mt/code/mt-ai/aicodex/aicodex-api
git branch --show-current
git rev-parse HEAD
git status --short
git diff --stat
git diff --name-only
git ls-files --others --exclude-standard
cd ai-gateway
go test ./internal/service/promptaudit
本提案编写时上述模块测试已在当前 dirty 磁盘状态通过;冻结后必须再次执行,并记录最终 commit/patch 校验和、执行目录和完整输出。