Skip to content

fix(workspace): rename supported_protocols → supported_interfaces (CRITICAL — every boot crashes) - #2182

Merged
HongmingWang-Rabbit merged 1 commit into
stagingfrom
ci/agentcard-smoke-followup-2179
Apr 27, 2026
Merged

fix(workspace): rename supported_protocols → supported_interfaces (CRITICAL — every boot crashes)#2182
HongmingWang-Rabbit merged 1 commit into
stagingfrom
ci/agentcard-smoke-followup-2179

Conversation

@HongmingWang-Rabbit

Copy link
Copy Markdown
Contributor

Summary

CRITICAL: every workspace boot since the a2a-sdk 1.0 migration (#1974) has been crashing at AgentCard construction with:

ValueError: Protocol message AgentCard has no "supported_protocols" field.

The protobuf field is supported_interfaces (plural, interfaces — verified against a2a-sdk types/a2a_pb2.pyi:189). The 0.3→1.0 migration left the kwarg as supported_protocols, which doesn't exist in the 1.0 schema, so the constructor raises before any subsequent line of main() runs.

Why this hid for weeks

  • publish-runtime.yml's smoke step only imported molecule_runtime.main; importing the module is fine, only constructing the AgentCard fails
  • User-visible symptom is "Workspace failed: " with empty last_sample_error — indistinguishable from generic boot timeouts
  • The state_transition_history=True bug (fixed in fix: drop state_transition_history (removed in a2a-sdk 1.x) #2179) was a sibling of this — same migration, same class, just caught first

Likely impact on recent CI failures

This is plausibly the root cause of the persistent staging failures we've been seeing:

I'm not 100% certain this single fix unblocks all three — there could be more bugs of the same class — but every boot has been crashing here, so fixing it removes one entire layer of failure.

Fix is symmetric with #2179

  1. workspace/main.py: rename the kwarg + add a comment explaining why
  2. .github/workflows/publish-runtime.yml: extend the smoke block to instantiate AgentCard with the exact production call shape, so the next field-rename of this class fails at publish time instead of breaking every workspace startup

Verification

I built a clean venv on a2a-sdk 1.0.2 and ran the constructor:

# With the WRONG kwarg (current production code):
ValueError: Protocol message AgentCard has no "supported_protocols" field.

# With the FIXED kwarg (this PR):
✓ AgentCard call-shape smoke passed

The smoke test in publish-runtime.yml is now a structural lock — main.py and the smoke MUST stay in lockstep. Adding a kwarg to one without mirroring it here is the regression vector for this class of bug.

🤖 Generated with Claude Code

…a-sdk 1.0)

CRITICAL: every workspace boot since the a2a-sdk 1.0 migration (#1974)
has been crashing at AgentCard construction with:
  ValueError: Protocol message AgentCard has no "supported_protocols" field

The protobuf field is `supported_interfaces` (plural, interfaces — see
a2a-sdk types/a2a_pb2.pyi:189). The 0.3→1.0 migration left the kwarg
as `supported_protocols`, which doesn't exist in the 1.0 schema, so
the constructor raises before any subsequent line of main runs.

Why this hid for so long:
  - publish-runtime.yml's smoke step only IMPORTED molecule_runtime.main;
    importing the module is fine, only CONSTRUCTING the AgentCard fails
  - The user-visible symptom is "Workspace failed: " with empty
    last_sample_error, indistinguishable from generic boot timeouts
  - The state_transition_history=True bug (fixed in #2179) was a
    sibling of this — same migration, same class, just caught first

Fix is symmetric with #2179:
  1. workspace/main.py: rename the kwarg + comment explaining why
  2. .github/workflows/publish-runtime.yml: extend the smoke block to
     instantiate AgentCard with the exact production call shape, so
     the next field-rename of this class fails at publish time
     instead of breaking every workspace startup

Verification:
  - Constructed AgentCard against fresh a2a-sdk 1.0.2 in a clean
    venv with the corrected kwarg → succeeds
  - Constructed it with the original `supported_protocols` kwarg →
    fails immediately with the exact error production sees
  - Smoke test pinned to mirror main.py's exact call shape; main.py
    + smoke must stay in lockstep going forward

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@HongmingWang-Rabbit
HongmingWang-Rabbit added this pull request to the merge queue Apr 27, 2026
Merged via the queue into staging with commit 5920fc8 Apr 27, 2026
15 checks passed
@HongmingWang-Rabbit
HongmingWang-Rabbit deleted the ci/agentcard-smoke-followup-2179 branch April 27, 2026 15:03
HongmingWang-Rabbit pushed a commit that referenced this pull request Jun 12, 2026
…e required_env from registry (proper SSOT, task #65)' (#2182) from feat/google-adk-platform-provider-mirror-ssot into main
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