Two-part fix from PR #268 (ported by Integration Tester after PR #268
was closed without merge):
PART 1 — workspace/builtin_tools/a2a_tools.py: Fixes AttributeError
when platform returns a plain string as the error field. Before:
data["error"].get("message") ← crashes if error is a string
After:
isinstance(err, dict) → err.get("message")
isinstance(err, str) → use err directly
otherwise → str(err)
Also guards against result being a non-dict:
result.get("parts") if isinstance(result, dict) else []
PART 2 — .gitea/workflows/ and .github/workflows/
publish-workspace-server-image.yml: Removed dead "staging" branch
trigger. Trunk-based migration (2026-05-08) removed the staging branch
but the workflow triggers weren't updated, causing every staging push
to attempt and fail the publish workflow (missing Gitea Actions secrets
at the time, failing in 9s). Now triggers on main only.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>