# 0002 — 电台入口只放在 composer 状态行,不提供其他位置 状态:已采纳(2026-10-23) ## 背景 dsh 有两个候选位置: - `shell.bottom`:三栏下方的整宽一行,single 槽位,当前没有任何内置占用者。 - `conversation.composer.dock`:composer 卡片下方的横向 list 槽位,已被 `activity`(轮次·速度)和 `usage`(tokens·缓存命中)两个状态胶囊占用。 用户的实际使用场景是「边工作边听背景音」,明确要求入口是一条细细的行,位置就在显示缓存命中那条状态栏里。 ## 决定 只注册进 `conversation.composer.dock`(自有 id,order 排在最前)。不提供整宽底栏与悬浮胶囊,也不在设置里暴露位置选择。 ## 后果 - 视觉上最安静,与既有状态胶囊同高同字号,不需要新的一行。 - 只在对话面板可见;切到轨迹或其他主面板时入口消失(播放不中断)。 - `conversation.composer.dock` 是 list 槽位,多个插件可共存;用自有 id 避免覆盖内置的 `activity`/`usage`。 - 面板必须用视口定位(fixed + 锚点跟随):dock 所在容器与 `shell.bottom` 都是 `overflow:auto`,绝对定位会被裁掉。这条是试装后发现的真实 bug,见 2026-10-24 的修复。 - 放弃了「用户自选位置」的灵活性,换来更少的挂载点、更少的裁剪与层级问题。 ## 试过又放弃的备选 原型阶段做过三种位置:状态行细条、整宽底栏(`shell.bottom`)、右下悬浮(`shell.overlay`)。真实安装后: - `shell.bottom` 的面板被该行的 `overflow:auto` 裁掉,且整宽底栏常驻占高度; - 悬浮胶囊会盖住右下角内容,展开面板压 composer; - 用户实际只想要状态行那一条。 因此三种位置在实现中删除,保留单一位置。 ## 备选与否决理由 - **只用 `shell.bottom`**:整宽,频谱空间最大,但会永久占掉一行高度,用户明确嫌大。 - **只用悬浮胶囊**:最省空间,但会盖住右下角内容,且不常驻可见。