Skip to content

[R2][核心基础] 比较稳定行身份与文档顺序的解耦方案 #164

Closed

Description

@JavaZeroo

新增静态 Search 交付

PR168已以 05f04d0222c06bed958f6894a27d2a1b0708d270 合入main;实验编译源cc07c129、runner修正a6157dea、报告c6a84558均实际可达。固定报告保留独立4case/100行协议及首个epoch门槛失败的另25行,全部投影、计数和中位数独立核对。C++与生产核心/原probe不因decoder修正而变更;不把首次失败追认为成功。

限定静态 H100/H1000 的 cold/warm Search、match/no-wrap 成本现已有实际值;完整增量Search、H10000 Search、生产结构通知、无序viewport UI及RSS仍未验。原本“完整Search成本null”的缺口只部分补充,本项仍开放。PR首次工作流通过,push默认Windows出现#145同类旧尺寸回复失败(原件保留、未重跑);该结果不构成完整产品回归通过。性能门槛/永久容器选择仍未批准,#27/#29/R2不关闭。

当前交付

PR166已以 a8b338b4f5f96e72eba00a5e495fb8dcb85cd0d3 合入main,实际实验源a84a287和发布c0e088d均可达;最终main tree与通过CI的cf4f2c1 merge-preview相同。两轴0遗留,六个首次工作流success;PR默认Windows61/61、Linux41/41、Qt3/3。

固定报告:原caller3项FAIL、两Adapter小夹具正确性通过;18个定位成本case/2304round/36864lookup完成,原件/计数独立核对。未知残留Job成员和一次Terminate请求保留,不冒称整树自然。

本项保持开放:完整Search成本仍null,RSS/生产结构通知/增量Search及无序viewport UI未验。当前只优先继续评估无序LazyTable,未选永久产品容器,也未实现region/origin。剩余复选项包含未测成本,不以定位结果代替搜索或WindTerm性能验收。

问题与范围

父项#27,关联#29;基线main 35a323a3165dae6998237bfd768c7c54c9c8ae99。#151已观察到区域滚动,但自主C++还假设稳定行ID按文档位置递增:Screen/TextDocument的定位及TextSearch的顺序判断依赖该假设。局部插入/重排后可出现 [1,3,4,5,7,6],只替换二分查找仍不足以保证选择、查找和视口正确。不能先接线CSI r并保留已知不正确的区域LF。

本项先形成有界、可复验的内部方案比较,不接新VT协议、不扩大R2范围、不引入新库或应用骨架。使用codebase-design的Module/Interface原则,把身份定位和文档顺序集中处理,避免让每个调用者自行猜测ID含义。既有排序追加/淘汰路径及原合同继续保持。

调查与准备交付

  • 固定实际调用图:精确ID定位、文档顺序比较、失效锚点、结构变化通知与导入/缓存的依赖。
  • 比较两个小实现:可证明有序时保留快路径,无序时分别采用精确扫描或按结构版本惰性建立位置表。不要先锁容器、缓存生命周期或永久接口。
  • 独立正确性oracle:存活行移动保留ID/内容版本/文字;新ID不复用;删除后不复活;软连接必须实际相邻。验证index_of(7)=4、index_of(6)=5、ID2缺失,并覆盖选择/复制、搜索从7向下到6、视口存活锚点与历史淘汰。
  • 不为未观察的用户行为臆造新fallback;Module可以明确报告锚点失效,UI策略及原版未知另列。不能靠重编号或强制清空全部读者掩盖身份错误。
  • 准备固定合成负载与false执行计划:100/1000/10000历史行的有序追加、重复局部重排及随后淘汰;在相同正确性下记录定位/重建次数、内存与首访/搜索成本、源码/工具身份、原始样本及共享宿主限制。实际次数与预算先冻结,不扫样本或为取绿改门槛。
  • 经审查后才运行有界比较,提出可审查实现建议;新数值性能容差仍未经用户确认,不把本次成本诊断当WindTerm性能验收。

工程不变量与原版行为分开:本项不声称已实现region/origin、真实ConPTY/Qt/TUI或#27/R2验收。候选/旧后端只作为既有共同Interface回归,不恢复为正式产品路线。选定方案之后再开独立产品接续任务,包含完整区域LF及已观察的外部保持。

Activity

  1. added 2 commits that reference this issue on Oct 29, 2026
  2. JavaZeroo commented on Oct 29, 2026

    @JavaZeroo
    OwnerAuthor

    本项的调查与方案目标已完成并落地,按证据结项。逐条对照:

    验收项 证据
    固定实际调用图(精确 ID 定位、文档序比较、失效锚点、结构通知、导入/缓存依赖) line-order 比较:18 个定位成本配方、2304 轮/36864 次定位,覆盖 append/reorder/evict × H=100/1000/10000
    比较两个小实现(有序快路径 + 无序精确扫描/惰性位置表) 同上:Scan 与 LazyTable 两 Adapter 的独立正确性 oracle 与成本
    独立正确性 oracle 首片结果:固定夹具 [1,3,4,5,7,6],locate(7)=4、locate(6)=5、locate(2) 缺失、Find 前/后/不换行导航
    不臆造未观察 fallback 首片与封存片保留 missing/保守回退,未新增用户可达重排
    固定负载与执行计划:100/1000/10000 的定位/重建、内存、首访/搜索成本 定位/重建:line-order;内存与生产 H=10000 Search:history-memory(每行私有增量 ~5.8–6.9 KB、H=10000 私有提交 ~59 MB、整文档 Search ~54 ms);静态 Search(fork 配方):H100/H1000
    经审查后有界比较并给出可审查实现建议 生产落地:精确 rank 发布 #170、存储封存 #172、跨重排增量 Search #175

    明确移交、不在本项

    如后续确实需要 fork 的 H=10000 对照数据,可另开独立实验项;本项不再以该未测成本维持开放。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions