github Effect-TS/effect effect@4.1.4

Patch Changes

  • #10512 f527f90 Thanks @effect-bot! - Add WorkloadIdentity helpers for Anthropic and OpenAI authentication, and report OpenAI WebSocket client-transform failures as AiError instead of defects.

  • #10529 ee5550a Thanks @only21mil! - Fix CLI --wizard generating a command that fails to parse when flags or arguments were already typed for the selected command.

  • #9995 7fce132 Thanks @tim-smart! - Add the HttpApi.RedactedNames annotation for declaring query parameter and header names of an API, group or endpoint to redact in the URL and header attributes of HttpApiClient and HttpApiBuilder spans, for values that are only sometimes secret. addHttpApi treats it like any other annotation, and user_agent.original is recorded as is.

  • #10537 9116189 Thanks @effect-bot! - Expose HttpApiSchema.getResponseEncodingSchema and getEncodeToWithHeadersParts for inspecting buffered response encodings and declared body/header schemas.

  • #10521 edb2eaa Thanks @gcanti! - Add experimental closeObjects, fix JSON Schema composition and examples, and regenerate a smaller OpenRouter client with a boolean workspace-deletion confirmation flag.

    Breaking changes

    The generated OpenRouter schemas follow the current upstream specification. Some intermediate schema exports are removed; derive their types from the corresponding request or response schema instead. Hand-built generation statistics must now include workspace_id, and activity entries must include cached_tokens. Tool parameter and structured-output schemas accept JSON-valued records.

    Fixtures and stored responses must also include these newly required fields:

    • Model: endpoints.
    • BYOKKey: declared_region, declared_zdr, is_byok_only, and is_required.
    • PublicEndpoint: native_tools, service_tier, supports_diarization, and supports_tool_choice.
    • Guardrail: include_byok_in_budgets.
    • VideoModel: creativity and upscale_factor.
    • GenerationContentData: error.
    • FusionCallAnalysisInProgressEvent: analyst_model.
    • All Observability*Destination schemas: regions, broadcast_generation_cost, broadcast_generation_cost_allocation, broadcast_generation_identity, and broadcast_generation_request_context.
  • #10527 8176cdb Thanks @matheuspuel! - Add allowEmpty to LanguageModel.generateObject and Chat.generateObject, and preserve Anthropic tool-call finish reasons with native structured output.

  • #10540 3a65e9e Thanks @effect-bot! - Restore Skills discovery, retrieval, and directory browsing in McpClient and McpServer on supported MCP protocol revisions before 2026-07-28.

  • #10532 fdd319e Thanks @gcanti! - Fix SchemaRepresentation.toCodeDocument to omit annotations containing unsupported objects instead of emitting incorrect object literals.

  • #10522 72c3fb4 Thanks @imranbarbhuiya! - Avoid duplicate null branches for optional properties in OpenAiStructuredOutput.toCodecOpenAI and AnthropicStructuredOutput.toCodecAnthropic.

  • #10520 9c41784 Thanks @tim-smart! - Fix TestClock interrupting an uninterruptible finalizer on its first sleep and skipping subsequent cleanup.

Don't miss a new effect release

NewReleases is sending notifications on new releases.