@klarkxy/dsh-session-manager 0.3.2 → 0.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  [简体中文](README.zh-CN.md)
6
6
 
7
- Find and read sessions across working directories, start a chat in a temporary workspace, continue with one tap from an empty composer, and get a welcome-back recap after time away.
7
+ Find and read sessions across working directories, start a chat in a temporary workspace, continue with one tap or automatically when a reply stops early, and get a welcome-back recap after time away.
8
8
 
9
9
  ## Install
10
10
 
@@ -17,19 +17,23 @@ Replace `web` with your profile name and restart the profile.
17
17
  ## Use
18
18
 
19
19
  - **Agent tools**: `list_sessions`, `search_sessions`, and `read_session` find sessions by title or content and read a conversation, its full details, or a handoff summary. Reading a conversation returns one preview per turn, newest first; page back with the returned cursor and open full content in details mode.
20
- - **Session context menu**: right-click a session row or use its **⋯** button to open its actions menu without switching conversations; left-click the row to open it. Search results and blank new-session rows have no such menu.
20
+ - **Session context menu**: right-click a session row or use its **⋯** button to open its actions menu while staying in the current conversation; left-click the row to open that session. The menu appears on saved session rows in the sidebar.
21
+ - **Edit and resend**: an icon below each message opens an editor at the original message, with images and files above the text box. Change text, remove attachments, paste images, or drop files; cancelling restores the original message. Before sending, the editor explains that the conversation continues from the edited message, the previous version moves to the archive, and file, command, and external changes already made remain in place. After confirmation, the reply is regenerated in a session that keeps the chat's title and sidebar position, while the earlier version stays recoverable from the archive list. This requires a host that can read and fork sessions and read attachments; it keeps original attachments in their original order while editing text, and relies on host attachment support for new or replaced files.
21
22
  - **Temporary workspace**: pick it in the new-session workspace picker to chat in its own new folder.
22
- - **Continue ghost**: after a turn ends and the composer is empty, a grey suggestion floats in the input area. Press `Tab` to fill it into the draft, or click it to send it at once. While a turn is still open, the composer's own placeholder stays. **Fixed text** uses the configured text, or "Continue" when empty. **Model-generated** uses the model chosen in that same switch; it runs once after the previous turn ends and the line stays cached in the session, so the turn is not called again. Mode, fixed text, and ghost model are under **Continue ghost** (keys: `continueMode`, `continueText`).
23
- - **Welcome back**: returning to a session whose last response is older than `recapMinutes` (default 15) shows an inline card after the last turn, recapping what you were discussing, the progress, and a suggested next step. Past `compactMinutes` (default 60), the same card adds a prompt-cache expiry note and two optional buttons: **Compact context** invokes the host's native compaction; **Continue in a new session** creates a blank session in the source session's workspace (or keeps the original directory when the source is ungrouped) and fills its draft with the recap and source session ID to review and send, without copying the history. You can ignore both and send normally; nothing is compacted or switched automatically. The card disappears once you continue the conversation. Toggle each feature and set its idle threshold under **When you return**; after **Save** is confirmed, the current conversation is checked against the new thresholds. Time is measured from the last response, not from when settings were saved.
24
- - **Welcome-back model**: the **Recap model** field under the **Show session recap** toggle in **When you return** applies only to the welcome-back recap. The ghost model is chosen inside **Continue ghost** after switching to **Model-generated**. Leaving either on the default follows the current conversation or the host default model. The model menu supports provider groups and search; if the list fails to load, a message and retry button appear, and retrying keeps your unsaved settings.
23
+ - **Continue ghost**: after a turn ends and the composer is empty, a grey suggestion floats in the input area. Press `Tab` to fill it into the draft, or click it to send it at once. While a turn is running, the composer's own placeholder stays. **Fixed text** uses the configured text, or "Continue" when empty. **Model-generated** uses the model chosen in that same switch; it runs once after the previous turn ends and caches the line in the session. Mode, fixed text, and ghost model live under **Continue ghost** (keys: `continueMode`, `continueText`).
24
+ - **Auto-continue**: on the new-session page, pick **Off**, **Cautious**, or **Bold** from the Auto-continue chip above the composer before sending the first message; the choice locks once the session starts. When a reply stops early, one judge pass on the ghost model (default: the conversation or host default model) decides whether the host sends a follow-up message, shown in the conversation as an "auto-continue" notice. The sent text follows the Continue ghost source: fixed text (or the "Continue" default) in **Fixed text** mode, the judge's suggested message in **Model-generated** mode. It continues at most `autoContinueMax` times (default 3) after each message you send, and stops on abort, error, a pending question or approval, no progress, or when the human is needed. The default mode and limit live under **Auto-continue** (keys: `autoContinueMode`, `autoContinueMax`).
25
+ - **Welcome back**: returning to a session whose last response is older than `recapMinutes` (default 15) shows an inline card after the last turn, recapping what you were discussing, the progress, and a suggested next step. Past `compactMinutes` (default 60), the same card adds a prompt-cache expiry note and two optional buttons: **Compact context** invokes the host's native compaction; **Continue in a new session** creates a blank session in the source session's workspace (or keeps the original directory when the source is ungrouped) and fills its draft with the recap and source session ID for you to review and send. You can also send your next message directly; compaction and session switching happen only when you click their buttons, and the card disappears once you continue the conversation. Toggle each feature and set its idle threshold under **When you return**; after **Save** is confirmed, the current conversation is rechecked against the new thresholds. Idle time is measured from the last response.
26
+ - **Welcome-back model**: the **Recap model** field under the **Show session recap** toggle in **When you return** applies to the welcome-back recap. The ghost model is chosen inside **Continue ghost** after switching to **Model-generated**. Leaving either on the default follows the current conversation or the host default model. The model menu supports provider groups and search; when the list fails to load, a message and retry button appear while keeping your unsaved settings.
25
27
 
