SuperAPI AI 工具集

feature-flags

通用与其它

查看项目

更新于 10-16 00:05

技能介绍

用途:sidecar 的功能开关用于把实验性功能放在用户可配置的设置之后,实现安全上线(默认关闭)、用户主动开启以及快速回滚。

主要能力:在代码中通过 features.IsEnabled("名称") 判断开关状态;在 internal/features/features.go 中定义 Feature(Name、Default、Description)并加入 allFeatures 切片即可注册;配置界面 Configuration → System → Feature Flags 的列表由 features.ListAll() 派生,注册后自动出现开关,无需维护第二份列表。可选地在 internal/configui/page_flags.go 的 previewCopy 中覆盖标签与帮助文案,restart 需按实际消费方式填写,note 用于说明作用范围;若某开关已由其他页面作为一等设置拥有,则设置 owner 与 ownerControl,以只读方式列出并跳转到拥有它的控件。

使用方式:配置文件 ~/.config/sidecar/config.json 中写入 features.flags,例如 "tmux_interactive_input": true;CLI 覆盖优先于配置,可用 sidecar --enable-feature=名称、--disable-feature=名称,或 --enable-feature=feature1,feature2 指定多个。未知名称会告警但不阻止启动。状态解析顺序为:CLI 覆盖、配置文件、代码默认值,先匹配者生效。

适用场景:逐步放量实验功能、让用户自行选择开启、出现问题时快速关闭。

限制与注意:新实验功能默认应为 false;名称使用 snake_case;添加时需在 docs/guides/deprecated/feature-flags.md 中记录;功能稳定后应移除开关。配置页需保持短于小型终端,因为详情面板会截断而非滚动,行游标仍会走到被截断的行,TestFlagsPageFitsAnOrdinaryTerminal 对此进行保护。API 包括 IsEnabled、List、ListAll、SetEnabled、SetOverride、IsKnownFeature。