Skip to content

fix(status): use retained vision for acceptance observations - #7234

Merged
loopx-agent merged 1 commit into
mainfrom
codex/acceptance-semantic-vision
Oct 24, 2026
Merged

loopx-agent merged 1 commit into
mainfrom
codex/acceptance-semantic-vision

Conversation

@hhyykk

@hhyykk hhyykk commented Oct 24, 2026

Copy link
Copy Markdown
Collaborator

Problem And Delivered Behavior

A current acceptance criterion could disappear after its vision left the recent-run window. A retired criterion could also remain visible because the observation independently selected an older recent vision. The existing semantic-history reader already handles both cases.

This PR makes the acceptance observation discover retained Agent lanes and use that existing read interface. Status acceptance gaps and artifact lifecycle evidence guards now follow the current retained vision. Legacy recent-list fallback, unattributed identities, public text validation and bounded output remain. The projection is still read-only and never certifies Goal acceptance.

Basis: docs/architecture/rfcs/goal-artifact-lifecycle-projection-v0.md, read-only projection and validation contract, at main 7c48375df5aa4824c8d6fba0baef1f96de6cc87e. Intended base: main.

Author Declaration

Written by: model_agent — OpenAI Codex, GPT-6 family.

Criterion Disposition Evidence
Derive observations from current collected state implemented Retained, replaced, retired, missing-lane and mismatched-Agent counterexamples
Preserve legacy identity and public-safe output implemented Unattributed legacy and long private-text regressions; existing projection smoke
Exercise the real consumer and backend implemented for local File/SQLite Real producer, status collection and complete CLI JSON/Markdown readback

Validation

Tested head: fa6c4debb23b02211d6aa7571dd67917093978c3. Inputs: synthetic isolated Goals. No live Goal, provider message or model work.

  • 11 new regression cases fail on the original source and pass on the candidate, including real File/SQLite status reads at display limits 0 and 5. The revised head repeats all 11 cases.
  • 32 full CLI reads cover original/candidate source, File/SQLite, retained/retired state, limits 0/5 and JSON/Markdown. Every candidate read shows the independently expected gap count. Original-source reads reproduce both defects. Source bytes remain unchanged. All non-target observations match after validating only read timestamps and relative read ages; the intended acceptance and lifecycle fields are compared explicitly.
  • Existing Goal artifact lifecycle smoke passes. Ruff, strict changed-module mypy, scoped mypy over the 17 configured targets, RFC status/bilingual checks and the four-file public-boundary scan pass.
  • Quick premerge passes: 6 direct checks and all 4 selected checks.

Broader checks remain non-green and are not relabeled: the companion sweep has 47 passes and 13 failures; the same 13 failures reproduce with the original source (36 passes, the 11 new cases excluded). The additional import-following mypy sweep reports the same 5,242 diagnostics on both source variants, with no new or changed-module diagnostics. Scoped mypy above uses --follow-imports=silent; it is not a claim that the import-following sweep or CI passed.

Scope And Rollback

One existing projection consumer adopts the retained-vision module. No new public field, module, authority, stored state, cache, dependency, RPC or execution gate. Retained observations can change unavailable coverage to partial; acceptance_assessed remains false. Caller interfaces and the runtime continuation owner are unchanged. Both RFC language mirrors describe source precedence and compatibility.

Rollback restores the original consumer; no data migration is needed. This qualifies the source status/CLI paths, without an installed App, Lark, real-model adoption or long-horizon outcome claim. UI layout and action interfaces are unchanged.

Complete paginated file lists for 41 other open PRs show no overlap with the four changed paths. No merge is requested or performed.

Signed-off-by: aihop <4408344+hhyykk@users.noreply.github.com>

@loopx-agent loopx-agent left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewer: model_agent | gpt-6.1-sol | OpenAI | runtime_reported | reasoning_effort=max

Exact head: fa6c4debb23b02211d6aa7571dd67917093978c3

动机

查看长期 Goal 验收状态的维护者和 Agent。 当前愿景离开近期运行窗口后,验收条件不应消失;已有退休记录时,旧愿景也不应重新出现。修复应让这两种状态按保留语义历史显示,并保持只读。 独立32次真实CLI读取确认File/SQLite在显示上限0/5和JSON/Markdown下均显示预期条件数量:保留状态1项,退休状态0项;原源码分别错成0项和1项。源文件全字节摘要保持。 范围是已有状态和生命周期读者的观察,不改变运行、配额、授权或完成判定,也不认证已安装App/Lark、实际Agent采用或长期净效益。

改动思路

保留语义历史已是现有愿景选择owner;验收观察改为复用它,避免第二套“最新”规则。近期列表仍用于历史展示和无语义历史的旧接口回退,来源身份与观察投影分开,运行中的决策owner不变。 当前PR只修一个观察消费者及英文/中文RFC对其来源优先级的说明,不新增存储、协议、配置、权限或执行gate。

相同权威来源 原观察 本头观察
有效愿景已离开近期窗口 条件丢失,0项 保留当前条件,1项
已有明确退休记录 旧条件重新出现,1项 不复活旧条件,0项

这张表对应下面的真实CLI对照;不会从空列表推导Goal验收完成。

具体改动

