Owner: Developer
问题
文档和治理口径说可以用 DIFFAUDIT_DEMO_MODE=0 关闭 frontend demo mode,但当前 server-side demo 判定只把 env 的 enabled values 当作强制开启;env 设置为 0 时不会显式返回 false,随后仍会在没有 demo cookie 的情况下默认 demo mode。
证据
AGENTS.md:101 写明:要使用 Go backend demo data,应通过 DIFFAUDIT_DEMO_MODE=0 禁用 frontend demo mode。
apps/web/src/lib/demo-mode.ts:11-20 只在 DIFFAUDIT_FORCE_DEMO_MODE 或 DIFFAUDIT_DEMO_MODE 为 1/true/yes/on/demo 时返回 true;0 没有被识别为 false。
apps/web/src/lib/demo-mode.ts:37-50 在没有 cookie 明确设置时最终默认返回 true。
apps/web/src/proxy.ts:9-19 有一份独立 demo 判定逻辑,同样不把 env 0 当 false,最终默认 true。
影响
部署或开发者按文档设置 DIFFAUDIT_DEMO_MODE=0 后,Next.js Route Handler 仍可能走 demo mode,导致 /api/v1 live proxy/auth 路径没有被使用。这会削弱 #33 的 live auth 修复,并让“关闭 demo 接 Go backend”的文档不可相信。
建议修复
- 统一 demo mode 判定逻辑,避免
proxy.ts 和 lib/demo-mode.ts 漂移。
DIFFAUDIT_FORCE_DEMO_MODE 保持强制开启优先级。
DIFFAUDIT_DEMO_MODE=0/false/no/off 应明确禁用 demo mode。
- 无显式 env/cookie 配置时可保留当前默认 demo behavior。
- 增加测试覆盖 env
DIFFAUDIT_DEMO_MODE=0 时 /api/v1 无 session/fake session 不再走 demo。
验收标准
Owner: Developer
问题
文档和治理口径说可以用
DIFFAUDIT_DEMO_MODE=0关闭 frontend demo mode,但当前 server-side demo 判定只把 env 的 enabled values 当作强制开启;env 设置为0时不会显式返回 false,随后仍会在没有 demo cookie 的情况下默认 demo mode。证据
AGENTS.md:101写明:要使用 Go backend demo data,应通过DIFFAUDIT_DEMO_MODE=0禁用 frontend demo mode。apps/web/src/lib/demo-mode.ts:11-20只在DIFFAUDIT_FORCE_DEMO_MODE或DIFFAUDIT_DEMO_MODE为1/true/yes/on/demo时返回 true;0没有被识别为 false。apps/web/src/lib/demo-mode.ts:37-50在没有 cookie 明确设置时最终默认返回 true。apps/web/src/proxy.ts:9-19有一份独立 demo 判定逻辑,同样不把 env0当 false,最终默认 true。影响
部署或开发者按文档设置
DIFFAUDIT_DEMO_MODE=0后,Next.js Route Handler 仍可能走 demo mode,导致/api/v1live proxy/auth 路径没有被使用。这会削弱 #33 的 live auth 修复,并让“关闭 demo 接 Go backend”的文档不可相信。建议修复
proxy.ts和lib/demo-mode.ts漂移。DIFFAUDIT_FORCE_DEMO_MODE保持强制开启优先级。DIFFAUDIT_DEMO_MODE=0/false/no/off应明确禁用 demo mode。DIFFAUDIT_DEMO_MODE=0时/api/v1无 session/fake session 不再走 demo。验收标准
DIFFAUDIT_DEMO_MODE=0在 proxy 和 route handler demo 判定中都关闭 demo。DIFFAUDIT_FORCE_DEMO_MODE=1仍可强制开启。platform-demo-mode=0才能进入 live path。