RobotError is waldoctl's; type the sync tools - #37
Merged
Merged
Conversation
A frontend represents a refused command the same way whichever backend raised it, so the refusal type is the contract's: same six fields, same wire list in both directions, and an exception rather than a dataclass so a client can raise it as-is. make_error, the catalog and extract_robot_error are unchanged. The tool-error attribution rebuilds the error from the wire, because a dataclass replace on an exception does not survive the copy the state makes of it. The sync client and the robot factory hold SyncTool, which is what make_sync_tool returns, and the waldoctl pin moves to v0.11.2. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014Bo12kumRx9PHnY9bL8qgn
This was referenced Sep 4, 2026
Closed
The release that carries the shared RobotError this branch adopts. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014Bo12kumRx9PHnY9bL8qgn
Adding 91 to the live port runs past 65535 whenever the ephemeral range hands out a high one, and connect() then raises OverflowError instead of timing out — the macOS runners hit it. A port the kernel just handed back with nothing bound to it is dead by construction and cannot overflow. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014Bo12kumRx9PHnY9bL8qgn
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of the coordinated
feat/thin-python-bindingwork across waldoctl, par6 and Waldo-Commander; the branch name matches so the cross-repo CI resolves this branch instead of the tag.RobotError comes from waldoctl. A frontend represents a refused command the same way whichever backend raised it, so the refusal type belongs to the contract, not to this backend. Same six fields and the same wire list in both directions, and it is an exception rather than a frozen dataclass, so a client can raise it as-is.
make_error, the catalog andextract_robot_errorare unchanged.One consequence: the tool-error attribution rebuilds the error from its wire form instead of calling
dataclasses.replaceon it. A replace on an exception does not survive the copy the controller state makes, and it raisedRobotError.__init__() missing 5 required positional argumentsin place.Typing. The sync client and the robot factory now hold
SyncTool, which is whatmake_sync_toolactually returns.Pin moves to waldoctl v0.11.2.
Tests: 197 unit and 80 integration pass. One unit test fails locally for a missing
rtreemodule, which also fails on untouchedmainand is an environment gap, not a code change.🤖 Generated with Claude Code
https://claude.ai/code/session_014Bo12kumRx9PHnY9bL8qgn