看点什么 · DSH Message Console
面向个人使用的 DSH 消息聚合插件。以“来源”为配置单位,把评论、issue、PR 和 release 的变化集中到一个入口,分别管理阅读状态、后续处理与发布审核。
当前是开发版本。 已支持通过服务器现有 gh 授权读取 GitHub 仓库,以及通过 Chrome Cookie 读取 B 站视频评论。两条采集路径均只读,真实订阅模型与完整自动处理链路仍需验收。
已实现
主面板总览按平台与来源展示卡片,支持独立平台列表、来源展开和来源详情页。来源可保存简介与标签。
来源配置、适用范围明确的全局默认值与来源覆盖。抓取和整理默认分别每 6 小时执行,可手动刷新并整理。
首次抓取作为已读基线;后续变化按内容版本显示未读,个人处理状态独立保存。
评论经 Jev 概率判断分流;人工介入不提前拟稿;模糊判断最多升级一次。
B站根评论和楼中楼图片保留链接与尺寸,展示时按需生成缩略图,点击查看原图。私有图片缓存默认合计最多256 MiB,原图7天、缩略图30天未使用后清理;全局配置可调整预算、查看占用和清空缓存。图片与缓存说明。含图评论在决策升级阶段通过内存输入实际图片,不新增会话附件;Jev 初步判断仍只接收文字。升级模型不支持看图或图片装配失败时转人工。
卡片与工作记录展示整理触发原因。楼中楼变化直接展示相关回复及整楼处理建议,根评论作为背景;不再可见的回复保留历史全文,全部变化支持分页查看。旧工作记录可依据已有版本还原变化,缺少证据时明确标注。
PR/issue 分析、回复生成与独立监督会话。监督拦截后保留草稿和原因,不自动重试改稿。
B站评论按来源授权自动回复:无需回复、可自动回复、需要人工与重要程度分开判断;监督通过的新自动草稿以“由「看点什么」插件自动回复:”开头,发送前复核授权和版本。其他草稿等待人工审核。发送结果不确定时保留
unknown,不自动重发。详见自动回复。不同工作角色使用独立 DSH 会话;同内容项的生成/审查/核实角色跨轮复用最早有效的原会话,保留真实历史;人工入口准备待用背景,首次用户发言后进入真实历史;Jev 输入输出在插件里可查。
GitHub 公开仓库 REST 读取连接器,支持分页、限流退避和 PR head 变化检查。PR 目前只获得 patch 和讨论,不代表完整代码审查或实际执行测试。
SQLite 按行事务、旧 JSON 数据迁移、进程锁、中断状态恢复,以及宿主认证保护的分页 API。
工作 Agent 默认使用 DSH PTC 模式与工作区权限,通过查询工具读取原文,通过提交工具保存结果和不可变草稿。
内容列表支持服务端搜索、筛选及每页 10、20、50 条。正文、评论、历史版本和工作记录按需加载。B站详情保留视频标题,简介按内容版本分块读取。
总览与来源页支持“全部已读”,清除当前未读与关注提示,保留草稿、评价和历史。
内容详情可保存“我的评价”,按来源整理最多 50 条未学习案例,展示修改前后差异和案例引用,人工确认后才应用。评价学习操作说明。
本地开发与预览
维护使用 dev 开发集成基线和 main 正式基线。分支、正常 Linux 测试、AWS 部署与正式验收步骤见开发与维护流程。
Node.js ^22.19.0 || >=24,DSH 0.2.1-rc.2,Cordis 4.0.5。本版本仅声明这一宿主组合的兼容性,不自动升级宿主。首次使用新版存储时会迁移本插件的旧 JSON 数据,见下文。
npm ci
npm run check
npm run demo
打开 http://127.0.0.1:3147。预览使用合成数据和模拟模型,不读取真实账号,不发送消息。每次启动创建独立模拟数据目录;数据、构建临时文件都留在被 Git 忽略的 .local/。
DSH 开发安装
先在隔离的开发 profile 验证。需要已启用的 DSH Agent/会话持久化/Web 服务、标准 dsh-prompt-assembler 1.1.2(固定提交 21183e1),以及用户 Jev fork 0.3.6(固定提交 2ec0510)。
安装 npm 依赖本身不等于在宿主中启用了对应服务。
Assembler 1.1.2 从“插件 → 已安装插件 → dsh-prompt-assembler → 配置当前会话”打开装配编辑器。控制台使用标准 native 后端,不需要核心扩展。依赖固定到包含 DSH owner 认证修复的源码提交及完整性摘要,不假定 npm 已发布此补丁。远程 Web 还需配置 Assembler 的 security.allowRemoteClients: true 与精确 security.allowedHosts,并使用正常 DSH 登录态;网络开关不替代认证。
已有 Assembler 或 Jev 时更新并复用同一个实例,消息插件只调用共享的 decisionModels.ask,不另存 Jev URL 或密钥。
npm run build
npm pack --pack-destination .local
dsh plugin --profile YOUR_DEV_PROFILE add "dsh-prompt-assembler@https://codeload.github.com/Player-MINEPIG/dsh-prompt-assembler/tar.gz/21183e18c9e8e7f7f01fda04b5af4218ce194539"
dsh plugin --profile YOUR_DEV_PROFILE add "dsh-jev-plugin@https://codeload.github.com/Player-MINEPIG/dsh-jev-plugin/tar.gz/2ec0510ffcdabe790df8c93b0b40aee07b93c342"
dsh plugin --profile YOUR_DEV_PROFILE add /absolute/path/to/dsh-message-console/.local/dsh-message-console-0.1.0.tgz
包携带 cordis.patch.yml,默认将插件数据放入该 profile 的 DSH 数据目录。可在插件配置中指定:
| 配置 | 用途 |
|---|---|
storageDir |
本插件的数据目录;单进程独占 |
cookieFile |
显式导入的本机Cookie文件路径;不通过状态API返回凭据 |
autoSchedule |
是否启动抓取/整理计时,默认 true |
timeoutMs |
单个生成 Agent 的取消期限,默认 300000 |
从 DSH 左侧插件区域打开“看点什么”,在“全局配置”从宿主目录选择提供商与模型,在“添加来源”绑定已有工作区。dsh-plugin-subscriptions 通过宿主 LLM 提供商接口复用,不单独保存供应商凭据。Jev profile 不配置时使用 Jev 默认 profile;若其输出只有选项而无完整概率,插件会记录失败,不冒充获得置信度。
Jev fork 0.3.6 的 native 普通模型和 custom 路径均已用合成输入验证完整概率、低置信升级、失败记录和人工审核边界。native 的概率是模型自报估计,不是 token 概率或经过校准的置信度;阈值仍需真实样本验证。工作记录保留 Jev 返回的 profile、model、answers 和 usage,不推测服务未提供的概率来源 metadata。未使用真实 Jev 凭据。订阅提供商仍由宿主目录接入,但第三方提供商插件也必须兼容该宿主。dsh-plugin-subscriptions 0.9.9 的 peer 声明尚不包含 0.2.1-rc.2,本轮未验证其真实订阅调用,不应强行跳过依赖检查。
工作模型和监督模型可以使用不同 provider/model;即便使用同一模型,也分别创建独立会话。任务插件不是依赖;Memory Manager 不作为硬依赖。
账号与目前限制
- GitHub 默认使用 DSH 运行用户已有的
gh授权。先在同一用户下确认gh auth status --hostname github.com,再启动插件。插件调用gh auth token --hostname github.com,在内存中以该授权读取固定的api.github.com,并通过/user验证登录身份。不会创建或修改授权,不将 token 写入插件配置、数据库、日志或模型输入。每次采集重新读取授权,分页复用该轮内存授权;命令及网络请求均有超时。 gh不存在、授权失效或请求失败时显示错误并保留已有数据,不自动降级匿名访问。需要匿名读取公开仓库时,可在宿主插件配置中明确设置githubAuth: public;默认值为gh。无论 gh 授权本身具有什么权限,当前 GitHub 连接器只采集,canPublish始终为 false。- GitHub 始终采集全部 Issue 和 PR,包括已关闭及已合并状态。默认手动和自动整理都跳过这些内容,不创建分析运行,也不清除已有关注、评价或草稿。重开后恢复整理资格。全局配置的“GitHub 整理范围”可开启“整理已关闭或已合并内容”,来源可覆盖或恢复继承。Release 照常整理。
- 从旧 Cookie 采集切换时沿用旧 Release 和 PR 的本地 ID,保留历史版本、会话、评价和草稿引用。API 返回的 Markdown 正文与补全上下文可能产生一轮更新提示,旧草稿会按内容变化规则失效;再次采集相同内容不会重复更新。Release 与 API 数字身份建立关联后,标签改名仍沿用同一内容项。若首次切换前标签已经改名且旧记录没有数字身份,则无法可靠识别为同一 Release。
cookieFile用于 B 站视频评论采集及按来源授权的评论发送。macOS 可显式运行node scripts/import-chrome-cookies.mjs .local/credentials/chrome-cookies.json。默认 Chrome 的 Default profile,可将"Profile 1"作为第三个参数。导入文件权限为 0600,不会自动续期。旧文件中的 GitHub Cookie 不再用于采集。- GitHub 仓库读取目前按完整快照扫描,较大仓库会产生较多请求;限流后保留已有数据,未完整获取不会推进基线。尚无增量缓存。
- PR 文件列表超出 API 上限或未完整取得时,仍采集条目和状态,但标记上下文不完整并停止自动审查。PR 缺失 patch 或代码上下文、issue 缺少复现材料时,只能给出受限分析。Agent 可使用绑定工作区的标准工具核对资料,但不能把可用工具当作已运行测试或已复现的证据。采集链路仍不提供完整仓库检索和自动代码修复流程。
unknown发布结果需要人工去原平台核实;本版没有自动对账和恢复发送的界面。- 已验证真实账号只读采集及隔离宿主调用;完整默认profile和实际订阅模型的处理链路尚未端到端验收。
无浏览器的 VPS
GitHub 复用 VPS 上 DSH 运行用户的 gh 登录,无需 Chrome 或复制 Cookie。GH_TOKEN 或 GITHUB_TOKEN 环境变量可能优先于 gh 保存的授权,实际身份以插件显示的 /user 结果为准。
B 站 Cookie 连接器运行时不需要 Chrome。可在自己的 macOS 上显式导出,经安全通道传到 VPS 上 DSH 运行用户的私有目录,设置权限 0600,再将 cookieFile 指向该文件。连接器每次请求重读文件;登录失效后需在本机重新登录、导出并替换。VPS 的出口 IP 是否被平台接受、Cookie 有效期和风控限制需要单独实测。
迁移来源数据时还需处理工作区 ID、目录路径及真实 DSH 会话历史,不能只复制插件状态文件。先使用独立的新宿主数据目录验证,再决定是否迁移旧数据。
验证与扩展
npm test 覆盖状态、并发审核、发送不确定性、失败恢复、GitHub 协议和 HTTP 入口。开发依赖锁定上述 Jev 提交,默认运行 native/custom 共享服务到工作流与持久记录的离线测试;native 使用真实 DSH LLM 服务和合成适配器,custom 拦截 HTTP 并返回合成响应,生成与监督使用合成执行器。可使用本机 DSH 安装执行额外的离线宿主测试(不加载默认 profile 或真实模型凭据):
DMC_DSH_ROOT=/absolute/path/to/dsh-install node --test test/host.test.js
宿主测试使用真实 Agent Loop、标准 Assembler、工作区、JSONL 持久化和冷会话查询,检查标准工具组件、业务工具绑定、输入顺序、尾部 PHI、必需运行上下文及模型目录白名单。宿主测试还覆盖原生工具直接保存 SQLite、独立监督、人工背景重复冷恢复、只读与计划模式拒绝提交,以及存储目录的可写边界检查。模型输出来自离线合成适配器;这些检查不代替 Web 和真实账号验收。未设置该环境变量时,此测试跳过。
使用同一固定 Jev 开发依赖验证指定宿主的服务挂载、profile 目录和经宿主合成模型的调用,不读取凭据或联网:
DMC_DSH_ROOT=/absolute/path/to/dsh-install \
node --test test/host.test.js test/jev-host.test.js
这些测试验证合同与分流,不证明真实模型判断准确。Jev 拒绝缺失概率的响应后,本插件保留实际错误且停止后续生成;native 上游流失败在当前 Jev 中可能仅返回“native 响应不完整”,无法从 ask 恢复原始错误详情。
业务模型、连接器和宿主执行层分离,新增平台需要实现代码适配。详见 架构与连接器合同。本项目采用 MIT。
来源与工作区
“看点什么”位于 DSH 左侧插件区域,点击后在右侧主面板展示。每个来源必须选择一个已有 DSH 工作区。分析、监督和人工处理会话均在该工作区创建,并登记到宿主工作区的会话列表。更换来源工作区仅影响新会话。工作区删除或目录失效时会停止新建工作会话,并提示重新选择;旧数据与会话链接保留。
添加来源时先输入仓库或视频链接,再选择内容类型。离开链接输入框后,插件读取标题、简介和主题或分类,建议最多12个标签。B站在视频元信息后读取真实视频标签,再加入可用分类和评论类型。标签读取失败时保留标题与简介并提示手动补充,不自动重试。GitHub 支持仓库、issues、pulls 和 releases 列表链接,单条内容链接会被拒绝;B站支持完整视频链接、BV号和av号。关注规则、阶段背景与补充指令来自本地固定模板,元信息读取失败时仍可使用。手改或手动清空的字段会保留,已有来源只在点击“重新识别并填充空白”时填充空白字段。你仍需手动选择工作区并保存;元信息读取不抓取内容、不整理,也不调用模型。
视频上下文与 post-history instruction
B站来源填写视频BV号、av号或完整视频链接。每个来源可添加独立上下文、文字资料、工作区内的显式文件引用,以及可编辑的post-history补充指令。资料只读取所选工作区内的非隐藏md/txt/json/csv文件,拒绝越界符号链接;单文件128KB、总量256KB。多个来源不会因使用同一工作区而自动共享全部资料。
模型请求保留前置system数据边界,Assembler在history/input之后追加固定提醒及用户补充指令。当前native后端以真实user消息投递尾部提醒,不伪称system消息;Jev决策指令另行附加同样的边界。测试证明消息顺序与持久化,不能保证模型绝不受注入影响。平台内容及资料不插入可信指令。工作会话使用宿主标准工具及两个受绑定约束的业务工具,发布由插件独立检查权限,已授权的B站自动评论另需明确决策、身份标识和独立监督。
总览与来源页面
顶栏提供“总览”“学习记录”“全局配置”和“添加来源”。“学习记录”跨来源展示历史批次及待确认提案;在来源详情点击“整理用户评价”会直接发起该来源的学习批次并打开对应记录。总览首先显示综合优先级最高的最多三个已有平台,再显示来源卡片。点击“全部平台”或“展开来源”可单独浏览对应列表。点击平台查看该平台的来源,点击来源进入独立来源页。编辑来源入口位于来源页,全局配置只管理全局默认值。
未读变化按内容项计数,一条评论对话无论新增多少条回复都只计一个未读内容项。需要处理按内容项去重,包含待处理、稍后处理及尚未确认关注的审核草稿。标记“已处理”会确认当前关注,保留现有草稿与历史,现有草稿不会再次顶起待处理提示;后续新内容、分析或草稿等事件会重新提醒。
总览来源综合排序按当前版本的分析重要性排序,有明确依据的紧急性只作有限修正,再比较需要处理数、未读数与内容变化时间。
来源内容列表始终先显示需要处理的项,再按重要性及有依据的紧急性排序,同级按最后更新时间排列,默认新到旧,可切换旧到新。最后更新时间优先使用平台内容的 updatedAt,缺失时回退到采集到变化的时间;抓取时间单独显示。
GitHub 列表默认隐藏已关闭 / 已合并内容,勾选“显示全部”可查看,采集仍全量同步,且此开关不改变整理范围。搜索、筛选和显示开关都在服务端分页前应用,改变条件会回到第一页。尚未整理或内容版本已变化的项不显示过期摘要与重要性。
调整模型背景顺序
在添加或编辑来源时,可以调整“来源信息与关注规则”“上下文”“资料”“当前内容及讨论”四个数据块的顺序,也可以调整资料内部的顺序。“更新真实预览”会解析所选工作区内显式引用的文件,并装入选定的真实内容项。新来源没有实际内容时显示占位;尚未解析的文件只显示路径。
顺序保存后用于 Agent、Jev 与人工会话背景。system 任务、真实历史和尾部 PHI 的位置固定。Jev 使用独立协议,同序数据块进入 state,PHI 放入问题 instructions。预览展示数据块和固定边界,不代表模型提供商的完整请求。
顺序、上下文或资料变更会使旧草稿失效,并为后续人工处理创建新会话,旧会话自身的完整历史仍保留。“整理已有数据”只处理当前来源尚未分析的历史基线,以及有新内容版本的项;重复点击不会强制重跑当前已完成项。来源背景或学习指导变更保留已有分析、评价和处理状态,新指导用于后续处理。自动整理和“刷新并整理”继续跳过首次接入且从未分析的已读基线。
查看整理结果与模型路线
来源页的“整理已有数据”会显示处理中,并在结束后显示候选、完成、失败、跳过的内容项数量。没有候选时显示原因,失败时保留具体错误。最近一轮结果保存于来源,重新打开页面仍可查看。来源按钮只处理当前来源;独立到期的自动调度仍会处理其他来源。新整理记录标明“手动触发”或“定时触发”,旧记录无依据时显示“触发来源未知”。完成数按内容项统计,不代表模型调用次数;上下文不足的内容可能只标记人工介入,未调用模型。
全局配置和来源覆盖按抓取频率、Jev 轻量决策、生成与分析、独立监督、内容偏好分组。DSH 中配置了 API 连接后,还需在本插件下拉框中选择宿主已有的提供商与模型。Jev 使用独立 profile,可以在没有生成路线时完成忽略或人工介入判断。只有实际进入决策升级、拟稿或分析时才要求生成路线;监督未单独配置的字段继承生成路线。
评论先由 Jev 返回选项概率,低置信时最多调用一次生成模型升级判断。需要拟稿时才生成回复及分析摘要;PR、issue、release 分别执行审查、核实、摘要任务。摘要来自该次生成或分析的输出,没有独立的总结模型调用。Jev 的忽略、人工介入结果显示固定的分流提示,不声称生成了内容摘要。
各角色使用共用数据块与属于该角色的专属背景。当前内容数据块保留采集原文、讨论与前版原文。分析轮的真实输入另附当前分析和既有工作记录引用,原会话的真实历史由宿主保留,不复制其他会话事件。角色任务指令和额外的 decision、draft 不同。工作记录按实际发生的 Jev 调用和 DSH 角色会话展示,并保留失败原因与输入输出。
复用宿主模型目录与阶段背景
生成与监督模型从 DSH 的实际提供商和模型目录选择,包含宿主已注册的订阅提供商。模型列表随提供商按需读取,可以显式刷新。Jev 使用单独的 profile 下拉,保留使用 Jev 默认的选项。列表显示名称并辅助显示 ID,不需要手工填写 ID,也不会自动选择第一项。DSH 0.2.1-rc.2 的官方 DeepSeek 适配器在缺少凭据时会返回空模型列表;可先在宿主模型设置中完成配置,再显式刷新目录。插件不自行补写凭据或构造模型列表。旧选择暂不可用时保留原值并提示重新选择;切换提供商会清除相关旧模型,不能跨提供商继承全局模型。
来源配置保留现有上下文、资料、关注规则、PHI 和装配顺序作为共用背景。你可以分别为 Jev 轻量决策、低置信升级、生成与分析、独立监督补充专属上下文和资料。生成与分析按来源能力执行评论拟稿、PR 审查、issue 核实或 release 摘要,没有独立总结调用。
实际请求只装入共用背景与当前阶段的专属背景。来源预览可选择阶段,展示对应数据块;升级的 decision、监督的 draft 在预览中明确占位,实际执行时才附加真实结果。服务端解析所有显式资料以计算来源版本,预览不会触发模型。人工会话使用共用与生成分析背景,原有会话历史完整保留。
模型失败与持久会话
阶段默认限时五分钟,超时记录 TIMEOUT、限时和取消来源;用户取消与插件停止另行保留。计时和结算只针对该轮消息,不取消随后排队的用户会话轮。模型请求失败时,插件展示宿主记录的终止代码、消息、可用的 HTTP 状态与原会话 ID,工作记录保留实际角色会话。TRANSPORT 仅表示宿主报告的传输失败,不能据此断言某个网络或账号问题;插件不会自动换模型路线、改代理或凭据。
同内容项、来源、分析角色、工作区和实际目录再次整理时,优先复用最早有效的持久原会话,可暖态继续或冷恢复。会话忙或有待处理输入时本轮失败并保留原归属,不抢占或另建会话绕过。监督、学习和人工角色保持各自语义。每轮使用当前内容/资料版本和独立收据;历史收据不作为新轮提交。自动工作完成或失败后保留原 Agent,你可以在同一会话继续追问。人工处理会话创建后也保持可用,后台不会提前调用模型。实例由 DSH 的创建者生命周期管理,插件卸载或宿主退出时统一清理;会话在此期间占用宿主内存。真实历史持久保存,重启后由宿主从原 ID 恢复。
插件每五秒按游标读取共享会话目录变化,恢复宿主列表中缺失的已有会话。目录监听在离开插件页面后继续生效,没有变化时不遍历历史身份集合。目录恢复不复制或补写历史。升级前已经显示“会话不可用”的页面可重新载入,以恢复原会话的输入框。
工作工具与存稿
工作、监督和人工会话默认显式挂载宿主已安装的 DSH ptc 模式,新会话固定为 workspace-write 和 ask。PTC 保留宿主工具与 AGENTS 等工作区说明,模型通过 run_code 内的 tools.dmc_read_item(...)、tools.dmc_submit_result(...) 查询和保存业务结果。冷恢复保留用户后来选择的模式和权限;只读或计划模式下,业务提交工具拒绝写入。来源原文、评论和资料仍属于待处理数据,不因此获得发布授权。
创建或恢复业务会话时,插件解析存储目录与工作区的真实路径。存储若位于该工作区、/tmp 或宿主临时目录的可写范围,插件会拒绝启用工作会话,并提示选择更具体的工作区或把存储移到宿主私有目录。符号链接也按实际目标检查。标准文件权限不限制所有读取或网络行为,发布审核仍由插件单独执行。
人工背景先进入宿主待用输入。宿主重启后,打开会话触发恢复时,插件从该轮冻结的来源与内容快照恢复尚未接受的背景。首次用户发言后,宿主依次记录系统消息、背景和用户输入;已经接受的背景不会因再次打开而重复加入。仅查看冷历史时,不把待用背景伪装成已执行消息。
dmc_read_item 查询本来源已采集的内容。先用 section: "items" 按页获取内容 ID,再把返回的 id 作为 itemId,沿用 version 读取正文或评论。评论列表返回摘录和评论 ID,section: "comment" 读取该条完整原文。正文按 Unicode 码点计数的 offset、length 分块读取,沿用同一个内容版本,直到 complete: true。这些 ID 是插件返回的稳定标识,不把远端评论号当作本地内容 ID。
dmc_submit_result 是 Agent 结果的正式保存入口。自动工作角色提交分析、升级判断或监督结论;人工处理角色提交草稿。最终助手文字不作为落稿或监督结论的替代输入。一次提交使用固定 operationKey;精确重试返回原收据,同一个键提交不同内容会失败。
来源绑定的分析工作会话(writer、review、investigate)可以使用 dmc_revise_analysis 更新绑定内容项的最新结论,例如收到稍后完成的验证报告。可先读取 dmc_read_item({section: "analysis"}) 查看当前结论,再提交完整 analysis 和修订 reason,可附报告 ID 或链接 evidenceRefs;引用由 Agent 提供,不代表插件已核验报告。每次更新使用新 operationKey,重试沿用原键和内容。
工具根据真实会话绑定确定目标,采用提交时最新的内容、来源配置和分析版本,不要求配置或内容与原整理轮一致,也不要求该轮已有首次分析收据。version、contextVersion、expectedAnalysisRevision 是可省略的旧参数,传入旧值不会阻止更新。不同操作按提交顺序更新最新结论,并各自保存前一版;相同操作的精确重试只返回原收据,不覆盖之后的结论。
修订会更新面板摘要并追加工作记录,原分析、原收据和真实会话历史保留。它不重新执行整理或派发任务。旧的待监督、待审核或被拦截草稿会标为过期,已发送和发送状态待核实的记录保留。首次自动整理仍用 dmc_submit_result 保存本轮结果;修订工具只更新分析,不生成或发布回复,也不会自动接收任务插件的完成通知。
const current = await tools.dmc_read_item({section: "analysis"});
await tools.dmc_revise_analysis({
operationKey: "verification-followup-1",
analysis: {summary: "验证完成,问题已确认", importance: 2, reason: "报告中的证据支持该问题",
urgent: false, urgencyReason: null, intervention: "review", evidence: "confirmed"},
reason: "根据已读取的验证报告更新分析",
evidenceRefs: ["实际报告的 ID 或链接"]
});
从插件内容入口创建的人工会话固定当前内容项和输入版本。读取同来源其他项不会改变存稿目标。需要给另一项存稿时,从那一项新开会话。新稿先显示“等待独立监督”;监督失败或会话失败后,已保存正文仍可查看,并可从草稿启动监督。监督通过后显示“等待你审核”。
在已有 DSH 工作区中直接新建或继续普通会话,也可以使用这两个工具。先调用 dmc_read_item({section: "sources"}) 查找当前工作区绑定的来源,再以 sourceId 查询 section: "items",用返回的 itemId 读取 section: "item"。该返回值包含当前 version 和 contextVersion,后者也计入工作区资料文件的内容。普通会话仅可保存草稿,参数为 {kind: "draft", operationKey, itemId, version, contextVersion, body}。同一会话可为不同内容项分别存稿,来源改绑后权限随之更新。没有绑定来源时来源列表为空。
普通会话的模式、权限、提示词与历史由 DSH 保持原状。插件只向现有会话注册工具,并在内容项的工作记录中保留真实会话入口。保存后的草稿可在插件内容详情中找到,仍需独立监督与人工审核。工作区 AGENTS 索引可以记录工具返回的稳定 ID 和版本,后续通过工具读取原文。
草稿正文保存后不可修改。改稿创建新 ID;替换旧稿需提交旧 ID 与 bodyHash,旧稿显示“已被新稿替换”。新稿需重新监督。发送中、结果待核实和已发送的草稿不能通过改稿覆盖。
SQLite 数据与迁移
插件数据目录包含 console.sqlite,运行时还可能有 WAL 和共享内存文件。目录采用进程锁,数据库使用 WAL、完整同步和外键检查。停用插件并等待关闭后再备份整个数据目录;DSH 会话历史与工作区归属另由宿主保存。
首次发现旧 state.json 时,新版保留原文件并创建 state.pre-sqlite.json 备份,然后导入来源、内容版本、工作记录、草稿、Jev 结果、会话链接和审核记录。迁移逐项核对已有字段,检查实体数量及 SQLite 完整性。数据导入和初始化标记在同一事务提交;失败后保留旧文件,下次启动可重试,成功后以 SQLite 为准。之后启动不会重新用旧 JSON 覆盖数据库。旧版本没有完整快照的历史记录会明确标为不完整,不补造原文。
升级前先停止旧实例并备份数据目录。需要回退时,停止新版,恢复升级前的整个目录与旧插件版本;旧 JSON 不包含升级后新增的工作,不应拿它覆盖仍在使用的 SQLite 数据。不要同时运行两个插件实例操作同一目录。
内容项、评论及工作历史有界读取,搜索在服务端对当前来源的标题和完整正文执行字面子串匹配,沿用 JavaScript 的 Unicode 大小写归一化。总览只读取来源元信息与统计,编辑来源才读取其上下文配置。来源配置数量仍按个人使用规模处理;连接器每轮仍收集完整批次,短词搜索与深页查询也可能随该来源的数据量增加,不承诺任意规模恒定耗时。
0.1.3 存储与后续结果
SQLite schema 6 在事务内新增 run_sessions,从现有非空 run 绑定复制历史关联,包括仅供历史展示的 legacy 链接;原业务行、run/receipt JSON 和宿主事件不重写。sessions 保存当前轮绑定,历史工作记录继续链接同一真实会话。首次提交按会话与轮次查询,内部幂等键按轮隔离,旧键只在其原轮回放。工具跨异步准备后重新校验绑定,原内容/资料/分析版本保护仍生效。
阶段失败后,后来实际保存的分析通过收据和审计记录单独展示时间及“当时已采纳”,原失败状态与终止时间保留。后补草稿仍显示实际监督状态,不代表已通过独立监督。插件不新增任务等待状态或专用回报适配器,也不自动外发。
No comments yet. Be the first to write one.