Skip to content
This repository was archived by the owner on Sep 27, 2026. It is now read-only.

Releases

v0.1.5 — wider tool-text seam, handoffs framed as a delta

Choose a tag to compare

@wowyuarm wowyuarm released this 26 Sep 03:14

中文 | English

中文

适配 DeepSeek Harness 0.1.7-rc.1;peer 范围与 0.1.4 相同。

改了什么

  • 宿主可以说自己的话:createContinuityTools 的文案缝加宽了四个口子——carriedContext(一次 rollover 会自动带走什么,用来点出你自己的耐久信道)、timelineGuidance(你的边界表怎么读,拼进 context_timeline 的描述)、topicNoun / topicNounPlural(边界上的可归因主体怎么称呼,例如 Thread 而不是 topic,描述与逐行渲染同时改口)。
  • handoff 按 delta 讲述(默认文案变了):默认的 rollover 指引现在要求「写成一个新 generation 自己重建不出来的活状态」,并给出唯一普适的携带事实——主体在切换前后是同一个身份,不必重述;清单也随之重写(在飞的原动作、别处没记过的事实与证据、未解冲突、外部副作用及其验证状态、一个明确的下一步)。
  • 压力提醒同一口径:contextPressureNoticeText 现在同样只说「写新 generation 重建不出来的部分」。
  • 结构性契约仍归引擎:防伪造那句、"a context change never rolls back any external effect"、"Structural only: no transcript content" 与 restorable 判定都不接受宿主覆盖。

兼容性

没有破坏性变更:peer 范围与 0.1.4 相同(>=0.1.7-rc.1 <0.1.8,不再接受 0.1.5-rc.x / 0.1.6-alpha.x),开发依赖仍固定在 0.1.7-rc.1。

验证

本地:typecheck、boundaries、214/214 测试(7 个文件)全绿;CI 在 linux 与 windows 两条 lane 均通过(提交 4246ed8)。

npm i @wowyuarm/dsh-context-continuity@0.1.5

English

Adapts to DeepSeek Harness 0.1.7-rc.1; the peer range is unchanged from 0.1.4.

What changed

  • Hosts can now speak their own vocabulary: the tool-text seam on createContinuityTools gained four openings — carriedContext (what a rollover carries forward automatically, where you name your own durable channels), timelineGuidance (how your boundary rows read, spliced into the context_timeline description), and topicNoun / topicNounPlural (what an attributable subject of a boundary is called — Thread rather than topic — in both the description and the rendered rows).
  • The handoff is framed as a delta (the default wording changed): the default rollover guidance now asks for "the live working state a fresh generation could not reconstruct on its own" and states the one universal carried fact — the subject keeps its identity across the switch, so restating it is waste. The checklist was retuned to match: the atomic action in flight, facts and evidence not already recorded elsewhere, unresolved conflicts, external side effects and their verification state, and one explicit next step.
  • The pressure notice says the same thing: contextPressureNoticeText now asks for only what a fresh generation could not reconstruct.
  • The structural contract stays engine-owned: the anti-forgery sentence, "a context change never rolls back any external effect", "Structural only: no transcript content", and the restorable rule are not host knobs.

Compatibility

No breaking change: the peer range is identical to 0.1.4 (>=0.1.7-rc.1 <0.1.8; 0.1.5-rc.x and 0.1.6-alpha.x remain excluded), and dev dependencies stay pinned at 0.1.7-rc.1.

Verification

Local: typecheck, boundaries check, and 214/214 tests (7 files) all green; CI passed on both linux and windows (commit 4246ed8).

npm i @wowyuarm/dsh-context-continuity@0.1.5

v0.1.4 — DeepSeek Harness 0.1.7-rc.1 (session format v4)

Choose a tag to compare

@wowyuarm wowyuarm released this 24 Sep 02:07

中文 | English

中文

适配 DeepSeek Harness 0.1.7-rc.1 的 session format v4。

改了什么

  • 消息来源形状(写):handoff、checkpoint continuation 和 pressure notice 现在写生产者自己的 kind(kind: '<宿主 plugin id>'),不再写 v4 已废弃的 { kind: 'plugin', plugin: … } 包装——后者会被 v4 的门直接拒绝。
  • 消息来源形状(读):读侧同时认新 kind 和 v4 在读取时对已发布 v3 历史的改名结果 plugin:<producer>,两种身份精确匹配;历史日志不需要改写。
  • tool/result 字段:toolCallId 与 isError 现在读 message 自身(rc.1 把它们从 content 包装移到了 message)。这个类型检查看不见,漏了会让工具结果投影静默错位。
  • pressure notice 的一次性闩锁:同一条消息来源规则的第四处落点,同样对类型检查不可见;漏了会每一步都重新注入提醒。

破坏性变更:peer 范围

>=0.1.7-rc.1 <0.1.8,不再接受 0.1.5-rc.x / 0.1.6-alpha.x。开发依赖固定 0.1.7-rc.1,@deepseek-ai/cordis 开发依赖 4.0.4。

