# 万象知识库 0.1.0 测试报告 测试日期:2026-10-24。测试环境:Windows、DeepSeek Harness Desktop `0.2.1-alpha.1`。 | 验证层级 | 结果 | | --- | --- | | TypeScript 检查与构建 | 通过 | | 核心自动化测试 | 11 项通过 | | 实际宿主运行时契约 | 工具 schema、输出渲染、Session 事件和 Zstandard 持久化通过 | | 真实宿主接口 | 会话读取、原文落库、去重、中文搜索、编辑、索引重建、工具检测及模型整理通过 | | 真实宿主页面自动化 | 10 项通过;没有页面运行异常 | | 安装核验 | 已安装源码与构建文件一致;历史会话及标题读取正常 | 核心测试覆盖文件发布、增量落库保留手工编辑、取消与重试、模型输出及来源校验、部分文件写入失败恢复、索引恢复、目录切换和外部修改保护。 模型整理测试使用独立创建的合成会话,调用宿主已经配置的 `deepseek-official/deepseek-flash`。生成了笔记和知识卡片,重复执行没有重复调用模型。 界面自动化在隔离的无头 Chrome 中连接实际 Harness 页面,覆盖会话选择、一键落库、中文搜索、详情编辑、工具登记与版本检测、页签切换、设置面板、窄屏和快捷面板。 原生桌面检查确认了侧栏入口能够挂载。桌面自动化随后因无法可靠识别窗口网址而停止,最终 Electron 窗口中的完整点击回归未完成。 原始本机测试数据、会话来源摘录、安装备份和环境配置不包含在源码仓库中。可以按 README 的命令运行核心测试;`scripts/runtime-contract.mjs`、`scripts/live-check.mjs` 和 `scripts/ui-live.mjs` 用于安装了对应 Harness 版本的本机集成验证。 尚未验证:其他宿主版本兼容性、一万条知识的性能、附件 OCR 和向量检索。 ## v0.2 第 0 期 · 0.1 基线(2026-10-24) - 分支:`feat/v0.2`;起点 `6d02516`(0.1.0)。创建分支时已跟踪文件无改动;两份用户提供的 v2 需求文档为未跟踪文件,保持原样。 - 自动化通过:`npm ci`(13 个包,审计 0 个漏洞)、`npm run typecheck`、`npm test`(11/11)。 - npm 提示 esbuild 的 postinstall 尚未列入 allowScripts;本次 typecheck 与测试成功,构建另行实测,不据此宣称失败或成功。 - 0.1 验收:基线结果已记录(自动化通过)。生产源码、CSS、导航、版本号、知识目录均未修改;未新增模型调用或依赖。 - 文档事实核对:第 12 节“十标签页”与第 10.1 节实际清单不一致;按六标签页加设置、全局、宿主入口审计。 ## v0.2 第 0 期 · 0.2 审计 - 自动化通过:真实启动 `npm run dev`;现有 ui-check 在前四项通过后因重复同名合成工具选择器失败,已如实记入 AUD-06。新 `node scripts/audit-v02.mjs` 使用临时独立合成库,Playwright 操作全部六页签、设置、详情编辑、复制、待落库忽略、375/640px、compact;浏览器异常 0。重跑 typecheck 和 11 项测试通过。 - 验收:10.1 全项已在 `docs/审计清单.md` 有结论,明确区分实测、源码核对与未测;不能把清单覆盖等同于全部功能通过。确认高优先级 AUD-04(切库失败后设置与 store 不一致),严重级问题暂无;其余问题见审计清单。 - 实机通过:连接本机已安装宿主 `http://127.0.0.1:60855/wanxiang`,六页签面板可加载;只读、未更改真实库或会话。宿主根页面要求 Web 认证,隔离浏览器未验证侧栏、会话快捷入口或重复挂载(未测),不把计数为0认定入口缺失。 - 截图:`dist/v02-audit/`(空库六页签、200条知识列表、工具详情、待落库残留、100条日志、设置、窄屏、紧凑、实机面板及认证提示);本机产物不提交。 - A6自查:生产源码/CSS/导航不变;新增脚本仅写临时合成库与忽略的dist,临时库 finally 清理;不写个人库、不迁移、不安装、不新增模型路径/依赖。0.1目录格式未改变。图谱帧率留第1期(未测)。 ## v0.2 第 0 期 · 0.3 注入点 - 自动化通过:已安装 Electron 的隔离真实 Cordis/SystemPrompt/Session contract;动态 system 段、默认关闭的只读观察器、字面模板字符、注册撤销、压缩等价 surface 替换后日志保留及下一次 assemble 重建。 - 验收结论:选定 A(systemPrompt.section);三个问题逐项见 `docs/注入点验证.md`:尾部旧注入可离开压缩后 surface,动态重新组装可恢复;KV 取决于 provider in-history 与 series;system/message 在事件日志可见。 - 未测:真实 provider cached_tokens、真实模型 compact 摘要、生产热加载与JSONL端到端落盘;没有把源码分析写成实机在线成功。 - 自查:只在新建解包目录只读分析,脚本从仓库运行;探针默认关闭且未接入生产,不新增送模型路径、不修改CSS/版本/数据格式。后续自动召回维持“自动注入”默认;无须产品另作选择。 ## v0.2 第 0 期 · 0.4 引擎 - 自动化通过:已安装 Electron 隔离 Cordis 插件进程(Node v24.18.1)与 resources/runtime Node v24.21.0,均实际导入 node:sqlite、FTS5建表/插入/查询命中1条;项目 sql.js 实际报 no such module: fts5。 - 验收:宿主两个 Node 版本及引擎/FTS5结论已写入 `docs/引擎探针.md`。不把普通开发终端 v24.19.0 写成宿主版本。 - 边界:未向运行中的生产宿主热加载探针;磁盘WAL和大规模压测未测。只用内存合成库,默认关闭、无数据迁移、无模型请求、无新依赖或生产行为变化。 ## v0.2 第 0 期 · 0.5 embedding - 自动化通过:已安装真实 LlmRuntime 的 ctx.llm 有 prepareCall,无 embedding 方法;内置LLM及三个供应商相关包的源码词检索也未发现公开 embedding 接口。`docs/引擎探针.md` 已记录范围及结论“无”。 - 验收:宿主当前公共能力不支持 embedding,后续保持 Off/纯关键词FTS;这是合格的无能力结论,不模拟向量、不弹错误。 - 未测:生产上下文的第三方动态扩展;未读取真实模型供应商配置或凭据。探针只检查接口形状、默认关闭、无文本发送,不改变运行时行为。 ## v0.2 第 0 期 · 0.6 召回评测与 A6 收尾自查 - 自动化通过:`node scripts/eval-recall.mjs`,20条合成知识、60个“查询→期望条目”样例,覆盖中英混合、两字词、错误码、Windows路径、全半角、引号、闭合注入标签和20个语义改写。通过真实Store写Markdown后重建再查询,不复制实现伪造检索结果。 - 首次基线:recall@5 **0.666667**,MRR **0.658333**,平均 **0.0640ms**、p50 **0.0435ms**、p95 **0.1217ms**。40个字面/多词样例recall@5=1,20个改写样例=0,暴露现有交集子串的自然语言查询局限。小语料单次查询时间不代表10万条性能;图谱200/1000/3000帧率未测,属第1期。 - 指标定义:recall@5对每个查询按top5命中的期望ID比例取宏平均;MRR取实际最多200条返回中的首个相关排名倒数、未命中为0。计时不含创建/重建;机器明细 `dist/v02-probes/recall-baseline.json` 不提交。 - 0.6验收:60≥50,固定合成语料、稳定ID、无个人数据;脚本输出recall@5、MRR、平均及分位延迟。 - A6/1:0.1基线自动化通过;0.2全项调查已记录、在线宿主入口认证未测;0.3扩展点contract自动化通过,KV实测/在线compact未测;0.4引擎隔离宿主自动化通过;0.5无公共embedding结论;0.6评测自动化通过。详细证据及限制均见各节。 - A6/2:未改现有CSS类名、配色或六页签结构。 - A6/3:新增写入仅临时合成库及gitignore的dist;无真实目录迁移,无须对个人库做恢复;临时库finally清理,旧库不接触。 - A6/4:无新增送模型路径,探针不调用模型,不存在绕过redacted的新请求。 - A6/5:未新增项目依赖;npm ci及npx asar下载用现有包管理网络,产品未新增外部请求。 - A6/6:生产数据格式不变,0.1.0继续可读;v2新目录的回滚兼容测试留第2期,不提前声称通过。 - A6/7:高优先级AUD-04留第1期修复;其他中低项、宿主入口认证、生产端到端请求/KV验证见审计及探针报告。当前无新增需产品拍板的行为选择。第0期保持0.1.0产品版本;0.2.0-alpha.1版本升级属于1.6。 ## 第1期 · 1.0 目录切换原子性 - 自动化通过:目标库的工具目录、Markdown警告、pending和jobs完整预检;原子写入settings成功后无await地发布新store/settings/jobs/pending,失败关闭候选连接并保留旧状态。设置、生成登记、API编辑/工具写入和事件待落库写入通过串行门避免切换期间并发提交。 - 回归覆盖:损坏JSON、结构非法pending/catalog、损坏Markdown、目标为同名文件导致不可写、有效目标预检后settings原子重命名失败、中文空格路径、并发切换顺序及切回旧库文件不丢。Windows管理员可绕过chmod,使用真实文件系统障碍确定性模拟拒写;普通用户ACL拒写实机未测。 - 构建、typecheck、14/14测试通过。AUD-04关闭(自动化通过);实机切库未测。本任务不改引擎/检索算法/数据布局,不增加模型路径或CSS变更。 ## 第1期 · 1.1 graph接口 - 自动化通过:空库空数组、真实会话/标签/项目/工具/正文引用关系、工具ID加tool:前缀避免冲突、scope/类型/项目/归档筛选、3000条默认截断1500、无悬空边;构建/typecheck/16项测试通过。 - 大组采用确定性稀疏邻接,同项目仅弱链(避免同项目全连接);返回的每条边均有真实依据。cluster计数来自全部筛选候选,truncated及total明确区分返回节点数与总数。增加cluster过滤用于大图钻取,limit上限5000。 - 9.3结构与空态/截断验收自动化通过;在线API和画布联动后续验证。没有索引变更、模型路径或磁盘迁移。 ## 第1期 · 1.2 Canvas图谱引擎 - 新模块:球体/力导向布局、空间命中网格、Canvas交互、簇聚合。白色渐变、DPR、球面经纬线、深度排序/透视、簇布局、大圆弧、惯性/自动旋转、选中朝前、网络降温、脉冲、拖拽缩放、邻居高亮及二阶展开。隐藏页面暂停,reduced-motion无持续帧。 - 自动化通过:`node scripts/graph-bench.mjs`(已安装Chrome无头、1000×600 CSS画布、DPR1,合成边,网络持续保持热模拟,约2.2秒/组):200节点球体140.16fps/网络144.05fps;1000节点球体144.08fps/网络143.97fps;3000输入聚合20个簇,球体144.32fps/网络144.04fps。1000节点两种布局均≥50fps;帧p95分别约7.4/7.5ms。结果依赖本机与合成边密度,不代表原生窗口所有设备性能。 - 截图与原始结果:`dist/graph-bench/{sphere,network}-{200,1000,3000}.png`、results.json(不提交)。reduced-motion停帧、选中跨布局保留自动化通过。构建/typecheck/16测试通过。 - 1.2当前引擎验收通过;节点列表/三处入口/详情联动在1.3–1.4接入后再验。没有外部库、Worker、CSP或CSS变量修改。 ## 第1期 · 1.3 三处入口与图谱界面 - 自动化通过:总览卡片、知识库列表/图谱、工具关系图接入同一GraphView;展开沿用wide modal;节点信息卡、搜索高亮、图例筛选、重置/PNG、等价可聚焦节点列表、聚合簇钻取。compact保留原快捷布局不插入大图。 - `scripts/ui-check.mjs`增加球体/网络截图与选中跨布局保留、展开检查;工具测试使用唯一合成名称,修复AUD-06重跑失败。真实dev载体11项UI检查通过,浏览器异常0;640px无溢出。构建/typecheck/16测试通过。 - 截图 `dist/screenshots/图谱-球体.png`、`图谱-网络.png`,大规模截图见graph-bench;只新增wx- CSS类,不改既有变量、导航或CSP。空图GraphView只渲染空状态。详情双向跳转留1.4。 ## 第1期 · 1.4 双向跳转 - 自动化通过:related接口返回真实相关知识和关联工具;工具详情关联显示标题并打开知识,知识反查工具;“在图谱中定位”切到知识图谱、选中目标并可回详情。focus参数保证旧条目不因默认截断遗漏;截断大图显式定位以最多300节点邻域样本展示并标明,不将局部当全量。 - `node scripts/ui-check.mjs`新增双向联动链,12项通过;单元覆盖截断范围外focus及双向关系,构建/typecheck/17测试通过。修正图谱可见标题及截图滚动位置。在线宿主验证在1.6执行。 ## 第1期 · 1.5 审计高优先级修复 - AUD-01(本次用户提升为高):state新增全库projects枚举,包含200条之外/归档独有项目;列表检索实现不变。 - AUD-02(高):跳过重复快照、无新增正文、索引修复成功均清理pending并持久化;生成成功原有清理不变。 - AUD-03(高):新增token保护jobs分页API(默认50,上限100)及日志页上/下页;state.jobs前100条仅保留兼容总览摘要。123条HTTP分页回归无丢失/重复。 - 自动化通过:构建/typecheck/20测试;更新隔离Playwright审计回归,项目漏项已消失、pendingRemains=false、损坏切库storeRootChanged=false且231条仍可查,日志第二页可访问,异常0。工具关联已归档知识也保留真实标题。 - AUD-04在1.0已关闭;未发现其他严重/高项。本期没有修改Store检索/引擎、无新增模型调用、CSS只增加wx-log-pages类。剩余中低项见审计清单。 ## 第1期 · 1.6 打包安装与最终验收(2026-10-25) - 自动化通过:版本与dsh.version同时更新0.2.0-alpha.1,构建、typecheck、22/22测试;打包 `dist/dsh-wanxiang-knowledge-0.2.0-alpha.1.tgz`,交付副本 `artifacts/dsh-wanxiang-knowledge-0.2.0-alpha.1.tgz`。旧0.1.0包保留。 - 实机通过(安装动作):2026-10-24 23:58(上海时间)调用官方桌面CLI安装成功。安装前本机接口明确返回138个会话全部running=false,无运行/排队落库;完整复制实际知识目录并逐文件哈希校验、备份settings及profile。备份路径 `dist/install-backup/2026-10-24T15-58-10-573Z/`,knowledge 1个文件;未读取/提交个人会话或凭据。安装器新增预检,未知会话状态、活动任务、备份不一致会拒绝;拒写备份等回归见测试。 - 安装一致性自动化通过:已安装package.json=0.2.0-alpha.1,index/panel/client/HTML/CSS/WASM六个构建文件SHA256与仓库一致。`scripts/installed-check.mjs` 在已安装Electron Node v24.18.1中导入**已安装包**,使用临时合成目录和独立HTTP载体,12项Playwright检查通过,包含两布局/三入口、双向跳转/定位、编辑、工具检测、窄屏和compact;这不是生产Host的端到端验证。结果 `dist/v02-installed/result.json`。 - **1.6生产宿主验收未完成**:运行中的Host未重载新服务端,旧地址graph接口仍404(前端磁盘资源已更新)。必须正常退出并重新打开Harness才能使服务端新代码生效,不把安装包替换成功当作在线运行成功。 - **侧栏入口未测;会话快捷按钮未测**:Windows工具的list_apps返回DeepSeek Harness正在运行但windows=[],launch_app后仍无目标窗口;list_windows中标题DeepSeek Harness的窗口实际上归属Codex,不能将其当宿主操作。独立Chrome访问根页要求Web认证;内嵌浏览器访问本机地址被ERR_BLOCKED_BY_CLIENT拒绝。没有绕过认证、误操作Codex窗口或强杀宿主进程。没有可用正常重启入口,需用户正常重开后继续核验。 - 最新性能复测(同1.2环境):200节点球体143.71 / 网络144.10fps;1000节点球体144.04 / 网络143.98fps(p95帧7.3/7.6ms);3000输入聚合20簇后球体144.48 / 网络144.02fps。缩减动画停帧、选中跨布局保留通过。非原生生产窗口fps。 - 两种布局截图:`dist/screenshots/图谱-球体.png`、`dist/screenshots/图谱-网络.png`(已安装包+合成隔离载体);各规模 `dist/graph-bench/sphere-{200,1000,3000}.png` 与 `network-{200,1000,3000}.png`。空库/知识库/工具详情/日志分页/375px见 `dist/v02-audit/`。截图均本机、不提交。 ### A6逐项自查 1. 1.0原子切库、1.1接口、1.2性能/布局、1.3入口、1.4跳转、1.5高优先级回归均有自动化通过记录;1.6安装通过,生产重载与原生入口**未测/未完成**,不可将整期宣称全验收完成。 2. CSS只增加wx-类规则;未改既有类名、配色变量或六标签导航。白色画布,无深色选项,未改CSP、CDN或blob Worker。 3. 产品写入格式沿用0.1.0;设置切换原子提交,失败保留旧状态;安装全库/配置备份并校验,旧包保留。新增临时合成库finally清理。本期没有目录迁移。 4. 没有新增送模型路径,未增加绕过redacted的模型请求。 5. 没有新增依赖、产品外部网络请求或图谱外部库;官方安装CLI按现有机制使用包管理器。 6. Store写入格式未变,旧文件测试继续通过;没有v2分片写入,因此本期不需要迁移。用0.1.0程序打开v2分片目录的证明仍留第2期,未测。 7. 剩余:生产Host需正常重启;侧栏/快捷按钮需在真实窗口验证;Windows普通用户ACL拒写未测;完整ID手输、待落库批量、全部屏幕阅读器测试未补。provider在线链路、真实compact、KV命中与生产注入日志落盘仍须第3期前完成。第2期questions[]与node:sqlite方向等待用户正式文档,本期未实现。 ### 本期改动文件清单 - 核心与接口:`src/service.ts`、`src/settings-switch.ts`、`src/mutation-gate.ts`、`src/workspace-data.ts`、`src/graph.ts`、`src/index.ts`。 - 界面:`src/panel.ts`、`src/style.css`、`src/panel/relations.ts`、`src/panel/graph/{aggregate,canvas,layouts,spatial,view}.ts`。 - 测试与脚本:`test/{settings,graph,workspace,install-preflight}.test.mjs`、`scripts/{audit-v02,graph-bench,ui-check,install-desktop,install-preflight,installed-check}.mjs`。 - 文档/版本/交付:`README.md`、`docs/审计清单.md`、`docs/测试报告.md`、`package.json`、`package-lock.json`、`artifacts/dsh-wanxiang-knowledge-0.2.0-alpha.1.tgz`。 - 两份用户需求文档仍未跟踪、未改动,由用户决定提交。 ## 第1期补验:正常重启与全新生产Host实测(2026-10-25) 本节更新前述1.6“生产未重载/原生入口未测”的历史状态,不覆盖原始记录。 - 实机通过:用户明确要求重启后,先由现有Host接口确认138个会话全部空闲、无落库任务。使用computer-use在真实DeepSeek Harness窗口“应用→退出”正常退出,确认旧进程消失后重新启动。新主进程42060、新Host42576,本机HTTP端口62922;没有强杀进程、卸载或更改个人会话。 - 实机通过:重启后 `graph`、`state`、`jobs?offset=0` 均200;生产空库graph返回0节点/0边/truncated=false,页面显示真实空态。原生侧栏“万象知识库”已实际点击,正常打开新版总览;右下角“会话落库”已实际点击,显示“会话知识库/本次会话”和当前消息范围,未点击真实会话生成按钮。 - 原生窗口工具部分时间将Harness窗口错误标注为Codex。此次依据操作系统进程42060的可执行路径、MainWindowHandle=1906204及实际截图确认它属于DeepSeek Harness后才点击;真实Codex窗口未操作。此前仅依据错误元数据判为无法操作的限制现已排除。 - 实机通过:新增 `scripts/restarted-live-check.mjs`,备份实际原知识目录/配置并确认空闲后,切到全新mkdtemp合成知识目录;使用专用新建合成会话(实际宿主Session/Zstandard持久化创建),连接**重新启动的真实Host**执行12项Playwright检查:空库、原文生成、两布局与选中保持/展开、搜索、编辑、工具登记检测、知识↔工具↔图谱定位、六页签、设置、窄屏和compact。浏览器异常0;graph实际包含知识/工具及tool_link边;jobs分页正常。非独立HTTP模拟载体,未调用provider。 - 实机通过:finally恢复原设置,原库除可重建index.sqlite外,正文/工具/来源/任务等全部文件哈希与测试前一致。合成知识目录保留在本机临时目录便于核查;合成会话未删除、不含个人资料。测试备份与结果均在gitignore的dist,无个人数据提交。 - 新证据:`dist/v02-restarted/原生-侧栏与空库图谱.png`、`原生-会话快捷面板.png`;`dist/v02-restarted/screenshots/图谱-球体.png`、`图谱-网络.png`及其余截图;`live-result.json`记录全新根目录/结果,pretest-backup子目录保留备份。 - 验收更新:1.6生产重载、面板图谱(空态与合成真实数据)、侧栏和会话快捷按钮均实机通过,第1期这几个遗留阻塞已关闭。图谱性能仍引用前述独立合成基准,未将原生窗口画面估算为fps;provider在线链路、真实compact/KV、生产注入日志仍属于第3期前待验证项。 - 本次只新增实机测试脚本并追加报告,无生产逻辑/数据格式/CSS/检索/版本变化;typecheck与22项测试再次通过。 ## 第2期 · 2.0 已安装包内SQLite验证(2026-10-25) - 自动化/安装环境实测通过:`node scripts/probe-installed-sqlite.mjs`将独立临时模块放在**已安装0.2.0-alpha.1插件物理目录lib内**,以该目录为cwd,由已安装Harness.exe Node模式执行。模块自身执行 `import('node:sqlite')`、FTS5建表、插入“synthetic 索引”、MATCH“索引”命中1条。Node v24.18.1,Electron44.0.0。脚本断言模块路径确在安装包内;finally移除该唯一随机模块,不改已安装入口或知识数据。 - 证据 `dist/v02-probes/installed-sqlite.json`;本次不再把仓库脚本位置当已安装包位置。边界:独立包内模块验证,不冒充生产Host已切换到新引擎;2.2后仍需生产包主入口能力降级测试。 - 2.0验收通过,可以进入2.1/2.2。新增bench前置骨架,未运行规模压测、未编造基准。无安装/重载、无模型请求或依赖变化。 - 兼容设计冲突待用户选择:旧0.1.0不递归扫描,不能原样读到新分片文件;2.6目录布局工作等待明确选择,不自行创建双份真相源。 ## 第2期 · 2.1 IndexEngine与SqlJsEngine - 自动化通过:抽出reset/index/search/flush/close契约,sql.js实现保留NFKC子串多词交集、updated降序、200上限及原索引路径。Store转为委托,未改变对外检索行为。build/typecheck/22测试通过。 - 用户已明确选择2.6“文档分片+平铺兼容副本”,增加冲突检测/同步测试;后续据此实施,不是实现者自行改变目录要求。 ## 第2期 · 2.2 NodeSqliteEngine - 自动化通过:node:sqlite动态导入、实际FTS5能力表、WAL与磁盘增量写入;同一套两引擎契约覆盖索引/归一化/特殊字符/过滤/归档/更新/分页/重建。原生打开失败及禁用均自动落sql.js,warning含“大规模场景受限”,沿用页面全局警告显示(日志页也可见)。build/typecheck/25测试通过。 - 此步骤仅切引擎,兼容search仍按原子串交集,FTS加权与中文分词在2.4,未提前以现有FTS默认分词宣称中文增强通过。降级提示不被切目录预检误判为损坏文件。 ## 第2期 · 2.3 MarkdownRepo与正文懒加载 - 自动化通过:Markdown读写拆至repo,Map正文为不枚举、不缓存的磁盘getter;只保留L0/L1/问法/元信息及有限引用ID。entry API显式读正文;graph使用预提取ID不再加载全库正文。外部正文哈希与expected保护保留,修订副本显式包含完整旧正文;默认字段只在读取时填充。 - `scripts/bench-memory.mjs`分离进程、100000条独立合成正文:全量Map heap716.48MiB/RSS915.15MiB;元数据Map heap180.60MiB/RSS361.84MiB,heap下降约74.8%。该比较仅Map保留集,不含完整应用/索引。最初试验因V8摘要/正则子串保留正文而失败,修正为独立短字符串后达到目标,未采用失败数值冒充优化。 - 新回归验证body getter不持有正文、磁盘修改按需可见、自动编辑拒绝覆盖外部更改。build/typecheck及全部测试通过;规模应用内存另在2.7报告。 ## 第2期 · 2.4 分词与FTS - 选用Intl.Segmenter预分词+中文2gram+unicode61。contentless_delete FTS独立title/l0/l1/questions/body/tags列,不在FTS另存原文;BM25权重10/6/4/8/1/3(questions低于title高于body)。hot查询不查body,默认排除失效。 - `node scripts/eval-tokenizers.mjs`,原60查询/20语料、未补questions:该方案关键词recall@5=100%、自然语言75%、总91.67%、均0.0681ms;trigram整短语匹配+不足3字子串回退:关键词60%、自然语言0%、总40%、均0.0296ms。对照实现是整短语trigram,不能推论所有trigram流水线必然同分。选择召回更高且两字词直接可查的方案。 - 自动化通过:questions列加权、热层排除正文、两字中文、危险FTS语法参数化、失效过滤;build/typecheck/27测试。原兼容search未改,SearchService在2.5接入。自然语言75%仍不达85%,待questions与改写补强,不删除样例。 ## 第2期 · 2.4b questions生成与补全 - B1/B3采用新模板wanxiang-v2-questions-1,加入完整用户口吻问法要求(现象/报错/意图、不得同义标题、不得发明场景);新产物写入L0/L1/questions。缺失降级并标metadataPending,不因缺失整次失败;非法摘要类型/越界拒绝,问法最多5/每句60字、丢弃非字符串。 - 新增MetadataJobs:日志页明示发送知识正文、手动开始/继续/暂停,每批20、空闲执行、checkpoint按模板+generatedHash+正文哈希,保存修订并仅补元数据。中断、模型非法结果、期间外部修改均不覆盖正文。全部新增输入/标题/输出经redacted。 - 自动化通过:29测试含缺省/越界/非法JSON/伪seq、脱敏、忙碌暂停、20+1断点续跑、手工正文与generatedHash不变。实际provider生成质量未测,固定模型替身仅证明代码路径和字段校验;召回评测的合成问法不是provider成功证明。 ## 第2期 · 2.5 SearchService、改写与检索页 - 自动化通过:谓词/失效过滤,原子串候选与FTS BM25融合排序,规则分词/实体抽取、.wanxiang/aliases.json双向别名扩展;可选模型改写明示发送查询,800ms超时/非法输出回退;query/keywords均脱敏。结果含score/matchedBy=keyword/tier/valid/source,绝不冒充semantic;向量Off。候选上限1000并显式truncated,候选内分页。旧无mode API保留数组兼容。 - 检索页新增三模式、失效开关、智能改写开关、别名JSON配置、命中元信息/分数、转义后高亮、上/下页;六标签/CSP不改,CSS只加wx类。 - 固定评测80查询(原60不删+20条问法与标题不同),合成语料20条各3条独立问法,未使用外部个人内容或运行时答案注入。原算法在同80查询:关键词40条recall@5=100%、MRR0.9875;改写40条=0%、MRR0;整体50%、MRR0.49375。新hybrid:关键词100%、MRR0.9875;改写100%、MRR0.975;整体100%、MRR0.98125,均0.356ms/p95 0.709ms。原60基线仍为66.67%/0.658333,不能把新增样例导致的分母变化误写成旧算法退化。 - 这些是小型人工合成回归,问法也为合成文本,不是盲测或在线模型效果承诺。原样本均保留,无阈值放宽/删除难例。分词单独对照数据在2.4。 - build/typecheck/31测试通过,含别名、问法、分页无重复、默认失效过滤、深度层级、模型超时与脱敏。真实模型改写质量及升级后生产界面尚未测。 ## 第2期 · 2.6 分片、平铺兼容副本与可撤销整理 - 按用户本轮明确选择实现:新note按年月、新card按项目分片,保留顶层同内容兼容副本;sources新写入按年,根wanxiang.json标schemaVersion2。旧平铺文件不自动搬迁,递归读取;mirrors.json记录主/副本及共同哈希,去重不重复索引。单侧手改重建时先备份再同步未改侧,双方均改且不同即warning/拒绝写入,不静默选胜者;副本ID冲突拒绝。 - 设置中“预检整理目录→备份并整理→撤销最近目录整理”。复制/配置采用文件事务,写入前备份原内容;中途失败回滚已写文件;撤销前核对整理后哈希,有后续手改则停止撤销。旧文件保持顶层兼容副本,不删除用户正文;不在真实库测试迁移。 - 自动化通过:从仓库artifacts的**实际0.1.0 tgz解包并导入旧Store程序**,对临时v2分片库读出完整正文、不报错/不丢条目;旧程序手改后新版本重建同步,双改内容分别保留。整理预检零写入、执行/撤销恢复原始文件、后续修改拒绝撤销、模拟副本提交失败恢复两文件及清单。 - 自动化通过:关闭并删除index.db后启动重建,entries数量/FTS查询/relations与删除前一致;relations从Markdown引用/项目/标签/来源及工具目录流式重建,tool:命名不变。read时新增缺省字段不立即回写旧文件。build/typecheck/35测试通过。 - 风险:平铺兼容副本增加磁盘占用与镜像清单写放大;这是用户批准的兼容取舍。整库大量文件整理、Windows断电后的跨文件事务恢复尚未实机注入;本实现具备同步异常回滚与持久备份,不能声称跨文件rename为物理原子提交。双改冲突需人工处理。 ## 第2期 · 2.7 三档原生FTS基准 - 自动化通过:`node scripts/bench.mjs`,Node v24.19.0,每档独立子进程/临时磁盘库,实建全部记录并运行40条宽泛/选择性查询;数据为合成内容,临时库finally清理。输出 `dist/bench/index-{10000,100000,1000000}.json`。 | 条数 | 建索引秒 | 查询p50 ms | 查询p95 ms | 选择性p95 ms | 宽泛p95 ms | RSS MiB | JS heap MiB | | --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | | 10000 | 0.460 | 0.474 | 5.995 | 0.215 | 6.466 | 65.79 | 8.19 | | 100000 | 4.800 | 0.678 | 70.035 | 0.568 | 70.507 | 85.28 | 10.97 | | 1000000 | 62.003 | 0.897 | 714.495 | 0.737 | 735.864 | 240.67 | 63.39 | - 范围:包含分词及磁盘索引插入,查询为引擎FTS;不包含百万Markdown/兼容副本创建、常驻元数据Map、完整SearchService子串候选扫描或模型。不能把这些内存数值称为完整插件内存;10万条Map测量另见2.3。百万条宽泛词p95超过700ms是实际瓶颈,不隐藏失败或只报选择性查询。 - 规模测试发现反复prepare可避免,原生引擎缓存参数化语句,reset时清空;能力探测同时验证contentless_delete所需选项,缺失仍降级。无新依赖/模型路径。 ### 第2期 · 2.5收尾补验 - 自查发现6.4时间谓词遗漏,已补updatedAfter/updatedBefore参数与日期控件;精确及FTS两路在候选截断之前按有效状态/更新时间过滤,legacy无mode接口默认不变。切换查询/筛选重置分页。两引擎同套契约补日期与失效检查,SearchService非法日期拒绝。 - 自动化通过:build/typecheck/35测试;新版本隔离开发载体15项Playwright通过,涵盖既有图谱/编辑/工具/快捷面板和新增三模式、日期、别名保存后恢复、补全发送说明、整理预检取消;无浏览器异常。未调用provider,未触及真实库。截图 `dist/screenshots/第2期-检索.png`、`第2期-整理预检.png`,保持浅色六标签。 - 最终谓词修复后重新评测80条:关键词recall@5=100%/MRR0.9875、改写100%/0.975,整体MRR0.98125,与2.5无退化;均0.341ms/p95 0.606ms。补验控件布局并再次通过15项UI检查。 ## 第2期交付 · 0.2.0-alpha.2与全新生产实测(2026-10-25) - 自动化通过:package与dsh.version/锁文件/面板版本统一alpha.2;build/typecheck及35/35测试通过。交付包 `artifacts/dsh-wanxiang-knowledge-0.2.0-alpha.2.tgz`(SHA256 `550ad2ea05b8dd09736f483f6239d12fc4af4f7404fec961aae8ae891bb6b157`),保留0.1.0及alpha.1。 - 实机通过:安装前139个会话全部明确空闲,无落库任务;完整备份原知识目录和配置,哈希核对通过。备份 `dist/install-backup/2026-10-25T03-49-41-901Z/`,随后官方CLI安装alpha.2。没有卸载、迁移真实知识或自动发送个人正文。 - 安装环境通过:已安装包构建文件哈希与仓库一致,在Harness Electron Node24.18.1从包主入口创建服务,engine=node:sqlite/fullText=true,15项UI检查通过(独立合成载体)。证据 `dist/v02-installed/result.json`。 - 实机通过:再次确认空闲,由真实窗口应用菜单正常退出旧主进程42060;启动新主进程42376、Host23588、本机60978。新生产Host在全新临时合成根运行15项UI检查,通过模式/日期/别名、整理预检、生成/编辑/图谱/双向定位/工具/窄屏/compact,浏览器异常0;生产search接口engine=node:sqlite。finally恢复原设置,除派生index.sqlite/index.db及WAL/SHM外,原库内容哈希完全一致。证据 `dist/v02-phase2-live/live-result.json`,providerCalls=0。 - 实机通过:重启后实际点击原生侧栏“万象知识库”,显示真实空库与0节点;实际点击“会话落库”,显示“本次会话”面板。没有对真实会话生成。截图 `dist/v02-phase2-live/原生-侧栏空库.png`、`原生-会话快捷入口.png`。工具仍错误标注窗口所属App,操作前已核对Windows进程路径和MainWindowHandle=67704248,激活后截图确认是Harness,不操作真实Codex窗口。 - 界面截图:`dist/v02-phase2-live/screenshots/第2期-检索.png`、`第2期-整理预检.png`、`图谱-球体.png`、`图谱-网络.png`;已检查检索截图,浅色卡片与六标签保留。 - 图谱本期复测(独立Chrome合成画布1000x600/DPR1,非生产窗口fps):200节点球体143.36/网络144.10fps;1000节点144.05/144.02fps;3000输入自动聚合20簇后144.27/144.03fps。p95帧7.1–7.4ms。减少动画停帧/跨布局选中保留通过;数据 `dist/graph-bench/results.json`,截图 `sphere-{200,1000,3000}.png`、`network-{200,1000,3000}.png`。 ### A6逐条验收自查 1. **2.0:安装环境实测通过**,包内模块导入及FTS5建表,后补新包主入口与全新生产Host均验证原生引擎。**2.1/2.2:自动化通过**,抽象/两引擎同套契约/失败降级,原有测试保留。**2.3:自动化通过**,正文懒加载与外部改动保护,10万条独立进程Map内存见2.3,未把Map或引擎独立数值冒充完整应用。**2.4:自动化通过**,分词对照、两字词、独立questions列。**2.4b:自动化通过**,生成字段/批次20/取消/续跑/备份/忙碌暂停;真实provider质量未测。**2.5:自动化与生产合成实测通过**,模式/分页/谓词/超时/别名/安全高亮;80条固定查询关键词不退化、自然语言100%≥85%,非盲测。**2.6:自动化通过**,实际旧包读取、双向冲突、失败回滚/撤销、索引删除重建三表一致;真实库不做迁移。**2.7:自动化通过**,三档全记录实建数据见表;百万Markdown全链路未测。 2. 未修改已有CSS类名、配色变量或六标签结构,仅新增wx类规则;CSP未放宽,新前端打入panel.js,无CDN、外部图谱库或blob Worker。 3. 新写入路径包括分片/兼容副本、mirrors、schema标识、元数据checkpoint/修订、别名及整理事务备份。预检/备份/异常回滚/冲突与撤销回归通过;新增数据均在选定本地库。跨文件断电事务不宣称物理原子性。 4. B1/B3以及可选模型查询改写的新增输入均经redacted,新增问法/摘要/查询关键词输出经redacted;资料提示词均明确不遵循输入指令。未启用第3期知识注入,没有新增绕过脱敏的送模型路径。 5. 没有新增依赖、模型下载或向量实现。产品仅通过已有宿主generate能力调用模型;安装CLI依原有机制使用包管理器,测试未调用provider。 6. 实际0.1.0程序读取v2新目录安全的测试已通过:分片按用户选择维护顶层兼容副本。单侧编辑先备份再同步;双方改动不静默覆盖。旧版本自身不能直接递归扫描的代码事实未改变。 7. 遗留/风险:百万宽泛FTS查询p95约736ms;完整SearchService子串候选扫描与百万Markdown/镜像清单写放大未测,不能以FTS数据保证整体时延。双副本增加磁盘占用,双改需人工处理;大规模目录整理和断电恢复未实机注入。真实provider的questions/查询改写效果、实际压缩后行为、KV cache、生产注入日志落盘仍未测;后3项须第3期前验证。本期没有额外待产品决策项,兼容副本方案已按用户明确选择执行。 ### 第2期改动文件清单 - 引擎/检索:`src/{index-engine,sqljs-engine,node-sqlite-engine,engine-factory,tokenize,search-service,query-rewrite}.ts`。 - 存储/任务:`src/{markdown-repo,storage-layout,storage-transaction,storage-reorganize,relations,knowledge-prompts,metadata-jobs}.ts`;接入 `src/{store,service,types,settings-switch,index,graph}.ts`。 - 界面:`src/panel.ts`、`src/panel/search-view.ts`、`src/style.css`。 - 评测/验证:`scripts/{probe-installed-sqlite,bench-memory,bench,eval-recall,eval-tokenizers,ui-check,installed-check,restarted-live-check}.mjs`。 - 用例:`test/{engine,metadata,questions,search,tokenizer,compat,core,workspace}.test.mjs`、`test/fixtures/recall-eval.json`。 - 文档/版本/包:`README.md`、`docs/测试报告.md`、`package.json`、`package-lock.json`、`artifacts/dsh-wanxiang-knowledge-0.2.0-alpha.2.tgz`。 - 两份用户需求文档仍为未跟踪文件,没有代替用户提交。dist/.dev-data/个人目录均未纳入版本库。 ## 第3期 · 3.0 生产注入点阻塞项验证(2026-10-25) 本任务仅新增显式启用的独立临时探针,不把召回功能提前接入产品。已安装产品仍为alpha.2。探针插件只对自己创建的wanxiang-probe3-*会话返回文本,interpolate:false;HTTP使用随机本机令牌,默认源码apply不注册任何内容。代码、日志和测试不含个人会话内容。 | 验收 | 结论与边界 | | --- | --- | | a 在线provider | 实机通过:真实生产Host中注册动态section,实际请求的模型回答精确回出随机标记WX_PROBE_A_5419、WX_PROBE_B_7426;不是替身LLM或手工模拟请求。重复相同标记的一个回合回答NONE,也如实保留,不能把模型总能正确理解引用资料作为保证。 | | b 真实compact | 实机通过:另一独立合成会话3次长输入,provider返回context用量累计约10万tokens;调用宿主compaction.compactNow实际生成摘要,持久记录compaction/start seq42、summary seq44、end seq46,compacted=true。下一轮section重新生成WX_AFTER_COMPACT_D_4545,模型实际回出该新标记,不假设旧注入永久存在。 | | c KV cache | 实机通过(只记录观测):同标记重复回合cacheReadTokens=81152;切换标记B=81280;长会话compact前=81536,compact后=10624。宿主normalized usage另有inputTokens/outputTokens,不用它们随意推断计费或命中率。没有零影响承诺;压缩和系统上下文变更都可能改变前缀。 | | d 生产事件落盘 | 实机通过:每次read先sessions.flush,然后sessionPersistence.open(id,'read'),从实际session.v4.jsonl.zstd读回system/message、assistant/message及compact事件;并非只读内存snapshot。原始证据仅存dist/phase3-probes。 | | e 能力消失 | 自动化通过(探针注册契约):默认零注册;systemPrompt缺失、section缺失、section抛错三种情况不崩,effectiveMode=hint且返回“宿主注入能力不可用,已降级为仅提示”。产品级同样回退仍须3.1接入后再测,不冒充本期alpha.2已具备自动召回。 | ### 时序事实与产品选择 - 实际事件顺序:prompt-admission → agent/inbox/spliced(inserted用户消息) → turn/start → inbox claim → section → pre-step → user/message持久追加。section上下文中的inbox此时已被claim为空,不能在那里读取nextTurn作为当前消息。 - 已观测入队到section约2.4–3.3ms;user/message晚于section约29.5–36.5ms。因此仅监听user/message预计算无法赶上本轮第一步。pre-step同样太晚,不能期待它触发同一步重组system。 - 用户本轮明确选择:提前监听入队事件,隔离线程异步计算;section只读缓存,未就绪跳过该步,绝不等待。接受首步可能无注入,禁止将上轮结果冒充当前轮。后续实现须关联入队消息ID及最终user seq,按会话隔离、查询变更失效。 ### 真实模型质量补验 - 实机通过:同一已配置provider对合成pnpm案例运行B3,约2167ms,生成5条用户问法、L0/L1均通过字段校验,保留“脚本可信且可手动执行、跳过不等于完整成功”的限制;仅一个样本,不能代表普遍质量。 - B5真实调用约2673ms,返回6个合法关键词;其改写将“再检查”扩成“重试检查”,存在轻微意图扩张。单模型调用已超过200ms召回预算,自动召回默认纯规则;保留显式智能改写开关时也必须在总预算内中止,不能等待800ms再影响发送。 - 以上仅合成资料实际provider调用。真实历史留出将独立处理,不把这些输出当真实历史评测或阈值依据。 ### 失败记录、数据保护与未测 - 初次控制器调用漏传显式AbortSignal,在provider前失败,已修正。一次直接追加assistant/message的合成seed缺少合法turn/step,导致该专用探针会话重放失败;未使用其compact结果,保留失败证据。后续改用新的合成会话和实际模型轮次完成compact。源码seed已改为仅追加合法user消息,但修正后的seed尚未再实机使用。 - 安装/重载前完整备份且确认139个既有会话空闲;测试前切到全新临时知识根,避免生产turn/end登记污染真实知识。测试后恢复原设置并核对原库内容哈希一致。个人会话未发送给provider、未更改、未提交。 - 临时探针原始访问令牌存用户DSH_HOME,所有证据/私有恢复记录在gitignore的dist。探针将在产品安装前移除,失败的自建合成会话在宿主停机后移出活动会话目录保存证据。 - 3.0未证明未来RecallService的首步覆盖率、真实历史阈值或硬超时;这些属于3.1–3.5,不能用探针同步标记的成功替代。 ## 第3期 · 3.1 三档与同步缓存边界 - 自动化通过:新增RecallService、三档设置、interpolate:false注册、宿主能力缺失/抛错回退仅提示并在页面给出警告。关闭不启动查询/不产生召回记录;首次确认前不发送摘要、不开始召回查询。设置明确自动注入和智能改写的数据发送范围。 - 入队消息先异步预计算,自己维护next-turn/next-step投影;只有claim取走的真实用户消息才切换active,未来排队消息不会污染当前轮。临时关联键为会话ID+消息ID/入队seq,user/message真正落盘后绑定最终用户seq,记录可追踪两阶段身份。section未就绪直接空字符串,不查库、不读正文、不调用模型、不等待。root切换/配置修改会撤销旧缓存和任务。 - B6模板只取L0及元信息,引用资料标记、redacted、XML转义、整体条目预算;恶意闭合标签/字面大括号/凭据/损坏摘要有回归。无外部库,CSS只加wx-recall-settings,六标签不变。 - build/typecheck/40测试通过,含产品级section能力缺失/注册抛错、隐私门控、关闭、未就绪、跨会话/跨轮隔离、屏蔽项目与字符预算。当前查询执行器仍为空接口,实际隔离检索在3.2接入;不把本提交称为完整自动召回实机验收。 - 阈值0.65仅开发占位,未正式标定/未安装上线。用户表示正在制作真实知识库,真实留出评测与正式阈值等待用户准备完成;不以弱标签或合成评测替代。 ## 第3期 · 3.2 隔离查询、硬截止与规模基准 - 重要失败证据:最初尝试Worker.terminate,Promise在期限内返回,但同步node:sqlite原生SQL仍在跑,测试进程无法正常退出。原测试只看Promise属于假阳性,已修正;本机DatabaseSync原型没有interrupt/progress handler。该线程方案未提交为已通过。用户本轮明确批准改用可强制终止的独立子进程,接受内存/冷启动开销。 - 自动化通过:RecallProcessPool采用原生子进程IPC,windowsHide:true;查询槽硬截止150ms(包含该槽冷启动)、总搜索190ms及缓存外层200ms;超时/取消直接SIGKILL(Windows TerminateProcess),不重试,不在section等待。真实十亿行递归SQL已启动后被终止,测试等待exit并验证PID不存在;主进程5ms心跳继续。原生/WASM两引擎的隔离热层测试均通过。 - >500000条默认仅title/l0/questions、候选20;常规100候选。连续两次超时后本次放弃、下一轮仅窄列关键词10候选并关闭模型改写,成功后恢复。过短/纯确认/纯命令写明确跳过原因。查询含当前消息、cwd、最近两条实际用户要点;只同文本、同上下文、同库revision才允许5秒复用,消息变化重新计算。库变更、切目录、取消和配置变化不能沿用旧结果。 - 分词/别名/置信度计算全部在子进程,不在宿主同步扫描正文;索引entries增加L0/questions元数据列供隔离热层评分,不新增知识正文写入。降级sql.js也在隔离进程内,保持无FTS并提示规模受限。原关键词/混合检索80条复测recall/MRR无退化(整体MRR0.98125)。 `node scripts/bench-recall.mjs --run`,每档40次,实际RecallSearch+IPC+规则/FTS/评分,包含冷启动和超时;每档真建全部索引。结果 `dist/bench-recall/{10000,100000,1000000}.json`: | 条数 | p50 ms | p95 ms | p99/最大 ms | 成功/尝试 | 超时放弃 | ≤3ms就绪(仿真) | 最近成功子进程RSS MiB | | --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | | 10000 | 8.90 | 17.91 | 187.11 | 39/40 | 1 | 19/40 | 56.61 | | 100000 | 79.58 | 90.91 | 98.37 | 40/40 | 0 | 19/40 | 57.48 | | 1000000 | 102.40 | 161.60 | 162.65 | 20/40 | 20 | 0/40 | 46.71 | - 10万条p95≤200ms通过;百万条不是“检索全部成功”,20次超时全部不注入,尤其宽泛查询仍是瓶颈。3ms列按实际完成时间计算,仅仿真之前测出的时序窗口,**不是生产首步注入率**。RSS为最近一次成功查询时子进程观测,不是峰值/完整插件内存。索引创建/Markdown/常驻Map不在检索时延内。 - 当前变更build/typecheck/44测试通过;产品包尚未安装,真实生产自动召回链路仍待安全安装后验证。正式阈值与真实留出按用户要求等待新知识库准备完成。 ## 第3期 · 3.3 召回日志、可见性、反馈与屏蔽 - 自动化通过:每轮记录脱敏查询、会话/用户seq、原因、候选/注入ID、耗时、未就绪跳过步数、降级模式与候选预算。section只排队写日志;异步原子写`.wanxiang/recall-log/.json`,再投影到recall_log表。删除index.db后从独立日志恢复表,索引重建不丢反馈。写失败出可见warning;路径ID严格校验。两引擎均可投影表。 - 自动化通过:分页25条无重复丢失,反馈与后续状态写并发时不擦掉用户反馈;有用/无用可撤销为none。条目/项目屏蔽在设置持久化,当前引用复制与后续注入均重查有效/归档/屏蔽。回答里实际出现ID才标cited,不把模型忽略或自动引用次数当用户“有用”投票。 - 界面自动化通过:日志页“召回记录”、会话快捷面板“本轮知识引用”,条目详情、有用/无用、屏蔽、复制引用;首次隐私确认未勾选不能启用自动注入。`scripts/ui-recall.mjs`使用独立临时合成根覆盖确认/分页/反馈/复制/项目屏蔽/compact/640px,浏览器异常0,providerCalls=0。旧15项UI检查也通过。截图`dist/phase3-ui/召回记录.png`、`隐私与屏蔽设置.png`、`会话本轮引用.png`(已视觉检查后者)。时间按上海显示,六标签/浅色/CSP不改。 - build/typecheck/45测试通过。本项生产Host实测未测:还未安装召回新包,当前用户正在制作真实知识库,先完成隔离验证,不擅自重启或使用真实资料标定。真实留出与正式阈值继续等待用户。 ## 第3期 · 3.4 模型工具渐进披露与时间线 - 自动化通过:knowledge_search默认L0,支持detail=l0|l1|l2及mode=exact|hybrid|deep;knowledge_read正文最多12000字符;knowledge_timeline按项目/更新日期/有效状态过滤、offset/limit分页。默认摘要路径不读取body(getter回归);返回整体JSON≤24000字符,超预算减少条目,附引用资料声明。 - 全部工具返回序列化后经redacted并转义尖括号/与号,避免资料标签闭合与常见凭据漏入新增送模型路径;B8描述全部明确引用资料、不是指令。向量仍Off,无新依赖。 - 实际安装Harness Electron中工具schema检查曾拒绝minimum/maximum关键字:宿主仅支持更小子集。这是代码事实优先,已改为description说明范围+代码侧范围控制。四工具真实schema/output.render验证通过,实际Zstandard持久化适配仍通过;非生产运行Host注册验证,不冒充已安装新包。 - build/typecheck/46测试通过,包含L0/L1不读正文、L2截断、输出预算、timeline过滤分页、缺失ID/非法detail/非法日期拒绝、凭据与闭合标签脱敏。生产新工具调用未测,暂未安装新包。 ## 第3期 · 3.5 合成策略评测(真实留出待用户准备) - 新增`scripts/eval-recall-policy.mjs`,只读取仓库合成fixture,不自动发现/读取任何私人会话或真实知识目录。保留原80正查询,增加20条合成无关负查询;跳过/超时均计入漏召。定义写入报告,原始结果`dist/phase3-eval/synthetic-policy.json`。 - 这是**自动注入阈值后的热层策略评测**,不是第2期完整检索页Recall@5,也不是实际首步注入率。热层不查body、短查询按规则跳过,因此不能沿用检索页100%: | 开发阈值 | recall@5 / MRR | 误注入率 | 漏召率 | 无关负查询注入率 | | --- | ---: | ---: | ---: | ---: | | 0.30 | 66.25% / 0.6625 | 5.45% | 33.75% | 0% | | 0.50 | 43.75% / 0.4375 | 0% | 56.25% | 0% | | 0.65(代码占位) | 23.75% / 0.2375 | 0% | 76.25% | 0% | | 0.80 | 15.00% / 0.1500 | 0% | 85.00% | 0% | | 1.00 | 12.50% / 0.1250 | 0% | 87.50% | 0% | - 误注入率定义为“阈值后注入列表包含任一非相关ID的查询数 / 有注入的查询数”;漏召率为“没有任何正确注入ID的正查询数 / 所有正查询数”;本fixture每个正查询均1个相关ID。负查询来自明显不同领域,不能据0%推断真实困难负例表现。 - 本结果暴露开发阈值0.65漏召偏高;**没有据合成数据调低阈值来冒充正式标定**。真实知识库尚在用户制作,用户明确要求等待;真实留出recall@5/误注入率/漏召率均**未测**,正式阈值与第3期上线验收未完成。 - 当前只完成评测工具及合成对照,3.5不能标整体完成。真实模型B3/B5单样本见3.0;B5约2673ms,因此默认规则。第2期检索页评测仍100%/MRR0.98125,不能把不同策略口径混写。 - 补充测试稳定性:并行全套曾出现子进程冷启动未完成就被200ms预算终止,不能证明SQL实际已开始。已将专门中断测试改为先握手预热,再启动真实慢SQL并核对started/exit/PID消失;冷启动预算仍由规模基准原样保留。没有放宽产品150/190/200ms预算。 ## 第3期阶段收尾 · A6自查(等待真实知识库,不代表整期完成) 1. **3.0:实机通过a/b/c/d,e自动化通过并已接产品回退。** 请求/真实compact/缓存统计/生产日志均见3.0证据;不宣称KV零影响。**3.1:自动化通过,产品生产新包未测。** 三档/隐私/引用转义/缓存只读边界/跨轮与root失效有测试。**3.2:自动化通过及三档基准完成**,子进程硬杀与PID消失验证;10万条p95约91ms、百万条20/40超时弃用。实际首步注入率未测,不用3ms仿真代替。**3.3:自动化与隔离UI通过**,生产新包未测。**3.4:自动化及已安装Harness运行时契约通过**,生产新工具实际调用未测。**3.5:仅合成策略评测完成,真实留出/正式阈值未测**,按用户制作新知识库的要求等待。 2. 保留已有CSS类名、配色变量与六标签,仅新增wx-recall类;同步section不查库/不等Promise/不调用模型。前端新增代码进入panel.js;Node子进程脚本是服务端文件,不是浏览器Worker,不改CSP、不使用blob/CDN。 3. 新写入有settings.recall、.wanxiang/recall-log/*.json及可重建recall_log表,日志脱敏、原子写、持久反馈、重建恢复有测试;知识正文和兼容副本不因召回修改。测试全部合成,真实目录已从探针临时切换恢复并核对内容哈希。未进行真实目录迁移。 4. 引用模板、可选模型查询改写以及新增工具返回均经过redacted;资料尖括号/XML字符转义。B3/B5真实质量只用合成资料实际provider调用,不曾把用户真实历史发给模型。 5. 没有新增依赖或向量模型。自动召回纯规则留在本机,用户明确同意后摘要才经宿主模型发送;智能改写显式开关,默认关闭。进程方案由用户明确批准,带来额外内存与冷启动成本,已报告。 6. 实际0.1.0兼容、镜像单侧同步/双改拒绝、整理撤销与三表重建回归仍通过;召回不重写旧Markdown,独立日志被旧程序忽略。 7. **当前限制/待决策:** 无新增产品决策问题;真实知识库完成后才开展本机留出评测,正式阈值未知,0.65仅开发占位且合成漏召76.25%。新包尚未发布/安装,产品版本和交付包仍alpha.2。下一次安装前须再次确认宿主无运行会话并完整备份;安装后的实际事件时序/首步覆盖、两档实际文本可见性和宿主能力回退仍要端到端复测。 ### 补充运行时与界面验证 - `scripts/runtime-recall.mjs`在已安装Harness.exe Node模式(v24.18.1/Electron44)实测创建隔离子进程,IPC返回实际FTS结果与confidence=1;冷启动67.09ms,子进程RSS41.65MiB。是源码构建在宿主运行时的隔离合成检查,**不是已安装新包生产验收**。 - 页面在快捷面板/日志可见时每1.5秒更新召回区块,编辑或弹窗期间不打断输入。`scripts/ui-recall.mjs`再次通过,截图位于dist/phase3-ui。原15项UI检查亦通过。最终build/typecheck/46测试通过。 - 第3期临时生产探针仍注册于当前宿主,仅对自建wanxiang-probe3-*会话返回标记,不作用其他会话;它不是发布产品的一部分。因用户正制作知识库,未擅自再重启/移除活动会话。正式安装前须卸载本次自建临时探针、重载并确认注册撤销;早期失败的自建合成会话也需在安全停机后移出活动目录,保存证据。个人会话与其他插件不得动。 ### 当前改动文件清单 - 召回:`src/recall-{options,template,service,query,search,process,process-pool,log,api}.ts`。 - 界面/工具:`src/panel/recall-{settings,view}.ts`、`src/knowledge-tools.ts`、`src/panel.ts`、`src/style.css`。 - 接入:`src/{index,index-engine,node-sqlite-engine,sqljs-engine,store,service,settings-switch,types}.ts`、`scripts/build.mjs`。 - 验证:`scripts/{build-injection-probe,bench-recall,eval-recall-policy,runtime-contract,runtime-recall,ui-recall}.mjs`;`scripts/probes/{production-injection,run-production-injection,production-fixture}.mjs`;`test/{injection-probe,knowledge-tools,recall,recall-log,recall-process}.test.mjs`与`test/fixtures/blocked-sql-process.mjs`。 - 文档:`README.md`、`docs/注入点验证.md`、`docs/测试报告.md`。两份用户需求文档仍未跟踪,不替用户提交;dist下真实运行证据、临时访问令牌、恢复清单均不进仓库。 ## 2026-10-25 图谱观感调整(真实知识库只读预览) - 观察:生产面板返回 608 个真实节点、4 个簇(300 / 267 / 21 / 20)。固定球冠把大簇挤成团,degree >= 12 的标题同时绘制形成黑块,网络默认缩放还会裁切边缘节点。 - 调整:球面按簇成员数量分配完整 Fibonacci 点集,保留簇聚拢与工具赤道带;标题按关注优先级及关联度挑选,增加碰撞避让、画布边界和数量上限;缩小高关联节点半径,中大图仅给关注节点光晕;网络预收敛并按实际范围等比适配,切换布局不重复扩张。 - 真实库只读预览:自动化通过。两种布局均 608/608 节点在初始画布内,当前画布各显示 10 个标题;原生产页面仅用于读取和截图,新引擎在隔离浏览器页面替换画布预览,未安装、未重启宿主、未修改知识内容或关系。截图与临时数据位于被忽略的 dist/graph-visual,不进入版本库。 - 截图:dist/graph-visual/before-sphere.png、before-network.png;调整后 preview-sphere.png、preview-network.png。 - 自动化:npm run build、npm run typecheck、npm test 全通过(48/48)。新增不均衡双簇 200/1000 节点球面覆盖、ID 完整与不重合测试,以及密集标签边界、互不重叠、数量上限回归。 | 合成输入节点 | 实际显示节点 | 球体 fps | 网络 fps | |---|---:|---:|---:| | 200 | 200 | 143.77 | 144.55 | | 1000 | 1000 | 144.53 | 144.43 | | 3000 | 20 个聚合簇 | 144.42 | 144.06 | 环境:本机 Headless Chrome、1000×600 CSS Canvas、DPR 1;网络持续唤醒模拟,不以空闲停止绘制作为性能。数据见 dist/graph-bench/results.json。帧率受本机显示刷新节奏影响,不代表所有设备。 按第 9.8 节核对: - 空库无假节点:自动化通过(现有 graph 空数据测试)。 - 200/1000/3000 性能,1000 >= 50fps,3000 聚合:自动化通过。 - 切换布局保持选中:自动化通过(graph-bench);筛选相关逻辑未改,当前轮浏览器筛选回归未测。 - reduced-motion 无持续动画:自动化通过(graph-bench)。 - 点击打开详情及详情定位:本轮安装实机未测,当前宿主仍使用原安装版本;未改跳转代码。 - 两种布局截图:自动化通过,见上述路径。 遗留限制:同类型节点颜色仍一致;真实关系非常密集时,缩小视图仍可能存在前后节点投影重叠,需悬停、放大或展开查看。新视觉尚未安装生产;这次只调整呈现,不改变知识聚类和关系语义。 ### 2026-10-25 图谱调整已安装并完成重启实测 - 安装范围:以当前已安装 alpha.2 为基础,使用 ed1992f 的面板源码叠加 fefef0b 的 canvas/layouts/labels 三个图谱模块,重新打包 panel.js;其余安装包文件复制原安装版本。index.js、client.js、panel.html、style.css、sql-wasm.wasm 哈希均保持原值,未将尚未验收的第3期功能安装上线。版本仍为 alpha.2;本次包通过独立内容哈希固定文件安装。 - 安装前实机通过:全部 141 个会话明确空闲,无运行或排队落库任务;完整备份 1481 个文件且逐文件哈希一致,备份目录 dist/install-backup/2026-10-25T06-32-13-599Z(包含 knowledge 与配置备份,忽略不提交)。安装前、正常退出前均重复确认空闲。 - 安装与重启实机通过:scripts/install-desktop.mjs 安装成功,随后通过 Harness 应用菜单正常退出并重新启动,未强杀进程。新生产 Host 为 127.0.0.1:64178;生产 /wanxiang/assets/panel.js 与本次安装包逐字节哈希一致,SHA256 为 5f753ffe05503b30995a1a888c60ecd77f7f8168278479ecb2b26684bf4cd432。证据 dist/graph-install/production-hash.json 与 package-evidence.json。 - 原生窗口实机通过:侧栏“万象知识库”入口正常出现并打开;“会话清库”快捷按钮正常显示;真实 608 个节点可切换球体/网络,截图 dist/graph-install/harness-sphere.png、harness-network.png。这是实际重启后的 Harness 窗口,不是替换画布预览。 - 生产页面自动化通过:两种布局及有限标签正常渲染、切换保留选中、搜索筛选清空与恢复、点击真实节点打开详情、详情返回定位同一节点、展开及关闭、浏览器无运行异常。全程只读知识,无模型调用。证据 dist/graph-install/production-check.json;截图 production-sphere.png、production-network.png。 - 数据完整性自动化通过:安装和正常退出后仅 .wanxiang/index.db-wal 与 index.db-shm 消失(SQLite 临时文件);重启和操作检查后知识正文及其他非索引文件哈希仍与安装前完全一致。没有用真实库进行迁移、生成或编辑测试。 - 遗留:本次没有验证第3期自动召回功能,生产仍为 alpha.2 后端;同类型节点颜色相同、大图缩小时前后投影仍可能重叠,保持上条报告所述限制。 ## 2026-10-25 图谱第二轮观感调整:保留关系簇与疏密 用户已确认:保留最初“两大团为主”的关系分布,中心密、外围疏,小簇自然分布;以视觉平衡代替均匀球面。上轮“铺满全部球面”的布局及对应八象限测试目标因此被替换,这不是知识分组或关系数据变更。 ### 实现与文件 - `src/panel/graph/distribution.ts`:共享簇排序与确定性云状分布,按关联度安排核心,轮廓有轻微起伏;同一数据不会随机重排。 - `src/panel/graph/layouts.ts`:球体恢复按簇聚拢,簇占地随成员数调整,保留间隔和工具赤道带;网络从各簇内部初始化,使用更细斥力网格和适度簇吸引,避免再次混成单团。布局输入节点和边不被修改。 - `src/panel/graph/canvas.ts`:略微缩小节点;抽样时保留最多60条高权重真实跨簇关系,球体默认仅显示这些跨簇弧线,关注节点仍恢复全部相关边。标题避让和画布适配继续保留;未新增CSS、外部依赖或模型路径。 - `test/graph-visual.test.mjs`:不均衡簇聚集、稳定性、ID完整、球面约束、网络收敛后簇间隔及不改关系回归,保留标题避让回归。 - `docs/测试报告.md`:本节交付记录。 ### 验证 - 自动化通过:build、typecheck、49/49测试。真实608节点只读预览两种布局均608/608在初始画布范围内;1160×360预览默认10个标题,小尺寸实际画布按面积进一步减少。预览截图:dist/graph-organic/preview-sphere.png、preview-network.png。 | 合成输入节点 | 显示节点 | 球体 fps | 网络 fps | |---|---:|---:|---:| | 200 | 200 | 143.66 | 144.59 | | 1000 | 1000 | 144.56 | 144.46 | | 3000 | 20个聚合簇 | 144.46 | 144.22 | 环境为本机Headless Chrome、1000×600 CSS Canvas、DPR1、合成关系;网络持续唤醒模拟。1000节点网络帧间隔p95为8.2ms;fps受显示刷新节奏影响,不代表其他机器。数据:dist/graph-organic/benchmark.json。 按架构9.8逐项:空库无假节点自动化通过;200/1000/3000性能与聚合自动化通过(1000≥50fps);切换选中保留与筛选清空/恢复生产自动化通过;reduced-motion无持续动画自动化通过;真实节点打开详情及详情返回同一节点生产自动化通过;两种布局截图实机通过。展开/关闭及浏览器无运行异常也通过。当前轮未另行运行完整的15项落库UI流程,避免编辑真实知识目录。 ### 安装与生产 - 安装前实机确认141个会话均空闲且无落库排队,备份1481个文件并校验一致;退出前再次确认空闲。完整备份:dist/install-backup/2026-10-25T10-14-02-575Z。 - 仍仅更新已安装alpha.2的panel.js:取ed1992f面板源码,叠加本次四个图谱模块构建。index.js/client.js/panel.html/style.css/sql-wasm.wasm逐文件哈希保持原值;没有把未验收的第3期功能上线。原始包、固定内容哈希安装包与上一版备份均保留,不卸载其他插件。 - 安装通过后通过应用菜单正常退出并重启Harness,侧栏入口打开成功;会话快捷入口可见,本轮未另测快捷入口点击。新Host为127.0.0.1:64426,实际提供的panel.js哈希与安装包相同:8a300147e920287e99036df558ba5f05cc14a028c3162cca9c3b91c9ee5e59b5。 - 真实608个节点的球体和网络已在Harness窗口检查,页面停留网络图。截图:dist/graph-organic/harness-sphere.png、harness-network.png;生产页面截图production-sphere.png、production-network.png。生产自动化证据production-check.json、脚本哈希production-hash.json、非图谱文件校验package-evidence.json均在同目录。 - 安装、正常退出、重启和只读检查后,真实知识的全部非派生索引文件哈希与备份一致;SQLite临时WAL/SHM按正常生命周期变化。不切库、不迁移、不编辑、不生成真实内容,不调用模型。 ### 限制 球体旋转后会有簇落到背面,视角不同投影疏密也不同,不能把一次截图当成所有角度都无重叠;可拖拽、放大或展开查看。同类型仍使用同色,未借改颜色制造不存在的类别。默认跨簇连线有数量上限以防遮蔽节点,选中节点可查看真实关联;没有造节点或造连接。第3期留出评测仍等待用户准备,本次仅图谱视觉补丁。 ## 2026-10-25 保留球体,单独恢复上一版网络并实装 - 用户确认球体满意,网络要求恢复上一版。本次恢复fefef0b的NetworkLayout(共享空间初始化、斥力网格、弱簇吸引),网络节点半径和边抽样也恢复该版;球体继续使用65c67a7的簇状布局、节点大小及跨簇弧线。没有修改distribution.ts、球体交互或CSS。改动文件:src/panel/graph/layouts.ts、canvas.ts、test/graph-visual.test.mjs、docs/测试报告.md。 - 关于“旋转”已询问是否增加网络整体旋转;尚未收到选择,本次按已授权恢复上一版处理,网络仍为拖拽平移、滚轮缩放、拖动节点;球体继续支持原有旋转。未擅自加入额外网络交互。 - 逐像素对比自动化通过:1160×360、reduced-motion固定视角、相同608真实节点,在隔离浏览器分别构建旧版与当前Canvas。当前球体与65c67a7完全一致,当前网络与fefef0b完全一致(PNG数据相同);证据dist/network-restore/visual-parity.json,复核脚本check-parity.mjs及截图sphere.png/network.png均本机保留,不提交个人内容。 - build/typecheck/49测试自动化通过。回归把上轮“两个网络簇必须分开”的目标改为本次恢复要求,继续验证固定拖拽节点、降温停算、不改变输入节点及关系;球体簇聚集/球面/稳定性和标签避让测试保持通过。 | 合成输入节点 | 显示节点 | 球体 fps | 网络 fps | |---|---:|---:|---:| | 200 | 200 | 143.63 | 144.51 | | 1000 | 1000 | 144.66 | 144.39 | | 3000 | 20个聚合簇 | 144.55 | 144.06 | 性能环境仍为本机Headless Chrome、1000×600 CSS Canvas、DPR1、合成边,网络持续唤醒,数据dist/network-restore/benchmark.json;帧率受本机刷新节奏影响。 - 安装前及正常退出前实机确认141个会话全部空闲,无排队或运行落库;备份1481个文件并校验一致,目录dist/install-backup/2026-10-25T10-23-26-825Z。继续只更新alpha.2的panel.js,服务端、client、HTML、CSS及WASM与安装前逐文件哈希一致,未上线第3期代码。 - 安装后正常退出并重启Harness,生产Host为127.0.0.1:54686。生产panel.js与本次包哈希相同:21c9f6da1f23571dbc3cb9dcc23d067af7c5c46121428f78881e26835fddf450;证据dist/network-restore/production-hash.json。真实知识的非派生索引文件全部哈希不变,无真实库编辑、切换、迁移或模型调用。 - 原生窗口实机通过:侧栏打开知识库,查看球体、切换网络,当前停在网络图;截图dist/network-restore/harness-sphere.png、harness-network.png。会话快捷按钮可见,本轮未另测其点击。 - 生产自动化通过:网络空白处拖拽后画面改变,重置逐像素恢复;滚轮缩放后画面改变,重置逐像素恢复;两布局切换保留选中、搜索清空/恢复、点击条目详情再定位同一节点、展开关闭、无浏览器异常。见dist/network-restore/production-check.json与production-sphere.png、production-network.png。 - 逐条核对9.8:空图无假节点自动化通过;200/1000/3000性能和3000聚合自动化通过;选中与筛选生产自动化通过;reduced-motion无持续动画自动化通过;节点详情双向定位生产自动化通过;两种布局截图实机通过。 - 限制:网络整体旋转未实现,等待用户对交互选项的答复;默认保留原版平面力导向。全套落库UI本轮未另测,避免更改真实库。球体随旋转会有遮挡,仍可调整视角和放大。临时对比资料、安装包、备份及截图均被忽略,不提交个人内容。 ## 2026-10-25 网络增加整体旋转,保留恢复布局和球体 用户明确选择“恢复布局,并增加整体旋转”。本次增加平面网络的整体角度调整;不把原2D网络改成3D,不修改其力导向布局或知识关系。球体保持当前满意版本。 ### 文件与交互 - src/panel/graph/network-transform.ts:独立旋转/逆旋转及旋转包围盒模块,只转换观看坐标。 - src/panel/graph/canvas.ts:网络角度、Shift+拖拽、旋转后拖动节点的逆变换、旋转后聚焦、随角度适配画布;重置同时恢复角度/平移/缩放。球体分布与旋转代码未改。 - src/panel/graph/view.ts:网络专属-180°至180°滑杆和角度读数,支持键盘,显示Shift+拖拽说明;滑杆与手势同步;切换布局和展开时保留当前页面内的网络角度。 - src/style.css:只新增wx-graph-rotation类规则,不修改旧类名或配色。 - test/network-transform.test.mjs、scripts/graph-interactions.mjs:数学不变量与真实浏览器交互回归。 - scripts/graph-bench.mjs:网络测试在45°下运行;docs/测试报告.md:本节。 ### 验证 - build/typecheck/npm test:自动化通过,51/51。验证旋转保持距离、不修改输入、逆变换使节点按屏幕方向拖动、旋转包围盒覆盖角点、滑杆端点与角度归一。 - scripts/graph-interactions.mjs:8项合成浏览器检查通过——键盘/滑杆仅转视图、Shift拖拽与滑杆同步、旋转后节点拖动、旋转后点击命中、旋转后居中聚焦、重置、球体像素不变且隐藏旋转控件、布局切换保留角度。合成结果/截图dist/network-rotation/interaction-check.json、synthetic-rotation.png。 - 固定视角逐像素复核通过:新球体仍与65c67a7相同,网络0°仍与fefef0b相同;复用了本机隔离对比脚本,不导入个人内容到仓库。相关视觉证据保留在dist/network-restore/visual-parity.json;本期生产图和交互证据另存network-rotation,未将固定角度相同冒充所有交互角度截图相同。 | 合成输入节点 | 显示节点 | 球体0° fps | 网络45° fps | |---|---:|---:|---:| | 200 | 200 | 143.50 | 144.47 | | 1000 | 1000 | 144.37 | 144.60 | | 3000 | 20个聚合簇 | 144.32 | 144.04 | 环境:本机Headless Chrome,1000×600 CSS Canvas,DPR1,网络持续唤醒模拟。1000网络45°帧间隔p95=7.5ms。原始结果dist/network-rotation/benchmark.json;刷新节奏影响fps,不代表其他设备。 按9.8验收:空库无假节点自动化通过;200/1000/3000性能及聚合自动化通过;布局切换保留选中与筛选生产自动化通过;reduced-motion无持续动画自动化通过;详情与同节点双向定位生产自动化通过;两种布局截图与旋转控件实机通过。额外的旋转后命中/拖动/聚焦已合成浏览器验证,生产页面验证滑杆、键盘、Shift拖拽、角度重置、原平移缩放、展开保留45°,无浏览器异常。 ### 安装与生产 - 141个会话空闲,无运行或排队落库;安装前完整备份1481个文件并逐文件校验。备份dist/install-backup/2026-10-25T10-32-23-670Z;正常退出前重复确认空闲。 - 基于安装alpha.2仅更新panel.js与新增旋转CSS。服务端index.js、client.js、panel.html、WASM哈希不变;未上线第3期代码。通过应用菜单正常退出并重启,生产Host=127.0.0.1:51279。 - 生产JS、CSS均与本次包哈希一致。panel.js SHA256=a1d1078c5452096ab877318d83cf32729b3aff1cdfbd11cc5461357ba05f35f6,证据dist/network-rotation/production-hash.json与package-evidence.json。 - 原生Harness实机通过:侧栏打开,切到网络显示滑杆,实际点击后角度61°且网络整体旋转,截图dist/network-rotation/harness-rotated.png;窗口当前停留此画面。生产页面截图production-rotated.png,生产自动化明细production-check.json均在同目录。会话快捷入口可见,本轮未单独点快捷入口。 - 安装、退出、重启及只读检查后,真实知识的全部非派生索引文件哈希不变。未编辑、迁移、生成真实知识,未调用模型。个人数据、包、备份、截图均不提交。 限制:新增旋转为2D网络在屏幕平面内的整体旋转;角度只保留在当前页面状态中,重载后回到初始值。球体继续原有3D旋转。手工平移/拖动或放大后可能超出画布,可重置。当前轮完整落库流程未另测,不更改真实库用于验证。 ## 2026-10-25 工具库改为分类目录(含插件能力),已实装 ### 需求与范围 用户明确要求工具库不再有关系图,改为按用途的工具列表,支持自己添加、显示Harness可调用能力并自动分类,随后确认插件能力也纳入。此指令替代架构9.2旧的工具图入口;总览/知识库的图谱及其旋转保持。六标签、浅色卡片和CSP保持。 ### 改动文件 - 发现/分类/合并/记录校验:src/tool-discovery.ts、tool-categories.ts、tool-directory.ts、tool-record.ts。 - 接入:src/index.ts新增只读GET tool-catalog,调用宿主公共schemas(scope);src/types.ts新增可选元数据;src/store.ts保存自动分类与绑定,不自动改写旧目录。 - 页面:src/panel/tool-directory.ts、src/panel.ts;src/style.css只新增wx-tool-*规则。工具库图谱移除,列表含可见范围、已注册/总数、真实调用名、手动添加、分类方式、绑定、详情、环境检测;详情/知识关联保留。 - 验证:scripts/probes/tool-catalog.mjs、scripts/ui-tool-directory.mjs、scripts/ui-check.mjs、test/tool-directory.test.mjs;docs/工具目录探针.md和本报告。 ### 探针与自动化 - 已安装宿主真实ToolRuntime探针自动化通过:全局/会话scope/restrict/注销/去执行回调,0工具执行。见工具目录探针文档及dist/tool-directory/runtime-probe.json。 - 工作区合并现有安全分析改动后的build/typecheck/58测试通过。曾发现临时注入探针直接导入harness.ts会在新增.js依赖后失败,已将发现接入放到index apply层,保留harness.ts原样;复测注入探针与全套通过。 - 合成专用UI六项全部通过:分类列表无图、添加自动分类、手工分类保留、绑定去重、环境可用不等于已接入、会话范围/卸载刷新、总览与知识库图谱、设置、小屏无溢出。仅临时合成目录写入,只有显式Node --version检测,不调用实际分析能力。截图dist/tool-directory/synthetic-1440.png、synthetic-720.png,明细ui-check.json。 - 已安装包8个核心文件哈希与构建一致,scripts/installed-check.mjs的15项隔离UI检查全部通过(落库、编辑、工具、检索、图谱、设置、关联、紧凑模式等)。不在真实库执行这些写入测试。 - 为避免把工作区其他任务的未提交安全工具代码夹带进提交,index.ts/panel.ts只暂存本次片段;保留其他人的安全接入、版本号、检测器和文档改动在工作区。本次暂存快照单独导出构建/typecheck/55测试和六项UI全部通过,证明本次提交也能独立运行;导出目录dist/tool-directory/staged-source。源导出最初缺少node_modules资源路径,连接已安装依赖后全通过,没有改产品构建脚本。 ### 安装与实机 - 当前安装基线由其他工作更新到alpha.4,已核对34个非本次源码/资产与已安装版本一致;没有降级或覆盖安全分析能力。只替换index.js/对应map、panel.js、style.css;原包其余文件保留。证据dist/tool-directory/baseline-check.json、package-hashes.json。 - 安装前、退出前均确认141个会话空闲且无落库任务。完整备份1498文件,最终备份dist/install-backup/2026-10-25T11-37-06-694Z,逐文件校验。正常退出、重启后Host=127.0.0.1:56371。最终生产JS/CSS与包一致:panel.js SHA256=63964061266c36ef224d6910a88d213ef4eb1518f075634d8793e018a4a67518;style.css=a1d72c75f07e4cc885f8d7c43ed9518dcde4e6ac6bc826c1915ee6929d89dfb8。 - 实机通过:侧栏打开工具库,没有球体/网络工具图。原生窗口当前会话范围显示65已注册/90条目;宿主全局39已注册/64条目。自动列出实际插件能力,未造工具。点击添加和分类详情只打开表单后取消;刷新、切换范围均正常。纯界面插件若无注册能力,不冒充可调用工具。 - 生产浏览器检查通过:行数与API一致、无canvas、CSRF拒绝未授权读取、添加/详情入口、范围与刷新、小屏、总览/知识库图谱和无运行异常。报告dist/tool-directory/production-check.json;截图production-1440.png、production-720.png;原生截图harness-tools.png。 - 性能只读测量:本机10次全局目录请求p50=10.97ms、p95=16.39ms;一次工具标签点击到列表就绪91.61ms。不将此视作跨设备承诺。此次未改图谱引擎,200/1000/3000帧率未另测,沿用前次验收;隔离15项UI仍检查两种图谱及跳转。 - 安装/重启和所有生产只读检查后,真实知识、工具catalog及其他非派生索引文件哈希与备份完全一致。没有切真实库、迁移、添加测试记录或调用模型。实际写入、分类覆盖、工具注销等测试都在临时合成目录。 ### 逐项验收与限制 1. 工具库去图谱、保留分类列表:实机通过。 2. 手动添加、自动分类、自定义分类覆盖、绑定去重及版本检测:合成UI/自动化通过,生产表单可打开实机通过;生产未真正添加测试条目。 3. 真实注册能力与插件能力显示、会话范围:实机通过。未注册CLI虽环境可用,仍标手动登记,不能靠填名字变成可调用能力。 4. 插件工具注销动态移除:真实宿主注册表探针+合成UI通过;未卸载真实用户插件来验证。 5. 总览、知识库图谱、六标签和其他页面:生产只读/隔离15项UI通过。 6. 旧工具分类保留、可选字段无迁移、目录备份及内容哈希:自动化/实机通过;新增字段未单独在v0.1工具表单保存后往返验证(旧程序可能丢弃未知可选字段,正文不受影响)。 7. 注册只证明当前上下文可见,不保证运行必成功;权限与环境由宿主执行链决定。自动分类是本地规则,可能误分,可改为自定义分类;不编造缺失插件归属。 未提交个人知识/会话/凭据、需求文档或其他任务文件。所有安装包、截图与本机证据在忽略的dist目录。 ## 2026-10-25 工具库紧凑分类列表 按用户确认,把大分类卡片改为纵向分类标题 + 已注册/总数 + 横向工具名称列表;自动换行,点击名称打开详情/编辑,说明、版本状态和检测按钮收进详情。保留添加、自动/自定义分类、真实宿主/插件/MCP发现、会话范围选择。没有修改图谱或存储逻辑。 - 自动化通过:typecheck;npm test 58/58;工具目录专项 UI 六组(含无卡片/无说明常驻、键盘打开、添加/检测/分类、绑定去重、会话范围、卸载恢复、小屏不溢出及其他图谱保留);已安装包隔离合成库 UI 15 项通过。 - 实机通过:安装前 141 个会话全部空闲、无排队/执行中落库任务;备份 dist/install-backup/2026-10-25T12-18-44-992Z,1498 个文件。正常退出并重新启动 Harness,Host 地址变为 127.0.0.1:54025。真实侧栏页面显示紧凑名称列表(IG5 会话范围 65 个注册/90 条目);生产前端资源 SHA 与构建一致。生产验证未调用工具、未修改真实知识。 - 实机通过:重启后知识正文、工具目录等非派生文件逐文件哈希与备份一致;仅排除可重建 SQL 索引及 WAL/SHM。 - 性能实测:真实全局目录 39 个注册/64 条目,元数据读取 10 次 p50 14.34ms、p95 16.37ms;工具页就绪 74.53ms,单次 UI 计时不作为稳定基准。 - 截图:dist/tool-directory/harness-compact-tools.png(原生 Harness);dist/tool-directory/production-1440.png、production-720.png(生产页面)。证据:dist/tool-directory/production-check.json、content-hashes.json、ui-check.json。 - 改动文件:src/panel/tool-directory.ts、src/style.css、scripts/ui-tool-directory.mjs、scripts/ui-check.mjs、docs/测试报告.md。其他工作区安全分析工具及版本文件属于已有未提交工作,本任务未纳入提交。 - 未测:本次没有重跑 200/1000/3000 节点图谱帧率,因图谱源码与行为均未改动;没有逐个执行真实宿主分析工具。布局变化没有新增数据迁移或模型发送路径。 ## 2026-10-25 知识图谱排除工具、工具库状态分类行 用户确认:总览球体/网络不应含工具;工具库按参考截图显示分类行、细分隔线、圆点状态标签。 - 自动化通过:typecheck;npm test 59/59(新增注册与检测状态分离、灰/绿/异常判定用例);工具目录 UI 六组含总览两种布局及展开窗口无工具节点/图例、图谱请求均为 library;图谱交互八项(旋转、拖拽、选中、重置、球体视觉保持);已安装包临时合成库 UI 15 项。没有写入真实知识做测试。 - 代码事实:原总览 graph scope=all 会纳入工具,本次统一知识图谱请求为 library;后端相关知识/工具关联仍保留。图例及空状态不再引导添加工具。与原设计包含工具的描述冲突处,按本次用户明确决定执行。 - 状态规则:仅 environmentStatus=可用显示绿色;注册但无环境检测为灰色;不可用/检测失败为警示色,版本未知为灰色。悬停说明环境与注册状态,详情继续显示独立状态。分类右侧计数仍为当前范围注册/总条目,不冒充检测可用数。 - 实机通过:安装前 141 会话全部空闲,无排队/运行中落库任务,完整备份 1498 文件至 dist/install-backup/2026-10-25T12-28-54-011Z;正常退出并重启,Host 127.0.0.1:55747。实际侧栏球体/网络均显示 608 个知识条目,无工具图例;工具库为状态分类行。生产资源哈希与构建一致;绿色标签数量严格等于真实目录中检测可用条目数。核对非派生知识及工具目录哈希全部未变,仅排除 SQL 索引/WAL/SHM。 - 生产只读验证:全局 39 注册/64 条目,会话范围 65/90;工具目录读取10次 p50 14.34ms/p95 20.58ms,页面就绪49.67ms;为本次单机采样,不作为稳定性能承诺。未执行生产工具、未修改真实知识。 - 图谱性能(Headless Chrome,1000×600 CSS画布,DPR1,合成数据):200 节点球体139.87fps/网络144.70fps;1000 节点144.60/144.28fps;3000 输入聚合至20簇后144.34/144.03fps。网络旋转45°,三档帧间隔p95分别为球体7.40/7.90/7.20ms、网络7.20/7.60/7.20ms;基准底层保留原合成类型集合,测试渲染器性能,非真实关系密度/生产帧率承诺。 - 截图:dist/tool-directory/harness-knowledge-sphere.png、harness-knowledge-network.png、harness-tool-status.png(原生窗口);production-1440.png、production-720.png、production-knowledge-sphere.png、production-knowledge-network.png(真实服务浏览器截图)。性能证据 dist/graph-bench/results.json;状态与资源证据 dist/tool-directory/production-check.json、content-hashes.json。 - 改动文件:src/panel.ts(仅图谱 scope)、src/panel/graph/view.ts、src/panel/tool-directory.ts、src/style.css、scripts/ui-tool-directory.mjs、test/tool-directory.test.mjs、docs/测试报告.md。未纳入其他已有未提交工作。 - 遗留限制:绿色为上次检测结果,不代表实时健康检查;仅发现注册的能力不会被擅自执行来验证可用性。未逐个运行生产工具。本次无存储迁移、新模型调用或外部依赖。 ## 2026-10-25 工具目录仅保留登记工具 按用户确认,工具页不再读取插件/MCP/宿主注册表,仅展示已保存工具,删除会话范围及绑定调用名控件,已有绑定元数据保留不删除。计数改为上次环境检测可用/全部,灰绿异常状态规则保持。自动化通过:typecheck、npm test 60/60、工具目录四组UI(空库无宿主条目、添加分类及检测、分类保留、小屏与图谱回归)。实机安装随本轮金色图谱功能一起验证,当前此项实机未测。修改 src/index.ts(仅目录接口)、src/tool-directory.ts、src/panel/tool-directory.ts、scripts/ui-tool-directory.mjs、test/tool-directory.test.mjs 及本报告;不修改真实目录。 ## 2026-10-25 金色知识活动与登记工具目录实装 - 自动化通过:typecheck、npm test 63/63;金色活动端到端5组;工具目录4组;原图谱旋转/拖拽/重置等8项;最终已安装包常规UI15项及合成活动UI5组。开关关闭后原始节点颜色像素完全恢复;减少动画无连续活动帧。成功读取/实际注入/成功落库有事件,失败、仅候选不点亮,切库/去重/过期与空库首次落库均验证。 - 工具目录实机通过:只展示25条已登记工具,上次检测可用25条;自动插件/MCP能力已移除,不执行检测或修改工具目录来凑数。数量为可用/全部。前一节“实机未测”现已补为通过。 - 安装实机通过:每次安装/退出前均检查141会话空闲及无排队/运行中落库;首次备份 dist/install-backup/2026-10-25T12-49-33-942Z,最终包备份 2026-10-25T12-53-12-150Z,均1498文件。正常退出及启动最终Host于127.0.0.1:60995,侧栏正常,608个知识节点,无工具节点;动画开关可用。受保护活动接口无token返回403,启动无历史事件回放,前端哈希与构建一致。非派生知识文件/工具目录哈希与首次备份完全一致,仅排除可重建索引及WAL/SHM。 - 金色活动渲染性能(合成数据、Headless Chrome、1000×600 CSS、DPR1、最多16激活节点、网络旋转45°):200节点球体138.76fps/网络144.46fps,1000节点144.45/144.56fps,3000输入聚合20簇后144.38/144.21fps。帧间隔p95:球体7.50/7.50/7.20ms、网络7.40/7.60/7.20ms。数据为独立测试环境,不承诺生产同样帧率。证据 dist/graph-activity-bench/results.json。 - 截图:dist/graph-activity/harness-sphere.png、harness-network.png、harness-tools.png(原生实装);production-sphere.png、production-network.png、production-tools.png、production-tools-720.png(生产服务浏览器);synthetic-sphere-gold.png、synthetic-network-gold.png(已安装包临时合成库金色效果,非个人数据/非生产活动)。 - 新增模块:src/graph-activity.ts、src/panel/graph/activity-feed.ts、activity-layer.ts;接入 src/index.ts、src/service.ts、src/knowledge-tools.ts、src/recall-service.ts、src/panel/graph/canvas.ts、view.ts及新增CSS类;测试 test/graph-activity.test.mjs、scripts/ui-graph-activity.mjs、scripts/graph-activity-bench.mjs;说明 docs/图谱活动验证.md。只提交本任务部分,原安全工具/版本等未提交工作保留。 - 限制/未测:在线provider真实对话→工具读取/注入→金色展示的生产整链路未触发测试(未制造个人知识活动,未发送在线模型请求)。隔离合成库使用真实已安装工具、接口、渲染器验证通过,不能冒充生产整链路。任意文件工具读取及外部Markdown写入无法可靠映射知识ID,不点亮;聚合样本之外不猜测。动画约1秒轮询延迟,仅短期元数据,不表示模型实际采纳。无新增外部库、Worker、存储迁移或模型传输路径。 ## 2026-10-25 活动改为柠檬黄节点与连线 按用户确认,移除活动金圈及金色流动点;节点本体 #edda00,已有连线仅两端均活跃时变同色并突出,最后4秒淡回分类色;连续实际使用续期。无新增关系,保留悬停/旋转。自动化通过:typecheck、npm test 64/64、活动UI五组(额外验证单节点时黄线为0、两个真实读取节点时黄线出现、关闭恢复原像素)。涉及 activity-layer.ts、canvas.ts、view.ts、新增CSS类、活动测试/UI及本报告。实机安装随本轮其他功能统一验证,当前未测。 ## 2026-10-25 待落库真实会话标题 新增 PendingTitles:写入待落库时从真实快照取标题,展示时优先宿主当前标题并支持重命名,旧ID记录只修复展示、不重写历史文件;确实取不到时显示“会话标题暂不可用”,ID仍在辅助信息。并发快照最多4个,失败快照短期缓存,标题事件使缓存失效。自动化通过:typecheck、npm test 65/65,覆盖题示session-ID、历史磁盘哈希不变、重命名及缺失会话。实机待本轮统一安装验证。修改 pending-titles.ts、service.ts、index.ts、对应测试及报告。 ## 2026-10-25 原生 /wanxiang 命令 Electron Node24真实CommandRuntime/Session探针通过注册、发现、执行、command生命周期及卸载;实际LlmRuntime模型目录探针通过,无在线请求。证据dist/commands-models/runtime-probe.json。命令把脱敏请求通过当前Agent.followup交给当前AI,要求先knowledge_search、必要时knowledge_read并引用;留空使用当前问题,不自动落库,不切模型;核验当前Agent知识工具可见性,受限/取消不发送,recordInput:false避免原始参数进命令日志。自动化通过:typecheck、npm test 66/66,命令单元验证脱敏/空参/权限/取消;真实CommandRuntime执行的是本次命令定义,followup接收方为合成桩,不冒充真实在线模型已执行检索。实机命令菜单及在线调用待安装验证。修改wanxiang-command.ts、index.ts、对应测试、探针及报告。 ## 2026-10-25 整理模型选择及本轮最终实装验收 1. 自动化通过:typecheck、npm test 69/69;模型/标题专项 UI 三组,活动五组、工具目录四组、图谱交互八项、已安装包常规 UI 十五项。新增整理模型选择与持久化、不可用报错、原文导出不校验模型、脱敏、源会话模型不变测试。普通设置保存保持尚未确认的自动注入状态,不代用户确认隐私。 2. 实机通过:原生 /wanxiang 菜单可见;真实 provider 在临时合成库通过本次命令调用 knowledge_search/read,返回合成事实,节点本体变柠檬黄。两端活跃已有连线变黄由 UI 回归验证,不造边。前述“在线未测”现补为通过(合成知识、真实 provider),不冒充个人知识效果验证。 3. 实机通过:题示待落库会话显示“思考逆向”;设置显示真实宿主模型目录。指定模型保存/执行由隔离 Host 测试通过;未逐个在线调用所有 provider/model。默认跟随来源会话/宿主,指定项失效明确失败,不切换当前对话模型。 4. 安装前 142 会话全部空闲、无执行/排队任务,备份1504文件至 dist/install-backup/2026-10-25T13-34-56-553Z;探针安装前也备份与核验空闲。已安装并正常退出重启,最终只读复查 Host 127.0.0.1:62345:608知识、25登记工具,资源 SHA 与构建一致。临时合成库测后恢复原目录、非派生文件哈希完全一致。无个人内容、凭据、知识目录或用户需求文档进入本次提交。 5. 图谱性能:200 节点球体/网络140.70/144.57fps,1000为144.45/144.35fps,3000输入聚合20簇后144.45/144.03fps;球体帧间隔p95为7.4/7.5/7.3ms,网络7.2/7.6/7.1ms。Headless Chrome合成数据,非生产保证,3000不代表全部可见。证据 dist/graph-activity-bench/results.json。 6. 截图:dist/commands-models/production-synthetic-command-lemon.png、harness-wanxiang-menu.png、harness-model-options.png、harness-pending-title.png;球体/网络 dist/graph-activity/synthetic-sphere-gold.png、synthetic-network-gold.png(内容为最新柠檬黄)。完整说明 docs/命令与模型验证.md。 7. 本任务修改:src/model-selection.ts、src/panel/organize-model.ts、types.ts、settings-switch.ts、service.ts、index.ts、panel.ts、panel/recall-settings.ts;test/model-selection.test.mjs、scripts/ui-session-models.mjs、scripts/probes/production-injection.mjs及两份验证文档。共享文件只纳入本任务片段,已有安全工具等未提交工作保留。 8. 未测/限制:空参命令只自动化验证;所有可选模型的真实生成质量未逐个测;真实历史留出评测仍等待用户知识库。活动是使用事件,不代表模型采纳;任意文件读取无可靠ID时不点亮。原有临时探针保留,不擅自卸载。 ## 2026-10-25:目录打开、拖拽导入与 /wanxiang study(alpha.5) - `/wanxiang study` 从真实会话快照取得 cwd 与模型,后台扫描支持的文档和代码,保留来源,不执行输入文件;模型输出经结构校验。支持重复跳过、失败继续、整理缓存、取消、设置切换互斥。来源为外部文件,不伪造宿主消息序号。 - 顶部导入入口支持文件、文件夹、ZIP和万象内容包;校验清单哈希,来源、许可及目录不重复计为知识,映射ID冲突和Markdown/Obsidian引用,保留附件。ZIP拒绝越界路径、软链接、加密、不支持的压缩/ZIP64及超限展开。PDF/Word仅保留附件;单批2000文件/64MiB,单个文档或附件2MiB。 - 导入完成立即更新索引与关系,补齐图谱读取显式 links/supersedes;浏览器轮询覆盖极短任务,统计和图谱自动刷新。打开目录改为校验真实目录后调用系统打开方式,路径通过环境数据传给固定PowerShell脚本,失败反馈具体原因。 - `npm run typecheck`、`npm test`通过(79/79)。导入专题10项测试涵盖去重、冲突、原文/许可、ZIP、索引失败恢复、扫描边界和模型整理缓存。测试模型为受控合成实现,没有宣称线上模型整理质量已验收。 - `scripts/ui-import-study.mjs` 使用真实HTTP服务和隔离Edge浏览器,文件选择、拖拽、重复跳过、短任务自动刷新、图谱数量5项检查通过,浏览器错误0。截图及结果位于dist/import-study/。 - 真实安装版Harness的CommandRuntime执行`/wanxiang study`通过,确认session目录绑定、后台任务、索引与命令结束事件;使用合成文件及合成模型,在线模型请求0次。证据dist/import-study/runtime-check.json。 - 安装前及退出前确认144会话空闲、无落库执行/排队任务;完整备份2606文件至dist/install-backup/2026-10-25T15-08-36-678Z并校验。经应用菜单正常退出并重新启动,未强杀进程。 - 生产Host为127.0.0.1:65373,导入接口正常、静态panel.js与构建哈希相同,1182知识/1182图谱节点/13573可见关系、文件警告0。生产界面已核对导入弹窗和study说明,并点击打开目录返回实际知识路径。既有1182条知识未因测试增删,未切换生产知识根目录。 - 安装前后排除4个可重建索引文件后,2602个非索引文件哈希全部一致,无新增非索引文件。证据dist/import-study/knowledge-preservation.json与installed-check.json。 - 本轮已安装本机alpha.5,未发布远端或推送仓库。PDF/Word正文解析、非UTF-8转码及批次撤销尚未实现;模型归纳不构成逐条技术结论正确性证明。 ## 2026-10-26:实际宿主复验与修复(最终安装 alpha.8) 前节 alpha.5 的“请求打开”和合成 CommandRuntime 检查不等于资源管理器可见或用户端命令完整执行,本节补充实际验收结论。 - **打开目录已实机通过**:旧版隐藏子进程发出 ShellExecute 请求但没有可见窗口。Shell.Application.Explore 在临时目录曾通过,但正式 Documents 目录复查失败,未将其视为验收通过。最终改为显式启动 explorer.exe `/n,/e,"目标路径"`、WindowStyle Normal,再核对 Shell 窗口 Visible/HWND 与完整目标目录;只有确认后才返回成功。PowerShell 输出统一 UTF-8。实际点击已安装 alpha.8 顶部按钮后新建“万象知识库 - 文件资源管理器”窗口,原生截图确认地址为 C:\Users\Administrator\Documents\万象知识库,包含 cards/notes/sources/tools。 - **命令已实际执行**:真实 Harness 文件夹会话直接发送 `/wanxiang study`,通过真实 DeepSeek provider 整理两个合成文件。此前新会话没有可见反馈,现订阅宿主 command/executed 事件,显示开始提示并自动打开导入进度。另注册菜单可直接发现的 `/wanxiang-study` 别名;原始带空格命令保留。原生命令别名再次执行实测“全部已存在”,重复 2、新增 0。在线测试只使用已知合成资料;没有执行资料中的代码。 - **在线失败恢复已实测**:模型两次出现 120 秒超时,界面显示失败原因,点击“继续”复用第一次完成的 Python 文件草稿。重试中另发现 Windows 短暂 EPERM 替换任务记录失败;atomic 写入现对 EPERM/EACCES/EBUSY 有限退避重试,不删除旧文件。最终任务 a8c9fa5e-15fa-42fd-9ddd-3a8863a7f2c7 成功完成 2/2,并核对正文、来源、检索和重复跳过。记录 dist/import-study-live/study-alpha7-success.json、native-jobs-alpha7.json、native-study-success.jpg。模型可用性及输出正确性不作无限保证。 - **已安装 alpha.8 导入矩阵通过**:通过真实宿主 127.0.0.1:63240 的页面,在独立测试知识库内验证 Markdown/UTF-8 TXT 多选、递归文件夹、Obsidian Wiki/相对链接及图片、原生内容包清单哈希/许可、普通 ZIP、重复跳过、其余 31 种文本扩展名、全部 8 种附件扩展名、同 ID 不同正文保留、页面文件 drop 事件、统计/检索/图谱自动刷新、越界 ZIP 拒绝。共新增 41 条合成知识,52 个落盘原始文件 SHA256 逐个一致,浏览器脚本错误 0。证据 dist/import-study-live/installed-import-results.json 与 installed-import-ui.png。 - **原生选择器通过**:在真实 Harness 内打开 Windows 文件选择器导入“原生选择.md”,再用原生文件夹选择器上传单个合成目录,均新增 1 条;此文件夹测试通过选择器完成,其文件名“鼠标拖拽.md”不表示原生鼠标拖拽测试通过。 - **未完成的原生验收项**:跨资源管理器与 Harness 的鼠标拖拽被 Computer Use 的目标窗口边界检查拒绝,因此原生跨窗口拖拽未验收;不可把浏览器 DataTransfer/drop 事件测试冒充该项通过。页面拖放处理链路及递归读取由已安装宿主页面和自动化测试验证。 - **异常输入**:实际已安装接口拒绝损坏 ZIP、绝对路径及 PDF 单独作为知识导入。PDF/DOCX 及图片仅保留附件;无 PDF/Word 正文提取、OCR 或任意格式解析承诺。UTF-8 限制、2 MiB 单文档/附件、64 MiB 单批/ZIP、2000 文件上限继续适用。 - **测试**:完整 npm test 80/80,通过记录 dist/import-study-live/final-tests.log;alpha.8 目录启动方式更改后 typecheck 与导入/原子写入专题 11/11 再次通过。持久拒绝替换时原文保留、临时文件清理有专项测试。 - **安装与原库保全**:安装前及正常退出前确认 146 会话空闲;安装预检新增对导入/文件夹学习和元数据任务的忙碌检查。备份包括 dist/install-backup/2026-10-25T16-04-39-316Z,应用菜单正常退出重启,未强杀。最终恢复原设置,正式库 13 卡片 +1169 笔记 =1182 知识,25 工具,文件警告 0;2604 个非索引文件与本轮最初备份逐个哈希一致,排除 4 个派生索引文件。已安装 index.js/panel.js/client.js 与构建哈希一致。证据 dist/import-study-live/final-preservation.json。测试知识均在独立目录,未加入正式知识库。 ## 2026-10-26:按用户要求清理测试产物 本轮 import-study / import-study-live 临时资料库、来源样例、截图、日志、单次验收脚本与探针、alpha.5–7 重复迭代包已移入回收站。学习资料测试工作区、其唯一测试会话及缓存已移除。前述 dist/import-study* 证据路径属于历史验收记录,相关产物已清理;本文保留验收结论。正式知识库、功能源码、可复用回归测试、当前 alpha.8 安装包和安装回滚备份保留。清理后再次核验正式知识正文、来源、工具文件哈希一致。另清理测试资料对应的无产出失败任务记录,用户在测试后对待落库列表的操作保留。 ## 2026-10-26:开源发布整理与复验 - 构建、类型检查和完整回归测试 80/80 通过,插件重新打包为 0.2.0-alpha.8。 - 1182 条可选知识通过正文/元数据哈希、ID/标题/正文精确去重、关系引用、重复导入、手工修改保护与 26 项隔离检索;37 篇未展开 RST 工程指令继续标注为限制。 - FTS 1 万/10 万/100 万条、隔离召回、Map 内存和合成召回策略重新测量,原始 JSON 随源码公开。百万条隔离召回 20/40 超时;正式生产首步覆盖率与真实历史留出质量仍未验收。详见 [性能说明](performance.md)。 - 新版 README 使用维护者提供的 8 张截图和 AI 生成的 DeepSeek 蓝鲸社区插件封面。个人库、凭据、本机导入回执与运行产物不纳入公开提交。 ## 2026-10-26:alpha.10 图谱与长文访问修复 - 图谱改为每页 1,000 个真实节点的稳定快照,页面持续加载至完成;取消大库聚合替换,保留节点类型颜色。50,001 个合成节点的完整分页、跨页关系与搜索定位通过验证,真实绘制帧率取决于硬件和规模。 - 实库 2,529 个节点和 28,893 条关系完整加载,8 个方法节点、5 个踩坑节点保留并可见。 - 长文分页保持脱敏后正文完整;新增本地 Markdown 图片、表格、附件跳转,验证鉴权、路径穿越和符号链接边界。 - 顶部项目完整网址可点击;桌面与窄侧栏布局经过浏览器验证。 - 构建、类型检查及 89 项回归测试通过。实库正文、附件、机器回执与备份不随版本发布。