清理会话历史图片引用,避免请求体膨胀与重复重发
29.7/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/11/2 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add ArbeiterKlassen/dsh-thread-image-cleaner该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · vision
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 4 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0⚪ 扫描:无法判定尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0已尝试扫描但取不到可分析的源码:仓库或包不存在、已删除,或为非 JS/TS 实现、未随包发布源码。无法判定,不代表安全。
- · 包内无可扫 JS
- · TS 源码(可能为非 JS 实现或未发布源码),无法判定
扫描于 2026/11/4(0 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
用 DSH 原生 image/offload 事件清理会话历史图片,解决请求体膨胀与图片反复重发(Codex 版 DSH 适配)
README
由 DeepSeek 最新模型翻译生成dsh-thread-image-cleaner
清理 DeepSeek Harness(DSH)会话里累积的图片引用,解决「读图读多了」导致的请求体膨胀、首字延迟暴涨、历史图片每次请求都要重发一遍的问题。
这是 Codex 生态里 codex-thread-image-cleaner 技能的 DSH 适配版。机制完全不同——
| | Codex 版 | DSH 版 |
| 存储 | thread_history_1.sqlite + rollout JSONL | session.v4.jsonl.zstd(zstd 多帧 JSONL)+ 附件内容寻址仓库 |
| 清理方式 | 等长字节中和 + 改 SQLite 的 path 引用 | 追加 image/offload 事件(append-only,DSH 原生支持) |
| 风险 | 破坏字节偏移会毁掉分页/lineage | 不动历史字节,只加一条事件;投影由 DSH 自己算 |
为什么需要它
DSH 不会把图片字节内联进会话日志,日志里只有引用:
{"type":"image","attachment":{"attachmentId":"sha256:1bf28b11…
展开完整文档(README 剩余 1 节)
dsh-thread-image-cleaner
清理 DeepSeek Harness(DSH)会话里累积的图片引用,解决「读图读多了」导致的请求体膨胀、首字延迟暴涨、历史图片每次请求都要重发一遍的问题。
这是 Codex 生态里 codex-thread-image-cleaner 技能的 DSH 适配版。机制完全不同——
| | Codex 版 | DSH 版 |
| 存储 | thread_history_1.sqlite + rollout JSONL | session.v4.jsonl.zstd(zstd 多帧 JSONL)+ 附件内容寻址仓库 |
| 清理方式 | 等长字节中和 + 改 SQLite 的 path 引用 | 追加 image/offload 事件(append-only,DSH 原生支持) |
| 风险 | 破坏字节偏移会毁掉分页/lineage | 不动历史字节,只加一条事件;投影由 DSH 自己算 |
为什么需要它
DSH 不会把图片字节内联进会话日志,日志里只有引用:
{"type":"image","attachment":{"attachmentId":"sha256:1bf28b11…","mediaType":"image/png",
"bytes":279732,"width":1400,"height":840,"name":"copturex-dsh.png"}}
真实字节在 %USERPROFILE%\.dsh\attachments\v1\objects\<前2位hex>\<sha256>。
问题在于:每轮请求都会重放整段历史。一张 270 KiB 的截图在历史里出现一次,之后每个 request 都要把这份字节重新发一遍;同一张图被读 3 次、会话跑 50 轮,成本就翻着涨。Codex 那边直接表现为 413 Payload Too Large,DSH 这边表现为请求体越来越大、首字延迟越来越长。
解法:DSH 原生的 image/offload
DSH 自己就带 dsh-compaction-image-offload 包,契约是追加一条事件:
{"type":"image/offload","seq":776,"data":{"targets":[{"seq":423,"imageIndexes":[0]}]}}
投影时把被引用事件里的对应 image 块标成 offloaded:true,模型侧换成一段占位文本 + 附件只读路径(文件本身不删,想看随时还能读回来)。本仓库把这条契约的校验规则完整镜像了一遍,生成的事件保证能被 harness 的 imageOffloadProjection 接受。
安装
git clone https://github.com/ArbeiterKlassen/dsh-thread-image-cleaner.git \
"$USERPROFILE/.dsh/skills/dsh-thread-image-cleaner"
依赖:Python 3.9+,纯标准库(zstd 走 ctypes 绑 libzstd,找不到就回退 zstd CLI)。
工具
| 脚本 | 作用 |
| probe_images.py | 只读清点:有几张图、多大、哪些还在被重发、哪些已卸载 |
| offload_images.py | 生成并追加 image/offload 事件(DSH 官方路径) |
| verify_images.py | 验证「现在还剩多少字节在重发」 |
| tombstone_images.py | 在副本上做墓碑式重写,用于导出/归档不含图片的会话 |
cd "$USERPROFILE/.dsh/skills/dsh-thread-image-cleaner/scripts"
python probe_images.py # 默认当前/最新会话
python probe_images.py --session 94811e6d # id 前缀 / 完整 id / 目录 / 日志路径都可以
python offload_images.py --largest 3 # 干跑:只打印计划事件
python offload_images.py --seq 423 --indexes 0 --force # 真写(要求 DSH 已关闭)
python verify_images.py # 复查:still sent 0 occurrence(s), 0B
python tombstone_images.py --copy %TEMP%\clean-copy\session.v4.jsonl.zstd
常用参数
probe_images.py:--session --json --limit offload_images.py:--seq(可重复/逗号分隔)--indexes --oldest N --largest N --all --dry-run(默认)--force --allow-running --json tombstone_images.py:--session --copy <目标日志路径> --dry-run --json verify_images.py:--session --json
安全规则(非常重要)
1. 写操作要求 DSH 客户端关闭。 运行中的 DSH 自己持有 seq 计数器并追加 zstd 帧,外部写入会和它撞车。脚本会主动检测并拒绝,--allow-running 只在你清楚后果时用。
2. 先在副本上演练。 tombstone_images.py --dry-run 和 offload_images.py(默认干跑)都不会碰原文件。
3. offload 不删图。 附件文件仍在 attachments\v1\objects\ 里,想看就用 read_image 读那个路径。
4. 想彻底瘦身(连磁盘一起)才用 tombstone_images.py,它写的是副本,原会话保持完整。
已验证
- 真实会话:probe 定位到 seq 423 tool/result 273.2KiB 1400x840 copturex-dsh.png;干跑输出 append seq 776 {"targets":[{"seq":423,"imageIndexes":[0]}]};写入副本后 verify 报 still sent 0 occurrence(s), 0B。
- 用 harness 自己的投影代码验证:把 dsh-compaction-image-offload/lib/types/projection.js 抽出来重放 surface 后调用 project(),单图 1/1 标记、多图全标记、--indexes 1 只标记 1/3。
- 9 类畸形声明全部被原生校验拒绝(data must contain a nonempty targets array、duplicate target seq、image index 99 does not exist、target seq N is not a current surface node、image index 0 is already offloaded 等)。
注意
- 逐行重写会让文件比源文件略大(每行一个 zstd 帧),这是预期行为。
- 会话日志格式随 DSH 版本变化,脚本只依赖公开的事件契约;遇到不认识的类型会跳过而不是报错。
许可
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
ArbeiterKlassen/dsh-thread-image-cleaner
清理会话历史图片引用,避免请求体膨胀与重复重发
相关插件 · 视觉能力
智能体工作台Devin-AXIS/iPolloWork
企业级、本地优先的智能体工作台,面向个人和智能体团队——一个工作区,容纳多个智能体引擎;一套统一体系,管理插件和技能;支…
★ 7,364已汉化DSH
72
开源设计工作台nexu-io/open-design
OpenDesign:首个协作式 AI 设计智能体工作区
★ 105,709已汉化DSH
71.8
GPT 图像提示词库freestylefly/awesome-gpt-image-2
Prompt as Code | GPT Image 2 / 2.5 提示词与案例库,530+ 个案例、20+…
★ 34,534已汉化DSH
71.5
多智能体编码工作区spacering-net/codeg
多智能体协作的 AI 编程工作区:汇总 Claude Code、Codex、OpenCode、Pi、Grok Build 等来源的会话。支持桌面应用、自托管服务器或 Docker。
★ 4,319已汉化DSH
71.5
AI 用量桌面小部件Javis603/token-monitor
EN | 简 | 繁 | KO | JA | PT
★ 3,533已汉化DSH
71.1
架构图生成器tt-a1i/archify
把你想理解、规划或分享的事,变成可以互动的可视化作品。
★ 93,105已汉化DSH
71.1
这是你的仓库?认领条目