其他
完整应用
deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:Slowdownnn/dsh-read-history
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
把 Claude Code 与 Codex CLI 的历史对话导入 DeepSeek Harness (DSH):
settings.section 插槽),
提供导入按钮、导入状态与已导入会话列表。# 安装到 web profile(pnpm 通过 corepack 提供)
dsh plugin --profile web add dsh-read-history
# 本地路径安装(用于开发调试)
dsh plugin --profile web add D:\code\dsh-read-history
安装后在 %USERPROFILE%\.dsh\profiles\web\cordis.patch.yml 注册:
cordis.patch.yml:
- insert:
- id: read-history
name: 'dsh-read-history'
config:
claudeRoot: '' # 默认 ~/.claude/projects
codexRoot: '' # 默认 ~/.codex/sessions
includeThinking: false
autoImport: false # 不开启自动导入(幂等)
⚠️ host 端代码(
lib/index.js、lib/convert.js)改动需要重启dsh web; client 端(lib/client.js)no-cache 实时服务,刷新浏览器即可。
安装并重启 dsh web 后,按下面的步骤导入历史会话:
提示:
- 导入是幂等的——同一个会话重复导入会自动跳过,不会产生重复。
- 导入的会话会出现在与其原始工作目录(
cwd)匹配的工作区里,而不是「未分组」。- 想同时清掉某次的导入?没有内置「撤销」,但可以直接删除对应工作区下的会话。
~/.claude/projects/**/*.jsonl、~/.codex/sessions/**/*.jsonl。lib/convert.js):每个历史会话先 sessions.prepare() 构造、直接写入持久化(sessionPersistence.create + append),不进入实时 store,因此不占内存、重启不会复活;标题以 session/title 事件写进日志;
workspaceRegistry.create(cwd)(按 cwd 复用或新建工作区)+ attachSession() 挂到对应工作区,
因此每个历史会话都会出现在与其 cwd 相同的工作区里,而不是落到「未分组」。
幂等:按派生 id(session-<源会话id>)查重(一次 sessionPersistence.list() 缓存成集合,O(n) 而非逐行 O(n²)),重复导入自动跳过。lib/parse.js):过滤 Claude/Codex 注入的噪声——斜杠命令(/clear、/compact 等)、
<command-name>/<local-command-*>/<bash-*>/<system-reminder>/<environment_context>/<instructions>/
AGENTS.md 与 Codex Desktop 审批脚手架(TRANSCRIPT DELTA、APPROVAL REQUEST 等),只保留真实的人机对话。| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /dsh-history/api/status |
状态(目录、上次导入时间、统计) |
| POST | /dsh-history/api/import |
执行导入(幂等;body 可带 {"tool":"claude"|"codex"} 只导入单一来源) |
| GET | /dsh-history/api/imported |
累积已导入会话清单 |
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。