RCA: lint-no-coe-on-required red after E2E Peer Visibility BP flip #2732

Closed
opened 2026-06-13 08:41:21 +00:00 by agent-researcher · 5 comments
Member

MECHANISM: Main is red because branch protection now requires the E2E Peer Visibility (literal MCP list_peers) / E2E Peer Visibility context, but the checked-in required-context allowlist was not updated. The lint job lint-no-coe-on-required cross-checks live branch protection against .gitea/required-contexts.txt; current main's allowlist only contains CI / all-required, E2E API Smoke Test / E2E API Smoke Test, and Handlers Postgres Integration / Handlers Postgres Integration (.gitea/required-contexts.txt:10). The peer-visibility workflow itself documents that the job is now required and emits the required job name (.gitea/workflows/e2e-peer-visibility.yml:80, :161).

EVIDENCE: molecule-core main run 358349, job 487203, head cd5f5898e0d383facee112e0dfe327435cd2bc5d. The failing log says branch-protection required contexts NOT in the checked-in allowlist and names E2E Peer Visibility (literal MCP list_peers) / E2E Peer Visibility. The recent merge stack includes #2730/#2731 but no allowlist update; the live status for main also shows the peer-visibility local job skipped, which is expected for the non-required local context and not the cause.

RECOMMENDED FIX SHAPE: Update molecule-core .gitea/required-contexts.txt to include exactly E2E Peer Visibility (literal MCP list_peers) / E2E Peer Visibility, keeping the local context E2E Peer Visibility (local) out of the allowlist because the workflow comments mark it non-required. Re-run python3 .gitea/scripts/lint_no_coe_on_required.py / CI to confirm the BP allowlist matches live branch protection.

MECHANISM: Main is red because branch protection now requires the `E2E Peer Visibility (literal MCP list_peers) / E2E Peer Visibility` context, but the checked-in required-context allowlist was not updated. The lint job `lint-no-coe-on-required` cross-checks live branch protection against `.gitea/required-contexts.txt`; current main's allowlist only contains `CI / all-required`, `E2E API Smoke Test / E2E API Smoke Test`, and `Handlers Postgres Integration / Handlers Postgres Integration` (`.gitea/required-contexts.txt:10`). The peer-visibility workflow itself documents that the job is now required and emits the required job name (`.gitea/workflows/e2e-peer-visibility.yml:80`, `:161`). EVIDENCE: molecule-core main run `358349`, job `487203`, head `cd5f5898e0d383facee112e0dfe327435cd2bc5d`. The failing log says `branch-protection required contexts NOT in the checked-in allowlist` and names `E2E Peer Visibility (literal MCP list_peers) / E2E Peer Visibility`. The recent merge stack includes #2730/#2731 but no allowlist update; the live status for main also shows the peer-visibility local job skipped, which is expected for the non-required local context and not the cause. RECOMMENDED FIX SHAPE: Update molecule-core `.gitea/required-contexts.txt` to include exactly `E2E Peer Visibility (literal MCP list_peers) / E2E Peer Visibility`, keeping the local context `E2E Peer Visibility (local)` out of the allowlist because the workflow comments mark it non-required. Re-run `python3 .gitea/scripts/lint_no_coe_on_required.py` / CI to confirm the BP allowlist matches live branch protection.
Author
Member

RCA tick follow-up (2026-06-13): current main 1f1a6f3d13ada032137ca12296ee87b4e7422897 now includes the required-context allowlist entry E2E Peer Visibility (literal MCP list_peers) / E2E Peer Visibility in .gitea/required-contexts.txt. The workflow still emits the required job as .gitea/workflows/e2e-peer-visibility.yml job E2E Peer Visibility.

Current main CI is pending but progressing normally, not red: Platform (Go), Shellcheck, and Python Lint & Test are green; Canvas (Next.js), Canvas tabs E2E, and image build are actively in progress. No new #2732-class blocker surfaced in this tick.

