Releases: orangeofcarl0-sys/dsh-fresh-start
Release list
v1.2.4 — complete conversation turn seed
Fix
seed 改为完整对话轮:turn/start → step/start → user/message(总结请求)→ assistant/message(摘要)→ step/end → turn/end。
此前 seed 是「completed turn 但无 assistant 回复」,conversation 渲染成一条孤立的用户消息 + 空 turn footer,表现为新会话「无法载入对话历史」。
Verified
- smoke 23 断言 + client 8 断言 ALL PASS
- 真实 dsh-session 验证 blank=false、真实 conversation definitions 验证 replaceWindow OK
v1.2.3 — new session visible in sidebar history
Fix
新会话 seed 原来只有一条 summary user/message、没有 turn/start,被 dsh 的 sessionBlank() 判定为 blank,blank 会话不进左侧历史栏(只作 New Session 占位)。
修复:seed 改为完整轮次 turn/start → user/message → turn/end,sessionBlank 变为 false,新会话正常显示在历史栏。
Verified
- smoke 23 断言 ALL PASS
- 用真实 dsh-session 验证新 seed 结构 blank=false
v1.2.2 — attach new session to workspace
Fix
host 侧 ctx.agents.create 不像 client 的 sessions.create RPC 那样自动 workspace.attachSession,导致新会话未归属 workspace、侧栏分组找不到。修复:创建后按 cwd resolveByPath 找到 workspace 并 attachSession。
Verified
- smoke 22 断言 + client 8 断言 ALL PASS
v1.2.1 — fix client bundle registration
Fix
client.js 改为浏览器 bundle 注册格式 window.__ModuleLoader__.load({ id: 'dsh-fresh-start', factory }),修复 v1.2.0 的 "loaded without registering" 错误。
Verified
- client 8 断言 + smoke 18 断言 ALL PASS
- 本机
/plugins/dsh-fresh-start/client.js返回__ModuleLoader__.load格式
v1.2.0 — auto-navigate after /fresh
Change
/fresh 现在会自动跳转到新会话(此前只归档、UI 停留在已归档的旧会话)。
根因:dsh 的「当前会话」是 client(前端)状态,host 命令无法导航(CommandResult 只保留 kind+text,sessionId 被丢弃)。
方案(双端插件):
- host(
lib/index.js):新会话meta.parentSession = 老会话id - client(
lib/client.js,新增):监听归档广播host/archived-sessions-changed→ 找到parentId === 归档会话的新会话 →ctx.sessions.open自动跳转;含时序兜底(新会话列表同步滞后归档帧时 pending 补跳)
package.json:exports['./client'] + dsh.client {platform: web, inject: [dsh-client-runtime]}
Verified
- smoke 18 断言 + client 6 断言 ALL PASS
- 本机部署:
/plugins/dsh-fresh-start/client.js返回 200,boot manifest 含 dsh-fresh-start
v1.1.0 — direct context summarization
Change
Replaced the compaction-engine summary (structured checkpoint instruction + token-shrink comparison, which fails on ordinary conversations with 'no useful summary') with direct extraction of the full context dsh uploads to the LLM:
session.requestHeader()(system/tools) +session.deriveMessages()(full message history)- one simple summarization instruction → natural-language summary
- summary seeded into the new session as its opening user message
Summary failure now degrades gracefully (new session without summary + archive), instead of failing.
Verified
- 20 tests ALL PASS
[fresh-start] installed: /fresh command registered
v1.0.2 — fix agents/workspaceRegistry inject
Fix
new session FAILED (cannot get property agents without inject)→ injectagentsarchive skipped (workspaces service unavailable)→ workspace service is namedworkspaceRegistry(notworkspaces)
About 'compaction skipped (no useful summary)'
That's the compaction engine's own summarization failure (LLM stream failed or empty summary), not a plugin bug. The plugin degrades gracefully — it still starts the new session and archives even when summarization fails.
v1.0.1 — fix /fresh not appearing in command list
Fix
/fresh never appeared in the command list due to two scope issues:
- compaction engine scope — it's a per-agent preset-mount service, not a global
ctx.compactiona profile-bundle plugin can reach. Now usesctx.agentPresets.serviceFor(agent, 'compaction')(same as auto-compact). - command registration — was registered inside a
ctx.inject(['compaction'])fiber that never activated (isolate scope), so the command never entered the global layer. Now registered in root ctx viactx.effect+ctx.commands.register.
Verified
[fresh-start] installed: /fresh command registered- 19 tests ALL PASS
v1.0.0 — /fresh command
What
/fresh — one command to retire a large session and keep working:
- summarize via
ctx.compaction.compactNow(reuses dsh's manual compaction) - start a new session inheriting the old session's cwd + agent preset
- archive the old session (frees its live event tree — the ~700MB/session OOM driver)
Each step degrades independently; a busy/cancelled compaction still starts the new session and archives.
Install
dsh plugin --profile web add github:orangeofcarl0-sys/dsh-fresh-start17 tests ALL PASS. Verified on dsh 0.1.0-rc.6.