From bdd617858dae62fa6ea7ef3ec9deb33c0899f692 Mon Sep 17 00:00:00 2001 From: huangruiteng <14976749+huangruiteng@users.noreply.github.com> Date: Sat, 19 Sep 2026 03:03:18 +0800 Subject: [PATCH] fix(smokes): restore the three public smoke contracts broken on main `main` (42620170d, still failing on 8299078f2) fails Full Public Smokes in shards 0 and 2. Each failure is one side of a contract/guard pair drifting; all three reproduce on a clean `origin/main` worktree. - `examples/cli-help-manpage-smoke.py` reports `unclassified: ['goal-acceptance']`. `loopx goal-acceptance` is a real owner command (it is the entry point documented in the personal-workspace guide) but was never classified in the manual catalog. Classify it in the existing "Maintainer and adapter commands" group next to `change-quality`, and regenerate `man/loopx.1` from the catalog. - `examples/control_plane/todo-first-open-summary-smoke.py` asserted the lowercase phrase `no owner action is required`, but the shipped blocked priority notice starts that sentence with `No` (it follows a full stop). Keep the guard on policy wording but match it case-insensitively instead of pinning sentence-initial capitalization. - `examples/github-actions-runtime-smoke.py` reports `('ark-turn.yml', ['24.21.0'])`. Every other workflow declares the qualified primary runtime `24`; only this one pins a patch version, so it is aligned to the primary. If that pin was deliberate, the policy-conformant repair is an explicit documented exception in the smoke rather than a silent patch pin. Validation: the three smokes pass on this head (and failed on a clean main worktree with exactly the CI error strings); the adjacent workflow, todo, docs-governance and work-lane smokes pass; `loopx canary premerge --from-git-diff` reports 0 failures / 0 advisories. Signed-off-by: huangruiteng <14976749+huangruiteng@users.noreply.github.com> --- .github/workflows/ark-turn.yml | 2 +- examples/control_plane/todo-first-open-summary-smoke.py | 7 +++++-- loopx/help_surface.py | 4 ++++ man/loopx.1 | 3 +++ 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ark-turn.yml b/.github/workflows/ark-turn.yml index 1208358e15..867c170eb4 100644 --- a/.github/workflows/ark-turn.yml +++ b/.github/workflows/ark-turn.yml @@ -33,7 +33,7 @@ jobs: - uses: actions/checkout@v7 - uses: actions/setup-node@v6 with: - node-version: "24.21.0" + node-version: "24" - uses: actions/setup-python@v6 with: python-version: ${{ matrix.python }} diff --git a/examples/control_plane/todo-first-open-summary-smoke.py b/examples/control_plane/todo-first-open-summary-smoke.py index d25700d19a..a6d355fdf3 100644 --- a/examples/control_plane/todo-first-open-summary-smoke.py +++ b/examples/control_plane/todo-first-open-summary-smoke.py @@ -241,10 +241,13 @@ def assert_blocked_priority_fallback_notice_visible() -> None: user_channel = decision["interaction_contract"]["user_channel"] assert user_channel["action_required"] is False, user_channel assert user_channel["notify"] == "NOTIFY", user_channel - assert "no owner action is required" in user_channel["reason"], user_channel + # The shipped notice starts this sentence with "No" (it follows a full + # stop), so assert the policy phrase case-insensitively instead of pinning + # the sentence-initial capitalization. + assert "no owner action is required" in user_channel["reason"].lower(), user_channel markdown = render_quota_should_run_markdown(decision) assert "blocked_priority_fallback: notify_user=True" in markdown, markdown - assert "no owner action is required" in markdown, markdown + assert "no owner action is required" in markdown.lower(), markdown assert f"blocked_priority_item[1]: {BLOCKED_CORE_TODO}" in markdown, markdown assert f"blocked_priority_selected: {FALLBACK_TODO}" in markdown, markdown diff --git a/loopx/help_surface.py b/loopx/help_surface.py index fed0103b6f..d1e5c09758 100644 --- a/loopx/help_surface.py +++ b/loopx/help_surface.py @@ -243,6 +243,10 @@ "command": "loopx change-quality --help", "purpose": "Qualify one exact final diff against an enabled project policy and receipt contract.", }, + { + "command": "loopx goal-acceptance", + "purpose": "Configure, inspect or verify a versioned Goal acceptance basis.", + }, { "command": "loopx integration-branch --help", "purpose": "Detect reviewed source-branch drift and rebuild one local integration branch.", diff --git a/man/loopx.1 b/man/loopx.1 index caf3856e59..abc9301c3d 100644 --- a/man/loopx.1 +++ b/man/loopx.1 @@ -198,6 +198,9 @@ Run contract and public/private boundary checks. \fBloopx change\-quality \-\-help\fR Qualify one exact final diff against an enabled project policy and receipt contract. .TP +\fBloopx goal\-acceptance\fR +Configure, inspect or verify a versioned Goal acceptance basis. +.TP \fBloopx integration\-branch \-\-help\fR Detect reviewed source\-branch drift and rebuild one local integration branch. .TP