Skip to content

Release v0.17.0

Choose a tag to compare

@guima-why guima-why released this 30 Oct 07:10
· 27 commits to main since this release

Highlights

  • Add per-model Responses API support and refresh GPT, Claude, Gemini, Kimi, and other model catalogs and capabilities.
  • Estimate costs by hour or day, and check account coupons against a deployment budget.
  • Extend interactive cloud resource selection to AG-UI and the AI buying flow.

Models and API protocols

  • Responses API: Select responses or chat_completions for individual models on OpenAI-style providers, including compatible Azure OpenAI, custom endpoints, and DashScope Token Plan services, with streaming, tool calls, multimodal input, and reasoning-history handling.
  • Model catalog: The catalog covers 28 provider configurations and grows from 187 to 220 provider/model entries. Add GPT-6.1 Sol/Terra, Claude 5.5, Gemini 4 Argon, Kimi K3.1 Pro, MiniMax M3.1 Flash, GLM FlashX, MiMo 2.6, Step 5 Preview, and updated DeepSeek and Doubao entries. Update defaults, context limits, multimodal capabilities, thinking options, and fallback chains.
  • Fallback configuration: Control automatic model fallback at the provider or model level with modelFallbackEnabled.

Solution planning and resource selection

  • Time-based estimates: Request hourly, daily, or other usage periods. Keep totals, line items, solution summaries, and diagram prices consistent with the requested period.
  • Coupon-aware budgets: When asked, query the current account's coupons, remaining balances, validity, and eligible products, then compare the applicable credit with the deployment budget. Estimate cash payment or covered runtime where the conditions are established; keep missing eligibility evidence explicit.
  • Resource selection: Extend interactive selection of existing cloud resources to AG-UI and the AI buying flow, including structured selections, cancellation, and free-text answers.
  • Product guidance: Add Simple Application Server guidance and consult the relevant product guides when follow-ups introduce new resource types.

Integration improvements

  • A2A event filtering: Add request-scoped outbound event filter sets: NONE, USAGE, and SKILL. Integrations can omit optional usage, thinking, and tool-input deltas while retaining task identity, input-required controls, artifacts, and complete persisted events. Subscriptions inherit the latest user request's selection.
  • A2A resource selector setup: Clients no longer need to advertise a matching selector capability or profileHash. The server must still enable IAC_CODE_A2A_RESOURCE_SELECTOR_ENABLED and have valid effective cloud credentials.
  • External Skill diagnostics: Add bounded, redacted ROS Agent Skill diagnostics for remote execution and result projection, and include the Skill version in the AgentHub User-Agent.

Fixes

  • Planning consultations: Preserve candidates, the selected plan, templates, parameters, and confirmation state during follow-up consultations, without misinterpreting questions as selection, cancellation, or replanning.
  • Pricing: Ground estimates in product and API evidence, refresh totals after changes, normalize ECS quote aliases and billing/disk parameters, and distinguish payable prices from discounts.
  • ROS templates and deployment: Validate legacy EIP resource types, handle deleted stacks correctly, and generate unique suffixes for default stack names.
  • Output handling: Recover answers interrupted by output-token limits with bounded continuation, preserve text and usage accounting, and discard incomplete tool calls. Report a clear error when recovery cannot complete safely.
  • Providers: Correct thinking-effort aliases and scope signed/encrypted thinking to matching requests. Fix DeepSeek Responses reasoning decoding, incomplete Responses calls, and Qwen multimodal follow-up completion. Use GLM server output defaults when no limit is explicitly configured.
  • A2A sessions and permissions: Improve permission, pause/resume, termination, and session handoff across reconnects, worker restarts, and sandbox replacement. Preserve execution ownership, durable backups, task context, and user history; restore pending resource selections. A replacement prompt supersedes pending permission batches, preventing stale replies from executing old tools.
  • Cloud APIs: Correct endpoint routing, isolate discovery caches, bound transient OpenMeta retries, and recognize valid read-only ROA requests without unnecessary write-approval prompts.
  • ROS remote CLI: Restore streams before the first complete SSE event using the existing session and server-provided FirstCursor, without replaying the query. Fix remote MCP polling timeouts, lifecycle handling during host approval and buffered output, forwarded environment values, worker cleanup, and cancellation reporting.
  • MCP authentication: Read a consistent OAuth token-state snapshot when deciding whether to refresh tokens.
  • Web: Prevent duplicate submissions during session creation, attachment upload, and prompt submission.
  • Desktop: Fix external chat links failing to open in the system browser.
  • File artifacts: Include filename, media type, and path metadata in file-edit results so callers can update artifacts.

Development and maintenance

  • Add a shared local/CI E2E runner with deterministic and live suites, structured reports, model pools, recovery scenarios, and ownership-based cloud-resource cleanup.
  • Expand regression coverage for provider protocols, output continuation, pricing, coupons, consultations, resource selection, and A2A recovery; stabilize timing-sensitive Windows and CI tests.
  • Update Responses configuration and MCP examples across supported documentation languages. Require OpenAI SDK >=2.31.0, pin A2A SDK to 1.1.0, and update MCP and other Python, website, and Rust dependencies.

Upgrade and configuration notes

  • Model protocols: Configure Responses under providers.<provider>.models.<model>.apiMode; capabilities depend on service and model support. For Azure OpenAI, use an /openai/v1/ base URL and the deployment name. Unsupported Responses requests return an error without silently switching to Chat Completions.
  • Model selections: Review configured model names, defaults, and fallback settings after upgrading; some selectable catalog entries have changed.
  • Cost-data compatibility: Structured planning data now uses rough_cost.cost_range, rough_cost.items[].cost, and resource_inventory[].rough_cost. Saved candidates using legacy monthly fields are normalized during restoration.
  • Coupon queries: Require read-only bss:DescribeCoupon and bss:DescribeCouponItemList permissions. Querying does not claim or apply a coupon.
  • Remote recovery: First-event ROS CLI recovery requires ros:ListChatSessions and server support for ClientReferenceId/FirstCursor.

Full Changelog: v0.16.0...v0.17.0