Repository navigation
Releases: wjingshan/dsh-sidebar-focus
Releases · wjingshan/dsh-sidebar-focus
Release list
v0.1.0 — 首个公开版本
首个公开版本:左侧栏「工作区 / 会话」的排序与展开,按实际有没有在跑决定 —— 有会话在跑的工作区浮到最前并自动展开,空闲的保持折叠。五条规则各带一个开关,位置在插件页 → 点开 dsh-sidebar-focus 后的详情页。
安装
dsh plugin --profile web add github:wjingshan/dsh-sidebar-focus装完刷新页面即可(纯客户端插件,宿主半身是空的,不需要重启 dsh web)。
五条规则
| 开关 | 默认 | 作用 |
|---|---|---|
| 置顶正在运行的工作区 | 开 | 有会话在跑、或正在等你的工作区排到列表最前(纯展示,不改写你手动拖出来的顺序) |
| 自动展开正在运行的工作区 | 开 | 宿主本身只在「当前会话所在的工作区」上自动展开,这条把它扩展到所有在跑的工作区 |
| 置顶正在进行的会话 | 开 | 运行中与等待你处理的会话排到所属工作区最前 |
| 收起没有运行的工作区 | 开 | 没有会话在跑的工作区保持折叠 |
| 保留未读完成提醒 | 开 | 含「已完成未查看」的工作区不自动折叠 |
另外:你亲手展开的空闲工作区不会被折回去,你亲手折叠的忙碌工作区不会被撑开 —— 直到那个工作区的忙碌状态再次变化。
这一版修掉的两个真问题
- 折叠的组不渲染会话行 →「忙碌判定」曾是个死锁。第一版从会话行的状态点(
data-state="ongoing")判断"这里有没有在跑",而宿主的deriveGroups对折叠的组返回空sessions:组一折起来就没有行可读 → 里面开工也看不见 → 永远不展开。判据已换成与渲染无关的两个事实(Session 状态快照 + Workspace 成员表),由一个挂在shell.overlay上的零渲染桥接组件发布给 watcher;两个来源与 DOM 取并集。 - 排序不能靠移动 DOM。列表列原本是
overflow-y:auto的块容器,order对它无效;插件先把列变成 flex 列再排名,DOM 节点从不移动,所以 React 的 reconciliation 与内置的 FLIP 行动画都不受影响。折叠必须写展开状态本身(折叠的组没有行可操作),走uiWorkspace.view。
回退
git checkout v0.1.0 # 回到这一版
git diff v0.1.0..v0.1.1 # 看两版之间改了什么版本流程与「未验证」清单见仓库里的 CHANGELOG.md 与 README.md。