26
28
  ## Limits
27
29
 
28
- - Temporary workspaces are not cleaned up automatically; their files stay after restarts and uninstall.
29
- - Content read from other sessions is background information, not instructions.
30
- - Free chats, deleting chats, and retrying or editing a sent message in place need a DSH host with these features. The npm plugin alone does not add them; buttons appear only when the host supports them.
31
- - The welcome-back recap is model-generated; when no model route is available or the call fails, the card stays silent (a compaction suggestion still shows on its own). The recap call only reads the session and never adds to its history. Compaction needs the host's native command; its conversation entry reports the result. A new session carries only a short recap, which may omit details; use the source session ID to look them up. The original session and draft stay unchanged.
32
- - The card is checked when you return to a session (window focus, tab visibility, or switching sessions) and periodically while the page stays visible, so crossing a threshold needs no window switch. It never intercepts your next send. Sending an empty composer sends the ghost text; the composer itself still requires non-empty input.
30
+ - Edit and resend uses persistent storage. If sending fails after the new chat is created, sending again continues that same operation, including after a host restart. If chat creation is interrupted before its result is saved, further creation stops so you can check the session list for the new chat first.
31
+ - Temporary workspaces remain on disk across restarts and uninstall until you remove them.
32
+ - Content read from other sessions serves as background context rather than instructions.
33
+ - Free chats, deleting chats, and editing and resending a sent message require a DSH host with those capabilities; editing after later modifications also requires host support for explicit modification confirmation. The buttons appear when the host supports them. Image understanding depends on the selected model; audio, video, and other non-image attachments are sent as ordinary files, and reading them depends on the host and model. Modification warnings reflect changes recorded by the host.
34
+ - Each finished turn in an auto-continue session costs one extra model call.
35
+ - The welcome-back recap is model-generated; when a model route is unavailable or the call fails, the recap section is omitted while any compaction suggestion still appears on its own. The recap call is read-only and leaves session history unchanged. Compaction uses the host's native command and reports its result in the conversation entry. A new session carries a concise recap and the source session ID for looking up full details, leaving the original session and draft untouched.
36
+ - The card is checked when you return to a session (window focus, tab visibility, or switching sessions) and periodically while the page stays visible. Your next send always goes through directly. Tapping the ghost sends the ghost text, while the composer itself still requires non-empty input.
33
37
 
34
38
  ## License
35
39
 
package/README.zh-CN.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  [English](README.md)
6
6
 
7
- 跨工作目录查找和阅读 DeepSeek Harness 会话、在临时工作区中开始对话,空输入时一键继续,久离回来时在输入框上方显示摘要与压缩建议。
7
+ 跨工作目录查找和阅读 DeepSeek Harness 会话、在临时工作区中开始对话,空输入时一键继续或在回复提前结束时自动继续,久离回来时在输入框上方显示摘要与压缩建议。
8
8
 
9
9
  ## 安装
10
10
 
@@ -17,19 +17,23 @@ dsh plugin --profile web add @klarkxy/dsh-session-manager
17
17
  ## 使用
18
18
 
19
19
  - **智能体工具**:`list_sessions`、`search_sessions` 和 `read_session` 按标题或内容查找会话,并阅读对话、完整细节或交接摘要。阅读对话时按轮返回预览(最新在前),可用返回的游标向前翻页,并通过细节模式查看完整原文。
20
- - **会话右键菜单**:右键点击左侧会话行或它的「⋯」按钮,打开该会话的操作菜单,不切换当前对话;左键仍打开对话。搜索结果和空白新会话行没有此菜单。
20
+ - **会话右键菜单**:右键点击左侧会话行或它的「⋯」按钮,可在保持当前对话的同时打开该会话的操作菜单;左键点击仍直接打开对话。该菜单显示在侧栏已保存的会话行上。
21
+ - **编辑并重发**:消息下方的图标会在原消息位置展开编辑框,图片和文件放在文本框上方。可修改文字、删除附件、粘贴图片或拖入文件,取消会恢复原消息。发送前会明确提示:对话将从这条消息继续,之前的版本会移入归档,已执行的文件、命令和外部修改保持现状。确认后新会话沿用原聊天的标题和位置并重新生成回复,之前的版本可在归档列表中找回。这需要宿主提供会话读取、会话分叉和附件读取能力;当前版本支持保留原附件及其排列顺序并编辑文字,新增或替换附件依赖宿主提供对应能力。
21
22
  - **临时工作区**:在新会话的工作区选择器中选择它,即可在一个新的独立目录中开始对话。
22
- - **继续灰影**:上一轮结束后,输入框为空时会浮现灰色建议文本。按 `Tab` 填入草稿,点击则直接发送。一轮还没结束时保持输入框原来的提示。切到「固定文本」使用配置的文本,留空则用「继续」;切到「模型生成」使用所选模型,模型只在上一轮结束后生成一次并缓存在会话中,同一轮不会重复调用。模式、固定文本和灰影模型都在「继续灰影」分组中调整(配置键:`continueMode`、`continueText`)。
23
- - **欢迎回来**:回到距上次响应超过 `recapMinutes` 分钟(默认 15)的会话时,在最后一轮回复之后内嵌显示模型生成的摘要卡片,说明之前在聊什么、进展和建议的下一步。超过 `compactMinutes` 分钟(默认 60)时,同一卡片还会提示缓存可能已失效,并提供「压缩上下文」和「在新会话中继续」两个可选按钮:前者调用宿主原生压缩命令,后者在来源会话所属工作区内新建空白会话(来源未归属工作区时沿用原目录),把摘要和原会话 ID 填入草稿供确认后发送,不复制历史。也可以不点按钮直接发送,不会自动压缩或切换会话。继续对话后卡片自动消失。两项开关和各自的空闲阈值在「回到会话时」分组中调整,点击「保存」并确认成功后,当前会话按新阈值重新检查。时间从上次响应计算,不从保存设置时重新计时。
24
- - **欢迎回来模型**:在「回到会话时」的「显示会话摘要」开关下,「摘要模型」只用于欢迎回来摘要。灰影的模型在「继续灰影」切到「模型生成」后单独选择。两者留空都跟随当前会话或宿主默认模型。模型菜单支持按供应商分组和搜索;列表加载失败时显示原因与重试按钮,重试会保留未保存的设置。
23
+ - **继续灰影**:上一轮结束后,输入框为空时会浮现灰色建议文本。按 `Tab` 填入草稿,点击则直接发送。一轮仍在运行时保持输入框原有的占位提示。切到「固定文本」使用配置的文本,留空则用「继续」;切到「模型生成」使用所选模型,模型在上一轮结束后生成一次并缓存在会话中。模式、固定文本和灰影模型都在「继续灰影」分组中调整(配置键:`continueMode`、`continueText`)。
24
+ - **自动继续**:在创建会话页,发送第一条消息前,在输入框上方的「自动继续」按钮中选择「关闭」「谨慎」或「奔放」;选择在会话开始后锁定。回复提前结束时,由灰影模型(默认跟随当前会话或宿主默认模型)判断是否自动发送一条继续消息,在对话中显示为「auto-continue」通知。发送文本沿用「继续灰影」的内容来源:「固定文本」使用配置文本(留空为「继续」),「模型生成」使用判断模型给出的消息。你每发一条消息之后最多自动继续 `autoContinueMax` 次(默认 3),遇到中止、出错、待回答问题或审批、无进展或需要人工时会停止。默认形态与次数上限在「自动继续」分组中调整(配置键:`autoContinueMode`、`autoContinueMax`)。
25
+ - **欢迎回来**:回到距上次响应超过 `recapMinutes` 分钟(默认 15)的会话时,在最后一轮回复之后内嵌显示模型生成的摘要卡片,说明之前在聊什么、进展和建议的下一步。超过 `compactMinutes` 分钟(默认 60)时,同一卡片还会提示缓存可能已过期,并提供「压缩上下文」和「在新会话中继续」两个可选按钮:前者调用宿主原生压缩命令,后者在来源会话所属工作区内新建空白会话(来源未归属工作区时沿用原目录),把摘要和原会话 ID 填入草稿供确认后发送。你也可以直接发送下一条消息;仅在点击对应按钮时才执行压缩或切换会话,继续对话后卡片自动收起。两项开关和各自的空闲阈值在「回到会话时」分组中调整,点击「保存」并确认成功后,当前会话按新阈值重新检查。空闲时间从上次响应起算。
26
+ - **欢迎回来模型**:在「回到会话时」的「显示会话摘要」开关下,「摘要模型」专用于欢迎回来摘要。灰影的模型在「继续灰影」切到「模型生成」后单独选择。两者留空都跟随当前会话或宿主默认模型。模型菜单支持按供应商分组和搜索;列表加载失败时显示原因与重试按钮,同时保留未保存的设置。
25
27
 
26
28
  ## 限制
27
29
 
28
- - 临时工作区不会自动清理,文件在重启和卸载后仍然保留。
29
- - 从其他会话读到的内容只是背景资料,不是指令。
30
- - 自由聊天、删除聊天、在原会话中重试或编辑已发送消息,需要宿主支持这些功能。只安装 npm 插件不会增加这些能力;宿主支持时才显示对应按钮。
31
- - 「欢迎回来」摘要由模型生成;没有可用模型或调用失败时卡片不会出现(压缩建议仍会单独出现)。摘要只读取会话,不写入历史。压缩依赖宿主的原生命令,结果由对话中的压缩记录反馈。新会话只携带简短摘要,可能遗漏细节,需按原会话 ID 查阅;原会话和原草稿保持不变。
32
- - 卡片在你回到会话时检查(窗口聚焦、标签页可见或切换会话),页面持续可见时也会定期检查,到达阈值后不必切换窗口。它不会拦截你的下一次发送。空输入发送指发送灰影文本;输入框本身仍要求非空内容。
30
+ - 编辑并重发使用持久化存储。新聊天创建后若发送失败,再次发送会继续同一次操作,宿主重启后也一样。若创建聊天中途中断、结果尚未保存,会暂停再次创建,请先在会话列表中检查是否已有新聊天。
31
+ - 临时工作区在重启和卸载后仍保留在磁盘上,可按需手动清理。
32
+ - 从其他会话读到的内容作为背景参考,而非执行指令。
33
+ - 自由聊天、删除聊天、编辑并重发已发送消息,需要宿主支持对应能力;后续已有修改时还需宿主支持显式修改确认。宿主支持时才会显示对应按钮。图片理解取决于所选模型;音频、视频和其他非图片附件作为普通文件发送,读取能力由宿主和模型决定。修改提示基于宿主已记录的改动。
34
+ - 开启自动继续的会话中,每个已结束的轮次会额外消耗一次模型调用。
35
+ - 「欢迎回来」摘要由模型生成;缺少可用模型或调用失败时仅省略摘要部分,压缩建议仍可单独显示。摘要调用为只读操作,保持会话历史不变。压缩使用宿主的原生命令,结果由对话中的压缩记录反馈。新会话携带简短摘要与原会话 ID(可凭 ID 查阅完整细节),原会话和原草稿保持不变。
36
+ - 卡片在你回到会话时检查(窗口聚焦、标签页可见或切换会话),页面持续可见时也会定期检查。你的下一次发送始终直接发出。点击灰影会发送灰影文本,输入框本身仍要求非空内容。
33
37
 
34
38
  ## 许可证
35
39