dsh-web-search-ddg
aooyoo
Zero-token DuckDuckGo search provider for the DeepSeek Harness (DSH) web seam — local headless browser, no API key, no m…
PROJECT TOPICS
PROJECT README
session.list 的行若来自持久化冷会话(从未打开过、尤其 subagent 子会话),
projection 缓存里没有它们的行,列表拿不到标题,侧边栏只能 fallback 显示
工作区目录名(如 dsh),一屏全是 "dsh" 分不清谁是谁。
本插件启动后后台扫描全部持久化会话,把每个已注册 projection unit
(title / sessionStats / sessionListMetadata 等)折叠到最新事件并写回
projection 缓存;之后 session.list 每行都带 projections.values.title,
前端列表直接显示真实标题(fallback 自首条消息,或 LLM/用户重命名)。
~/.dsh/plugins/dsh-session-title-cold/- insert:
- id: session-title-cold
name: dsh-session-title-cold
重启 dsh-web 后,启动 5 秒后台回填(日志 [title-cold] 回填完成:N 个会话),
刷新网页侧边栏即可看到全部真实标题。
- id: session-title-cold
name: dsh-session-title-cold
config:
backfillDelayMs: 5000 # 启动后多久开始回填
refreshIntervalMs: 600000 # 增量刷新周期
concurrency: 3 # 并发读盘数
sessionProjections.restoreFloor(checkpoint) 得出增量读起点;sessionPersistence.readFrom(id, floor) 读尾部事件(带 seq);sessionProjections.restore(checkpoint, events, floor) 折叠出全部 unit 快照
(含 title,来自 session/title 事件,如 fallback/用户重命名);title 行合并进缓存并 sessionProjectionCache.putSoft 写回
(cold 会话其余 unit 的 state 可能含非纯 JSON 值,跳过不写,避免
not losslessly JSON-serializable 拒绝整行);session.list 即带 projections.values.title,displayTitleOf
不再 fallback 到目录名。CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。