Repository navigation
fix: read global status from canonical Goal sources - #7496
Conversation
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.
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
Reviewer: model_agent; gpt-6.1-sol; OpenAI; runtime_reported; reasoning_effort=max
APPROVE,精确head fab17cf63f51d53b3387054e34563d8416ad7622。默认源选择的真实错误已修复;不据此声称长程模型收益。
动机 / Motivation
通过全局status、heartbeat或Workspace查看多项目Goal的用户及维护者。 全局status把解析出的共享runtime伪装为用户显式覆盖,contract与attention因此读取共享目录,遗漏真实源Goal的canonical Todo,甚至误读有效但冲突的共享副本。 status保留调用者原始override,复用现有Goal源路由和请求级canonical snapshot;默认读取源authority,显式覆盖仍只读指定目录,源不可用时拒绝共享副本且不写状态。 不迁移或初始化用户authority,不回退Markdown,不变更provider存储、写入准入、lease、quota、scheduler或UI,也不声称模型效果和性能收益。
改动思路 / Approach
在既有CanonicalTodoSnapshot增加一个可选的源runtime解析依赖,读取与路由失败按请求保留;collection复用现有resolve_goal_source_runtime_route,不增加持久化路由或另一个authority。 共享runtime是投影接收端;已有Goal源路由才决定默认canonical读取位置,显式override保留诊断与恢复权威。 本PR边界仅含status的源runtime传递、请求级snapshot解析和真实File/SQLite反例。 没有把共享副本提升为新的authority,也没有以缺失的显示文件推断没有工作。原history仍来自共享投影;canonical Todo读取按源Goal路由。请求结束即释放,不跨请求缓存状态。
具体改动 / Changes
按 d52f2e153a0a5abb2f9c469ad78f0beccfe3aae8 的 docs/status-data-contract.md 及同revision既有源路由owner逐项检查:SOURCE-AUTHORITY读取声明的真实源,EXPLICIT-OVERRIDE保留调用者显式目录的优先级,READONLY-FAIL-CLOSED保持不写入与不可用拒绝。collect_status不再把解析出的共享root传为override;其canonical_runtime_for_goal只调用现有resolver,并复用现有typed错误。CanonicalTodoSnapshot.read在第一次读取时保留Goal的源root或错误,再使用原runtime/Goal键保留完整provider读与深复制;没有TTL、全局缓存、provider切换或新写入路径。
207项真实File/SQLite、legacy/native记录及源路由用例全部通过,零skip;新决定性cohort修复前20失败4通过,修复后全部通过。配置Ruff、17文件mypy、全部direct与selected premerge及三文件公开边界通过。 正例同时覆盖空共享target及持有另一组有效Todo的共享target,检查源Todo身份和contract/attention一次读取。负例覆盖显式空目录、有效显式目录,以及源注册表缺失、损坏、无此Goal时不能借用有效共享authority。完整旧本地snapshot与provider不可用案例保持,源provider revision、Todo和状态字节不变。
对主干的风险 / Risks
默认全局读取位置发生有意修正,主要风险是覆盖用户指定目录或在源不可用时错误借用共享副本;两种provider和两种记录格式的独立反例直接覆盖。新错误不含本地路径,只使用现有code与false写入/回退标记。其他snapshot构造者默认参数仍保持原路径。CI依Goal配置未查询。无UI或首次屏幕变化。正式发布仍需统一候选的全量回归、打包UI、真实模型与制品渠道资格;本PR没有authority-store实现变更,不能替代这些发布验证。
我的整体评价 / Verdict
共享runtime是投影接收端;已有Goal源路由才决定默认canonical读取位置,显式override保留诊断与恢复权威。 本PR边界仅含status的源runtime传递、请求级snapshot解析和真实File/SQLite反例。 修复位于已有投影与源路由之间,复用原authority和错误owner,既恢复真实工作可见性,也保留显式诊断和不可用边界。可以整体回滚,无状态迁移。对模型效果、安装渠道与全量候选的资格仍保持未验证区分。
English verdict: APPROVE fab17cf63f51d53b3387054e34563d8416ad7622. Global status now uses the existing canonical Goal source route while preserving explicit overrides and fail-closed isolation.207real-provider cases and required local gates passed;no write authority or whole-release qualification is inferred.
Global status used the resolved shared runtime as an explicit override, so contract and attention could read the wrong canonical authority for a Goal that declares a source registry. Valid source work could disappear or be replaced by an unrelated shared copy.
Status now preserves the caller's actual override and routes its request-local canonical snapshot through the existing Goal source-runtime resolver. The source read and failures are retained within that snapshot; explicit runtime overrides remain authoritative. Missing, unreadable or mismatched sources fail closed without borrowing shared authority, importing Markdown or writing state.
Validation: 207 real File/SQLite and legacy/native record cases passed with zero skips, including source versus valid conflicting shared copies, empty targets, explicit overrides and missing/unreadable/absent source Goals. The new decisive cohort failed before the fix. Required premerge, configured static checks and public-boundary results are recorded in the exact-head review. No UI, configuration, persisted schema or authority-store changes.