Skip to content

fix(ci): restore full-public catalog contracts - #6801

Merged
huangruiteng merged 1 commit into
loopx-project:mainfrom
JasonBuildAI:codex/agent-k7m4
Oct 18, 2026
Merged

huangruiteng merged 1 commit into
loopx-project:mainfrom
JasonBuildAI:codex/agent-k7m4

Conversation

@JasonBuildAI

@JasonBuildAI JasonBuildAI commented Oct 18, 2026 •

Copy link
Copy Markdown
Contributor

Impact: The daily 514-check full-public-smokes release readback cannot report ready for release owners and every release candidate: two deterministic catalog checks fail on current main, forcing verification to waive them and masking the signal of the other 512 passing checks.

Goal And Delivered Outcome

Author Declaration

  • Written by: AI agent (DeepSeek Harness, deepseek-flash) at @JasonBuildAI's request, direction and review.

Implemented against

Criterion (spec clause) Disposition Symbol / path Test or command
IP-030 inventory lists every registered machine-configuration namespace implemented docs/concepts/interaction-pattern-catalog.md:1214 python examples/interaction-pattern-catalog-smoke.py
Goal-configuration smoke pins the current catalog feature set, including decision_context implemented examples/project/configure-goal-smoke.py:290 python examples/project/configure-goal-smoke.py
No product behavior change; only public expectations and docs implemented diff git diff --check and both smokes
  • Self-check before submission: I read both failing assertions at a54c030ee, reproduced both on Linux, applied only the two expectation updates, and re-ran both smokes at be7736408. I did not run the scheduled full-public workflow; its next daily or manual run is the end-to-end confirmation.

Scope And Continuation

  • Completed scope and remaining work: complete within this scope. Both known red checks are fixed, so the next release-candidate full readback can be read without waiving them.
  • Slice boundary / successor: N/A. The next full-public run confirms ready=true; other concurrent fleet work is separate.

Validation

  • Tested revision: be7736408f244918bed6402f8bcbdb715ec5aafb (the rebased head bf544980b1cb8a6525a3985b5b127bbdb8f784d6 carries the byte-identical two-file patch, git blob 60dce0123249bb393f18bdc441e40fc2631f41b3; the catalog smoke re-ran green at the rebased head)
  • Run state: finished
  • Input classes: synthetic
Check kind Result Public-safe evidence / limitation
regression_parity passed At base a54c030ee both smokes exit 1: the catalog smoke reports missing ['codex_chat']; the configure-goal smoke raises the feature-set assertion. At head be7736408 both exit 0; the rebased head bf544980b carries the byte-identical patch and the catalog smoke re-ran green there.
integration passed python examples/interaction-pattern-catalog-smoke.py -> interaction-pattern-catalog-smoke: ok (native Windows, head be7736408).
integration passed python examples/project/configure-goal-smoke.py -> configure-goal-smoke ok (Linux Python 3.12 container with Node v24.22.0, head be7736408).
static passed git diff --check; no whitespace errors.
static passed ruff check examples/project/configure-goal-smoke.py and python -m py_compile examples/project/configure-goal-smoke.py both pass; loopx check --scan-path docs/concepts/interaction-pattern-catalog.md --scan-path examples/project/configure-goal-smoke.py reports a clean public boundary scan (2 files, errors=0, warnings=0).
integration failed loopx canary premerge --from-git-diff --git-diff-base upstream/main: all 5 direct checks pass and 16 of 17 selected checks pass. The only failure is content-ops-issue-fix-metadata-preview-smoke.py, which passes standalone and is unrelated to the two changed files; it fails under the premerge's isolated HOME (known host issue).
  • Coverage and gaps: the two changed files are the complete public contracts behind the two failing checks. The scheduled full-public-smokes workflow does not run on PRs, so ready=true is confirmed by the next daily or manual run; this PR does not claim that run. Required PR checks (Sign-off, merge-gate) were still queued at independent-review time; no failure was observed. The local premerge failure above is an unrelated environment/runner issue, not a failure of the changed contracts.

Frontend / Visual Evidence

  • UI impact: none
  • Before: N/A
  • After: N/A
  • First viewport and preview: N/A; documentation-only inventory text and a public smoke expectation, with no user-visible UI surface.
  • States and viewports shown: N/A
  • Source data: none
  • Attention review: N/A; no UI change.
  • Craft review: N/A; no UI change.

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Refactoring (no functional changes)
  • Documentation update
  • Test update

LoopX Area

  • Control plane (goals, todos, quota, scheduler, registry, runtime)
  • Benchmark boundary (adapters, runners, verifiers, scoring, evidence)
  • Capability or extension (providers, adapters, skills)
  • Public docs or presentation surface (README, protocols, dashboard)
  • Build, packaging, installer, or CI
  • Host or runtime integration

Technical Direction

  • Direction / acceptance reference, when applicable: N/A

Shared-authority RFC fixture impact

  • Production-scale fixture schema: N/A
  • Semantic dimensions changed, or reviewed no-impact rationale: N/A
  • Provider conformance arms run: N/A
  • Read-only legacy/file/PostgreSQL three-arm rehearsal (required for promotion, runtime-routing, or compatibility-projection changes): N/A

Boundary Checklist

  • Neither the diff nor this PR body/comments/attachments disclose private state, credentials, raw traces or verifier output, internal links, or local machine paths (including .loopx/, .codex/goals/, and live ACTIVE_GOAL_STATE.md).
  • I did not duplicate maintainer-owned benchmark work unless a maintainer split out a public issue for it.
  • I kept the change scoped to the linked issue/task.
  • Existing English/Chinese RFC pairs (including ledger entries) both have a diff, and the local premerge check python3 scripts/check_rfc_bilingual.py --base origin/main --head HEAD passes, or no paired RFC changed.
  • I completed the visual evidence section for UI changes, or marked UI impact none.
  • Every commit includes a DCO Signed-off-by trailer (git commit -s).

