Repository navigation
Move building-rig-agents to rig 0.44 - #9
Merged
Merged
Conversation
Release audit of 12 October 2026 per maintenance/release-audit.md; plugin and every manifest go from 0.3.0 to 0.4.0. - rig 0.44: PromptResponse::output() is a method, PromptError variants renamed (Provider, Memory, MaxTurns, Cancelled) and non_exhaustive, StreamingError removed, DynamicTool::try_from and into_tool() return a Result, top_n returns named results, ExtractorBuilder::tool_choice removed, new media constructors. VERSION-DRIFT gains a 0.43 -> 0.44 table and behaviour list; every snippet and the evals use 0.44 names. - A turn the provider filtered or ended with an unknown finish reason, malformed tool arguments that end the run, and an unsupported generation option are answered 500 by agent_error, not 503: rig marks them not retryable. Outages stay 503. A test pins the filtered turn. - AGENTS-CORE teaches the typed generation options: .reasoning(Effort), .cache(CacheRetention), .on_unsupported(..), default efforts. - Description: ToolCallError (gone since before 0.42) replaced by the 0.44 max turns wording; a triggering prompt pastes the 0.44 message. - Thinking-binding warnings name Fable 5.1, Opus 5.5, Sonnet 5.5 and Haiku 5.5 per Anthropic's docs; rig sends no block_binding for Haiku 5.5, which its catalog lacks. Hooks: malformed arguments reach on_invalid_tool_call on both run paths, Repair fails like Fail. - AGENTS.md: ask for eval approval at the start of a session. - otel collector 0.162.0, nextest recommended 0.9.148, setup-uv v10.3.0, refreshed scaffold lockfile. - Held: rmcp 3 (rig-rmcp 0.44 pins 2), the opentelemetry 0.33 set, testcontainers 0.28, NATS 2.15. Signed-off-by: Denys Moskalenko <denysmoskalenko11@gmail.com>
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.
Release audit of 12 October 2026, following
maintenance/release-audit.md. Plugin 0.3.0 → 0.4.0.Inventory
rmcp = "2"opentelemetry_0_33(TrueLayer/reqwest-middleware#288 open)server_2_15recommendedcargo update: hyper 1.12, uuid 1.28, tokio-util 0.7.20, aws-lc-rs 1.18.2, pest 2.9.3 (adds stacker/psm, dev-only via insta); 588 → 590 packagesrig 0.44 in building-rig-agents
A compile probe at 0.44 broke 8 snippets (16 errors); the 65 untagged fragments and the prose were checked by hand against the 0.44 sources and the upstream
0.43 → 0.44migration section. Every edit is at the line the change invalidates:PromptResponse::outputis a method;messagesis aVec.PromptError::{Provider, Memory, MaxTurns, Cancelled}, now#[non_exhaustive];StreamingErroris gone, so stream items fail withPromptError(agent_error,sse_events,framein AXUM-INTEGRATION).MultiTurnStreamItem::ToolResult,StreamEvent::Start { name }, tool-call arguments as fragments,stream_to_stdoutreturns the run's error, onechatspan withgen_ai.request.stream.DynamicTool::try_from(mcp_tool)?,agent.into_tool()?.top_nreturns named results; the in-memory store needs onlySerialize.ExtractorBuilder::tool_choiceremoved,retries(usize),StructuredOutputError::{Prompt, Deserialization { output, error }}.audio_base64/video_base64/document_text/document_base64, and unsupported media becomes placeholder text.on_invalid_tool_callon both run paths; the default answers with an error result;Repairfails the run; newDisallowedByToolChoicereason; the per-run table gainsmax_consecutive_malformed_tool_callsandaccept_unknown_finish_reasons.Provider(ProviderError::Response(..))with no status.agent_errorwould have answered them 503 through its catch-all; its existing 500 arm now also matchesProviderError::ResponseandProviderError::UnsupportedOption, since rig marks both not retryable and the house contract keeps 503 for a backend that is down. Provider outages still reach 503: Anthropic streamerrorevents and OpenAIresponse.failedarrive asProviderResponse. A test pins the content-filter case; the SKILL bullet and eval 1 say the same. Edge: an OpenAI Responses reply withstatus: failedin a 200 body (background mode) is aResponseturn failure too, so it is now a 500..reasoning(Effort::High)(Anthropicoutput_config.effort, adaptive thinking where the model takes it),.cache(CacheRetention::Long)(one-hourcache_control),.on_unsupported(..), the default efforts (Opus 5.5 and Haiku 5.5medium, other Claude modelshigh) and how a refused option surfaces. This closes the effort gap from the 25 Sep prompt audit.ToolCallError, absent from rig 0.42–0.44, is replaced by "max turns limit errors (MaxTurnsError)", which matches 0.44'sreached the max turns limit of N; triggering prompt 9 pastes that message.block_bindingthere; Hooks and Memory say so.thinking.block_binding, adaptive thinking): the 400 warnings in Hooks and Memory say so.0.43 → 0.44table and behaviour list (failed turns, argument fragments,eager_input_streaming,preserve_order, persisted history andAgentRunformat).Follow-ups (not in this pull request)
claude-opus-5asbinds_context, which Anthropic's docs do not list; rig sendsblock_bindingthere. Harmless as far as the skill teaches; worth an upstream issue.Verification
python3 scripts/validate_skills.py --strict --base main: 0 errors (9 pre-existing budget warnings).make checkwith Docker: every snippet compiles, clippy-D warningsclean, 70/70 snippet tests pass (including the new content-filter test).make check,make test(14/14),cargo deny check(advisories, bans, licenses, sources ok); rootprek run --all-filesok./code-review xhigh; each finding checked against the rig 0.44 source before it was applied or rejected.recommendedand the lockfile) and the behaviour evals.