Skip to content

v1.39.0

Latest

Choose a tag to compare

@riba2534 riba2534 released this 20 Aug 14:03
0e92eec

多 Bot 身份支持

把「用哪个目录 / User Token」和「用哪套 App 凭证」拆成两条正交解析链,新增三个全局 flag:

feishu-cli profile list --json                  # 先看能操作哪些 Bot
feishu-cli --profile alert msg send ...         # 单次指定,不改默认指针
feishu-cli --bot-app-id cli_xxx --bot-app-secret xxx auth status -o json   # 单次覆盖 App 凭证,不写盘
  • 目录 / User Token--profile > FEISHU_PROFILE > active-profile 指针 > 旧布局
  • App 凭证--bot-app-id/--bot-app-secret > FEISHU_APP_ID/SECRET > 选中目录的 config.yaml

profile list / profile current 升级为 Bot 清单——即使没执行过 profile add,也会输出环境变量/旧布局正在用的那套(effective),不会让人误判「一个 Bot 都没有」。

凭证告警收窄

此前只要设置了 FEISHU_APP_ID 就对每条命令打印警告,而这正是文档推荐的单应用用法。现在只在真错配时出声:覆盖来的 app_id 与所选目录 config.yaml 不是同一个应用,或两半凭证落在不同层且无法确认同属一个应用。单应用配置完全静默。

身份字段只陈述可离线证明的事实(user_token_override / has_config_user_token / token_from_profile)。CLI 不再断言「本次实际用了哪个 token」——本项目按命令分四类 token helper,--as bot、默认 Bot 身份的写命令、只认 flag 的 vc bot meeting-join、固定读本地文件的 auth status 各有各的解析路径。

健壮性

  • 单个 profile 的 config/token/cache 损坏不再让整张清单打不开,按来源分别记录原因并在输出中点名
  • auth status / auth logoutconfig.yaml 损坏时降级继续(业务命令保持 fail-fast)
  • 表格按显示宽度对齐,正确处理 CJK 与 ZWJ 表情(👨‍💻)
  • commandOverride 改用独立 mutex,不再复用保护文件写入的锁

升级说明

JSON 契约完全向后兼容:profile list --json 的 name/path/active/has_config/has_token 与 auth status -o json 的全部既有字段,取值与 v1.38.4 逐一相同,只新增字段;所有命令退出码不变。

两处行为变更:

  1. 人类可读输出有调整profile list 表格列改为 ACTIVE/NAME/APP_ID/TOKEN/USER/SELECT,profile current 扩展为多行,auth status 新增 Profile/App ID 行。解析输出的脚本请改用 --json / -o json
  2. active-profile 指针失效且旧布局仍在时,改为优先旧布局(原为回退到字典序第一个 profile)。指针缺失时优先旧布局本就是既定行为,此改动让两种等价情况保持一致,不会把仍在用 ~/.feishu-cli/ 的用户静默切到另一套 Bot。

安装

curl -fsSL https://raw.githubusercontent.com/riba2534/feishu-cli/main/install.sh | bash