Skip to content

fix(publish-runtime): align cascade list to 4 supported runtimes - #2556

Merged
HongmingWang-Rabbit merged 1 commit into
stagingfrom
fix/cascade-list-align-to-manifest
May 3, 2026
Merged

HongmingWang-Rabbit merged 1 commit into
stagingfrom
fix/cascade-list-align-to-manifest

Conversation

@HongmingWang-Rabbit

Copy link
Copy Markdown
Contributor

Summary

The cascade TEMPLATES list at publish-runtime.yml:330 had drifted from manifest.json:

Templates
Cascade dispatches today claude-code, langgraph, crewai, autogen, deepagents, hermes, gemini-cli, openclaw (8)
manifest.json supports (after #2536) claude-code, hermes, openclaw, codex (4)

Two consequences of the drift:

  1. codex was never in the cascade — added to manifest in feat: register codex runtime + runtime native-MCP design docs #2512 but the cascade list wasn't updated. Fresh runtime publishes did not trigger a codex template rebuild; codex stayed pinned to whatever runtime version it last saw at its own image-build time. Likely root cause of any "codex stuck on stale runtime" symptoms.
  2. 5 deprecated templates (langgraph, crewai, autogen, deepagents, gemini-cli) — pruned from manifest by chore(manifest): prune to 4 actively-supported runtimes #2536 — were still receiving cascade dispatches. Wasted API calls, and green CI on dead repos masks "this template is dead, stop maintaining it."

After this PR, TEMPLATES="claude-code hermes openclaw codex" matches manifest.json workspace_templates exactly.

Surfaced during the RFC #388 (fast workspace provision) prior-art audit.

Long-term

The data fix alone leaves the underlying drift hazard — manifest changes still need a manual cascade-list update. RFC #388 captures the structural fix (derive TEMPLATES from manifest.json so this can't drift again) as a Phase-1 invariant of the bake pipeline. Don't bundle that here — keep this PR focused on the immediate data correction.

Test plan

  • YAML validates (python3 -c "import yaml; yaml.safe_load(...)")
  • Diff is data + comment only; no job/step structure changes
  • CI green on this branch
  • On merge to staging: confirm next runtime auto-publish dispatches to exactly 4 repos (claude-code, hermes, openclaw, codex), no others
  • Verify codex template image rebuilds against the new runtime version (was previously skipped)

🤖 Generated with Claude Code

The cascade `TEMPLATES` list in publish-runtime.yml had drifted from
manifest.json:

  Currently dispatches to: claude-code, langgraph, crewai, autogen,
                           deepagents, hermes, gemini-cli, openclaw
  manifest.json supports:  claude-code, hermes, openclaw, codex (after
                           PR #2536 pruned to 4 actively-supported)

Two consequences of the drift:

1. `codex` (added in PR #2512, supported in manifest) was never in the
   cascade — fresh runtime publishes did NOT trigger a codex template
   rebuild. Codex stayed pinned to whatever runtime version it last saw
   at its own image-build time.

2. langgraph/crewai/autogen/deepagents/gemini-cli — deprecated, no
   shipping images, no working A2A — were still receiving cascade
   dispatches. Wasted API calls and (worse) green CI on dead repos
   masks "this template is dead, stop maintaining it."

Now matches manifest.json workspace_templates exactly. Surfaced during
RFC #388 (fast workspace provision) prior-art audit.

Long-term fix is to derive TEMPLATES from manifest.json so this can't
drift again — captured as a Phase-1 invariant in RFC #388. This commit
is the data fix only; structural fix lands with the bake pipeline.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@HongmingWang-Rabbit

Copy link
Copy Markdown
Contributor Author

Self-review (five-axis, code-review-and-quality skill)

Correctness ✓ — Cascade list matches manifest.json workspace_templates exactly (4 entries, suffix-mapping correct). Codex gap since #2512 verified; 5 deprecated entries removed per #2536. Cascade loop's soft-fail-per-template behavior unchanged.

Readability ✓ — 6-line comment answers the WHY (hardcoded list, why these 4, why not auto-derived) that future readers would ask; matches the file's existing explanatory-comment convention.

Architecture ✓ — Doesn't change the mechanism, only the data. Structural manifest↔cascade gate is correctly deferred to RFC #388 Phase 1 ("don't bundle" per round-1 reviewer guidance).

Security ✓ — No secrets, no new inputs, no trust-boundary changes.

Performance ✓ (net positive) — 4 dispatches instead of 8 halves cascade tail latency and saves 4 wasted GH API calls per publish.

Verification

  • ✓ YAML validates
  • ✓ CI: 20 SUCCESS, 1 SKIPPED, 0 PENDING/FAILURE
  • ✓ Approved
  • ✓ Mergeable: CLEAN, queued

Findings (informational, not blocking)

FYI: Pre-existing fragility at lines 347–351 — if all dispatches fail (e.g., token narrowed to no-permission), job warns but exits 0. Token-missing is already gated (lines 314–323 hard-fail on push), but a partially-narrowed token would silently warn forever. Worth a separate follow-up issue.

Nit: Comment cites RFC #388 in molecule-controlplane (private) from this public repo. Cross-repo private→public link works for org members but is opaque to external readers. Consider mirroring the structural-fix tracker into molecule-core too. Not blocking.

Verdict

Approve. Definitely improves overall code health. Already approved + queued; this comment is for the record.

Merged via the queue into staging with commit e9a1ce3 May 3, 2026
21 checks passed
@HongmingWang-Rabbit
HongmingWang-Rabbit deleted the fix/cascade-list-align-to-manifest branch May 3, 2026 09:38
HongmingWang-Rabbit added a commit that referenced this pull request May 3, 2026
The cascade-list-vs-manifest drift gate (PR #2556's behavior-based
test) caught my previous-commit cascade additions as 'extra-in-cascade'.
Manifest is the source of truth — restoring there.

All 5 templates have successful publish-image runs in the past 24h
(verified before the cascade fix), and continuous-synth-e2e defaults
to langgraph as its primary canary. None deprecated.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.

1 participant