AI disclosure: this change was drafted with AI assistance at my request, under my direction and review.

The daily full-public fleet is still not ready after loopx-project#6740. IP-030 omits the registered codex_chat machine-configuration namespace, and the configure-goal smoke pins the goal catalog feature set without the decision_context entry added by 7b247b4. Both checks fail on main a54c030 and keep release verification at ready=false.

Update the IP-030 inventory and the smoke expected set, and pin the new descriptor's local_artifact_preview availability.

Fixes loopx-project#6794

AI disclosure: this change was drafted with AI assistance at my request, under my direction and review.

Signed-off-by: JasonBuildAI <jasonbuildai@gmail.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

APPROVE:两处契约漂移已独立复现并验证修复,未发现阻断项。 Exact head: 6801@bf544980b1cb8a6525a3985b5b127bbdb8f784d6;base: 860e42d4b63b45c4798ee7f08622a27c146a2610。全量 fleet 与质量凭据资格分开判断。

动机

维护者需要通过公开目录和配置 smoke 分辨真实回归,而不是每次都绕过已经登记的新能力。

原目录遗漏已注册的 codex_chat,配置 smoke 又遗漏已有 decision_context,两条检查在当前基线失败;补齐后两条原检查均通过,原有严格集合和默认关闭边界仍保留。

本机同一解释器下,两条命令分别从基线失败变为当前通过;目录说明和原生配置描述一致,不修改产品输出。

本 PR 只修复两处公开契约漂移,不改变产品行为,也不宣称整套每日 smoke、发布候选或托管 CI 已经健康。

改动思路

现有产品 owner 已经提供两个描述,问题在公开契约没有随之更新。因此只扩展原 IP-030 目录与原 configure-goal smoke,不新增测试脚本、第二份配置注册或运行时兼容分支。目录仍由原生注册表校验完整性;配置测试仍使用精确 feature 集合,并额外检查 decision_context 只是本地预览,没有 default 或 current 激活状态。

不需要新增开关或让使用者再配置一次;这是恢复既有检查的信号,而非用新预期覆盖错误产品输出。旧失败对应当前已接受并存在的 namespace/descriptor,已分别核对其生产 owner。

具体改动

关键内容讲解

完整差异仅 2 个路径、11 行增加和 1 行删除:

  1. IP-030 补上 codex_chat,并说明它只存普通新 Goal 会话的 profile alias、model、effort、tier,不改变已有对话身份,不管理 steward/attached Agent/Agent Loop,不存凭据或授权。
  2. 既有 configure-goal smoke 补上 decision_context,再断言 availability=local_artifact_preview 且不存在 default/current。原有其他 feature、精确集合和各项设置断言完整保留。

规范来源 #6794,spec_revision=2026-10-18T08:13:49Z,以及基线 测试与全量 fleet 边界。映射标签 IP-030.codex_chat 和 configuration_catalog.decision_context 均 implemented。核对的现有生产 owner 是 native_chat machine_defaults.py、machine configuration builtins、configuration_catalog.py 及 decision_context/catalog_entry.py,不是从通过后的输出临时编造预期。

对主干的风险

风险主要是把不合法产品输出“测试成合法”,或把发现/预览写成启用。这次没有修改任何生产路径:命名空间确已注册,Decision Context 的既有 descriptor 本来就只有预览能力而无 default/current。精确集合没有改成包含关系,新增断言也强化了预览边界;无权限、凭据、状态存储或新默认行为变化。

在实际不可变基线 860e42d4 上,原目录 smoke 报 missing codex_chat,原配置 smoke 报 feature-set 断言;在当前 head 两个原命令均退出 0。解释器与真实临时 CLI 路径相同,没有复制成功输出或仅测试 parser。当前标准 premerge 5 direct+17 selected 全部通过,公开边界扫描干净;托管总体结果仍因 stale quality receipt 不通过,需原生质量流程重新确认当前范围。

作者旧 revision 曾报告 isolated-HOME 下 metadata-preview 失败;保留该历史,本轮当前 exact head 的相同被选检查通过,没有声称找到旧环境根因或修好了间歇问题。没有查询、触发、等待 CI,也没有运行整个每日/发布 fleet;两条检查通过不等于完整候选 ready=true。同作者当前三项提案分别处理恢复、目录契约和 quota 缺状态,主题不同;既有 #6740 修的是另外两条 vision/backup smoke,本次没有重复创建维护者工作。

我的整体评价

这个有界仓库维护目标可判 goal_achieved;long_horizon=improved:移除已复现的契约噪声,保留对后续真实漂移的严格检查;user_experience=preserved:产品旅程和用户准备工作不变,维护者读回更清楚。

有界可维护性检查选择继续扩展原目录与原 smoke,没有新增框架或近似注册表,当前无需额外重构。这是有价值的契约维护,不以测试数或修复历史红灯宣称新产品能力。批准仅对此 exact head;过期质量凭据、完整 fleet 和维护者合并授权保持独立。

English verdict: APPROVE at bf544980b1cb8a6525a3985b5b127bbdb8f784d6. Both original public smokes fail at the immutable base and pass here. Existing product owners support the added inventory and strict preview-only assertions; no runtime behavior changes. Full-fleet health and stale exact-scope quality qualification remain separate.

@huangruiteng
huangruiteng merged commit e32e14e into loopx-project:main Oct 18, 2026
29 of 34 checks passed
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.

[Bug]: daily full-public fleet remains not ready because two public catalog contracts are stale

3 participants