Agent state: colibri's error has no bherdr reportable equivalent #34
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Agent state: colibri's
errorhas no bherdr reportable equivalentSummary
Colibri models a failed agent turn as a first-class state (
error). bherdr'sreportable agent-state set is
idle | working | blocked | unknown— there isno
error, so a failed turn can only surface asunknown. When the Go Colibriconsumes bherdr pane/agent state, this gap silently loses the failure signal.
Evidence
Colibri
internal/zotrpc/events.go(andcrates/colibri-glasspane,AgentState) — 5 states:turn_end/agent_endfolds todone, buterroris sticky: once set itsurvives a later terminal frame (
Apply():bherdr
internal/server/server.go— reportable states are validated to:and rollup precedence is
blocked > working > idle > unknown(
rollupTabStatus,rollupWorkspaceStatus)."error"appears nowhere as anagent state in
internal/wireorinternal/server.bherdr
docs/wiki/protocol-contract.md:Finding (Jev probe, advisory)
A grounded probe over the two real vocabularies (
jev_probe):idle/working/blockedagree?errormap in bherdr?idle0.43 /unknown0.34 /error0.23donemap?done0.42 (matches "derivable")Jev is a prior, not an authority; the underlying gap is confirmed by reading
the two sources above.
Options
errorstate (protocol 22 extension). Cleanestfidelity; changes the pinned subset and needs the protocol-contract bump.
error→unknownand carries the failure in aside channel (task ledger already records
failed). No bherdr change; losesthe distinction on the pane surface.
done/errorstay derivable and Colibri derivesboth from
turn_endstop reason — which it already does for zot RPC. Thisis the smallest change: bherdr is the pane surface, colibri owns turn
outcome.
Recommendation
Option 3 unless the pane surface must show failures distinctly. If it must,
Option 1 with an explicit protocol-contract update. The decision belongs to the
bherdr protocol owner; this issue records the gap and evidence.
Refs: colibri
internal/zotrpc/events.go,crates/colibri-glasspane/src/lib.rs;bherdr
internal/server/server.go,docs/wiki/protocol-contract.md.Resolved by Option 3, ratified in this repo's
docs/wiki/protocol-contract.mdvia PR #40 (merge1377b04):idle | working | blocked | unknown) — no wire-protocol change;done/error) from Zotturn_endstop reasons;unknownfor a failed turn.This matches the projection codified in colibri
testdata/contracts/agent-state/v1/states.json(done → idle,error → unknown, rollupblocked > working > idle > unknown).If the pane surface must later surface failures distinctly, reopen under Option 1 (a reportable
errorstate, with a protocol-contract bump). Closing as resolved.