同时发布的还有

上一版之后未发布的改动:readContextTimeline 接受可选的 hardLimit(仅用于回显),不可返回的时间线锚点会带上自己的标识符并标注不可选。

验证

typecheck、208/208 测试、build 全绿;CI linux 与 windows 均通过。

npm i @wowyuarm/dsh-context-continuity@0.1.4

English

Adapts to the session format v4 of DeepSeek Harness 0.1.7-rc.1.

What changed

  • Message source shape (write): handoffs, checkpoint continuations, and pressure notices now carry the producer's own kind (kind: '<host plugin id>') instead of the { kind: 'plugin', plugin: … } wrapper v4 retires — which the v4 gate refuses outright.
  • Message source shape (read): the read side recognizes both the new kind and the plugin:<producer> identity that v4 assigns to released v3 history at read time, by exact match. Logs on disk are never rewritten.
  • tool/result fields: toolCallId and isError are now read from the message itself (rc.1 moved them off the content wrapper). Typecheck cannot see this one; missing it misplaces tool-result projection silently.
  • The pressure notice's once-per-generation latch: the fourth landing point of the same source rule, equally invisible to typecheck; missing it re-injects the notice on every step.

Breaking change: peer range

>=0.1.7-rc.1 <0.1.8; 0.1.5-rc.x and 0.1.6-alpha.x are no longer accepted. Dev dependencies are pinned at 0.1.7-rc.1, with @deepseek-ai/cordis at 4.0.4.

Also released here

Changes that went unpublished after the previous version: readContextTimeline accepts an optional hardLimit (echoed back for display only), and non-restorable timeline anchors quote their own identifier marked not selectable.

Verification

typecheck, 208/208 tests, and build all green; CI passed on both linux and windows.

npm i @wowyuarm/dsh-context-continuity@0.1.4

v0.1.3

Choose a tag to compare

@wowyuarm wowyuarm released this 22 Sep 02:39

中文 | English

这是本项目的第一个 GitHub Release。下面把它是什么、包含什么、怎么接进你自己的插件讲清楚,文末是按版本的历史。

中文

这是什么

让 DeepSeek Harness 里的 agent 自己管理 context,把过去的 Session 变成能随时调用的 context。

每个 Session 迟早会写满。它会被压缩,或者 rollover 成一个新的——然后 agent 就断片了:手头在做的事、刚想明白的东西,一下子被挡在了墙的另一边。

dsh-context-continuity 给 agent 几件工具,让它自己翻过这堵墙:Session 快满时,它写一段简短的交接,然后在新 Session 里作为同一个 agent 接着干;它可以标记一个位置方便以后回来;挂上可选的检索工具之后,它还能回头搜自己早先的 Session,把当时说过、做过的事翻出来。任何跑得够久、会把 Session 写满的 agent 都能用——Loom 的 individual、Agent Team 的 member、跑长任务的 coding agent。

它不重造 Harness 已有的东西(fork Session、从旧 Session 开一个新的、把 Session 日志当作唯一事实来源),只补上一件 Harness 没做的事:把一串 Session 串成同一个 agent 在时间里的延续。它是独立的插件包,不属于任何宿主;宿主通过一份契约 ContextContinuityHost 把自己的主体和领域接进来。

它包含什么

三个 agent 能调用的工具,外加一层自动兜底——开箱即用:

  • context_rollover —— 开一个新 Session,但还是同一个 agent,把你写的交接带进新 Session。
  • context_checkpoint —— 标记当前位置,方便以后回到这里。
  • context_timeline —— 回看自己的历史,挑一个能安全返回的位置。
  • 压力兜底 —— Session 快满时提前提醒,到上限时给一个安全退路,agent 不会被迫在糟糕的时机切换。

另外两个是可选的——只有你自己挂载 createSearchTools,agent 才会拿到:

  • context_search —— 在自己早先的 Session 里搜某件说过或做过的事。
  • context_read —— 打开一条搜索结果,读它周围的上下文。

它们单独分开,是因为对你的接入要求更高:你要提供一个 session-query port,还要给出每个主体可以搜哪些历史 Session;部署侧也得把 Harness 的 Session 索引打开,否则它只会 fail closed,不会返回结果。接线见 docs/integration.md 的 seam 7。

宿主拿到的,是那些麻烦的部分:一次 Session 切换的完整流程(崩溃之后也能接着走完)、每个 Session 自己的连续性状态,以及把一串 Session 读成同一份历史、判断哪些位置能安全返回。

怎么接入

你告诉它你的 agent 是谁、以及在你自己的环境里怎么执行一次 Session 切换——如果你还挂了检索工具,再告诉它允许搜哪些历史 Session,剩下的它来做。带代码的分步接入指南见 docs/integration.md,背后的理由见 docs/principles.md。