RCA tick follow-up (2026-06-13): current main `1f1a6f3d13ada032137ca12296ee87b4e7422897` now includes the required-context allowlist entry `E2E Peer Visibility (literal MCP list_peers) / E2E Peer Visibility` in `.gitea/required-contexts.txt`. The workflow still emits the required job as `.gitea/workflows/e2e-peer-visibility.yml` job `E2E Peer Visibility`. Current main CI is pending but progressing normally, not red: `Platform (Go)`, `Shellcheck`, and `Python Lint & Test` are green; `Canvas (Next.js)`, `Canvas tabs E2E`, and image build are actively in progress. No new #2732-class blocker surfaced in this tick.
Author
Member

RCA tick follow-up (2026-06-13): inbox polling is unavailable in this runtime, so I audited current main status directly.

MECHANISM: no active incident found. molecule-core main 329eae8dc13c4ac1faab076012059855530ac871 is pending only because long-tail E2E jobs are actively running: E2E Peer Visibility is in workspace-online wait, and Local Provision Lifecycle E2E (real image + MiniMax LLM, advisory) reached restart-survival. molecule-controlplane main remains green.

EVIDENCE: run 358464 job 487419 progressed through tenant health and workspace provisioning; run 358473 job 487441 reached --- Step 4: restart-survival. The #2732 required-context allowlist entry remains present on main.

RECOMMENDED FIX SHAPE: none for this tick. Keep watching the two running jobs; file a fresh RCA only if one completes red with a concrete mechanism.

RCA tick follow-up (2026-06-13): inbox polling is unavailable in this runtime, so I audited current main status directly. MECHANISM: no active incident found. `molecule-core` main `329eae8dc13c4ac1faab076012059855530ac871` is pending only because long-tail E2E jobs are actively running: `E2E Peer Visibility` is in workspace-online wait, and `Local Provision Lifecycle E2E (real image + MiniMax LLM, advisory)` reached restart-survival. `molecule-controlplane` main remains green. EVIDENCE: run `358464` job `487419` progressed through tenant health and workspace provisioning; run `358473` job `487441` reached `--- Step 4: restart-survival`. The #2732 required-context allowlist entry remains present on main. RECOMMENDED FIX SHAPE: none for this tick. Keep watching the two running jobs; file a fresh RCA only if one completes red with a concrete mechanism.
Author
Member

RCA tick follow-up (2026-06-13): inbox polling is unavailable in this runtime, so I audited current main CI directly.

MECHANISM: no active incident found. molecule-core main 552c72d19def70809ec65838ab743bebda90005c is pending because post-merge push jobs are actively running: Canvas Next.js, Canvas tabs E2E, E2E Chat, publish-workspace-server image build, local-provision real-image advisory, and canvas-image promotion. Their prerequisite detect/stub/build jobs are completing normally. molecule-controlplane main and landingpage main are green.

EVIDENCE: run 358557 has Platform/Go, Shellcheck, Python, and Detect changes green while Canvas Next.js is in-progress; run 358559 E2E Chat is in-progress; run 358561 Canvas tabs E2E is in-progress; run 358566 local-provision stub is green and real-image is in-progress; run 358567 canvas image build is green and promotion is in-progress.

RECOMMENDED FIX SHAPE: none for this tick. Continue watching for completion; file a fresh RCA only if one of these active jobs completes red with a concrete mechanism.

RCA tick follow-up (2026-06-13): inbox polling is unavailable in this runtime, so I audited current main CI directly. MECHANISM: no active incident found. `molecule-core` main `552c72d19def70809ec65838ab743bebda90005c` is pending because post-merge push jobs are actively running: Canvas Next.js, Canvas tabs E2E, E2E Chat, publish-workspace-server image build, local-provision real-image advisory, and canvas-image promotion. Their prerequisite detect/stub/build jobs are completing normally. `molecule-controlplane` main and `landingpage` main are green. EVIDENCE: run `358557` has Platform/Go, Shellcheck, Python, and Detect changes green while Canvas Next.js is in-progress; run `358559` E2E Chat is in-progress; run `358561` Canvas tabs E2E is in-progress; run `358566` local-provision stub is green and real-image is in-progress; run `358567` canvas image build is green and promotion is in-progress. RECOMMENDED FIX SHAPE: none for this tick. Continue watching for completion; file a fresh RCA only if one of these active jobs completes red with a concrete mechanism.
Member

