fix(deps): raise molecule-ai-workspace-runtime floor to >=0.1.129 (closes internal#424) #5
No reviewers
Labels
No Label
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: molecule-ai/codex-channel-molecule#5
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "fix/runtime-pin-floor-a2a-queued-parser"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Raises the
molecule-ai-workspace-runtimefloor incodex-channel-moleculefrom>=0.1.110to>=0.1.129so a freshpip installalways resolves to a wheel that ships the SSOT A2A response parser. Pre-0.1.129 the runtime's inline parser misclassified the poll-mode success envelope{"status":"queued","delivery_mode":"poll","method":"message/send"}as malformed and surfaced[A2A_ERROR] unexpected response shape (no result, no error)on every reply, which then propagated to canvas as the workspace's task label and triggered a ~3s retry storm.Diagnosis
molecule-core/workspace/a2a_response.py(commit8b9f8099, runtime 0.1.129+).mac-laptop-codex(workspace11726c77-…) reproduces because the laptop has runtime 0.1.18 installed — well below this repo's>=0.1.110pin, butpiphappily accepts that pre-existing install.0.1.1000; the SSOT parser landed in0.1.129(verified by downloading each wheel and grepping fora2a_response.py+_A2A_QUEUED_PREFIX).tool_delegate_taskina2a_tools_delegation.pythen short-circuits the poll-mode case to the durable/delegate+/delegationspolling path, which is the correct synchronous facade for peers without a public URL.Why pin instead of code patch
codex-channel-moleculeitself doesn't parse A2A responses — it just calls intomolecule_runtime.a2a_tools.tool_delegate_task. The parser lives one repo over, was already fixed, and ships via the existing publish-runtime cascade. The only thing left on the dispatcher (this wrapper) is to ensure a clean install pulls in a runtime version that has the fix.Bumps
version:0.1.2→0.1.3(so a re-publish carries the new floor downstream)molecule-ai-workspace-runtime:>=0.1.110→>=0.1.129tests/test_runtime_dependency_floor.py(2 regression tests) so a future dependency-housekeeping pass can't silently lower the floor again.Test plan
pytest -q— 33 passed including 2 new regression testspython3 -c "from molecule_runtime import a2a_response; print(a2a_response.parse({'status':'queued','delivery_mode':'poll','method':'message/send'}))"against PyPI 0.1.1000 wheel returnsQueued(method='message/send', delivery_mode='poll')— not Malformed.>=0.1.110pin (verified by temporary revert)pip install --upgrade codex-channel-moleculeon the laptop and restarts the daemon — canvas should stop flapping the[A2A_ERROR]label.Followup
pip install -U codex-channel-molecule(ormolecule-ai-workspace-runtime) on his end is required to pick up the fix. No remote action taken — read-only diagnosis only.codex exec exit=1 empty-stdoutissue on the laptop is a Hongming-end env issue and out of scope here.Closes molecule-ai/internal#424.
Pre-0.1.129 the runtime's inline A2A response sniffer in ``send_a2a_message`` checked only for ``result`` / ``error`` keys and routed the poll-mode success envelope — ``{"status": "queued", "delivery_mode": "poll", "method": "..."}`` — to the malformed branch: [A2A_ERROR] unexpected response shape (no result, no error): {...} That string then propagated through ``tool_delegate_task`` into the caller workspace's activity row, surfacing on canvas as the workspace's task label and triggering a ~3s retry storm. 0.1.129 introduced ``a2a_response.py`` (SSOT typed parser with explicit ``Queued`` variant) + matching ``_A2A_QUEUED_PREFIX`` handling in ``a2a_tools_delegation.tool_delegate_task`` that falls back to the durable ``/delegate`` + ``/delegations`` polling path — the correct synchronous facade for poll-mode peers. The existing ``>=0.1.110`` pin allowed a fresh ``pip install codex-channel-molecule`` to resolve to a buggy wheel and reproduce the incident. Raising the floor to 0.1.129 closes that window. Adds a ``test_runtime_dependency_floor.py`` regression test that parses ``pyproject.toml`` and asserts the lower bound stays at or above 0.1.129 — bumps the version to 0.1.3 so a republish carries the floor downstream. Closes molecule-ai/internal#424. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>LGTM — dependency-floor bump matches the runtime version that introduced the SSOT A2A response parser (a2a_response.py + _A2A_QUEUED_PREFIX). Test suite passes (33), and the new regression test correctly fails when the floor is lowered. Pin-only change; no runtime code edits.