Skip to content

RobotError is waldoctl's; waldoctl pin -> v0.11.1 - #8

Closed
Jepson2k wants to merge 2 commits into
mainfrom
feat/shared-robot-error
Closed

RobotError is waldoctl's; waldoctl pin -> v0.11.1#8
Jepson2k wants to merge 2 commits into
mainfrom
feat/shared-robot-error

Conversation

@Jepson2k

@Jepson2k Jepson2k commented Sep 3, 2026

Copy link
Copy Markdown
Owner

A frontend represents a refused command the same way whichever backend raised it, so the refusal type is the contract's: parol6.RobotError is now waldoctl.RobotError. 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.

One call site changed with it: the controller re-attributed a tool error with dataclasses.replace, which an exception cannot take; it rebuilds from the wire fields instead. No test reaches that path — that gap was there before and is still there.

Verified against waldoctl v0.11.1 plus Jepson2k/waldoctl#19 (which adds to_wire and makes the class copy/pickle-safe — parol6's state snapshot deepcopies it): 194 unit and 79 integration tests pass. Neither parol6 nor Waldo Commander used the sync-wrapper classes waldoctl's v0.11.0 removed and v0.11.1 restored; make_sync_tool is unchanged in signature.

The pin moves from v0.7.0 to v0.11.1; it should move to v0.11.2 once waldoctl#19 is tagged.

🤖 Generated with Claude Code

https://claude.ai/code/session_014Bo12kumRx9PHnY9bL8qgn

Jepson2k and others added 2 commits September 3, 2026 22:36
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.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Bo12kumRx9PHnY9bL8qgn
RobotError serialises back to the wire and survives copy/pickle, which
the controller's state snapshot needs.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Bo12kumRx9PHnY9bL8qgn
@Jepson2k

Jepson2k commented Sep 4, 2026

Copy link
Copy Markdown
Owner Author

Superseded: the branch is renamed to feat/thin-python-binding so the cross-repo CI branch-matching resolves it (waldoctl <- par6 <- Waldo-Commander all use that name). Same commits, continued in the new PR.

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