Xliecc/dsh-session-theme
DSH web plugin: the left sidebar shows every session's theme right on page load — no need to click into a conversation first.
catalog 简介 / catalog descriptioncatalog description:DSH web plugin: show every session's theme in the left sidebar on load
项目介绍Project Overview
dsh-session-theme 是 DSH Web 皮肤插件,启动时对未打开的冷会话执行 coldSnapshot,从日志重建 title 投影并写回缓存,使侧边栏加载即显示每个会话主题,无需先点入。适合侧边栏只显示文件夹名、想直接看到会话主题时使用。注意:安装后需硬刷新浏览器;损坏日志会被跳过,不影响其他会话。
dsh-session-theme is a DSH Web skin plugin. At startup, it runs coldSnapshot for unopened cold sessions, rebuilds the title projection from the log, and writes it back to the cache so the sidebar shows every session theme on load without clicking in first. Use it when the sidebar only shows folder names. Caveat: hard-refresh the browser after install; corrupted logs are skipped per session.
请帮我了解并安装插件:【dsh-session-theme】【https://github.com/Xliecc/dsh-session-theme】
把上面这条消息直接发给当前会话里的 DSH,让它帮你了解并安装。安装命令不一定准确,发给 DSH 更稳。Send this message to DSH in your current session. CLI install commands may not be accurate across systems — DSH will figure it out for you.
或使用命令行安装(适合开发者)Or use CLI install (for developers)
命令行安装CLI Install
dsh plugin add dsh-session-theme
把 Xliecc/dsh-session-theme 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
dsh-session-theme
English | 简体中文
DSH web plugin: the left sidebar shows every session's theme right on page load — no need to click into a conversation first.
The problem
In the DSH sidebar, sessions you haven't opened yet show no theme — just the workspace folder name (or a placeholder id). The theme only appears after you click into the session.
Root cause: for "cold" sessions (never opened in this process), session.list only reads the projection cache's zero-I/O rows (cachedSnapshot). If a session's title projection was never checkpointed, its list row has no title, so the sidebar falls back to the folder name. Only opening the session (which triggers the full cold-read ladder) recovers the title.
How it works
At startup the plugin runs the projection cache's cold-read ladder (coldSnapshot) for every persisted session: it refolds the title projection from the stored log and durably writes it back to the cache. After that, every row returned by session.list carries a title projection → the sidebar natively shows each session's real theme, no click required.
- Only "cold" sessions are processed (not opened in this process); sessions that are already loaded already carry live projections in their list rows.
- Fail-soft per session: a corrupted log never affects other sessions and never blocks startup.
- Idempotent write-back: the next boot hits the cache fast path instantly.
See ARCHITECTURE.md for the full design and data flow.
Verify it works
- Install the plugin (any method below), then hard-refresh the browser (Ctrl/Cmd+Shift+R).
- Open the DSH Web sidebar — every session row should show its conversation theme, not a folder name.
- To confirm the hit, run:
dsh plugin --profile web add dsh-session-themeand watch the server log for the line:dsh-session-theme: projection cache warmed (N sessions).
Install
Link install, zero external dependencies (host side uses only standard services):
dsh plugin --profile web add link:/path/to/dsh-session-theme
Or clone from GitHub:
git clone https://github.com/Xliecc/dsh-session-theme.git
dsh plugin --profile web add link:./dsh-session-theme
Or install from npm:
dsh plugin add dsh-session-theme
After installing, hard-refresh the browser (Ctrl/Cmd+Shift+R) so the client re-pulls session.list.
Files
lib/index.js— host side: warms the projection cache at startup (all behavior)lib/client.js— browser-side stub (no-op, keeps the registered manifest consistent)
License
MIT
ruvnet/ruflo
Tencent/WeKnora
freestylefly/awesome-gpt-image-2
EverMind-AI/EverOS
MemTensor/MemOS
zhu1090093659/dsh-web-ui
edison7009/EchoBird