Skip to content

状态栏

状态栏(footer)是终端最底两行的注册表驱动表面:不是写死的组件,任何插件都能经 blueStatus 注册条目。壳组件把条目排进至多两条带(band)——第一行左簇 + 右簇,第二行右簇。

布局与灰阶

两空格 slot 连接、没有分隔符字形;灰阶构成层级(对齐 kimi 视觉身份):

档位颜色承载
最亮textmodel、context——你每轮都在读的信息
mutedcwd、git 徽章、会话标题

(最暗的 textMuted tips 档已随 S30 footer 换位退役——教学提示只随 activity 面板的 spinner 行轮换。)

内置条目

条目优先级位置内容
blue-status-basic0行 1 左簇model 名(取持久化 request 头,回退 agent 选项;text 色)
blue-status-mode2行 1 左簇会话模式徽标:plan(accent 色,有排队消息时带省略号)或 yolo(warning 色);normal 态不渲染(见会话模式
blue-status-cwd5行 1 左簇会话工作目录(home 缩写为 ~,深路径缩到末三段;muted 色)
blue-status-git10行 1 左簇完整徽章 branch [+a -d ↑e↓f](TTL 缓存探测:branch 5s / status 15s;非 git 仓库不显示)
blue-status-context20行 2 右簇最新一步的 context 占用:有窗口时 context: N% (K/M),无窗口降级 ctx Ntext 色)
blue-status-title30行 1 右簇会话标题(折叠自 harness sessionTitle 服务,muted 色;S30 换位前是轮换教学提示的槽位;无标题时不占位)

运行中 agent 的状态不在 footer——那是 activity 面板的职责(见底部面板)。

排序与让位规则

  • 同带同簇内按 priority 升序(同优先级保持注册顺序);
  • 右侧簇右对齐,宽度压力下先于左侧簇让位;
  • 每个条目在簇内预算中自行截断;两行都放不下的条目按最低优先级丢弃。

下游贡献

注册一个条目就是实现 BlueStatusEntry

ts
ctx.blueStatus.register({
  id: 'my-plugin.build',        // 稳定的点分插件自有字符串,重复注册会被拒绝
  priority: 15,                 // 内置条目占 0/2/5/10/20/30,空档任你使用
  row: 1,                       // 选带:1(默认)或 2
  align: 'left',                // 选边:'left'(默认)或 'right'
  render: (width) => myLine,    // 一行带样式文本,宽度不超预算;返回 '' 本帧不占位
})

注册应包在 ctx.effect 里——插件 fiber 卸载时条目随之注销。

预览版 · v0.1.0-rc.1