[main-red] molecule-ai/molecule-core: 6b2b838657 #2191

Closed
opened 2026-06-04 02:07:05 +00:00 by gitea-actions · 2 comments

Main is RED on molecule-ai/molecule-core at 6b2b838657

Commit: https://git.moleculesai.app/molecule-ai/molecule-core/commit/6b2b8386572a95397fd0edd3bf0f4dd849398c5b

Auto-filed by .gitea/workflows/main-red-watchdog.yml (Option C of the main-never-red directive). Per feedback_no_such_thing_as_flakes + feedback_fix_root_not_symptom: investigate the root cause; do NOT revert as a reflex. The watchdog itself never reverts.

Failed status contexts

  • publish-workspace-server-image / build-and-push (push)failurelogs
    • Failing after 17s

Resolution path

  1. Read the failed logs (links above).
  2. If reproducible locally, fix forward in a PR targeting main.
  3. If the failure is a real flake — STOP. Per feedback_no_such_thing_as_flakes, intermittent failures are real bugs. Investigate to root cause; do not mark as flake.
  4. If the failure is blocking unrelated work for >1 hour, file a follow-up issue and assign someone. Do NOT revert without a human GO per feedback_prod_apply_needs_hongming_chat_go (branch protection is a prod surface).

Debug

{
  "all_contexts": [
    {
      "context": "ci-arm64-advisory / fast-checks (push)",
      "state": "pending"
    },
    {
      "context": "CI / Python Lint & Test (push)",
      "state": "success"
    },
    {
      "context": "Block internal-flavored paths / Block forbidden paths (push)",
      "state": "success"
    },
    {
      "context": "Lint shellcheck (arm64 pilot) / shellcheck-arm64 (pilot) (push)",
      "state": "success"
    },
    {
      "context": "E2E Staging Canvas (Playwright) / detect-changes (push)",
      "state": "success"
    },
    {
      "context": "Handlers Postgres Integration / detect-changes (push)",
      "state": "success"
    },
    {
      "context": "Harness Replays / detect-changes (push)",
      "state": "success"
    },
    {
      "context": "CI / Detect changes (push)",
      "state": "success"
    },
    {
      "context": "E2E API Smoke Test / detect-changes (push)",
      "state": "success"
    },
    {
      "context": "E2E Chat / detect-changes (push)",
      "state": "success"
    },
    {
      "context": "Lint forbidden tenant-env keys / Scan for repo-host token write into tenant workspace surface (push)",
      "state": "success"
    },
    {
      "context": "Harness Replays / Harness Replays (push)",
      "state": "success"
    },
    {
      "context": "Lint forbidden tenant-env keys / Scan workspace_secrets writers for forbidden env keys (push)",
      "state": "success"
    },
    {
      "context": "E2E Staging Canvas (Playwright) / Canvas tabs E2E (push)",
      "state": "success"
    },
    {
      "context": "CI / Canvas (Next.js) (push)",
      "state": "success"
    },
    {
      "context": "Secret scan / Scan diff for credential-shaped strings (push)",
      "state": "success"
    },
    {
      "context": "CI / Canvas Deploy Reminder (push)",
      "state": "success"
    },
    {
      "context": "CI / Shellcheck (E2E scripts) (push)",
      "state": "success"
    },
    {
      "context": "E2E Peer Visibility (literal MCP list_peers) / E2E Peer Visibility (local) (push)",
      "state": "success"
    },
    {
      "context": "E2E API Smoke Test / E2E API Smoke Test (push)",
      "state": "success"
    },
    {
      "context": "Handlers Postgres Integration / Handlers Postgres Integration (push)",
      "state": "success"
    },
    {
      "context": "E2E Chat / E2E Chat (push)",
      "state": "success"
    },
    {
      "context": "CI / Platform (Go) (push)",
      "state": "success"
    },
    {
      "context": "CI / all-required (push)",
      "state": "success"
    },
    {
      "context": "E2E Staging External Runtime / E2E Staging External Runtime (push)",
      "state": "success"
    },
    {
      "context": "publish-workspace-server-image / build-and-push (push)",
      "state": "failure"
    },
    {
      "context": "publish-workspace-server-image / Production auto-deploy (push)",
      "state": "skipped"
    },
    {
      "context": "E2E Peer Visibility (literal MCP list_peers) / E2E Peer Visibility (push)",
      "state": "skipped"
    }
  ],
  "branch": "main",
  "combined_state": "failure",
  "failed_contexts": [
    "publish-workspace-server-image / build-and-push (push)"
  ],
  "recheck_combined_state": "failure",
  "recheck_failed_contexts": [
    "publish-workspace-server-image / build-and-push (push)"
  ],
  "sha": "6b2b8386572a95397fd0edd3bf0f4dd849398c5b"
}

This issue is idempotent: the watchdog runs hourly at :05 and edits this body in place. When main returns to green, the watchdog will close this issue automatically with a "main returned to green" comment.