安装与兼容

  • 安装:npm i @wowyuarm/dsh-context-continuity
  • 它逐个声明认证过的 DSH 版本,不写范围:0.1.5-rc.1、0.1.5-rc.2、0.1.6-alpha.1、0.1.6-alpha.2。四个版本都跑过完整测试套件和严格类型检查;其他版本还没认证,认证之后再补。
  • @deepseek-ai/dsh-session-query 是可选 peer:不挂检索那一对就不用装;要挂,它得落在上面这组认证版本里。
  • 一处提醒:类型声明只是引用它的类型。没装它、又把 skipLibCheck 关掉的工程,类型检查会报找不到这个模块(DSH 自己的若干包也一样),运行不受影响。
  • 开发:npm test 直接跑在已发布的 @deepseek-ai/dsh-* 包上,不需要相邻的 Harness checkout。

版本历史

  • 0.1.0 首次发布。
  • 0.1.1 放宽 DSH 依赖声明。
  • 0.1.2 peer 从范围改成逐个版本号声明。
  • 0.1.3 @deepseek-ai/dsh-session-query 改为可选 peer;两份 README 重写,写明检索那一对是可选的、以及它需要部署打开 Session 索引;docs/integration.md 补上同一条前提。

Full Changelog: v0.1.0...v0.1.3

English

This is the project's first GitHub Release. It lays out what the plugin is for, what it includes, and how your plugin adopts it, with the version history at the end.

What this is

Let a DeepSeek Harness agent manage its own context, and turn its past Sessions into context it can draw on.

Every Session eventually fills up. It gets compacted, or it rolls over into a new one — and the agent loses the thread: whatever it was working on, whatever it had figured out, is now on the other side of a wall.

dsh-context-continuity gives the agent the tools to carry itself across that wall: when a Session is getting full it writes a quick handoff and keeps going in a fresh one as the same agent; it can mark a spot to come back to; and — with the optional search tools mounted — it can search back through its earlier Sessions and pull out what it said or did. Any agent that runs long enough to fill a Session can use it — a Loom individual, an Agent Team member, a coding agent on a long task.

It doesn't rebuild what the Harness already does (fork a Session, start a new one from an old one, treat the Session log as the source of truth). It adds the one thing the Harness leaves out: tying a string of Sessions together as the same agent over time. It is a standalone plugin package that belongs to no host; a host binds its own subject and domain through one contract, ContextContinuityHost.

What it includes

Three tools the agent can call, plus one automatic safeguard — these ship ready to use:

  • context_rollover — start a fresh Session but stay the same agent, carrying a handoff you write into the new one.
  • context_checkpoint — mark the current spot so you can come back to it.
  • context_timeline — look back over your own history and pick a spot that's safe to return to.
  • pressure handling — a heads-up when a Session is filling up, and a safe fallback at the limit, so the agent is never forced to switch at a bad moment.

Two more are opt-in — the agent only gets them if you mount createSearchTools:

  • context_search — search your earlier Sessions for something you said or did.
  • context_read — open one search result and read around it.

They are kept separate because they ask more of your setup: you supply a session-query port and which past Sessions each subject is allowed to search, and the deployment has to hold up its end too — with the Harness Session index left closed, the ladder fails closed instead of returning results. The wiring is seam 7 of docs/integration.md.

What the host gets is the hard part: the whole Session switch (including finishing it after a crash), each Session's own continuity state, and reading a string of Sessions as one history to work out which spots are safe to return to.

How your plugin adopts it

You tell it who your agent is and how to run a Session switch in your own setup — plus, if you mount the search tools, which past Sessions each subject is allowed to search. It does the rest. The step-by-step guide, with code, is docs/integration.md; the reasoning behind the design is in docs/principles.md.

Install and compatibility

  • Install: npm i @wowyuarm/dsh-context-continuity
  • It declares the DSH versions it is certified against one by one, never as a range: 0.1.5-rc.1, 0.1.5-rc.2, 0.1.6-alpha.1, 0.1.6-alpha.2. All four ran the full test suite and a strict typecheck; other versions are not certified yet.
  • @deepseek-ai/dsh-session-query is an optional peer: you don't need it unless you mount the retrieval pair, and then it has to be one of the certified versions above.
  • One note: the type declarations reference it as types only. Without it installed and with skipLibCheck turned off, a project sees a missing-module error in those declarations (several DSH packages behave the same way); runtime is unaffected.
  • Development: npm test runs against the published @deepseek-ai/dsh-* packages — no sibling Harness checkout required.

Version history

  • 0.1.0 — first release.
  • 0.1.1 — widened the DSH dependency declaration.
  • 0.1.2 — the peers declare certified version numbers instead of a range.
  • 0.1.3 — @deepseek-ai/dsh-session-query is now an optional peer; both READMEs are rewritten to say the retrieval pair is opt-in and needs the deployment's Session index, and docs/integration.md carries the same prerequisite.

Full Changelog: v0.1.0...v0.1.3