接受的修改前规格:docs/architecture/rfcs/goal-artifact-lifecycle-projection-v0.md,不可变版本 7c48375df5aa4824c8d6fba0baef1f96de6cc87e。derived-current-state 为 implemented:Projection is derived only from existing typed state and run/evidence history, not new stored Goal state.,证据为 本评审后述的实际CLI与磁盘前后对照;actualFile/SQLiteproducerand32CLIreads;read-only-no-enforcement 为 implemented:Read-only Goal lifecycle projection adds no runtime state machine, enforcement or completion authority.,证据为 realCLIpartialobservations,4sourcebytehashmanifestsandoriginalnegativecases;public-safe-bounded-projection 为 implemented:No raw logs, evidence bodies, credentials, local paths or private payloads in public projection; focused negative derivation and existing checks.,证据为 newprivate/misattributedcases,originalredaction/limitchecks,6direct4selectedpremerge。新增RFC文字或作者自己的验收清单不是独立规格;这里的判断来自原接受边界、实际消费者和复现结果。

关键代码讲解

  • build_goal_acceptance_observation:combine recent and retained lane identities;reuse current-source lookup;partial never acceptance。保留语义历史已是现有愿景选择owner;验收观察改为复用它,避免第二套“最新”规则。近期列表仍用于历史展示和无语义历史的旧接口回退,来源身份与观察投影分开,运行中的决策owner不变。

  • latest_agent_vision_from_status_payload:existing retained source precedence,retirement/missinglane and legacyfallback。当前PR只修一个观察消费者及英文/中文RFC对其来源优先级的说明,不新增存储、协议、配置、权限或执行gate。

  • goal_semantic_history_from_runs:existing collector retains currentvision/retirement independently ofrecentdisplaywindow。当前PR只修一个观察消费者及英文/中文RFC对其来源优先级的说明,不新增存储、协议、配置、权限或执行gate。

  • attach_goal_acceptance_observations:attach from untrimmed collectedhistory to actualstatuspayload。当前PR只修一个观察消费者及英文/中文RFC对其来源优先级的说明,不新增存储、协议、配置、权限或执行gate。

完整审查4个路径 +149/-15,覆盖生产或安装加载路径、真实回归、未修改共享消费者和双语文档影响。没有新增共享状态词表、配置或并行authority,Python保留在原有只读投影/本地stdlib适配边界。

对主干的风险

本机原测试模块 29 passed / 2 failed;仅接回不可变原生产观察模块、保持同一31项当前测试与其他源码,得到 18 passed / 13 failed,11个新反例确由红变绿。两个共同失败分别是 test_real_collection_preserves_acceptance_before_display_run_trimming 和 test_lifecycle_evidence_survives_real_display_trimming。再用完全相同命令、只切进程内base/head模块重跑这两项,失败身份、CanonicalAuthorityRequired消息及 local_authority.py:286 来源相同:旧collect_fixture只建Markdown,没有初始化canonical authority,在refresh planning读取时失败,尚未进入本次观察函数。因此归为pre_existing_unrelated,不要求本PR修无关authority迁移,也不把红项改称通过;它们仍是维护者单独处理的合并验证限制。

独立额外 32次真实CLI读取:File/SQLite × 保留/退休 × limit0/5 × JSON/Markdown × base/head。有效愿景由真实refresh producer产生;退休用既有typed legacy receipt fixture,不冒称新退休writer已运行。两个版本读同一实际canonical源,四组完整fixture源文件树摘要前后相同。比较完整JSON,除校验过的读取时钟、数值相对年龄和明确目标观察/生命周期差异外,其他值全部相同,未归因差异为0。没有归一化掉条件正文、owner、异常或权限语义。JSON与Markdown都满足独立的0/1条件oracle,不只比reason code。

本地quick premerge 6直接+4选中检查通过,含双语RFC和公开边界;英文/中文新增段落逐句核对,来源优先级、legacy回退、未归属身份及partial/not-certification语义一致。作者更广47通过13失败和mypy5242条诊断仅保留为作者来源,未伪装成本轮执行或全仓健康。wait_for_ci=false,本轮未查询、轮询或等待远程CI。

我的整体评价

未发现阻塞问题,APPROVE。局部结果为goal_achieved:真实读者看见当前条件,退休条件不复活。long_horizon为preserved,user_experience为improved,仅指已验证的状态读取;后续Agent采用、持续收益和完整成本仍未知。架构判断retain,现有owner复用是有界简化;两个旧夹具红项的独立验证限制不因批准或原生ready观察消失。 保留语义历史已是现有愿景选择owner;验收观察改为复用它,避免第二套“最新”规则。近期列表仍用于历史展示和无语义历史的旧接口回退,来源身份与观察投影分开,运行中的决策owner不变。 当前PR只修一个观察消费者及英文/中文RFC对其来源优先级的说明,不新增存储、协议、配置、权限或执行gate。

检查了status完整JSON/Markdown及生命周期证据guard文本;无页面、组件、布局或视觉素材改动,视觉构图评审不适用。 本轮未独立运行已安装App/Lark、真实模型采用、真实PostgreSQL或全仓套件;没有authority-store改动需新增PG路径。本机31项的两个旧夹具红项未修复,仍是独立合并验证限制。 已通过、已失败与未测试范围分开保留;本轮没有合并、改个人安装或发起模型/外部消息。

English verdict: APPROVE at fa6c4debb23b02211d6aa7571dd67917093978c3. The retained-vision owner fixes both vanished current criteria and revived retired criteria. Thirty-two real File/SQLite CLI comparisons passed with unchanged source bytes; eleven regressions fail on the original source. Two unchanged legacy fixtures still fail before the changed builder and remain a separate validation limitation.

@loopx-agent
loopx-agent merged commit 419bc0b into main Oct 24, 2026
33 of 43 checks passed
@loopx-agent
loopx-agent deleted the codex/acceptance-semantic-vision branch October 24, 2026 15:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants