modelstudioai / modelstudioai/cli

Allow opting out of auto-update and of the automatic `bl skill init` after updates

未關閉
#200 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

還沒有人認領這個 Issue。

主要語言
TypeScript
星號
333
分支
28
平均合併
1 天 9 小時
30 天內合併 PR
33

描述

bl currently self-updates silently and then unconditionally re-runs bl skill init, with no persistent way to opt out of either step.

What happens

  1. Any command (e.g. a scheduled bl usage token-plan) triggers shouldAutoUpdate() when the installed version is a major behind, or more than 3 minors behind (packages/runtime/src/utils/update-checker.ts). It then runs npm install -g bailian-cli@latest in the middle of the user's command.
  2. On success, syncAgentSkillsAfterUpdate() runs bl skill init, which symlinks every bailian-* skill into every detected agent directory (~/.claude/skills, ~/.codex/skills, ~/.config/opencode/skills, ~/.pi/agent/skills, ~/.agents/skills, …). bl update does the same via updateAgentSkill() (packages/commands/src/commands/update.ts).
  3. The only gate is ctx.settings.quiet, which comes from the per-invocation --quiet flag and is not a config.json key (packages/core/src/config/loader.ts), so it cannot be made persistent. bl skill init itself has no flags to limit targets.

Why this is a problem

Users who manage their agent skill directories elsewhere (dotfiles, a config-as-code repo) have their removals silently reverted on the next update. In my case 10 skills I had removed came back into five agent homes because a cron-style quota probe happened to run after 1.24.0 was published (telemetry: skill init at 2026-09-11T13:48:04Z, cliVersion 1.24.0, immediately after an in-flight 1.20.0 usage token-plan).

Request

Two independent, persistent switches (config.json key and/or env var), e.g.:

  • BAILIAN_AUTO_UPDATE=0 / "auto_update": false — never run npm install -g implicitly; only print the "update available" notice.
  • BAILIAN_SKILL_SYNC=0 / "skill_sync": false — never run bl skill init implicitly after an update (both the auto path and bl update).

Optionally, bl skill init --agent <list> so the sync can be scoped even when enabled.

Environment: bl 1.24.0, npm global install, macOS 26.6, node v26.8.2.

貢獻指南

開啟貢獻指南

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

研究方向

從 packages/runtime/src/utils/update-checker.ts 和 packages/core/src/config/loader.ts 開始,追蹤自動更新和持久化設定,然後檢查 packages/commands/src/commands/update.ts 以及 bl skill init 進入點。驗證這兩個開關能獨立阻止隱式 npm 更新和技能同步,同時保留更新通知和明確的技能初始化行為。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
nodejs, typescript
領域
cli, developer-experience, tooling
Issue 類型
功能
難度
4/5
預估耗時
3-5 天
活躍度
活躍
描述清晰度
基本清楚
新手友好度
63/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。