Files
agent-skills/llm-wiki/CHANGELOG.md

1183 lines
70 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Changelog
## v3.6.91 (2026-07-26)
### 修复
- 安全改名完成后,如果图谱更新短暂排队,工作台会继续核对完成状态,不会把已经保存的改名停在“图谱尚未更新”。
- 全量检查中的浏览器进程清理会在串行负载较高时保留足够余量,同时仍要求受控超时在有限时间内完成。
- 改名准备阶段中断时会清理不完整的过程记录,不会因为恢复记录缺少中间文件而阻止工作台启动。
- 图谱更新和改名锁释放同时发生时会短暂重试,已完成的改名不会长期停在待更新状态。
## v3.6.90 (2026-07-26)
### 改进
- 改名恢复期间会等待正在完成的图谱更新,避免重启或刷新时把刚完成的操作误判为仍未完成。
- 恢复读取保持只读;同一进程不会重复接管已经持有的改名锁,受阻状态也会继续优先展示。
- 改名完成后的恢复提示会在当前改名候选仍然存在时继续提供入口,处理完成后可以明确关闭提示。
- 三个平台的兼容性检查会先生成共享契约,确保改名兼容测试在干净环境中可以直接运行。
### 修复
- 修复并发恢复、失败重试和最终收尾之间的状态竞态,并补齐服务器、界面和浏览器流程验证。
## v3.6.89 (2026-07-23)
### 新增
- 工作台的图谱告警会解释问题和候选页面;遇到链接歧义或跨系统路径冲突时,用户可以选择相关页面执行“安全改名”,也可以从页面阅读区主动发起同目录改名。
- 安全改名会先展示完整影响预览,包括新旧路径、将更新的文件和引用、保持只读的引用、固定位置迁移,以及每一处需要用户选择的歧义;全部核对并确认后才会写入。
### 改进
- 预览后出现外部编辑、文件增删或布局变化时,整份预览会失效并要求重新确认,不会只写一部分;进程中断或冲突时,工作台会在重启后恢复,并要求用户核对完整冲突集合后选择完成提交或恢复原状。
- 普通完成或回退会立即清理过程副本;已解决冲突中无法从最终知识库还原的未选版本会明确列出,并保留 30 天后自动删除。
### 修复
- 页面内容已经改名、但图谱更新失败时,完成状态会跨重启保留;用户可以只重试图谱更新,不会再次改写页面或回退已经保存的内容。
## v3.6.88 (2026-07-22)
### 新增
- 图谱节点身份改为知识库内的相对路径,同名页面可以同时保留;歧义链接不再猜测目标,并会明确提示候选页面。
- 图谱构建与共享引擎统一提供重复编号、歧义、断链、待创建、不规范路径和可移植路径冲突告警;告警详情保持只读,并按页加载。
### 改进
- 工作台和离线图谱在存在内容问题时仍保持可阅读,并显示告警摘要;完整详情通过同一份侧车数据分页读取,路径只使用知识库内相对路径。
- 首次从旧编号切换到路径身份时,节点、关系、社区和 Pin 会按页面路径保持连续,避免把身份变化误显示成整库新增或删除。
### 修复
- 离线图谱遇到无效告警详情时只保留安全摘要,不会把本机绝对路径带入导出文件。
- 只有迁移提示、没有图形变化的刷新不会再把工作台卡在“更新待播放”状态;图谱会保持可读并继续显示提示。
### 发布边界
- 本版只发布 path identity、graph warnings、可读的 ready 图谱、安全相对路径、Pin 连续性和只读详情。Tasks 5–6(改名、预览失效、等价名称可移植性、主动改名与恢复)另开 PR,不属于本版。
## v3.6.87 (2026-07-20)
### 改进
- 图谱读取遇到重复的节点、关系或社区编号时,会稳定保留第一项并给出明确提示;自动补出的编号会避开已有编号,搜索内容仍与正确页面对应。
- 首次从旧页面编号切换到路径编号时,会按页面来源对齐节点、关系和社区;缺少来源或无法安全对应时保留真实变化并给出迁移提示,不再猜测匹配。
## v3.6.86 (2026-07-18)
### 修复
- 图谱宿主错误的浏览器验收现在会等待每段页面环境完整退出,再关闭浏览器;远端检查不再因两个清理动作相撞而在功能断言全部通过后误报失败,检查与清理同时失败时也会保留两边的错误。
### 改进
- 完成图谱共享模型迁移的最终收缩:删除 `legacy-helpers`、旧 learning、收藏/笔记队列、旧存储、无消费者的聚焦/抽屉入口和 Atlas 旧视角出口;可见快照规则归入现行绘制策略负责人,工作台、离线图谱、Sigma 主路线与 DOM/SVG 故障回退继续共享同一结果。
- 退休早期 `wash` 离线模板及其专属测试;现行社区 wash、离线 Pin/主题存储名称和升级重建时清理旧 `graph-wash` 文件的行为继续保留,并由新门禁直接验证。
- 构建产物和源码依赖门禁现在要求旧路径与退休出口保持为零,防止旧工具箱、转发壳或类型检查跳过标记重新出现。
## v3.6.85 (2026-07-18)
### 改进
- 迁移后大图悬停性能回归门禁落地:在旧实现仍可对照、所有运行路线已迁移后,对生产 `nodes-1000-sparse` 与隔离 `nodes-1000-sparse`/`nodes-5000-sparse`/`nodes-10000-aggregation` 各连续运行三次,由自动比较器读取 #272 不可变基线,执行 `afterMedian <= beforeMedian + max(beforeMedian * 0.20, 50ms)`,并强制公式、构建方式、浏览器版本与运行次数一致;候选四项中位数全部达标(均略低于迁移前基线)。
- 生产 Sigma 全动作硬门禁在 `nodes-1000-sparse` 上覆盖初次显示、搜索、进入社区、返回全局、内存增长与既有 fps/p95/时长/hover 目标与可见状态门禁;迁移前的调用契约(每份数据只投影一次、每次更新只建一份模型/布局/搜索索引)继续通过。
- 新增图谱引擎双产物加载门禁:工作台 ESM 产物可动态 `import`、离线 IIFE 产物可在沙箱 eval 暴露离线宿主消费的全局;记录退休前 ESM/IIFE 产物大小,叠加离线构建读取并内联 IIFE 的冒烟,证明两种产物分别可被工作台与离线宿主使用。
## v3.6.84 (2026-07-18)
### 修复
- 工作台首次打开或后续更新图谱时,如果共享模型、布局、绘制规则或准备结果失败,会复用现有错误页面并清空旧图、选择、筛选、Pin 和失败实例,不再留下旧内容或半成品。
- 离线单文件图谱创建失败时会显示现有恢复提示并撤掉画布与工具栏;浏览器存储不可用时仍可继续阅读,同时明确说明主题与固定位置不会保留。
### 改进
- 正常工作台与离线图谱的真实浏览器检查现已覆盖 Sigma 画布像素、搜索、筛选、社区进入、阅读、选择、Pin、缩放、平移、重置、主题和刷新恢复;工作台首次打开与更新的共享故障也会在真实页面确认清空旧图且不错误回退;Sigma 专属故障后的 DOM/SVG 回退继续覆盖搜索、阅读、固定、缩放、平移、重置和小地图。
- 离线东方设计检查现在实际打开首屏、确认推荐起点并点击阅读正文,不再依赖图谱内部函数名称。
## v3.6.83 (2026-07-18)
### 改进
- Sigma 主路线与 DOM/SVG 故障回退现在使用同一份已经准备好的绘制、选择、搜索、Pin、预算、聚合和社区结果;回退不再重新读取原始图谱并生成第二份结果。
- 共享结果生成失败会直接沿原有错误出口结束,不会被误判为 Sigma 故障;只有共享结果成功后的 Graphology、WebGL、canvas 或 Sigma 运行故障才会启动 DOM/SVG 回退,并继续保留小图更新、回全图和重试行为。
- WebGL 不可用时的真实浏览器检查现已覆盖 DOM/SVG 搜索、阅读、选择、固定、缩放、平移、重置、小地图、数据更新和社区往返。
## v3.6.82 (2026-07-17)
### 改进
- Sigma 全局图谱和社区阅读现在直接使用已经准备好的绘制结果、选择与聚合信息,不再从原始节点和关系重复推导;对象、顺序、位置、搜索、选择、多选、Pin、预算、聚合和社区进入行为保持不变。
- 共享结果成功后的 Graphology、WebGL 与 canvas 故障继续进入原有 Sigma 故障上报与回退边界;DOM/SVG 回退路线和切换规则未改变。
## v3.6.81 (2026-07-17)
### 改进
- 图谱的密度、节点呈现、标签与关系预算、稳定骨架、社区层级和标签方向现在由同一份共享规则决定;工作台、离线图谱、Sigma 主路线和 DOM/SVG 回退继续得到迁移前的相同结果。
- 每次图谱更新只整理一次模型、布局、可见结果和绘制规则;边的路径、粗细与透明度仍由原有几何规则负责,组装过程不再保留第二套筛选或预算算法。
- 离线图谱密度检查现在直接打开真实 Sigma 画布,确认大图以安静小点为主、只保留少量可读标签,不再依赖压缩文件里的内部名字。
## v3.6.80 (2026-07-17)
### 改进
- 图谱初始布局现在返回独立位置,不再改写节点模型;已有坐标、缺失坐标、社区中心和节点相对形状保持不变。
- 拖动位置、持久化 Pin 与初始位置按固定优先级形成最终地图;内容范围会继续包住类型筛选、临时显示和远端其他社区节点,社区取景、缩放、平移、重置、窗口变化与小地图结果保持不变。
## v3.6.79 (2026-07-17)
### 改进
- Atlas 全文搜索与常规图谱搜索现在各自使用明确入口:Atlas 继续覆盖标签、ID、类型文案、来源路径、摘要和清理后的完整正文,常规搜索仍只使用原有标题回退与正文前 500 个字符。
- 类型筛选、社区聚焦、Atlas 搜索和临时显示现在由同一份可见集合规则处理;节点与关系结果、选择失效时机以及现有绘制数量、布局和视角保持不变。
- 旧知识库存在重复节点 ID 时,Atlas 社区聚焦和搜索仍按原节点对象限定范围,不会把其他社区或未命中的同 ID 节点带回结果。
- 节点 ID 与 JavaScript 对象保留名称相同时,核心聚焦和关系可见结果继续保持迁移前兼容行为;长期修正规则单独由 #297 跟踪。
## v3.6.78 (2026-07-17)
### 改进
- 图谱标签的中文、组合字符和 emoji 分段、宽度估算、长标题省略、卡片尺寸与摘要清理现在由独立模块负责;浏览器缺少字素分段能力时仍能安全显示复杂字符。
- 工作台、离线图谱、Sigma 与 DOM/SVG 的常规搜索统一使用图谱入口保存的兼容信息,标题回退、空格、数值标题、emoji 和正文 500 字符边界的既有结果保持不变;离线检查现在会实际操作搜索和查看长标题结果。
## v3.6.77 (2026-07-17)
### 改进
- 图谱的节点、关系、社区、起点和洞察现在由同一份稳定模型整理,旧知识库里的缺失字段、未知值、无效关系和重复 ID 继续得到原有结果。
- 绘制过程直接使用这份模型,不再另建一套临时结果;源码、构建后的声明和外部使用者现在共用同一份明确约定。
## v3.6.76 (2026-07-17)
### 改进
- 图谱引擎现在会先把未知、残缺或畸形数据整理成安全的兼容结果,再交给路线、选择、摘要和绘制;空图谱、无社区图谱、缺失或冲突 ID、非数组集合及非有限数值不会再让入口同步崩溃。
- 每次新图谱数据只整理一次,Sigma 主路线与 DOM/SVG 回退复用同一结果;常规搜索继续保留原有标题回退和正文截取规则,现有搜索结果不变。
## v3.6.75 (2026-07-17)
### 改进
- Sigma 性能试验现在单独要求悬停预览:生产路线验证真实画布变化,隔离路线验证一阶关系聚焦;其他渲染试验继续使用原有基础动作,不会被 Sigma 专属要求误判。
- 固定迁移前生产 1k 与隔离 1k/5k/10k 的三轮悬停基线、中位数、浏览器和构建说明;后续结果按固定公式自动比较,已封存基线不能被再次生成覆盖。
## v3.6.74 (2026-07-16)
### 修复
- 修复全局图谱中,鼠标停在社区色块背景时桌面滚轮或触摸板会误触发浏览器缩放的问题。现在全局图谱和社区阅读的节点、社区色块、关系与空白区域都按同一规则缩放图谱;地图内控件不触发图谱或浏览器缩放,地图外仍可使用浏览器缩放。
## v3.6.73 (2026-07-16)
### 修复
- `/llm-wiki-upgrade` 现在自适应探测 llm-wiki 的实际安装目录:优先用 `CLAUDE_PROJECT_DIR`,再从当前工作目录逐级向上查找最近的 `.claude/skills/llm-wiki`,最后回退 user 级 `$HOME`,并把探测到的路径作为 `install.sh --upgrade --target-dir` 传入;装在 project/vault 级(如 Obsidian 仓库、团队共享仓库)时不再静默升级到 `$HOME` 那份。`CLAUDE_PROJECT_DIR` 为空或 project 级无副本时回退 `$HOME`,user 级行为保持不变。
## v3.6.72 (2026-07-15)
### 修复
- 浏览器主流程线上检查现在分别记录依赖、系统准备、浏览器安装验证和正式测试的耗时,并按锁定的 Playwright 与浏览器内容复用缓存;缓存未命中仍会完整安装,命中后仍会检查系统依赖并实际启动浏览器。
- 准备命令失败、不退出或被中断时会在各自边界内结束并清理进程,正式测试失败后会为清理和诊断材料上传保留时间;七类浏览器主流程、网络守卫与产品行为保持不变。
## v3.6.71 (2026-07-15)
### 修复
- 浏览器主流程检查现在会在每次前后台启动和后端重启时重新验证属于本次启动的网络守卫结果;旧的 `BLOCKED` 文件或较晚到达的旧结果不再让遗漏守卫的新进程误判通过,原有启动、重启、恢复和清理流程保持不变。
## v3.6.70 (2026-07-15)
### 修复
- 工作台图谱事件断线后会重新读取当前图谱结果;断线期间发生的构建失败或成功更新不再永久丢失,页面会显示当前错误或当前图谱。
- 旧连接和较晚返回的旧读取不会覆盖新的图谱状态;连续更新、主动重构、失败后重试与恢复保持原有流程,默认记录不再包含图谱构建的内部错误或知识库路径。
## v3.6.69 (2026-07-15)
### 修复
- 工作台现在会把模型调用失败明确显示为失败,不再把已经失败的回复写成完成;正常完成、停止、断线恢复和工具过程仍保持原有状态。
- 重新打开对话时,失败只显示安全提示;停止会保留已显示的回复片段并标明已停止,且两者都不会保存或显示模型返回的原始错误、堆栈或诊断内容。
## v3.6.68 (2026-07-15)
### 修复
- 工作台默认检索日志不再记录用户提问、预览、显式引用、长度或原始错误;仅保留排障所需的会话、知识库、触发状态、结果信息和稳定失败状态。
## v3.6.67 (2026-07-15)
### 修复
- 工作台的 `/` 命令清单现在和其他前台读取使用同一套保护与结果规则;对话菜单和设置里的能力统计保持可用,且不会再把本机能力路径显示到界面。
- 移除了不面向用户的早期诊断入口;入口清单和检查会阻止它或其他旧入口被重新加入。
## v3.6.66 (2026-07-15)
### 修复
- Paper 视觉检查中的产出物、设置和模型替身现在与工作台使用同一结果形状;检查会实际读取这三项,并明确拒绝旧的结果形状,避免错误被静默掩盖。
## v3.6.65 (2026-07-14)
### 修复
- 社区阅读浏览器检查现在用公开健康检查确认后台可用,并等前端连接所需的临时就绪文件发布;知识库读取仍保持受保护,原有前端检查、页面流程和截图验证不变。
## v3.6.64 (2026-07-14)
### 修复
- 工作台侧栏的“新建知识库”现在会在默认目录中创建,并在成功后直接进入新知识库自己的对话;重复名称、点号开头的名称和正在处理的同名请求会被拒绝,失败后可重新创建;“添加现有库”、初始化已有目录和批量消化仍保持各自独立的流程。
## v3.6.63 (2026-07-14)
### 修复
- Paper 工作台在平板宽度打开右侧阅读区时,会优先为输入区保留足够空间;输入文字、发送按钮和阅读区不再互相挤压。
## v3.6.62 (2026-07-14)
### 修复
- Paper 视觉检查的页面搜索和阅读替身现在与工作台使用同一结果形状;旧形状会被明确拒绝,检查会确认选中搜索结果后右侧阅读区实际显示页面正文。
## v3.6.61 (2026-07-14)
### 修复
- 图谱轻量视图交互的结束检查现在按实际视图提交后的结算时点判断;整套检查在短暂繁忙时不会把仍在处理的状态误报为已结束。
## v3.6.60 (2026-07-14)
### 修复
- 清理公开记录、示例和 Paper 视觉检查中的真实本机路径、私人知识库名称及私人素材线索,统一改用稳定示例;视觉检查不再默认读取某个用户目录下的参考稿。
- 统一质量检查新增公开内容隐私扫描,并用反向样本证明真实用户目录、机器专属临时目录和已知私人名称会被明确拦截。
## v3.6.59 (2026-07-14)
### 改进
- 工作台新建知识库、初始化已有目录和选择文件夹现在使用同一套请求与失败提示;成功、取消以及“备份并继续”的恢复方式保持不变。
- 这些操作不再向界面返回命令输出、备份位置或内部错误,目录、权限、冲突和平台问题会给出稳定且可恢复的提示。
## v3.6.58 (2026-07-14)
### 改进
- 工作台保存 API key 与测试连接现在使用同一套请求、安全检查和失败提示;设置操作保持不变,异常不会暴露本机信息、密钥或底层错误。
- 认证相关的入口清单、后台组装和前台调用已统一,后续检查会持续阻止这两个入口退回旧处理方式。
## v3.6.57 (2026-07-13)
### 修复
- 图谱事件重新连接时现在必须获得新的连接身份;若服务错误复用旧身份,前端会安全拒绝并再次连接,避免把两轮更新混成同一轮。
## v3.6.56 (2026-07-13)
### 修复
- 工作台检索内容现在只会进入发起检索的那次运行和对话;切换对话、取消、旧结果、重复发送和并行发送都不会串用上下文。
## v3.6.55 (2026-07-13)
### 修复
- 产出物清单和文件下载现在使用同一套编号规则;不合规编号会直接返回可恢复的请求错误,不再被误报为内部错误,正常读取和下载保持不变。
## v3.6.54 (2026-07-13)
### 修复
- 工作台前台现在会把请求方式和入口作为一个整体核对,未登记的组合会在发出前被拒绝;旧接口、文件下载和事件流继续使用各自独立的处理通道。
## v3.6.53 (2026-07-13)
### 改进
- 新增本机与 GitHub 共用的七类真实浏览器主流程检查,覆盖知识库、对话、页面、图谱、消息、产出物、设置与模型,并验证隔离、取消、断线、繁忙和失败后的恢复。
- 浏览器检查继续使用真实前台、后台、端口、请求和事件流,只替换外部模型与系统文件夹选择器;每项与整项都有时限,失败材料经过清理后仅保留七天。
## v3.6.52 (2026-07-13)
### 修复
- 统一质量检查现在会跟踪并结束另起进程组的更深层后代,超时、命令失败和外部停止都不会留下后台进程。
## v3.6.51 (2026-07-13)
### 修复
- 补齐统一质量入口遗漏的后台正式启动组装测试,并增加测试文件覆盖反例,防止以后新增后台测试时被静默漏掉。
## v3.6.50 (2026-07-13)
### 改进
- 新增本机与 GitHub 共用的统一质量检查,按固定顺序覆盖共享规则、后台、前台、图谱、边界、类型、规范、构建、真实启动隔离和入口一致性反例。
- 统一检查使用一次性用户环境和最小环境变量,每项与整项都有时限;失败会结束残留进程并只保留经过清理的虚构测试日志七天,成功不上传材料。
## v3.6.49 (2026-07-13)
### 修复
- 补齐真实启动隔离检查在 Linux 上的子进程保护:使用 GitHub 镜像已有工具建立独立网络空间,并在执行前降回普通用户,不安装额外软件。
- Linux 检查用虚构占位文件和临时目录权限验证敏感读取、目录外写入和外网访问均被阻止;macOS 继续使用原有系统沙箱。
## v3.6.48 (2026-07-13)
### 修复
- 修复关闭工作台时可能连续向同一图谱重建进程发送结束信号、偶发导致关闭失败的问题;现在先给正常取消留出短暂清理时间,再按时限使用兜底清理。
- 真实启动隔离检查新增确定性反例:主动吞掉第一次结束信号并拒绝立即重复发送,证明兜底清理仍能结束服务、重建进程并释放端口。
## v3.6.47 (2026-07-13)
### 修复
- 修复前台检查可能复用过期结果并漏掉真实问题的情况;构建和类型检查现在每次都会重新核对当前代码。
- 修复图谱读取分支与工具摘要状态的两处契约不一致;工具摘要缺失时会使用明确空值,不再把不完整状态带入界面。
## v3.6.46 (2026-07-13)
### 改进
- 建立工作台真实浏览器检查地基(#199):使用一次性用户环境启动真实前台与后台,通过真实端口、HTTP 和事件流验证两套虚构知识库与对话,只在模型和系统文件夹选择边界使用测试替身。
- 正式后台构建会先清理旧产物并排除全部测试文件;普通启动没有测试开关,浏览器检查无论成功失败都会在时限内关闭浏览器、前台和后台并释放端口。
- 浏览器检查会分别核对两套虚构数据、主动清除真实密钥和外部配置、覆盖常见外网连接方式,并为构建到清理的整条检查设置统一时限;无法正常关闭时会强制结束残留进程。
## v3.6.45 (2026-07-13)
### 修复
- 修复工作台重复启动失败时错误替换正在运行实例凭证的问题;只有端口真正监听成功后才会发布新凭证,前台不会在失败启动后失去访问能力。
- 工作台退出时会主动结束持续事件连接和正在运行的图谱重建进程,确保服务与子进程都在时限内退出并释放端口。
- 真实启动检查新增前台代理、持续连接、图谱重建及主子进程隔离反例,主动证明真实用户资料、临时目录外写入和外网访问均被阻止。
## v3.6.44 (2026-07-12)
### 改进
- 工作台正式启动与自动检查共用同一套启动、恢复和关闭流程(#197);退出时会主动释放后台资源,重启后继续恢复上次知识库。
- 新增一次性用户环境中的真实后台检查,覆盖仅本机监听、启动凭证权限与轮换、旧凭证失效、陌生网页隔离、只读不落盘、最小环境、外网阻断、超时和进程清理。
## v3.6.43 (2026-07-12)
### 修复
- 收紧工作台本地访问边界(#166):本地配置、对话、页面、图谱事件、文件和状态操作都必须同时通过可信来源与本次启动凭证;健康检查保持公开可用。
- 补齐正常访问与拒绝访问的直接请求检查,确认可信工作台保持可用,陌生来源稳定被拒绝。
## v3.6.42 (2026-07-11)
### 改进
- 完成工作台 HTTP 与流式通信契约的收口(#176):已迁移入口不再接触旧响应解析,尚未迁移的少量入口集中隔离,文件下载与流式事件继续保留各自明确机制。
- 新增自动边界检查并接入全仓检查,持续阻止前端绕过统一调用层、前端引用后台内部实现、后台路由写回旧错误格式、契约包越权依赖,以及已迁移入口退回旧状态。
## v3.6.41 (2026-07-11)
### 改进
- 工作台批量消化和活地图更新流统一使用共享的 v1 事件契约(#175):批量任务带稳定的 run/batch 身份、连续序号与完成/取消/整体失败终态;图谱长连接带独立 stream 身份,并明确以断线结束、重连后重新编号。
- 三条工作台事件流复用同一套前端恢复规则;未知事件、错误版本、关键字段缺失、乱序和异常断线都会停止损坏的流,批量任务会取消底层工作,图谱订阅会安全重连。
### 修复
- 修复图谱首帧发送期间立即断线可能留下悬空服务端任务的问题,并避免批量消化取消后的迟到进度产生未处理错误。
## v3.6.40 (2026-07-11)
### 改进
- 工作台 prompt 请求和流式回复统一使用共享的 v1 SSE 契约(#174):请求体、文本增量、工具状态、产物和终态都带稳定版本、run/message 身份与连续序号;客户端会拒绝损坏、乱序或未正常结束的流并恢复可继续输入状态。
### 修复
- 加固 prompt 生命周期与隐私边界:订阅初始化失败会释放会话运行锁;切换会话后的旧检索不会注入上下文;公开检索状态不再回显原始 prompt、知识库路径或结果路径,异常只发送稳定的安全错误信息。
## v3.6.39 (2026-07-09)
### 改进
- 活地图阅读流程总管地基(#157,父 PRD;#160-#163):新增工作台侧流程适配器 `useActiveMapReadingWorkflow`,统一协调图谱状态、右抽屉、选区、社区阅读、节点阅读、临时显示对象和发问交接;`App.tsx` 不再直接调用活地图阅读流程判断,相关调用收口到统一入口。图谱引擎职责不变,不接管右抽屉与对话跳转。用户看到的节点、社区、选区、阅读、发问和图谱刷新行为不变。
### 修复
- 加固活地图节点阅读的异步页面读取保护:旧读取结果必须匹配当前请求,不能在快速切换节点、关闭抽屉、进入社区或切换知识库 / 对话后覆盖新的右抽屉状态。
- 修复图谱数据刷新去重可能吞掉同批 pins / visibility 同步的问题,并让选区 / 社区补充说明、图谱页面读取和发问交接都通过流程总管入口收口。
## v3.6.38 (2026-07-09)
### 改进
- 活地图阅读流程内部收拢(#146-#149):图谱点选、社区进入、节点阅读、右抽屉关闭、从地图发问和图谱刷新统一走工作台侧流程;用户看到的按钮、文案和发送规则保持不变。
- 活地图阅读回归覆盖更完整:节点、社区、选区、临时显示对象、刷新后保留 / 清理、图谱到对话交接都有自动检查;浏览器回归用真实点击验证 Shift 多选和三条图谱发问路径。
### 修复
- 修复图谱数据刷新后,同一节点摘要可能继续显示旧内容的问题。
## v3.6.37 (2026-07-09)
### 改进
- 图谱视觉验收收口(#138,父 PRD #134):图谱默认态保持可读,"语义强调 / 聚焦点亮"保留为增强显示;浏览器验收覆盖普通屏、大屏、窄屏、暗色、减少动态效果、全局 / 社区交互、搜索、筛选和 Shift 多选,确认 A 保守对齐的明亮、直向、克制视觉方向。
- 窄屏图谱布局不再被展开侧栏挤出视口;图谱工具栏、画布和右侧抽屉在普通屏与大屏下也保持互不遮挡。
- 社区默认关系分层在小图里也保留安静的背景关系,结构关系和背景关系的主次更稳定。
## v3.6.36 (2026-07-08)
### 新增
- 全局图谱节点与社区意图反馈(#137,父 PRD #134):全局悬停节点会轻量预览一阶真实关系,不开抽屉、不动镜头、不改选择,移开恢复;单击节点会固定一阶关系强调并继续打开节点摘要;选中社区只浮出少量内部结构和跨社区桥接上下文,不切成完整社区阅读。
- 全局 hover 性能路径改为局部一阶关系更新:直接在当前 Sigma 图上更新命中的节点和边,不因鼠标移动重跑整张图谱构建。
- 桥接节点的节点级环形提示需要后续补节点信号,本切片不冒充已完成;本次只交付跨社区关系上下文的少量预览。
## v3.6.35 (2026-07-08)
### 新增
- 社区节点悬停、选中与多选关系反馈(#136,父 PRD #134):在 #135 静态分层之上叠加交互态。悬停社区节点临时点亮该节点与一阶真实关系、无关对象退后,不开抽屉、不动镜头、不改选择,移开恢复无残影;单击固定同一强调并继续承接节点抽屉;选中态下悬停别的节点可临时预览,移开回到固定选中。Shift 多选只强调选中节点之间真实存在的关系(不画虚构连线、不动镜头),复用 `relation-focus` seam 增量新增多选分类器。
- 修复 #135↔#136 衔接冲突:`communityMapEdgeLayer` 解耦为纯静态结构层(不再把二阶聚焦边标成 skeleton),Sigma 样式改为"静态层 + relationFocusDepth + selectedRelation"三维度合成,避免悬停悄悄撤掉 #135 的静态骨架强调。
## v3.6.34 (2026-07-08)
### 改进
- 社区阅读默认态关系视觉分层(A 保守对齐第一批,#135):新建结构跨度选择器(真实关系-only 生成森林、按社区规模分档预算、优先串起核心节点与小团块,不再用最高权重关系堆叠),替代旧的全量可见关系 top-K 截断;Sigma 社区阅读主路径按 communityMapLayer 分支,让结构关系比背景关系更清楚,关系颜色仍只表达关系类型。沿用直向、明亮视觉语言,不引入弯曲关系呈现或粗重主干视觉。
## v3.6.33 (2026-07-07)
### 修复
- 修复工作台前端 React hooks 代码风格检查失败:右抽屉进入社区退场状态改为统一管理,保留退场、中断和减少动态效果行为不变。
## v3.6.32 (2026-07-07)
### 修复
- 加固图谱空间连续性验收校验器:单独校验生产回归产物时,也必须检查“回全图过渡中用户新意图接管”记录和耗时门槛,避免关键路径缺失时误报通过。
- 对齐 README 顶部版本徽章,并清理图谱进入社区文件末尾空白,保证文本检查干净。
## v3.6.31 (2026-07-07)
### 修复
- 完整验收并加固 #117 第一批图谱空间连续性路径:社区高亮回全图、摘要进入社区、社区阅读回全图、节点详情让位、关闭抽屉、Shift 多选、选区展开、减少动态效果和过渡中用户新意图都保持同一张知识地图的连续感。
- 修复社区高亮镜头动画没有接入共享过渡接管的问题;滚轮、拖拽、点击其他节点或社区后,旧动画不会再把镜头拉回旧位置。
- 修复图谱刷新期间 spotlight 目标没变时可能误清理活跃过渡的问题,避免状态更新打断正在进行的连续浏览。
- 加固 Sigma 生产浏览器回归:社区点击优先找无遮挡命中点,节点/社区点击都有兜底触发,拖拽性能测试从空白画布点开始;社区阅读回归覆盖 1920×1080 外接屏尺寸,并关闭测试期 HMR,避免热更新把中途状态重置成假失败。
## v3.6.30 (2026-07-07)
### 改进
- 社区阅读里单击节点打开右侧详情抽屉时,镜头连续让位:节点和一阶关系先给即时反馈,阅读面板滑入;宽屏并排抽屉下画布平滑变窄,镜头复用 v3.6.26 的 Sigma 共享视图过渡基座把被选节点带到(已变窄的)剩余画布中心附近,默认保留当前缩放,只有节点或一阶关系圈会被裁切时才轻微缩小。窄屏覆盖抽屉 / 全屏阅读面板下不强行按"剩余画布"重算镜头;减少动态效果下仍打开详情、镜头直跳保持节点可见,取消大幅动画。Shift 多选不动镜头(沿用 v3.6.27 的固化边界);关闭抽屉后镜头不自动回社区中心,不清掉阅读位置。
### 修复
- 修复社区阅读节点让位的边界:打开右抽屉后再按变窄画布计算镜头;让位动画可被滚轮、拖拽和连续点击接管,不会被旧动画抢回;自定义动画时长会真实生效,社区内搜索打开节点不会误触发图上单击让位。
## v3.6.29 (2026-07-07)
### 改进
- 社区阅读回全图改为更短、更克制的连续退出过渡:点击“回全图”后镜头复用 v3.6.26 的 Sigma 共享视图过渡基座拉回全局构图(退出时长短于进入社区),社区细节随内容切换退下、其他社区回到画面;回到全局后保留来源社区高亮、不自动打开社区摘要抽屉,不清掉钉扎位置、全局筛选偏好等浏览状态。减少动态效果下直接落到正确全局状态并保留来源高亮、取消大幅镜头移动;退出过渡期间滚轮、拖拽或点击其他对象可打断。
## v3.6.28 (2026-07-07)
### 改进
- 全局进入社区改为连续过渡:点击社区摘要的“进入社区”后,抽屉退场(而不是瞬间消失)、画布随宽度过渡平滑扩展,镜头复用 v3.6.26 的 Sigma 共享视图过渡基座,从全局社区高亮近景继续推进到社区阅读近景;过渡后仍落在 Sigma 社区阅读主路径,且不会自动重新打开社区摘要抽屉。减少动态效果下抽屉直接关闭、状态正确进入社区,不做大幅镜头推进。
## v3.6.27 (2026-07-06)
### 改进
- 选区抽屉"选中页面"补齐查看全部 / 收起:默认只显示前 3 个选中页面,超过 3 个出现"查看全部",展开后显示全部并出现"收起";继续 Shift 多选保持当前展开 / 收起状态。
- Shift 多选静默更新选区抽屉:后续 Shift 加节点不再重开抽屉、不抢 textarea 焦点、不清补充说明、不重置展开态;多选全程不移动镜头、不自动缩放 / 居中。
## v3.6.26 (2026-07-06)
### 改进
- Sigma 全局图谱新增共享视图过渡基座,统一处理相机目标、动画/即时落点、减少动态效果、用户打断、完成/取消清理和 DOM overlay 跟随。
### 修复
- 修复全局社区高亮点击回全图时的硬切;现在会先保留当前社区高亮,镜头回到全图构图后再清掉,高亮期间滚轮、拖拽或点击其他对象不会被旧动画抢回镜头。
- 修复回全图过渡中数据刷新、窗口尺寸变化和连续滚轮接管可能留下旧高亮或拉回旧镜头的问题,并延后 reset 通知到状态清理完成后触发。
## v3.6.25 (2026-07-06)
### 修复
- 修复全局社区高亮后社区内节点无法点选的问题;现在可以从高亮社区直接打开节点摘要,并保留返回社区摘要、空白/Escape 分层返回。
- 修复节点摘要进入所属社区的路径:进入后会直接打开该节点内容、高亮节点并聚焦关系,节点摘要里不再出现“+邻居”动作。
## v3.6.24 (2026-07-05)
### 改进
- 社区阅读入口收口为 Sigma 主路径:旧 DOM/SVG 社区视图只保留为兼容回退和对照,不再作为后续社区能力的扩展位置。
- Sigma 社区阅读补齐边 hover / click 轻量关系提示,并用轻量强弱变化表达边置信度,避免全局图谱承担边事件开销。
- 移动端和键盘路径补齐:触摸轻点节点会稳定进入阅读,Escape 与搜索、筛选、抽屉和文本输入互不抢控制权。
- 完整社区阅读回归加入 Shift 多选,覆盖全局图谱、进入社区、节点阅读、搜索筛选、拖动重置、多选和返回全图这一整条路径。
### 修复
- 补齐旧设计文档里的过期表述,避免后续维护时误以为社区阅读还要继续维护 Sigma 和 DOM 两套主方案。
- 修复边提示、节点 hover 和返回全图之间的临时状态残留,重新进入社区不会露出旧关系提示。
## v3.6.23 (2026-07-05)
### 改进
- Sigma 社区阅读补齐社区内 Shift 多选能力:选中多个节点后会保持选区抽屉,可继续把选区带入对话。
- 社区阅读内的邻居选择、单节点手动选区、搜索状态和节点阅读状态会各自保留,不再互相误清空。
### 修复
- 修复社区阅读中的临时显示对象可能超出当前社区范围的问题,避免其他社区的节点意外混入当前阅读状态。
- 修复社区内首次 Shift 选中节点后,后续节点命中层丢失导致无法继续多选的问题。
- 修复社区阅读里点击节点旁边空白也会误打开节点阅读的问题;现在只有点中真实节点才打开,点空白会清除当前阅读。
## v3.6.22 (2026-07-04)
### 改进
- Sigma 社区阅读补齐当前社区内搜索和类型筛选:搜索结果会尊重当前类型筛选,点击结果会打开节点内容并保持关系焦点。
- 清空社区搜索时会保留当前节点内容和关系焦点,避免用户正在阅读的内容被意外关掉。
### 修复
- 修复社区类型筛选会污染全局图谱筛选的问题;回到全图后保留原来的全局筛选状态。
- 修复 Enter 可能打开已经被类型筛选隐藏的旧搜索结果的问题。
- 修复图谱数据刷新后,已不存在或移出当前社区的阅读节点关闭了但旧图谱焦点仍残留的问题。
## v3.6.21 (2026-07-04)
### 改进
- “进入社区”现在进入 Sigma 社区阅读主路径:只显示当前社区节点和内部关系,并延续全局图里的位置、层级和社区身份色。
- 从全局社区摘要进入社区时会关闭摘要抽屉,不再默认展示社区简介入口;返回全图后保留来源社区高亮,但不会自动重新打开摘要抽屉。
- DOM/SVG 社区视图调整为回退或对照路径,不再作为工作台社区阅读主路径。
### 修复
- 明确“未分组”不提供进入社区动作,并补齐 Sigma 社区阅读、回全图高亮和抽屉关闭的测试保护。
- 修订 README、产品文档和 ADR-26 中关于社区阅读仍走 DOM/SVG 的旧判断。
## v3.6.20 (2026-07-03)
### 改进
- 社区阅读态现在像从全局图谱靠近刚才那片区域:进入社区后沿用同一套节点层级、边层级、基础位置和标签预算,近景阅读更稳定,和全局视角不再割裂。
- 进入社区后节点自动运动会停下来,地图不再自己把节点推散;用户仍然可以手动拖拽和固定节点。
- 返回全图后会继续高亮刚才进入的社区,帮助用户知道自己从哪里回来;点击空白、重置、切换社区或数据刷新时会正确清掉旧高亮。
### 修复
- 补齐桌面和手机端的社区往返浏览器回归,覆盖返回全图、标签高亮、空白清除、切换社区和桌面拖拽不污染手机基线。
- 修复来源社区被清除后,已经打开的全局图仍可能留下旧高亮的问题。
## v3.6.19 (2026-07-02)
### 改进
- 全局 Sigma 与社区 DOM 视图视觉对齐(Phase 1):Sigma 状态色(选中 / 搜索命中 / 钉扎)与社区节点底色统一走引擎色 token(钉扎节点改用更醒目的紫色),Sigma 标签字体对齐 DOM 主体无衬线,消除切换时的配色与字体跳变。
- 社区视图底色与全局同源(移除方格纸背景),社区边透明度提升并改用全局同源色 token,社区节点默认用社区色底、悬停才显示类型色柔光晕,整体更连贯。
- 性能:社区视图动画期间每帧重算 worldBounds 触发的整页节点重排,改为阈值容差比较,消除可感知卡顿。
### 修复
- 修复宽屏(如 1600×900)下社区视图节点云被压成扁平椭圆的形状畸变:focus=community 时把 worldBounds 锁定到 viewport 宽高比,归一化变为相似变换。
## v3.6.18 (2026-07-01)
### 改进
- 全局 Sigma 点社区高亮和缩放按钮动画更顺:动画期间社区云团、节点命中框和标签先一起轻量跟随,相机稳定后再精确校准,减少大图多社区场景下的卡顿。
- 生产性能检查新增 `spotlight_animation` 记录,并新增 1000 节点、多社区压力样本,后续动画流畅度有固定证据可对比。
### 修复
- 修复浏览器跳过中间动画帧时,社区高亮覆盖层可能直接落到最终位置而缺少一次轻量跟随的问题;单项生产验证现在只拦截本次请求的动作,避免无关动作失败掩盖真实结果。
## v3.6.17 (2026-06-30)
### 改进
- 工作台图谱社区和选区抽屉统一为更克制的主色视觉:状态标签移到顶部,统计项改成单行居中胶囊,"进入社区"和推荐动作改为轻量样式,并与对话区的 Paper 色系保持一致。
- 补齐社区抽屉视觉标准文档和对照截图,后续实现可直接按定稿核对,减少视觉回退。
### 修复
- 修复统计数字过长时可能挤出胶囊的问题,长数字会在胶囊内收敛,单位标签保持可见。
## v3.6.16 (2026-06-30)
### 改进
- 工作台图谱社区抽屉统一:普通社区和"未分组"现在使用同一套概览、固定动作、核心节点和对话入口;"进入社区"移到顶部,未分组默认推荐探索潜在关系。
### 修复
- 修复 PR82 后社区抽屉的低干扰能力回退:核心节点超过 3 个时恢复“查看全部 / 收起”,核心节点行恢复悬停/聚焦反馈,对话区恢复当前社区或选区会带入对话的轻提示。
- 修复社区抽屉切换对象后的展开状态串台和核心节点预览残留问题,避免从一个社区跳到另一个社区后仍保留旧抽屉状态。
- 修复 Sigma 全局图迁移后遗留的选择入口缺口:单节点摘要恢复"+邻居",Shift+点击节点恢复多选。
- 修复全局视角进入社区后的节点选择流程:点节点会打开节点摘要,Shift+点击会保持为精确多选,不再误扩成整个社区。
## v3.6.15 (2026-06-25)
### 改进
- 全局图谱平移/缩放更顺:覆盖层(社区云团、节点命中框、标签)不再每帧整体重建,而是复用已有元素只更新位置,减少拖动和缩放时的卡顿。
## v3.6.14 (2026-06-25)
### 新增
- 工作台全局图谱新增“调参”入口,可打开语义强调和聚焦点亮,让普通关系退到背景、关键关系更容易被看见。
### 改进
- 全局图谱关系改为分主次显示:圈内关系更轻,跨圈关系更清楚,对比和矛盾关系用更醒目的颜色区分。
- 全局图谱图例只保留关系类型,置信度虚线说明继续留在社区图谱里,避免全局视图误导。
### 修复
- 社区聚焦图继续沿用原来的关系显示和图例,不会被全局图调参开关影响。
- 调参面板支持 Escape 关闭和键盘焦点回到按钮,触控点击区域更稳定。
## v3.6.13 (2026-06-24)
### 修复
- 工作台全局图谱点击“重置布局”后会真正清掉旧布局,之后再点社区不会被旧位置拉回默认视图。
## v3.6.12 (2026-06-24)
### 改进
- 工作台全局图谱的 V3 点状视图更稳定:大图社区云层会跟随拖拽更新,同时避免搜索、选择或刷新时重复重算造成卡顿。
- Sigma 全局图谱现在完整沿用当前主题的纸张质感和明暗色系,切换主题后视觉背景保持一致。
### 修复
- 多选社区时,所有已选社区都会保持高亮,不再只保留第一个社区的状态。
- 社区云层点击区域被限制在可见范围内,远距离节点不会把点击范围撑得过大。
- 生产回归检查不再把正常 Sigma 全局图谱误判成备用图谱路线。
## v3.6.11 (2026-06-23)
### 改进
- 工作台图谱进入社区后改为轻量节点地图:节点更小、更松,保留暖纸地图质感,默认减少卡片感和拥挤感。
- 社区内节点按类型显示不同颜色,悬停或点击节点时突出一度关系,二度关系变成浅层背景,其他关系淡出。
### 修复
- 社区图谱保留对比、综合、查询等节点类型,不再把它们错误归成普通实体。
- 补齐社区轻量地图回归测试,覆盖节点类型颜色、关系置信度虚实、一度/二度/无关节点的层次变化和悬停不位移。
## v3.6.10 (2026-06-22)
### 改进
- 工作台视觉统一为 Paper v2 的暖纸配色:默认、新对话按钮、用户消息、图谱工具条和主题色切换保持同一套色系,整体更稳重耐看。
- 侧边栏和会话区的长标题、长消息会收在各自区域内,不再把页面横向撑开。
### 修复
- 图谱布局会过滤旧格式里的离谱坐标,避免坏数据把整张图拉飞;同时保留明确保存的远距离 world 坐标,不误删用户手动固定的位置。
## v3.6.9 (2026-06-22)
### 新增
- 工作台对话区支持自动跟随最新回复:发送消息和流式回复时自动停在底部,用户上翻历史时暂停跟随,并提供主题化向下箭头一键回到底部。
## v3.6.8 (2026-06-22)
### 修复
- 工作台图谱点击社区打开右侧摘要时,图谱画布不再左右横跳;鼠标不动再次点击也会保持同一视角。
- 图谱画布在真实尺寸变化后会刷新,但会避开重复尺寸通知和快速连续通知造成的反复重算。
## v3.6.7 (2026-06-19)
### 新增
- 图谱全局视角改为轻量查看:点击节点先看摘要,社区色块和图例先看社区摘要,进入阅读或社区聚焦都需要明确动作。
- 新增大图性能验证记录,覆盖真实代理图、1000、5000、10000、超大社区、很多小社区、很多搜索命中和很多固定节点等压力形态。
### 改进
- 全局图谱正式接入 Sigma/Graphology 承接万级结构浏览;DOM/SVG 继续承接社区阅读、离线细节和小图异常兜底。
- 搜索键盘规则对齐为方向键切换结果、Enter 打开当前结果摘要,社区点击回归也对齐为摘要优先。
## v3.6.6 (2026-06-15)
### 新增
- 工作台对话区新增 `omp` 风格动态工具状态:当前 assistant 回复只显示一个正在执行的工具条,工具切换时原地更新。
- 历史工具调用改为折叠摘要,按文件、命令、搜索、Skill 等分组展示,并限制长历史明细数量,避免工具流水账刷屏。
### 改进
- 点击停止后,当前工具条会明确显示取消状态;后端停止后不再继续向该次请求写入工具事件。
## v3.6.5 (2026-06-15)
### 修复
- 工作台图谱在社区聚焦后关闭右侧抽屉时,会保留当前社区视图,不再意外回到全图。
- 在社区聚焦内点击节点打开右侧抽屉时,图谱会稳定当前视野,避免节点明显跳动。
## v3.6.4 (2026-06-14)
### 修复
- 工作台图谱节点保留真实页面路径,旧图谱数据缺少页面路径时会自动重建,避免点击节点或把节点发进对话时读到不存在的页面。
## v3.6.3 (2026-06-13)
### 新增
- 数字山水知识图谱新增搜索、社区图例、悬停预览、点击阅读、Shift 多选和离线选区事实面板。
- 工作台右侧抽屉支持图谱阅读和图谱选区两种状态,阅读、选区和画布高亮保持同步。
### 改进
- 默认节点显示更轻量,密集图在紧凑标签和点状视图下也保留悬停预览。
- 离线阅读器显示中文类型、日期和来源规则,并继续支持本地搜索、图例、导航和节点位置记忆。
- 明暗主题和桌面、平板、手机视口完成回归验证,移动端预览不再越界。
### 修复
- 工作台图谱接口只接受已登记知识库,避免任意本地路径触发布局写入或重建。
- 工作台服务默认并强制保持本机访问,页面读取也会限制在知识库 `wiki/` 目录内。
- 新建知识库流程兼容 Codex 的 llm-wiki 安装目录。
- 补齐 stage 4.5 浏览器回归、可访问性稳定断言和全量回归验证,减少图谱交互改动的漏测风险。
## v3.6.2 (2026-04-28)
### 新增
- 数字山水知识图谱补齐节点视觉语法:普通节点像地图地名,重要节点像索引签条,选中节点像朱砂批注。
- 首次打开图谱时显示推荐起点预览,不再自动替用户选中节点;点击后才进入阅读态。
- 新增东方设计合同回归测试,覆盖节点层级、小地图方位图、学习队列书签条、阅读态和首屏预览钩子。
### 改进
- 推荐起点、搜索命中和选中节点在密集视图下保持可识别,避免大图谱重新变成满屏卡片。
## v3.6.1 (2026-04-28)
### 改进
- 数字山水知识图谱支持画布拖拽、滚轮缩放、回到全图和小地图点击定位。
- 左侧学习队列改为竖向条目,长标题不再撑破侧栏;空队列显示真实提示。
- 右侧札记栏进入阅读态后拥有更稳定的阅读宽度,长路径、wikilink 和代码块不再造成整页横向滚动。
### 修复
- 阅读态切换时先稳定页面宽度再计算图谱位置,避免节点和连线在初次渲染时错位。
## v3.6.0 (2026-04-28)
### 新增
- 知识图谱改为“东方编辑部 × 数字山水”视觉方向:山水印章、国风副标题、编辑部索引、札记式详情和本地 GitHub 入口。
- 图谱运行时新增节点密度策略:少量节点显示小卡片,中等节点显示紧凑标签,超过 200 个节点默认压成点状表达,选中、悬停和搜索命中再展开。
- 右侧详情新增派生摘要区,摘要来自真实正文首个有效段落;正文仍保留 markdown 渲染和站内链接跳转。
- 新增密度回归测试,覆盖 200、201 和 501 节点下的大图构建、密度规则、标签预算和边预算。
### 改进
- 置信度用户可见文案中文化为“直接提取 / 推断关联 / 存在歧义”,数据层仍保留原始枚举值。
- 相邻节点首次默认折叠,展开后列表内部可滚动,并继续按 wiki 本地状态恢复。
- 社区水墨团块会根据当前节点密度降低透明度,避免大图被色块遮住。
- 移动端详情改为底部抽屉,搜索后可以直接阅读摘要和知识内容。
- 生成的图谱 HTML 移除在线字体依赖,继续使用本地脚本和离线资源。
### 修复
- 切换社区、聚焦或搜索后,右侧详情会自动同步到当前可见范围,不再显示旧节点。
- `x: null`、`y: null` 不再被当作左上角坐标,节点会进入自动布局。
- 手机和桌面上的图谱按钮、队列入口和来源操作都保持足够大的点击区域。
## v3.5.1 (2026-04-25)
### 修复
- Windows PowerShell 5.1 中文编码乱码(issue #16):
- `scripts/shared-config.sh` 自动检测 `python3` / `python` 命令(Windows 默认只有 `python.exe`)
- 自动导出 `PYTHONIOENCODING=utf-8`,统一 Python 子进程输出编码
- Python 检测增加 3.8+ 版本校验,和错误消息、README 文档对齐
- `hook-session-start.sh` / `cache.sh` / `delete-helper.sh` 引用 `shared-config.sh`,统一使用 `$PYTHON_CMD`
### 新增
- `install.ps1` Windows PowerShell 安装入口:自动 `chcp 65001` + `$OutputEncoding = UTF8` + 转发 bash 安装流程
- `install.sh` 的 `MANAGED_ITEMS` 清单加入 `install.ps1`,并新增安装后校验环节,确保清单文件都拷贝到位
- `README.md` / `README.en.md` 新增 Windows 章节(Python 检测说明 + `install.ps1` 使用流程)
## v3.5.0 (2026-04-24)
### 新增
- `.wiki-schema.md` 新增「别名词表」section:用户维护同义词组(如 `LLM = 大语言模型 = 大模型`),query 和 digest 搜索时自动展开
- query 工作流搜索前先读取别名词表,展开用户查询关键词的所有同义词,再用全部关键词搜索
- digest 工作流同步支持别名展开搜索
- ingest 完成后如果发现新的同义词关系,主动建议用户添加到别名词表
## v3.4.0 (2026-04-24)
### 新增
- source 模板新增 `image_paths` frontmatter 字段,追踪已下载到 `raw/assets/` 的图片路径列表
- ingest 流程(完整 + 简化)记录图片数量和路径,用户下载图片后可手动或通过 lint 补全
- `lint-runner.sh` 新增图片资产一致性检查:source 页面声明了 `image_paths` 但文件不存在时报告缺失
## v3.3.1 (2026-04-24)
### 新增
- ingest 完整处理和简化处理均在保存素材后检测图片引用(`![`、`<img`、图片 URL),提醒用户下载到 `raw/assets/` 防止链接失效
- source 模板新增 `images` frontmatter 字段,记录素材包含的图片数量
## v3.3.0 (2026-04-24)
### 新增
- 学习驾驶舱重构为左侧五段式导航:社区分类、当前主题聚焦、学习搜索、学习队列、推荐起点
- 新增当前主题聚焦:完整范围、核心节点、一级关联、高置信度,统一汇入可见图谱状态
- 新增学习队列 MVP:节点收藏、学习笔记、最近条目回跳,浏览器本地按 wiki namespace 隔离持久化
- 新增 `tests/js/graph-wash-runtime-state.test.js` 与 `tests/js/graph-wash-queue.test.js`,覆盖可见状态联动与队列状态
- query/digest/ingest 工作流新增单页长度上限规则(2000/3000 字),超长页面只读 frontmatter + 关键段落,避免 token 浪费
- query 搜索结果按相关性排序:文件名精确命中 > index 条目命中 > 正文关键词命中
- Step 1 JSON 契约新增 `evidence` 字段:EXTRACTED 应附原文摘录,INFERRED 应附推理依据;校验脚本以 WARN 形式提示缺失
- 新增 `scripts/lint-fix.sh` 低风险自动修复脚本:按 section 补齐 index.md 中未收录的页面,支持 `--dry-run`
### 改进
- 图谱首次打开回到全局视图,推荐起点降级为左侧底部辅助入口,不再抢占主叙事
- 顶部搜索移入左侧学习搜索,搜索范围跟随当前社区、聚焦模式和边过滤后的可见快照
- 洞察、图例、小地图统一归入二级信息入口,小地图与相邻节点折叠状态改为 wiki 级别隔离存储
- 桌面端收紧三列宽度,新增 1180px 响应式阈值;窄屏左右栏改为 overlay,13 寸屏正文和画布更少互相挤压
### 移除
- 删除右侧抽屉旧学习三段说明和 `drawer.section_order` 旧 contract,不再保留 `dr-learning` 兼容壳
## v3.2.1 (2026-04-24)
### 修复
- `validate-step1.sh` 加强子字段校验:entity 必须有 name/type/confidence,topic 必须有 name,connection 必须有 from/to/confidence,缺失即触发回退
- `lint-runner.sh` 孤立页检测从仅 `entities/` 扩展到 `entities/`、`topics/`、`sources/` 三个目录
- `lint-runner.sh` 新增反向 index 一致性检查:文件存在但 index.md 未收录(跳过 derived 页面)
- `cache.sh` 自愈逻辑收紧:stem 匹配后还需验证 source 页面 frontmatter 的 `source_path` 是否指向当前 raw 文件,不匹配时返回 `MISS:repaired_needs_verify` 而非 `HIT(repaired)`
### 测试
- 更新 lint 回归金文件,新增 source fixture 覆盖孤立页和反向索引检查
- 更新缓存回归测试 fixture,source 页面补 frontmatter 适配自愈验证逻辑
- 更新 validate-step1 回归测试,entity JSON 补 `type` 字段适配新校验
## v3.2.0 (2026-04-23)
### 新增
- 学习驾驶舱左侧社区导航面板:桌面端独立三列布局(导航 | 画布 | 抽屉),窄屏(<1024px)自动切换为 overlay
- 社区榜展示前 3 个社区(按 is_primary + node_count 排序),每个社区显示名称、节点数和来源数,primary 社区带 TOP 标记
- 点击社区切换到该社区的 community 视图,点击推荐起点进入 path 视图并自动展开抽屉
- 左中右联动:首次打开、点击社区、点击起点、点击节点、切换模式、切到全局,六种触发动作的完整状态一致性
- 社区切换后若当前选中节点不在新可见集内,自动关闭抽屉(drawer 漂移修复)
- 非 top-3 社区节点点击时显示内联提示,左侧高亮不跳转
- `graph-wash-helpers.js` 新增 `getCommunityNodeIds()` 运行时派生函数,任意社区的可见节点集合不再依赖 primary 预计算
- 新增 `tests/fixtures/graph-interactive-multicomm/` 多社区测试 fixture(4 社区、20 节点、30 边)
### 改进
- `graph-wash.js` 社区视图改为通过 `activeCommunityId` 运行时派生可见节点,不再复用 `learning.views.community.node_ids`
- 旧的 `renderLearningPanel()` 拆分为 `renderNavPanel()`(左侧导航)和 `updateInsightsTitle()`(标题同步),职责分离
- Insights 面板不再隐藏/替换,`#insights-body` 始终可见
- `focusNode()` 新增 `openDrawer` 参数,社区切换时可保持抽屉状态
### 测试
- 新增 `getCommunityNodeIds()` 3 个单元测试(正常匹配、不存在社区、空 community id)
- 更新 HTML 回归脚本:新增 nav-panel 相关 DOM hook 断言,删除旧 learning-body 断言
- `focusNode` 签名变更在两个回归脚本中同步更新
## v3.1.0 (2026-04-23)
### 新增
- 知识图谱新增「学习驾驶舱」:首次打开图谱时,自动展示推荐起点驱动的学习路径,而不是默认的全局视图
- 新增路径/社区/全局三种学习模式切换,路径模式聚焦推荐起点及其直接邻居,社区模式聚焦最大社区
- 侧边抽屉新增学习解释区:这是什么、为什么现在看、下一步看什么,引导用户渐进探索
- Insights 面板在学习模式下切换为学习入口,展示推荐起点和社区概览
- 搜索、小地图、底栏均适配子图模式,只搜索/显示/统计当前可见节点
- `graph-analysis.js` 新增 `buildLearning()` 预计算函数,构建时生成完整学习元数据(降级瀑布、社区统计、推荐起点)
- `graph-wash-helpers.js` 新增 6 个学习辅助函数(defaultLearning、normalizeLearning、resolveInitialMode、getVisibleNodeIds、getVisibleLinks、shouldAutoOpenDrawer)
### 测试
- 新增 `tests/js/graph-wash-learning.test.js`,20 个单元测试覆盖全部学习辅助函数
- 新增 `tests/graph-html-learning-cockpit.regression-1.sh`,5 个回归测试覆盖 HTML 壳、运行时钩子和既有功能兼容性
- 更新 `tests/expected/graph-data-sample.json` 和 `graph-data-empty.json` 金文件,反映新增的 learning 字段
## v3.0.7 (2026-04-22)
### 修复
- `graph-wash-helpers.js` 在 `Intl.Segmenter` 不可用时会把 ZWJ emoji、组合附加符和肤色修饰符并回同一段,旧运行时下的长标签截断不再拆坏家庭 emoji
- `graph-wash-helpers.js` 现在同时导出到浏览器全局和 CommonJS,避免桌面壳或混合运行时里 `graph-wash.js` 拿不到 helper 后整页不启动
- `build-graph-html.sh` 改为先复制全部 graph 资产,再替换最终 `knowledge-graph.html`,helper 缺失时不再把旧的可用 HTML 覆盖成坏产物
### 测试
- 新增 `tests/js/graph-wash-bootstrap.test.js`,覆盖 helper 缺失和 CommonJS + 浏览器双导出场景
- `tests/js/graph-wash-helpers.test.js` 补充 `Intl.Segmenter` fallback 下的家庭 emoji 边界断言
- `tests/graph-build-failures.regression-1.sh` 新增 helper 资产缺失时保留旧 HTML 的失败路径回归,`tests/regression.sh` 同步接入 bootstrap 单测
## v3.0.6 (2026-04-22)
### 新增
- 新增 `templates/graph-styles/wash/graph-wash-helpers.js`,把长标签截断、宽度估算和安全存储封装为可复用 helper,供浏览器运行时和 Node 单测共用
- 新增 `tests/js/graph-wash-helpers.test.js`,用 `node:test` 覆盖 grapheme 分段、宽度计算、标签截断、卡片尺寸和安全存储边界行为
### 改进
- `graph-wash.js` 改为从共享 helpers 读取 `truncateLabel`、`cardDims` 和 `createSafeStorage`,减少前端运行时里的重复逻辑
- `graph-wash.js` 在 `graph-wash-helpers.js` 缺失或加载失败时会显式报错并停止初始化,不再因为顶层解构直接抛出难定位的异常
- `build-graph-html.sh` 与 wash footer 现在会复制并先加载 `graph-wash-helpers.js`,长标签回归不再依赖 `vm` 从浏览器脚本抽函数
- `tests/regression.sh` 接入 `graph-html-styles`、`graph-html-search`、`graph-html-mobile` 三个遗漏回归,避免全量回归漏跑图谱场景
### 测试
- 新增 `graph-wash-helpers` JS 单测,并把它集成进 `tests/regression.sh`
- `graph-wash-helpers` 单测补充 `Intl.Segmenter` 不可用时的 fallback 分支和浏览器全局导出分支覆盖
- 更新 `graph-html-long-label.regression-1.sh` 与 `graph-html-styles.regression-1.sh`,验证 helpers 产物复制、脚本加载顺序和长标签行为
## v3.0.5 (2026-04-22)
### 新增
- 新增 `scripts/lib/source-signal-eligibility.js` 共享模块,统一 6 种页面类型的来源信号(source-signal)资格判定逻辑
- 新增 `scripts/source-signal-coverage.js` 批量扫描脚本,输出 JSON 格式的覆盖情况汇总
- lint 报告新增"检查 4:source-signal 覆盖情况",按原因分组列出未参与页面
- status 工作流新增覆盖数据汇报步骤,报告模板增加"图谱来源信号覆盖"摘要
### 改进
- 从 `graph-analysis.js` 提取约 115 行重复的 frontmatter 解析和来源解析函数到共享模块,graph 回归测试全部通过
- README 先决条件更新:来源信号覆盖检查需要 `node`
### 测试
- 新增 31 个 JS 单元/集成测试(`source-signal-eligibility.test.js` 25 个 + `source-signal-coverage.test.js` 6 个),覆盖全部 5 种资格原因
- 新增 `tests/lint-output.regression-1.sh` lint 输出 golden diff 回归
- `tests/regression.sh` 集成 JS 单测和 lint 回归
## v3.0.4 (2026-04-22)
### 新增
- 新增根 `HERMES.md` 与 `platforms/hermes/README.md`,让 Hermes 进入仓库时能走自己的安装入口,不再误吃 Codex 专属提示
- `install.sh` 与 `scripts/runtime-context.sh` 新增 `hermes` 平台支持,默认技能目录为 `~/.hermes/skills/llm-wiki`
- `README.md`、`README.en.md`、`SKILL.md` 补齐 Hermes 平台说明与 metadata,保持共享核心不分叉
### 测试
- `tests/regression.sh` 新增 Hermes 安装与入口文档断言,继续兜住四平台安装矩阵
- README 结构断言扩展到 Hermes 安装、升级与根 `HERMES.md` 提示
### 致谢
- 感谢 [Zihan Zhao](https://github.com/ZZXX-bit) 贡献 Hermes 平台支持
## v3.0.3 (2026-04-21)
### 新增
- 图谱 2.0 第一段:`build-graph-data.sh` 现在会生成边权重、来源信号可用性、Louvain 社区和规则 insights,输出稳定写入 `wiki/graph-data.json`
- wash 图谱前端新增强弱边视觉分层、邻居强度指示和 Insights 面板,离线 HTML 可以直接查看惊人连接 / 知识缺口 / 桥节点
- 新增 `scripts/graph-analysis.js` 和 3 组 graph 回归,覆盖 helper 算法、Node/helper 失败路径、Insights 面板接线
### 改进
- `templates/source-template.md` 补齐 `sources: []` 契约,图谱权重可用来源重叠信号,不再靠旧的平面连线
- 图谱搜索改为预计算索引,避免每次输入都重新扫描全文内容
- 图谱基础构建运行时要求现在显式为 `jq` + `node`
## v3.0.2 (2026-04-21)
### 修复
- 图谱页在缺少小地图或相邻节点区 DOM 片段时不再因空引用中断,折叠状态初始化更稳
- `cardDims()` 与 `truncateLabel()` 统一使用字素簇宽度计算,长标签和复杂 emoji 的截断结果保持一致
- `tests/regression.sh` 的升级回归改为在移除 `.git` 的仓库副本里执行,避免安装测试被当前工作区状态干扰
### 测试
- 长标签、小地图、相邻节点折叠回归升级为 Node 运行时断言,覆盖 guard、状态切换和持久化行为
- 安装总回归补齐显式目标目录升级与 README 结构断言,继续兜住升级路径
## v3.0.1 (2026-04-21)
### 改进
- 图谱页品牌区改成直接链接 GitHub,宽屏工具栏按钮改为“图标 + 文字”,常用操作更容易发现
- 长标签节点改为安全截断并保留完整标题提示,避免卡片文字溢出
- 小地图和相邻节点区支持独立折叠,并记住上次展开状态
- 详情抽屉改成主内容优先、相邻节点辅区受限高度,长内容浏览更稳定
- 图谱样式补齐 `prefers-reduced-motion`、`aria-expanded`、键盘 Enter / Space 触发等无障碍细节
### 测试
- 新增 graph UX shell 回归:品牌链接、长标签截断、小地图折叠、工具栏标签、邻居区折叠、a11y
- `tests/regression.sh` 现在会串行执行上述图谱 UX 回归,避免总回归漏跑
## v3.0.0 (2026-04-20)
### 新增
- **水彩卡片风交互式知识图谱**:`build-graph-html.sh` 生成 `wiki/knowledge-graph.html`,使用 d3 + rough.js 水彩卡片风格,离线双击即可查看(搜索、过滤、社区聚类、节点详情抽屉)
- `templates/graph-styles/wash/`:wash 水彩卡片图谱模板(header / footer / graph-wash.js)
- `deps/d3.min.js`、`deps/rough.min.js`:本地 vendor,不依赖 CDN
- `tests/graph-html-styles.regression-1.sh`:回归测试覆盖本地 vendor、模板注入和离线资产复制
### 移除
- classic(vis-network)和 paper(手绘笔记本)图谱风格及相关模板、vendor 资产
- `--style` 参数和二参数兼容调用方式
### 改进
- `scripts/build-graph-html.sh`:简化为 wash-only 单风格输出,接口更简洁
- 图谱运行时:读取内嵌 `graph-data` JSON,并对 markdown 详情面板做 DOMPurify 清洗
## v2.6.0 (2026-04-17)
### 新增
- **交互式知识图谱 HTML**:双击 `wiki/knowledge-graph.html` 即可在浏览器中查看交互式知识图谱(搜索、过滤、社区聚类、节点详情抽屉、键盘快捷键)
- `scripts/build-graph-data.sh`:扫描 wiki 目录生成 `graph-data.json`(节点/边/社区聚类/U2 top-30 算法/2MB 降级保护)
- `scripts/build-graph-html.sh`:拼接 header + graph-data.json + footer 生成自包含 HTML,复制 vendor 资产
- `templates/graph-template-header.html`:品牌栏 + 工具条 + 三栏骨架 + CSS 变量 + ARIA
- `templates/graph-template-footer.html`:vis.js 初始化 + 11 个交互状态 + 键盘快捷键
- `templates/vis-network.min.js` + `marked.min.js` + `purify.min.js`:vendor 三件套及对应许可证
- `SKILL.md` 工作流 8 新增 Step 2b(生成 graph-data.json)和 Step 2c(生成 HTML)
- 14 个回归测试覆盖 build-graph-data.sh 和 build-graph-html.sh 的 13 条代码路径
### 修复
- `build-graph-data.sh`:bash 3.2 全角字符后 `$OUTPUT` 变量名误解析,改用 `${OUTPUT}` 显式定界
## v2.5.0 (2026-04-16)
### 新增
- `scripts/create-source-page.sh`:source 页面写入和缓存更新绑定为原子操作,写入后自动更新 `.wiki-cache.json`,失败时自动回滚
- `scripts/cache.sh check`:MISS 原因细分(`no_entry` / `hash_changed` / `no_source`),AI 可根据原因给出不同提示
- `scripts/cache.sh check`:自愈缓存检查,无 cache entry 但 source 页面存在时通过 filename stem 精确匹配自动修复(返回 `HIT(repaired)`)
### 改进
- `SKILL.md` ingest 工作流:source 页面写入改用 `create-source-page.sh`,Step 12 不再单独调用 `cache.sh update`
## v2.4.0 (2026-04-15)
### 新增
- `platforms/claude/companions/llm-wiki-upgrade/SKILL.md`:Claude 安装后随附 `/llm-wiki-upgrade`,以后可以直接从命令入口更新 llm-wiki
### 改进
- `install.sh`:恢复 Claude 专属伴生命令安装与升级同步,GitHub 地址安装和 `/llm-wiki-upgrade` 两条路线现在共享同一套更新边界
- `README.md`、`CLAUDE.md`、`platforms/claude/CLAUDE.md`:补充 `/llm-wiki-upgrade` 的使用说明,明确默认只更新核心主线
## v2.3.0 (2026-04-15)
### 改进
- `install.sh`:默认安装和默认升级只准备知识库核心主线;网页、X/Twitter、微信公众号、YouTube、知乎提取改为显式追加 `--with-optional-adapters`
- `README.md`、`AGENTS.md`、`CLAUDE.md`、平台入口:统一补充“核心默认可用、URL 自动提取按需开启”的说明,并澄清 `--target-dir` 需要传最终的 `llm-wiki` 目录
### 修复
- `install.sh`:修复 `--upgrade --target-dir <...>/llm-wiki` 被默认平台目录覆盖的问题,自定义技能目录现在会升级到正确位置
- `install.sh`:目标目录不存在时,升级命令现在明确失败,不再误报“升级完成”
- `scripts/adapter-state.sh` + `scripts/runtime-context.sh`:统一源码目录、已安装目录和升级目标目录的判断,避免状态检查在不同运行位置下漂移
- `tests/regression.sh`、`tests/adapter-state.sh`:回归矩阵改成保护“核心默认可用、可选提取显式开启”的新边界
## v2.2.0 (2026-04-14)
### 新增
- `scripts/lint-runner.sh`:lint 机械检查脚本(孤立页面 / 断链 / index 一致性),独立于 AI 判断
- `tests/fixtures/lint-sample-wiki/`:lint 脚本回归测试夹具(含 `C++` 特殊字符、别名链接 `[[X|显示]]`、孤立页面等边界情况)
- `tests/expected/lint-output.txt`:lint 脚本预期输出
- SKILL.md digest 多格式模板:深度报告、对比表、时间线三种输出格式及文件命名约定
- SKILL.md digest 路由表:新增"对比/时间线"触发词
- `templates/schema-template.md` 关系类型词汇表:可选的图谱关系标注词汇(实现/依赖/对比/矛盾/衍生)
- SKILL.md ingest 隐私自查:首次进入 ingest 必须确认的 y/n 隐私检查流程
### 改进
- SKILL.md lint 工作流:拆分为"Step 0 脚本机械检查 + AI 层面判断"两阶段
- SKILL.md graph 工作流:明确 AI 默认只画无标注箭头,关系词汇表仅供手动美化
- CLAUDE.md:新增"推送前测试规则"(三层验证策略),删除与 SKILL.md 重复的使用顺序列表
### 修复
- `lint-runner.sh`:`INDEX_FILE` 路径从 `$WIKI_DIR/index.md` 改为 `$WIKI_ROOT/index.md`(与 schema 约定的目录结构一致)
- 测试夹具 `lint-sample-wiki`:`index.md` 从 `wiki/` 移到知识库根目录,符合 schema 约定
## v2.1.0 (2026-04-13)
### 新增
- `scripts/validate-step1.sh`:ingest Step 1 JSON 格式验证脚本,检查必需字段和置信度值合法性
- `templates/synthesis-template.md`:crystallize 结晶化页面模板
- SKILL.md 置信度赋值规则:明确 EXTRACTED/INFERRED/AMBIGUOUS/UNVERIFIED 的判定标准
- SKILL.md Step 1 验证流程:Step 1 完成后调用 validate-step1.sh,失败自动回退
- SKILL.md 工作流 10 crystallize:对话内容沉淀为 wiki/synthesis/sessions/ 页面
- SKILL.md 路由表:新增 crystallize 关键词路由
### 改进
- `scripts/init-wiki.sh`:创建 `wiki/synthesis/sessions/` 子目录和 `.gitignore`(排除 `.wiki-tmp/`)
- `tests/regression.sh`:新增 9 个测试覆盖 validate-step1.sh 行为和 SKILL.md 内容锁定
## v2.0.0 (2026-04-11)
### 新增
- `purpose.md` 研究方向模板:初始化后直接生成,给后续整理提供明确方向
- `.wiki-cache.json` 本地缓存:为重复素材跳过提供基础设施
- `query` 结果持久化模板:支持把综合回答写回 `wiki/queries/`
- delete 工作流说明和辅助脚本:支持级联删除素材并扫描引用
- Claude Code `SessionStart hook` 支持:可在会话开始时注入 wiki 上下文提示
### 改进
- `SKILL.md`:重构 `ingest` 为两步流程,增加缓存检查、置信度标注和降级说明
- `SKILL.md`:`batch-ingest` 增加无变化跳过统计,`status` 增加 `purpose.md` 状态展示
- `SKILL.md`:`query` 增加重复检测、`derived: true` 标记和自引用防护
- `SKILL.md`:`lint` 增加置信度报告和 EXTRACTED 抽查说明
- `wiki-compat.sh`:兼容旧知识库时同时报告 `purpose.md` 和 `.wiki-cache.json` 状态
- `install.sh`:支持注册和移除 Claude Code 的 `SessionStart hook`