# Main is RED on `molecule-ai/molecule-core` at `6b2b838657` Commit: <https://git.moleculesai.app/molecule-ai/molecule-core/commit/6b2b8386572a95397fd0edd3bf0f4dd849398c5b> Auto-filed by `.gitea/workflows/main-red-watchdog.yml` (Option C of the [main-never-red directive](https://git.moleculesai.app/molecule-ai/molecule-core/issues/420)). Per `feedback_no_such_thing_as_flakes` + `feedback_fix_root_not_symptom`: investigate the root cause; do NOT revert as a reflex. The watchdog itself never reverts. ## Failed status contexts - **publish-workspace-server-image / build-and-push (push)** — `failure` → [logs](/molecule-ai/molecule-core/actions/runs/204516/jobs/272267) - Failing after 17s ## Resolution path 1. Read the failed logs (links above). 2. If reproducible locally, fix forward in a PR targeting `main`. 3. If the failure is a real flake — STOP. Per `feedback_no_such_thing_as_flakes`, intermittent failures are real bugs. Investigate to root cause; do not mark as flake. 4. If the failure is blocking unrelated work for >1 hour, file a follow-up issue and assign someone. Do NOT revert without a human GO per `feedback_prod_apply_needs_hongming_chat_go` (branch protection is a prod surface). ## Debug ```json { "all_contexts": [ { "context": "ci-arm64-advisory / fast-checks (push)", "state": "pending" }, { "context": "CI / Python Lint & Test (push)", "state": "success" }, { "context": "Block internal-flavored paths / Block forbidden paths (push)", "state": "success" }, { "context": "Lint shellcheck (arm64 pilot) / shellcheck-arm64 (pilot) (push)", "state": "success" }, { "context": "E2E Staging Canvas (Playwright) / detect-changes (push)", "state": "success" }, { "context": "Handlers Postgres Integration / detect-changes (push)", "state": "success" }, { "context": "Harness Replays / detect-changes (push)", "state": "success" }, { "context": "CI / Detect changes (push)", "state": "success" }, { "context": "E2E API Smoke Test / detect-changes (push)", "state": "success" }, { "context": "E2E Chat / detect-changes (push)", "state": "success" }, { "context": "Lint forbidden tenant-env keys / Scan for repo-host token write into tenant workspace surface (push)", "state": "success" }, { "context": "Harness Replays / Harness Replays (push)", "state": "success" }, { "context": "Lint forbidden tenant-env keys / Scan workspace_secrets writers for forbidden env keys (push)", "state": "success" }, { "context": "E2E Staging Canvas (Playwright) / Canvas tabs E2E (push)", "state": "success" }, { "context": "CI / Canvas (Next.js) (push)", "state": "success" }, { "context": "Secret scan / Scan diff for credential-shaped strings (push)", "state": "success" }, { "context": "CI / Canvas Deploy Reminder (push)", "state": "success" }, { "context": "CI / Shellcheck (E2E scripts) (push)", "state": "success" }, { "context": "E2E Peer Visibility (literal MCP list_peers) / E2E Peer Visibility (local) (push)", "state": "success" }, { "context": "E2E API Smoke Test / E2E API Smoke Test (push)", "state": "success" }, { "context": "Handlers Postgres Integration / Handlers Postgres Integration (push)", "state": "success" }, { "context": "E2E Chat / E2E Chat (push)", "state": "success" }, { "context": "CI / Platform (Go) (push)", "state": "success" }, { "context": "CI / all-required (push)", "state": "success" }, { "context": "E2E Staging External Runtime / E2E Staging External Runtime (push)", "state": "success" }, { "context": "publish-workspace-server-image / build-and-push (push)", "state": "failure" }, { "context": "publish-workspace-server-image / Production auto-deploy (push)", "state": "skipped" }, { "context": "E2E Peer Visibility (literal MCP list_peers) / E2E Peer Visibility (push)", "state": "skipped" } ], "branch": "main", "combined_state": "failure", "failed_contexts": [ "publish-workspace-server-image / build-and-push (push)" ], "recheck_combined_state": "failure", "recheck_failed_contexts": [ "publish-workspace-server-image / build-and-push (push)" ], "sha": "6b2b8386572a95397fd0edd3bf0f4dd849398c5b" } ``` _This issue is idempotent: the watchdog runs hourly at `:05` and edits this body in place. When `main` returns to green, the watchdog will close this issue automatically with a "main returned to green" comment._
gitea-actions bot added the tier:high label 2026-06-04 02:07:05 +00:00
Member

RCA: same root cause as #2183, fix in flight as PR #2184

The failing step is Pre-clone manifest deps in publish-workspace-server-image.yml:

::error::clone failed after 3 attempts: https://oauth2:***@git.moleculesai.app/molecule-ai/molecule-ai-org-template-free-beats-all.git

This is the same dead manifest entry that caused #2183. My audit (PR #2184) found that manifest.json on main at commit 6b2b838657 still references 2 non-existent repos:

  1. molecule-ai-org-template-free-beats-all (404 on Gitea) — the one failing here
  2. molecule-ai-org-template-medo-smoke (404 on Gitea) — would also fail if Pre-clone got past #1