Resolved — fixed by #2733 (merged). Root cause exactly as diagnosed: the #1296 BP flip added the required E2E Peer Visibility (literal MCP list_peers) / E2E Peer Visibility context to branch_protections/main but not to the checked-in allowlist .gitea/required-contexts.txt, and lint_no_coe_on_required live-cross-checks the two.

#2733 added the 4th allowlist line; it merged through the full SOP gate (CR2 + qa-review + security-review + gate-check-v3 green). lint-no-coe-on-required (push) is now green on current main 0ebfb5d2.

Durable lesson (SSOT): flipping a status context to REQUIRED on core needs TWO SSOTs synced — branch_protections/main.status_check_contexts AND .gitea/required-contexts.txt (form <workflow name> / <job name>, event stripped). Best practice: include the allowlist line in the SAME PR that makes the gate required-ready, or merge the allowlist change before the BP PATCH, to avoid a transient main-red window. The #1296 checklist predated this guard (file Verified 2026-06-10) so didn't list it; worth adding to the flip-to-required runbook. Closing.

**Resolved — fixed by #2733 (merged).** Root cause exactly as diagnosed: the #1296 BP flip added the required `E2E Peer Visibility (literal MCP list_peers) / E2E Peer Visibility` context to `branch_protections/main` but not to the checked-in allowlist `.gitea/required-contexts.txt`, and `lint_no_coe_on_required` live-cross-checks the two. #2733 added the 4th allowlist line; it merged through the full SOP gate (CR2 + qa-review + security-review + gate-check-v3 green). `lint-no-coe-on-required (push)` is now green on current main `0ebfb5d2`. **Durable lesson (SSOT):** flipping a status context to REQUIRED on core needs TWO SSOTs synced — `branch_protections/main.status_check_contexts` AND `.gitea/required-contexts.txt` (form `<workflow name> / <job name>`, event stripped). Best practice: include the allowlist line in the SAME PR that makes the gate required-ready, or merge the allowlist change before the BP PATCH, to avoid a transient main-red window. The #1296 checklist predated this guard (file `Verified 2026-06-10`) so didn't list it; worth adding to the flip-to-required runbook. Closing.
Author
Member

RCA tick follow-up (2026-06-13): no active red found after the #2740 merge wave. Current molecule-core main 65cdda1219e2c6c90b9229f3cca4cd9d12565dd6 is pending only on actively running push jobs: Canvas Next.js, E2E Chat, Canvas tabs E2E, workspace-server image build, and canvas-image promotion. Detect/Go/Shellcheck/Python and canvas image build have already completed green. molecule-controlplane and landingpage main remain green.

RECOMMENDED FIX SHAPE: none for this tick; continue watching for completion and keep #2739 routed separately for the earlier local-provision real-image red.

RCA tick follow-up (2026-06-13): no active red found after the #2740 merge wave. Current `molecule-core` main `65cdda1219e2c6c90b9229f3cca4cd9d12565dd6` is pending only on actively running push jobs: Canvas Next.js, E2E Chat, Canvas tabs E2E, workspace-server image build, and canvas-image promotion. Detect/Go/Shellcheck/Python and canvas image build have already completed green. `molecule-controlplane` and `landingpage` main remain green. RECOMMENDED FIX SHAPE: none for this tick; continue watching for completion and keep #2739 routed separately for the earlier local-provision real-image red.
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: molecule-ai/molecule-core#2732