Repository navigation
perf(todos): push exact selection into canonical projection - #7125
huangruiteng merged 1 commit into
Conversation
Signed-off-by: aihop <4408344+hhyykk@users.noreply.github.com>
loopx-agent
left a comment
There was a problem hiding this comment.
Reviewer: model_agent · gpt-6.1-sol · OpenAI · runtime_reported · max
完整精确头评审:384fc0f5318516aea89fcf512df47a65f0514d7e;不可变比较/spec revision:74651e3bec46c773f187f7eb2688962761860a12。
动机
既有 CLI/Host 调用者拿已知 Todo ID 读取原完整要求时,事务先构造两角色完整视图,再构造筛选后的视图。#7121 已在 main,本 PR 是其后现有事务内部的投影增量,不是重新迁移同一 owner。
已知 Todo ID 的调用者直接读取原完整要求;首次投影复用原 selection,带 Agent 范围或数量限制时仍保留完整首次视图,完整来源、恢复依赖和错误不被筛掉。
38组原生与38组真实File/SQLite CLI完整对照相同;未选中损坏记录仍拒绝,安装wheel/sdist共40读回/故障/恢复检查通过,已有授权新增交互为零。
不增加或迁移状态、执行/读取权限、配置、API、UI或模型;不关闭R5/D1-D3或2ms hold。
实际用户没有新配置、输入、确认或复制步骤;已有明确意图和权限的详情读取,新增必需交互为零。接受范围只减少重复视图构造,不把少三行工作、测试数或一次延迟比较当成长期净益。R5/D1–D3、安装态 Host/模型和原2ms warm门仍有独立边界。
剩余范围:未重新认证范围是安装态App/浏览器、模型、跨平台和持续成本;首次PG超时根因及原warm hold如上保留。
改动思路
既有 typed selection 足够;将选择传给已有首次投影,省去无须返回的视图构造,不增加缓存、provider筛选或第二语义owner。
四文件+20:3生产、12原测试、5双语RFC检查点;完整扫描/验证/恢复及公有query/来源合同不变。
不改动会保留每次详情读的重复构造;更早删掉非目标 provider records 虽可能更快,却可能吞掉完整来源错误。当前方案保留完整解析、原图/恢复评估和 summary 解码,只把已经存在的 selection 传入首次投影。Agent范围或limit查询要显示unfiltered数量,因此继续走完整首次视图。没有新的缓存、按字段RPC、提前provider过滤或Python判定owner。
具体改动
完整差异四文件 +20/−0:生产3行,原native测试12行,英中RFC检查点5行;两种语言都说明完整来源校验后下推、计数路径保留完整首次视图。没有产品渲染或布局变化。
关键代码讲解
- projectCanonicalTodoFields 只在kind=query且没有既有input.selection时读取query。agent_id和limit均为null/缺省,才取todo_id;该值还须是非空字符串。其他调用者保留原selection,group/fields/source等入口不获得新行为。
- 角色内的既有selection 沿用当次role及原todo_id,status/agent仍由下游原query处理。调用前完整items已结构化;原resume条件、完整lineage、succession与summary坐标验证仍执行。选择减少返回视图的构造,不能把未选中坏记录隐藏成成功。
- 原todoListPayload 的角色/状态/Agent/limit、归档referent恢复、原完整text、关系与query信封保持。需要unfiltered_todo_count的两条路径不下推,错误角色不会因为角色循环而拿到记录。
- 原测试扩展精确Agent范围、limit、其他角色和未选中坏updated_at;没有添加新的测试框架或改掉旧拒绝。当前独立native对照另外包含completed_at与非整数index损坏、缺省/显式null、归档/历史和非query控制。
先于实现读取的接受规范:docs/architecture/rfcs/typescript-control-plane-migration-v0.md 的 Todo read transaction source checkpoint、§5/§6,以及整体roadmap R5。条款映射标签如下,不是新协议:
- READ-COMPLETE:implemented;先校验完整来源、恢复/继承与新鲜度,再生成选中视图。
- QUERY-COUNTS:implemented;精确详情报告原完整要求;需要unfiltered数量的查询保留完整来源计数。
- READ-RECOVERY:implemented;不可用provider拒绝而不回退;原请求恢复和自有runtime重启读回保持完整来源与身份。
- PAYOFF-COST:implemented;真实默认SQLite完整CLI及RPC成本有界;保留旧warm目标与失败,不从局部改善认证整体迁移。
对主干的风险
最大风险是把优化变成早期记录裁剪,漏掉未选中来源的错误,或把需要完整计数的查询缩为1。独立同输入在实际File/SQLite上取得 38组native完整结果/错误对照、76观察,固定时钟无字段归一化。三个未选中坏坐标×两个provider仍明确拒绝,读取不改完整provider head或revision;私有故障注入之后恢复全部原记录。
另有 38组真实完整CLI对照,涵盖full/thin/reference、两角色、状态、Agent、limit、缺失与归档ID,以及实际存储不可用/恢复。完整响应仅去除经时区校验的四类观察时钟,不去掉诊断、状态、路径、身份、哈希或字段存在性。独立219-active来源oracle能拒绝将真实head响应coverage.included_count改0的内存mutation。精确详情与--thin的组合仍按原CLI规则拒绝;首版私有探针误当合法成功,纠正的只是探针预期,原失败保留。
普通和自有runtime重启后的公开详情完整读回均一致,provider revision保持;实际wire跟踪两侧都只有一次 todo.read。经济性为Python语义删除0、bridge新增0、生产净+3、普通RPC 1→1;节省的是既有TS事务中的重复投影,而非再减一个跨运行时往返。
本机macOS默认SQLite,同一279-record来源,2组warmup后 32组交替完整CLI pairs,期间无其他本Agent测试/构建任务。p50 150.96→144.73ms;p95 167.41→166.57ms,约−0.84ms/−0.50%,尾延迟近乎持平。完整结果同义且无物质回归;本机没有复现作者Linux的−17.73%幅度,不宣称统计显著、跨平台或持续收益。原2ms warm owner hold继续保留。
当前7个native模块 77通过,5个完整Python模块 65通过;TS typecheck、standard premerge 4direct+19selected通过,含双语RFC与公开边界检查,无manual hold。真实PostgreSQL17.11完整同命令配对 base369/head369通过、0skip,临时container已删除。这是direct-store/既有消费者集成,不是服务部署或整体源/平台资格。
首次PG完整头运行是 368通过/1失败:full-graph native消费者子进程90秒后无正常退出。该消费者使用canonical fields而非本次query shortcut;首次超时的具体根因仍未建立。后续相同全套命令在新隔离namespace的两侧通过,作为另一次当前资格记录,不能倒改首次失败。更早一次Docker初始Unix就绪竞态在测试前退出,亦保留。作者371项与其余Linux/安装/浏览器结果保持作者范围,不改称本轮执行。
精确最终头重建wheel/sdist,各装入全新私有环境,发出的TS模块字节与source完全一致。两包各 20个完整CLI/故障/恢复检查,共40项通过。首次构建因本地旧Chat产物过期而被正常guard拒绝,按仓库build:chat重建后打包成功;未改tracked源码。安装态App/浏览器没有本轮重验,也没有真实模型、活动Goal或付费执行。未查询、轮询或等待CI。
语义与 CI 对齐
没有新增schema、enum、共享字段、持久状态、默认能力或权限。原source/provider/typed拒绝继续是机器拒绝,RFC检查点只是说明。语义advisory通过不穷尽语义正确性;源码APP、完整CI/strict quality、安装采用与merge readiness各自独立。
我的整体评价
APPROVE,没有当前阻塞finding;判断为 justified_increment。原完整要求和失败/恢复保留,首次视图复用已有选择,3行机制与12行原测试相称。long_horizon与user_experience均为 preserved:同一请求仍得到同样完整、可恢复且诚实的结果,没有新增人工轮次;本机尾延迟收益很小,不能从测试、少构造一次或作者样本推出长期净益。
已应用同域、可逆的简化:复用同一个selection接口,不引入第二筛选器或缓存。更大provider/迁移重写无须成为本切片前提,也没有新造学习或后继任务。完整四文件没有产品组件、渲染、布局或新交互;已检查既有CLI详情与共享投影调用路径,视觉review不适用。未重新认证范围是安装态App/浏览器、模型、跨平台和持续成本;首次PG超时根因及原warm hold如上保留。评审不授予merge、安装提升、实验或其他执行权限。
English verdict: APPROVE — 384fc0f. The existing first projection reuses exact selection after full-source validation, while Agent/limited queries retain complete unfiltered counts. Independent native and full-CLI controls, malformed-unselected refusals, provider/restart recovery,77 native/65 Python tests, paired369/369 realPostgreSQL tests,40 private installed-package checks and standard premerge pass. Local p95 is nearly flat; the initialPG timeout,2ms warm hold and independent platform/Host qualification remain disclosed. No merge authority is granted.
Exact Todo detail queries build complete role views and then rebuild those views to select one Todo. This follow-up to merged #7121 reuses the existing selection interface in the first canonical projection. Complete source validation, resume evaluation and lineage remain in that projection; queries needing unfiltered counts retain its complete view.
The change is 3 production lines, with 12 lines extending the existing native tests and five lines in the paired RFC checkpoint. Tests retain scoped/limited unfiltered counts, reject another role's Todo and reject invalid completion coordinates in an unselected record. A faster record-pruning prototype was rejected after three error mismatches; its results remain separate from this proposal.
Matched full-CLI validation on main
74651e3beversus384fc0f53, Python 3.13.12, Node 24.21.0, default SQLite, the same synthetic 279-record exact-Todo query:p95 -17.73% / -66.38 ms. This is incremental to #7121, which is already in main. There were 64 alternating pairs plus one warmup per arm, ordinary managed IPC and one stable runtime PID per arm. All 130 complete JSON responses, including envelopes, matched after normalizing only four named ISO clock fields. No concurrent author test/build jobs ran during the cohort.
Validation:
839bfbe40. The final rebase absorbed only fix(research): focus long histories on one readable finding #7123 frontend changes; the entire backend, tests and dependency trees are byte-identical. TypeScript checking passed.The 2 ms warm-request owner review hold remains. On the identical backend, 16 cold starts were 238.96/501.68 ms p50/p95; 128 warm one-record field requests were 1.82/3.05 ms; 64 complete in-process reads were 56.96/92.65 ms. RSS was 173.05 → 175.41 MiB over a 256-read burst. Existing budgets and historical failures remain intact. Local validation is Linux; cross-platform CI is pending.