Skip to content

优化目录白名单提示与项目引导#40

Open
VanChef wants to merge 1 commit intoHNGM-HP:betafrom
VanChef:fix/directory-guidance
Open

优化目录白名单提示与项目引导#40
VanChef wants to merge 1 commit intoHNGM-HP:betafrom
VanChef:fix/directory-guidance

Conversation

@VanChef
Copy link
Copy Markdown

@VanChef VanChef commented Mar 30, 2026

背景

  • 目录不在允许范围内时,现有提示过于笼统,用户不知道应该去哪里修改配置
  • /project list 在没有可用项目时,也缺少和目录配置相关的明确引导

变更

  • 优化目录白名单相关报错,补充以下信息:
    • 配置来源(.env / Web 管理面板 / 混合模式)
    • 用户尝试访问的目录
    • 当前允许目录列表
    • 精确的 Web 管理面板入口:核心行为 -> 工作目录与项目 -> 允许的目录白名单(ALLOWED_DIRECTORIES)
    • 管理面板地址
  • 根据当前运行状态,自动判断应引导用户修改 .env 还是 Web 管理面板配置
  • /project list 在无可用项目时复用同一套目录配置引导,并保留 PROJECT_ALIASES 提示
  • 补充目录策略测试,覆盖 .env、Web 管理面板、混合模式和项目列表空状态场景

验证

  • npm test -- tests/directory-policy.test.ts

@VanChef
Copy link
Copy Markdown
Author

VanChef commented Mar 30, 2026

补充一点设计说明:之所以区分 .env、Web 管理面板和混合模式,是因为这个项目当前的配置加载顺序本身就是两段式的:先加载 .env,再根据迁移状态从 SQLite 注入未定义的配置。也就是说,只要 .env 里仍然显式配置了 ALLOWED_DIRECTORIES,运行时就可能继续以 .env 为准;如果已经迁移且 .env 未配置该项,则更应该引导用户去 Web 管理面板的“核心行为 -> 工作目录与项目 -> 允许的目录白名单(ALLOWED_DIRECTORIES)”修改。这个 PR 的目的就是把这层真实运行逻辑直接暴露给用户,减少“明明改了配置但不生效”的排查成本。

@HNGM-HP
Copy link
Copy Markdown
Owner

HNGM-HP commented Mar 30, 2026

PR 评审反馈

感谢贡献!整体方向很好,有几点建议:

1. 关于 .env 配置引导

detectAllowlistConfigMode() // 返回 'env' | 'db' | 'mixed' | 'unknown'

不建议引导用户修改 .env 配置,原因:

  • 后续版本迭代中 .env 配置方式会被彻底取代
  • 应统一引导用户通过 Web 管理面板配置
  • 建议移除 'env' 和 'mixed' 分支中的 .env 相关提示,仅保留 Web 管理面板引导。

2. 改进建议

  • 问题:消息较长,手机端(飞书/微信)显示可能不佳
  • 建议可考虑精简或分段展示
  • 管理面板地址:建议改为 http://localhost:4098
  • 完整入口路径:核心行为 -> 工作目录与项目 -> 允许的目录白名单(ALLOWED_DIRECTORIES)

总结:方向正确,调整以上细节后可以合并。

@VanChef

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants