Skip to content

Developer: DIFFAUDIT_DEMO_MODE=0 does not actually disable frontend demo mode #36

@DeliciousBuding

Description

@DeliciousBuding

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_MODEDIFFAUDIT_DEMO_MODE1/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.tslib/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。

验收标准

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions