功能建议:增加“移出归档 / 取消归档”能力
当前 dsh-archived-conversations 只支持在 DSH Web 设置页展示已归档会话并提供只读预览,无法把会话恢复到侧边栏。建议增加“移出归档”操作。
需求
- 在“已归档对话”列表的每一行(或预览详情页)提供“移出归档”按钮。
- 点击后将该会话从归档集合
archivedSessionIds 中移除。
- 操作成功后,该会话重新出现在 DSH 侧边栏/会话列表中;会话日志本身不删除。
现状与可行性
DSH 目前没有公开的 unarchiveSession API,客户端也只有 workspace.archiveSession。但 workspaceRegistry 的 archivedSessionIds 是持久化的普通数组,可以通过 registry 内部队列 + setState 安全移除:
- 写入会触发
domain/changed → host/archived-sessions-changed,客户端侧边栏会自动刷新。
- 归档会话仍保留在原 workspace 的
sessionIds 槽位中,所以恢复后位置可以还原。
建议实现
- Host 新增
POST /__archived-conversations/unarchive
- 请求体
{ sessionId: ... }
- 校验 sessionId 格式、必须属于已归档集合
- 要求
Origin 与 Host 同源(状态修改接口防 CSRF)
- 返回更新后的
archivedSessionIds
- Client 在列表行增加“移出归档”按钮,调用上述接口并处理加载/失败状态
备注
我们已经在本地实现了这个功能(插件版本 0.4.0),核心改动在 src/index.ts 和 src/client/index.js。如果作者愿意接受,我们可以整理成 PR 提交。
功能建议:增加“移出归档 / 取消归档”能力
当前
dsh-archived-conversations只支持在 DSH Web 设置页展示已归档会话并提供只读预览,无法把会话恢复到侧边栏。建议增加“移出归档”操作。需求
archivedSessionIds中移除。现状与可行性
DSH 目前没有公开的
unarchiveSessionAPI,客户端也只有workspace.archiveSession。但workspaceRegistry的archivedSessionIds是持久化的普通数组,可以通过 registry 内部队列 +setState安全移除:domain/changed→host/archived-sessions-changed,客户端侧边栏会自动刷新。sessionIds槽位中,所以恢复后位置可以还原。建议实现
POST /__archived-conversations/unarchive{ sessionId: ... }Origin与Host同源(状态修改接口防 CSRF)archivedSessionIds备注
我们已经在本地实现了这个功能(插件版本 0.4.0),核心改动在
src/index.ts和src/client/index.js。如果作者愿意接受,我们可以整理成 PR 提交。