Skip to content

Latest commit

 

History

History
96 lines (73 loc) · 8.21 KB

relation-source-review.md

File metadata and controls

96 lines (73 loc) · 8.21 KB

关系来源复核交付记录

  • 日期:2026-09-05
  • 基线:b263baff0662158259b0cb3b6e8b8d9458d5f2e8;本项独立交付时,第 3 项已完成并保留在同一主工作区
  • 范围:路线图第 4 项;ADR 0068
  • 数据:仅合成内容、临时数据库和浏览器接口替身;没有读取所有者资料或调用真实 Provider

以下为该项独立交付记录;最新修复和完整集成验证见第 3–5 项联合审查。

使用方式

从“知识 → 来源复核”进入,默认显示公开范围的待处理关系。 可筛选尚未核对、需要复核、已核对当前版本或全部可见关系;每批 20 条,有上一批和下一批。 列表保留自动、用户或 AI 来源标记,选中项显示关系方向、当前两端条目和原文入口。

分别查看两端精确来源,选择本次核验状态,填写最多 500 个字符的维护说明,再点“保存并继续”。 成功后重新读取并移至下一项,跨批继续使用当前筛选范围。版本冲突会保留失败提示,要求重新读取后核对。 筛选或隐私范围变化立即清除旧详情和来源,迟到的读取、保存或来源响应不能把旧内容带回页面。

“已核对来源”只记录用户检查过当前两端版本,不表示客观事实已被证明。 任一条目后来修订,即使只改标签或评分,原核验记录也会显示“需要复核”;显示上次记录版本和当前版本供判断。 旧核验没有版本信息时保留原状态和说明,按“需要复核”展示,不猜测历史核验对象。 隐藏关系不出现在复核列表;返回图谱后可以使用原有显式恢复操作。

数据与接口

迁移 000031 在现有关系 override 表增加两个可空正整数: graph_reviewed_entry_low_revision 和 graph_reviewed_entry_high_revision。 它们要么同时为空,要么同时有效;没有历史回填或新增表。

入口 职责
POST /api/v1/knowledge-graph/source-reviews 按筛选、隐私和游标读取有界关系列表
PUT /api/v1/knowledge-graph/edges/:entryId/:relatedEntryId/source-review 校验显示版本,只更新核验状态和维护说明

列表接受 filter、privacyScope、limit 和可选 after。默认 pending/public/20,最多 50。 privacyScope 为 public/include_private/private_only,最后一种要求两端均为隐私条目。 游标绑定筛选和隐私范围,并按规范排序的 Entry 身份对前进。 SQL 在计数和分页前排除隐私不可见、退役、隐藏和无当前关系的记录,仅装载当前批及一个前瞻关系的端点正文。

写入接受 expectedRevision、includePrivate、expectedEntryRevisions、verificationStatus 和 note。 expectedEntryRevisions 包含按规范身份顺序显示的 entryLowRevision/entryHighRevision。 服务先检查当前可见关系,再在同一工作区锁内重新检查端点结构、隐私、版本、关系可见性及 override 版本。 旧请求不会覆盖新修订,不会借复核恢复隐藏边。写入保留名称、关系语义、方向、AI/用户/计算来源及人工调整。

普通图谱编辑在记录来源核验时也发送两端版本;隐藏和恢复保留绑定。 计算投影重建不修改 override。结构重组产生的新关系保留说明与原状态,但不继承不同 Entry 身份的核验版本。

Association Bundle v5 保存两个字段;v1–v4 升级时补空,工作区传输仍为 66 张表。 本轮没有新增依赖、Provider、自动事实判断、网络核验、隐式历史或旧 M1C Knowledge 运行时。 应用数据库须通过既有迁移入口应用 000031 后使用新接口;本轮只迁移一次性合成数据库,没有升级正在运行的用户实例。

验证

以下在 2026-09-05 的最终代码上通过:

检查 结果
corepack pnpm run verify 格式、Lint、类型检查、169 个文件 / 1,047 项单元测试、4 项 HTTP 集成测试、构建全部通过
制品与部署源码边界 1,167 个候选制品文件检查通过,部署源码检查通过
corepack pnpm run test:e2e 24 项真实 Chrome 回归通过,包含 3 项新增来源复核场景
来源复核浏览器边界 双端原文与焦点返回、旧无绑定核验、端点冲突重读、保存并跨批继续、空态、超长说明、隐私迟到响应均通过
像素与可访问性 五种宽度、桌面/手机截图复核、键盘、减少动态效果、强制颜色、独立标题 ID;捕获的来源复核页面运行异常为 0

构建保留现有单包体积提示(主 JS 约 559 kB,gzip 约 151 kB),不影响构建或本次流程;没有以调整告警阈值掩盖提示。浏览器使用合成 HTTP 响应,HTTP 路由与实际 PostgreSQL 另行验证。

PostgreSQL 命令:corepack pnpm run performance:m2-p0d --smoke。 使用一次性 PostgreSQL 18.6,4 个合成 Snapshot、32 个初始 Entry,31 个迁移应用和重复执行 noop 通过。 三组数据变更阶段覆盖 3 个隐私范围、5 个核验筛选,共 978 次完整分页对象比较,无截断范围。 每页限制 3 对时,实际装载的 Entry 正文最多 8 条(本批加一个前瞻关系),没有把此数字当作数据库扫描量。 真实工作区锁下的并发端点变更、override 冲突、隐藏边拒绝复核、隐私和退役过滤、重建保留决定均通过。 结构替换后的新关系具有原说明和存储状态,但没有旧版本绑定,读取显示需要复核。 数据库导出包含精确核验版本,Association v5 codec 往返相等;旧 v4 核验补空、v1–v3 升级和无效绑定拒绝由单元测试覆盖。 完整个人数据包的跨数据库恢复和所有者资料验收需另行执行。 一次性容器和外部临时数据已清理。

前端复核

  • 组件范围:知识页次级入口、来源复核列表/编辑器,以及复用的只读 Entry 来源详情。
  • 视觉家族:struinfo-industrial,深度 complex / 3,沿用现有暗色主题、原生控件和 --si-* token。
  • 仅合成数据和 API 响应;不添加运行中的自动核验、网络搜索或未安装模块。
  • 触及 Web 工作区、API 接线与局部样式;没有修改依赖锁、个人配置或设计资产。
  • 浏览器执行已完成聚焦验证,覆盖 320 / 390 / 768 / 1024 / 1440 CSS 像素、键盘、减少动态效果和强制颜色。

实际像素检查修正了复用详情的过大标题和原文按钮换行,来源标题改用独立可访问身份与正确标题层级。 窄屏改为单列,长维护列表使用有限高度,使证据和保存操作保持可达。 隐私切换会清除来源栏;来源关闭后恢复原按钮焦点。超长说明在提交前提示并禁止保存。

复核维度 结论
操作清晰 从列表逐条核对双端来源,状态/说明保存后继续,冲突有重新读取入口
实现质量 控件可由键盘操作,两端标题 ID 不重复,五种宽度没有横向溢出
信息可信 区分原状态、当前有效状态与已核对版本,保留 AI/用户/计算来源,不把核验说成事实证明

最终设计复核:通过,未发现阻断本次来源复核流程的遗留问题。文档链接与 git diff --check 通过。 本轮保留第 3 项改动,没有提交、推送、发布或部署。