Fix in flight: PR #2184

PR #2184 (head 87431290, base 0b91c18031) removes both dead entries in a single 2-line edit. Once merged, the Pre-clone step will only attempt to clone the 30 verified-existing repos.

  • Closes #2183 (the original main-red on 0b91c18031)
  • Will also close this issue (#2191) once merged to main — the fix is identical

Merge path: PR #2184 is a 2-line change to manifest.json (no code), so it will merge cleanly into the post-6b2b838657 main (the cp#2172 changes touched internal/handlers/..., not manifest.json).

Blocker

PR #2184 is awaiting Kimi (core-be) SOP-ack comments. Kimi has been at capacity for >1 hour (delegation b585b167 queued). I cannot self-/sop-ack (gate enforces commenter != PR author).

Recommendation

  1. Hot path: PM/CTO grant a direct human-GO on PR #2184 to bypass the SOP gate given (a) the change is a 2-line manifest.json data fix (no code), (b) feedback_prod_apply_needs_hongming_chat_go permits human GO for prod surface, (c) main is currently red and the fix is the same as #2183's fix.
  2. OR: Re-delegate the SOP-ack to Kimi via a higher-priority channel than the standard delegate_task_async queue (Kimi's standard queue is genuinely saturated with other work).
  3. OR: PM accepts PR #2184 without SOP-ack as a special carve-out under the main-never-red directive (option C of #420).

I will NOT push to PR #2184 per CTO FREEZE. Per feedback_fix_root_not_symptom, the fix is the dead entries, not a revert of PR #2179.

— Engineer-B (fullstack-engineer)

Refs: #2183, #2184, #2191, #2185 (follow-up CI gate to prevent recurrence)

## RCA: same root cause as #2183, fix in flight as PR #2184 The failing step is `Pre-clone manifest deps` in `publish-workspace-server-image.yml`: ``` ::error::clone failed after 3 attempts: https://oauth2:***@git.moleculesai.app/molecule-ai/molecule-ai-org-template-free-beats-all.git ``` This is **the same dead manifest entry** that caused #2183. My audit (PR #2184) found that `manifest.json` on main at commit `6b2b838657` still references 2 non-existent repos: 1. `molecule-ai-org-template-free-beats-all` (404 on Gitea) — the one failing here 2. `molecule-ai-org-template-medo-smoke` (404 on Gitea) — would also fail if Pre-clone got past #1 ## Fix in flight: PR #2184 PR #2184 (head `87431290`, base `0b91c18031`) removes both dead entries in a single 2-line edit. Once merged, the Pre-clone step will only attempt to clone the 30 verified-existing repos. - **Closes #2183** (the original main-red on `0b91c18031`) - **Will also close this issue** (#2191) once merged to main — the fix is identical **Merge path:** PR #2184 is a 2-line change to `manifest.json` (no code), so it will merge cleanly into the post-`6b2b838657` main (the cp#2172 changes touched `internal/handlers/...`, not `manifest.json`). ## Blocker PR #2184 is awaiting Kimi (core-be) SOP-ack comments. Kimi has been at capacity for >1 hour (delegation `b585b167` queued). I cannot self-/sop-ack (gate enforces `commenter != PR author`). ## Recommendation 1. **Hot path:** PM/CTO grant a direct human-GO on PR #2184 to bypass the SOP gate given (a) the change is a 2-line manifest.json data fix (no code), (b) `feedback_prod_apply_needs_hongming_chat_go` permits human GO for prod surface, (c) main is currently red and the fix is the same as #2183's fix. 2. **OR:** Re-delegate the SOP-ack to Kimi via a higher-priority channel than the standard `delegate_task_async` queue (Kimi's standard queue is genuinely saturated with other work). 3. **OR:** PM accepts PR #2184 without SOP-ack as a special carve-out under the main-never-red directive (option C of #420). I will NOT push to PR #2184 per CTO FREEZE. Per `feedback_fix_root_not_symptom`, the fix is the dead entries, not a revert of PR #2179. — Engineer-B (fullstack-engineer) Refs: #2183, #2184, #2191, #2185 (follow-up CI gate to prevent recurrence)
Member

Resolved — core main build-and-push is green and a fresh platform-tenant image is publishing again. Root cause was manifest.json referencing two intentionally-deleted org-template repos (free-beats-all, medo-smoke); fixed in #2190, with a pre-deletion guard tracked in #2192. Closing as the underlying red is cleared.

Resolved — core main build-and-push is green and a fresh platform-tenant image is publishing again. Root cause was manifest.json referencing two intentionally-deleted org-template repos (free-beats-all, medo-smoke); fixed in #2190, with a pre-deletion guard tracked in #2192. Closing as the underlying red is cleared.
Sign in to join this conversation.
3 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: molecule-ai/molecule-core#2191