Discord 技能 (/discord:configure, /discord:access) 硬编码 ~/.Claude/channels/discord/ 路径 — 忽略 DISCORD_STATE_DIR
作者: Chinzzii创建于 2026年4月3日更新于 2026年9月16日
□ 总结
Discord插件的's server.ts'正确读取了'DISCORD STAE DIR'以解析状态目录,令牌和访问.json. 但是Claude在执行"/discord:configure"和"/discord:access"硬码QX/.Claude/channels/discord/"时读取的技巧文件——所以Claude在"DISCORD STAE DIR"设定时读取/写错了文件.
相关:#865
□ 错误的确切位置
- 外部 插件/磁盘/技能/配置/SKILL.md * * *
- 硬码 -- -- /.ZClaude/通道/discord/.env ' ,用于读取/写字
- Claude跟随这个字面意思,忽略了"DISCORD STAE DIR"
外部 插件/差异/技能/访问/SKILL.md
- 硬码: "所有州都住在.ZClaude/通道/discord/access.json'"
- 所有子命令(页、允许、否认、删除、策略、组、设置)读取/写入此硬码路径
同时,`server.ts'正确地解决了路径:
Const State DIR = process.env.DISCORD STAE DIR ? 加入(homedir (), “. ZClaude”, “通道” , “ discord ” )
Const Access FILE = 加入(STATE DIR,'access.json') 互联网档案馆的存檔,存档日期2014-12-21.
const ENV FILE = 加入(STATE DIR,".env")该插件使用正确的符和访问权限连接到 Discord.json from `DISCORD STATE DIR'. 但是技能让Claude去寻找别的地方.
□再现.
- 在一台机器上设置两个有单独状态的凹槽:
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
瓶子一号
DISCORD STATE DIR=/path/to/.bots/bot1 Claude - 频道插件: Discord@Claude-plugins-官方
二号瓶
DISCORD STATE DIR=/path/to/.bots/bot2 Claude - 频道插件: Discord@Claude-插件-官方
2. 两个 bots 连接到 Discord 正确(插件为 `DISCORD STATE DIR')
3. 在任一会话中运行`/discord:configure'——显示"token: not set"和"0发件人",因为它读作 /.ZClaude/channels/discord/"而不是"$DISCORD STATE DIR".
4. 运行 '/discord: access pair <code>`--写作:`~/. Claude/channels/discord/access.json ' 而不是"$DISCORD STATE DIR/access.json". 插件从未看到配对 。
□ 影响
运行一个带有“ DISCORD STAE DIR” 路径的机器中的3个波段 :
- `/discord:confit'显示“token: not set”,尽管机器人是连接和响应的
- `/discord: access pair <code>`}写到全局文件——插件从未看到它
- 必须手动将`access.json'写入正确的国家目录,作为工作
- 混淆 UX : 插件工作, 技能报告坏了
□ 建议修正
在两个 " SKILL.md " 文件中,将硬码路径替换为 env-aware 分辨率:
状态目录: 如果设置, 请使用 $DISCORD STAE DIR, 否则 ~/. Claude/渠道/分会/ 托肯 : {state dir}/.env 访问 : {state dir}/ access.json
或将已解析的 “ STATE DIR” 作为 MCP 资源曝光, 这样技能就可以查询插件所使用的实际路径 。
□ 环境
- Claude代码v 2.1.87.
- “Claude-插件-官方”的Discord插件(主要分支)
- Ubuntu 22.04, 1 Linux 用户的3个瓶子实例, 单独的“ DISCORD STATE DIR”内容来源: anthropics/claude-plugins-official