Repository navigation
feat(research): register native usage versions without changing selection - #8174
Conversation
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
There was a problem hiding this comment.
Reviewer: model_agent · gpt-6.1-sol · OpenAI · runtime_reported · reasoning_effort=max
Request changes conclusion (author-owned PR; GitHub blocks formal self-review)
[P2] 同步更新现有 TypeScript lineage 消费者。 lineage 在此改名 后,既有测试仍读取 candidate_pack_id,实际拿到 undefined。同一命令 node --experimental-strip-types --test tests/control_plane_ts/trajectory_usage_comparison.test.ts 在 immutable base 全部 7 PASS,在本 head 为 6 PASS / 1 FAIL;test:control-plane 的 glob 包含该文件。将现有 TypeScript lineage 断言同步到 registered_pack_id,保留源 SHA、原/新身份区分和计数断言,再重跑同一文件。这是一项本地可复现回归,与远端 CI 状态无关。
动机 / Motivation
研究工作台的维护者需要登记新的用量观察供读者对照,同时保留正在阅读的默认 capture。旧登记操作会把新 capture 选为默认;新增 preserve-default 后可登记并显式对照新版本,当前默认选择不变,但本 head 的 fixture 字段改名遗漏了一个现有测试消费者。原 owner 中四个新 ID 已注册,其标题、scope、完整用量投影与 fixture 一致;独立 CLI 验证也保留默认选择与旧 pack 字节,但现有 TypeScript 用例由基线 7/7 通过变为 6/7。本次只涉及登记选择、冻结版本和展示资料,不执行分析模型或实验,不把请求用量解释成纯控制开销或因果收益。因此登记与对照路径有实际价值,但这个 exact head 尚未完成所有现有消费者的兼容,不能仅凭新增 Python 测试通过批准。
改动思路 / Approach
继续复用现有 trajectory-pack-register → register_pack → packs.lock → packs.json → discover/inspect 路径。--preserve-default 只翻转这次操作的 select_default,不进入 immutable pack 身份;选项缺省仍选择最新 pack,首个 pack 在两种模式下都成为默认。Source/continuation 与用量统计仍由既有 TypeScript owner 校验,Python 只是既有来源 IO 和 index writer,Research reader 保持只读。
这是比新增 registry、恢复选择的第二次登记或单独配置页更小的实现:维护者已有来源与授权时,Agent 可准备版本关系,无需读者重复输入 ID,也不增加确认轮次。该 flag 是不可从已有来源推导的操作意图,不是第二份持久状态。本 PR 的适当边界是一次可用的比较登记与来源读回;需把现有 Node 消费者一起迁移,才算完整交付。
具体改动 / Changes
关键代码讲解
register_pack:新增默认 True 的参数;在既有排他锁内,仅当请求选择或 index 尚无默认时写default_pack_id。验证失败仍在写入前拒绝,旧 frozen bytes 与分析身份不改。CLI parser/dispatch:既有命令的 store_true 参数映射为select_default=not args.preserve_default,没有新的 HTTP 注册入口或自动执行权限。registered_pack_id:四个新登记身份、base lineage 和 frozen readback 与原 owner 的只读发现结果一致;新 Python 身份测试已跟进,原 TypeScript consumer 遗漏了字段迁移,形成上述 P2。
验收依据 docs/reference/trajectory-assessment.md,固定修订 39770a9604836cc323087f47cd1eb0b8465cda21;无正式 criterion 编号,按原文位置定位:trajectory-assessment.md:473(同 owner/case/run 的 immutable successor、登记不启动分析)、trajectory-assessment.md:614(原有默认选择)与 trajectory-assessment.md:1185(未知 attribution/费用及反向绝对值不伪装成节省)均有当前路径证据。新的 optional keep 是明确披露的操作变体。总体五文件 +287/-68,生产 store/CLI 只增加六行并删除一行,主要体积来自四个 lineage 与既有 fixture 身份更新;无需另建语义 owner。
对主干的风险 / Risks
本轮 50 个 Python store/实际 CLI 测试 PASS。独立真实 CLI 使用同一合成来源,在 base/head 验证缺省登记、第二次选择、重放、pack_not_registered、source_changed 与拒绝后无写入:旧行为一致;head 的 keep、幂等重放和混合并发也 PASS,三个并发登记都保留,legacy 选择不会被 preserve 覆盖;无分析 job。另从原 owner 只读核实四个 fixture ID 的可用性、标题、scope 与完整用量,未修改 live source。
必须保留的失败是上述 Node consumer 回归。它说明 50 个 Python PASS 不能代替现有跨语言消费者验证。loopx canary premerge --from-git-diff --git-diff-base 39770a9604836cc323087f47cd1eb0b8465cda21 为 FAIL / manual_review_required:6 个 direct checks、19 个功能检查通过,另报告一个 inherited maintainability advisory;benchmark_sensitive 人工审阅门禁仍在。它与新引入的 Node FAIL 是两件事,均不作豁免。本轮未查询、轮询或等待 CI。
语义与 CI 对齐
复用既有统计、continuation 与 index owner;没有新增共享枚举、通用工作义务或默认自动分析。research_usage_display_fixture_v1 的字段消费者须同步:最小修复是更新既有 lineage 断言并保留它的 source SHA、new/original 身份与负结果校验,随后重跑同一 Node 文件及受影响本地验证。不能删除断言把回归变绿。
我的整体评价 / Verdict
REQUEST_CHANGES,针对 6522f40ab7971eb0e7ae5e23216894431b9b5953。登记机制与代码体量 proportionate,缺省路径隔离已验证;long_horizon=preserved(默认与旧证据在重复/并发登记后保持),user_experience=preserved(已有读者入口与显式分析权限不变),但整个 PR 的交付仍被现有消费者回归阻断。
视觉复用该 head 的公开 默认历史首屏、展开 desktop 对照 与 390px 中文对照。首屏保留研究历史主层级,展开后数值高于方法/来源细节;长标题可读,未知 attribution 是横线,Codec 的占比下降但绝对输入增加警示可见。组件/layout 对 base 没有改动,故未声称新的布局收益。未验证范围:本轮未重跑 installed GUI、完整下方区域和浏览器 recovery;原生来源、默认/持久化与拒绝无写入经 CLI 独立核验。模型理解、全研究历程 adoption、完整成本和因果收益仍未知。修复 P2 后应按新 head 复核;本结论不授予 merge 或实验权限。
English verdict: REQUEST_CHANGES 6522f40; update the existing TypeScript lineage consumer and rerun the failing local test.
…search-adoption-replan-20261106-050853 Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@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 · reasoning_effort=max
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
动机 / Motivation
研究者在原研究页比较已保存的计量版本。原来预览有统计而原来源仍未知,导入另一版本还会改变默认选择;现在可登记独立后继并保持选择,在原研究页读取同一来源的计量。四份登记身份与来源读回一致,旧快照、默认选择和未知归因保持可核对。不启动模型或实验,不证明采用、因果收益、完整成本或安装版完成。后续复杂案例、采用贡献、完整成本和科学有效性仍有原研究验收缺口。这是一项可独立使用的研究来源读回增量;不能用登记数量或本次修复代替完整研究结论。
改动思路 / Approach
保持已有注册锁和 TS 统计 owner,新增选项只表达本次导入是否改变选择,不引入第二套状态或决策。本 PR 只交付独立后继注册、同源读回和既有消费者修正;完整研究验收与合并资格继续保留。不处理会继续让预览与原来源不一致;只改标签无法令原来源可读,直接修改目录或另建选择服务又会绕开已有锁和来源验证。沿现有可信 CLI → register_pack → packs.json → discover/inspect → 研究页 GET 路径完成操作即可。注册与浏览不触发模型,统计分类和数学仍由既有共同 TypeScript owner 负责,Python 保留稳定本地 I/O 的位置。
具体改动 / Changes
规范按修改前的 docs/reference/trajectory-assessment.md,revision e6e78ebb77676dc71afa60f69ddb1e3d62568693 核验,避免拿本次新写的说明反过来自证。Continuing a frozen analysis:同 owner 与原 Goal/case/run、不可变后继、零隐式模型执行,已由 store/真实 CLI 验证。Coverage and interpretation:来源事实、解读、归因与实扣费用保持分离,缺失不补零。Whole requests issuing LoopX commands and capture comparison:保留来源身份以及占比下降而绝对输入增加的反例,四份新计量不冒充完整研究历史。这三项均为本提交已实现的边界,科学有效性与完整采用/成本仍留在原研究工作。
关键代码讲解
loopx/cli_commands/benchmark_trajectory.py:14 的 register_benchmark_trajectory_commands 只扩展原可信入口的可选导入意图。loopx/cli_commands/benchmark_trajectory.py:78 的 _handle_benchmark_trajectory_command 把显式选项转换为 select_default,仍调用原注册 owner。loopx/capabilities/benchmark_toolkit/trajectory_assessment_store.py:369 的 register_pack 在已有文件锁内保留或更新默认;首包总会成为默认,选择不进入冻结身份。tests/control_plane_ts/trajectory_usage_comparison.test.ts:145 读取 registered_pack_id,继续检查原来源 SHA 与 original_pack_id 区别;没有加兼容别名或删除断言。
相对上次评审的原五文件提案在接入主干后差异完全保持,本轮只修正既有 TS 消费者;整体审查覆盖当前 6 文件 +288/-69,而不是只看这一行。局部修复前旧 head 对比测试为 6 通过/1 失败,当前 7 项全通过。完整四个 TS usage 文件 32 项、store/真实 CLI 50 项通过。
对主干的风险 / Risks
最强反例是隔离 fixture 看似正确、原来源却不存在,或并发导入覆盖既有选择。已通过真实原生只读 owner 核对来源与计数,并在独立临时 owner 用真实 CLI 验证重复注册、8 次并发、原始冻结记录、旧调用选择和来源变更拒绝。不可变基线/head 在同一合成输入上的旧调用结果、完整错误文本与拒绝后目录读回相同;新选项在基线被拒绝,在当前提交通过。这里只归一化临时目录前缀,不删错误细节或语义差异。真实503使旧表消失,再次读取恢复原配对;浏览、语言、回退和刷新无模型调用。
PASS:控制面 TS typecheck、配置内 kernel mypy 17 源文件、改动 Python Ruff、Dashboard/Chat 打包、公私边界和双语差异门。标准 premerge 已执行 6 direct 与 19 selected,命令失败 0;总门仍为 quality_invalid_receipt,保留严格质量和 benchmark-sensitive 人工条件。必需整仓 kernel Ruff 仍 FAIL:tests/control_plane/test_goal_create_completion.py:184 的 F841;在 e6e78ebb77676dc71afa60f69ddb1e3d62568693 与 630bdf3324dcdc698f10adc61a1d262afe46396d 同命令完整失败输出相同、未改变其因果路径,故是独立合并阻塞,不要求本 PR 扩改该代码,也不豁免此必需检查。额外 provider 路径 mypy 跟随全部导入的 4557 错误/463 文件失败保留;不把它冒充配置内检查或宣称根因已解决。当前 CI 按策略不查询、轮询或等待,旧 CI 观察不推导新 head 资格。
语义与 CI 对齐
复用既有登记身份、默认选择和共同 TS owner;没有新增共享 Enum/Literal 或通用工作义务。默认关闭的本次选择行为不改变旧调用、模型指令、持久字段、调度和权限。新增帮助说明显式导入选项,其后果已用真实调用对照验证;没有把可选能力写成强制继续工作。
我的整体评价 / Verdict
没有发现当前改动范围内的阻塞缺陷。长程续接与重试保持原有冻结身份及零隐式执行;读者能在原来源对照统计,体验有所改善,但不据此声明长程效果或效率增益。本 PR 没有改变布局;已检查完整来源的长中文标题、重复研究路线、混合结论与未知状态,以及公开冻结计量的默认页和展开对照。主要数值与共享方法帮助分开,来源按需展开;390 宽度按行阅读,不把缺失归因补成零。安装版 GUI、真实模型输出质量及读者理解速度未验证。公开截图为当前提交源码打包 UI 与冻结计量、合成只读壳;真实完整来源另按授权检查。保留既有 owner 与单一锁中的可选条件,比增加一套选择状态更合适,当前范围足够克制。我的代码评审结论为 APPROVE;作者自评使用 COMMENTED,不等于 GitHub 正式批准、独立维护者验收或实际合并授权,必需校验与合并门禁仍须另行满足。
English verdict: APPROVE at 630bdf3. The stale TypeScript lineage consumer is fixed; current source/CLI, replay, concurrency and packaged-reader evidence cover the bounded change. Required repository lint, quality/manual holds and merge authorization remain separate unresolved merge gates.
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Reuse the narrow fixture cleanup already proposed in #8193 so required lint can qualify the research proposal. The committed operation and subsequent injected timeout retain their order. Signed-off-by: LoopX Agent <337587101+loopx-agent@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 · reasoning_effort=max
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
动机 / Motivation
研究页的使用者在导入另一份固定捕获、继续比较原研究时遇到这个问题。此前导入后继会改掉当前默认选择,合法预览与原来源登记也可能不一致;现在可显式保留当前选择,同时在原 owner 中读取独立的后继版本。真实 CLI 的注册、独立目录读回与冻结对照数据验证了选择保留和来源身份;省略新参数仍按原规则选择新注册。本 PR 不执行新分析或实验,不证明研究采用、完整成本或因果收益。完整研究历史的进一步验收、实际采用与贡献、新近复杂案例和完整成本仍在原研究工作中继续。
改动思路 / Approach
沿用现有带锁注册 I/O 与 TypeScript 计量 owner,修改一个明确的选择意图;没有第二套选择状态、计算器或调度义务,因此比另建导入入口或重写 provider 更合适。当前 PR 交付固定捕获的原 owner 读回、可选保留选择及对应负例;额外仅复用现成的一行测试清理来解除必需 Ruff 阻断。入口仍是现有注册命令,来源验证先于目录变更,原有文件锁保护追加身份和默认选择。保留选择是本次调用的明确意图,不能从包存在或后继关系自动推断。普通页面只读取已有计量;不新增模型、预算、调度器或平行目录。与不修改相比,这解决了继续导入时视图跳走;与单独新建导入器相比,维护成本限于已有 owner 的一处分支。
具体改动 / Changes
依据 docs/reference/trajectory-assessment.md,规范修订为 22b0f6c25a0450a66bd93f05954808dc0a5800ed。freeze-owner:同 owner 与原 Goal/case/run、来源 SHA 及不可变版本沿旧验证器保存;read-only:注册、重复导入和页面读取均不创建分析 job;usage-identity:比较仍保留各自 pack/run/session/window,归因未知、跨题和零分母保持原拒绝或未知语义。三项均在本提交实现。新选项的意图来自继续导入时保留当前范围,旧调用语义以不可变主干实测为独立对照。
关键代码讲解
register_pack在原锁内仅对select_default=True或尚无默认的情况更新选择;现有记录、分析 key 和源校验不因选择意图变化。- CLI dispatch 将新选项传给同一 provider,省略选项仍传 True。真实 CLI 的 A 注册、重放、B 注册及重叠错误在 base/head 的完整读回相同。
- 冻结身份断言 读取
registered_pack_id,保留原 SHA、计数、负例与 unknown 断言;四份公开 fixture 仍是冻结展示证据。 - lost-response 测试 复用 #8193 的一行清理,仍先调用原操作再抛 TimeoutError;没有导入其余 planning 改动,也没有弱化恢复后只派发一次的断言。
对主干的风险 / Risks
未发现阻断 finding。最强反例是省略保留参数仍返回成功,却悄悄改变当前选择:独立 CLI 试验故意省略参数,保留 A 的谓词为 false、目录实际为 B;加上参数后 A 保留且 B 身份可重放。这同时证明新行为与旧调用兼容,成功 JSON 不能替代状态读回。错误源与无效 base 的完整异常及拒绝次序也与主干相同。
本提交已通过 70 项原生 File/SQLite/API 与 provider 测试、7 项 TS 对比、必需整仓 Ruff、配置内 mypy(17 文件)、控制面 typecheck、Dashboard/Chat 构建,以及 6 direct + 19 selected premerge 命令。可选全量导入 mypy 仍 FAIL:base/head 都有 4557 错误 / 463 文件;逐条完整诊断、代码、顺序和 stderr 一致,只有 17 处映射到字节相同源码的行号移动。未按相同错误总数豁免,也未改写为通过。当前精确范围质量回执有效,标准总门仍保留 benchmark-sensitive 人工评审条件。CI 按 wait_for_ci=false 不查询、轮询或等待。
语义与 CI 对齐
复用既有注册与比较词汇,没有新增闭合集或暗中修改默认;选项的帮助和文档是有意的增量,省略路径、旧冻结版本及来源失效仍受原约束。计数仅是描述性计量,不证明节省或收益。此次共 7 文件 +289/-70,生产代码 +6/-1;主要体积是固定投影与语义断言,继续重写语言或另建框架没有同等价值。
我的整体评价 / Verdict
这是可独立读回和撤回的 justified increment。long_horizon 为 preserved:冻结版本、失败与重放保留,没有新模型成本;user_experience 为 improved:Agent 可在既有注册步骤准备选项,读者不必重填信息或增加确认轮次。新提交打包页的默认首屏将当前范围留在主位,来源按需展开;长对照名称、绝对输入、缓存子集、反例与未知值在桌面和 390 窄屏仍可读,跨题拒绝后恢复原对照。 本 PR 未改 responsive 或 renderer 布局;窄屏属于额外实看,保留原版全套布局证据的版本边界。安装版、完整研究采用和因果收益未在本 PR 验收。公开旧截图仍明确属于原版本,当前构建的首屏、展开对照和拒绝恢复另经实际检查。沿用现有带锁注册 I/O 与 TypeScript 计量 owner,修改一个明确的选择意图;没有第二套选择状态、计算器或调度义务,因此比另建导入入口或重写 provider 更合适。当前 PR 交付固定捕获的原 owner 读回、可选保留选择及对应负例;额外仅复用现成的一行测试清理来解除必需 Ruff 阻断。
源码/评审资格与合并授权分开:当前 head 为 313fbf9a1a9f3cce01eccfbdd453b79976c0e49e,目标主干 22b0f6c25a0450a66bd93f05954808dc0a5800ed,已纠正远端旧比较基线并核对真实七文件范围。此 APPROVE 不替代 benchmark 人工条件、GitHub readiness 或原合并请求的 authenticated confirmation/apply 记录;当前不宣称已合并、安装或发布。
English verdict: APPROVE — 313fbf9; no blocking finding. Required local checks pass; inherited optional mypy remains failed and separately attributed. Benchmark/manual and authenticated merge-operation gates remain separate.
真实研究来源的旧九小时捕获缺少命令请求统计,而预览中的合法候选只在隔离环境登记,导致预览与原来源读回不一致。本提案把四份统计后继绑定到原 owner,保留原默认选择、旧快照和来源身份,让已有研究页可以读取这些冻结计量。
现有
trajectory-pack-register增加--preserve-default:已有默认时保持选择,首包仍成为默认;省略选项保持既有行为。选择仍由原有文件锁内的注册 owner 管理,统计仍来自共同 TypeScript owner,Python 只承担既有本地 I/O。四份 fixture 的registered_pack_id、base_pack_id、来源 SHA、session 和窗口保持独立且可核对。TypeScript 消费者已改为读取实际登记的字段,来源、计数、负例及 unknown 断言均保留。Codec on/off 已识别命令请求仍为 74 / 30,Grid 为 58 / 4。控制文本归因和实际扣费继续未知;整次请求用量包含任务历史,不能视为纯控制成本,也不能推导因果收益。Codec 的“占比下降、绝对输入增加”反例保留。
验证与边界
当前测试与评审提交:
313fbf9a1a9f3cce01eccfbdd453b79976c0e49e;目标main:22b0f6c25a0450a66bd93f05954808dc0a5800ed。普通合入当前主干后,原提案六文件的内容差异保持相同;新增一行清理复用 #8193 中现成的 lost-response 测试修复,保留原操作后抛超时的顺序。远端比较基线已重新绑定当前 main,实际 PR 与本地差异均为七文件,且逐字节一致。当前完整作者 COMMENTED 评审与验证 已发表并逐字读回,结论 APPROVE。原生 approval-closeout 为 clear;未解决线程 0,merge-readiness 为 ready=true,但 GitHub 原始状态仍为 BLOCKED / REVIEW_REQUIRED,并标识 admin bypass required。CI 按 wait_for_ci=false 不查询、轮询或等待,以上不声称 CI 通过。
评审、必需验证、人工条件、合并授权与真实保护操作记录分别处理;当前没有本次合并操作的 authenticated confirmation/apply 回执,typed preview 不能替代。仍未合并、安装或发布。
本次是四份固定捕获的可读取增量。实际采用与贡献、完整成本、新近复杂案例及科学有效性继续保留在原研究工作;计数、质量回执或 PR 评审不代替这些验收。没有启动新模型、付费分析或 benchmark 实验。
视觉证据
以下三张打包截图摄于
630bdf3324dcdc698f10adc61a1d262afe46396d,保留原版本边界。本轮313fbf9a1a9f3cce01eccfbdd453b79976c0e49e未改 renderer,六个原提案文件的差异在合入当前 main 后保持相同;已重新构建并由 Ego 实看默认首屏、长计量对照的桌面/390 窄屏,以及跨题拒绝后恢复,原截图的展示假设仍成立。下图采用可公开冻结计量,展示壳与空历史是隔离只读环境;它不是完整研究历史或安装版验收。当前隔离后端读回source_unchanged=true、mutation_attempts=0,无新模型请求。默认首屏(1440,按需展开来源与用量):
Codec 桌面对照(1440;比例下降不等于节省):
Grid 中文窄屏展开(390;表格纵向阅读、保留未知):
此前完整 Grid 历史的公开首屏保留作旧版本证据(
6522f40ab7971eb0e7ae5e23216894431b9b5953);此 PR 没有改变 renderer 布局,四份计量不替代完整历史: