Repository navigation
chore: bump effect to 4.0.7 - #403
Conversation
Bump the exact effect devDependency pin in packages/effect from 4.0.6 to 4.0.7. effect 4.0.7 was published 2026-10-28T03:36:20Z, about 28 hours before the bump (2026-10-29T07:47Z), and is the newest 4.0.x with at least 24 hours of publish age. effect 4.1.0 (2026-10-29T04:09Z) is too new and outside the peer range. The peer range stays ~4.0.0. The lockfile still holds one effect (4.0.7, no dependencies). effect 4.0.7 adds a toModelOutput option to Tool.make and Tool.dynamic (Effect-TS/effect#9861). effect/ai then sets an optional modelOutput (text and file parts) on successful Prompt tool-result parts, and its own providers send it to the model in place of the serialized result. The bridge ignored the field and sent the JSON result, so a tool's images and files never reached the model. toolResultToV4 now maps modelOutput onto the AI SDK "content" tool result output. Failures keep error-json, and parts without modelOutput keep json. No other effect/ai API drift affects the bridge: AiError, LanguageModel and Toolkit .d.ts files are unchanged, and Response adds only the optional modelOutput on tool-result parts plus stricter decoding services for Response.Part (Effect-TS/effect#9873). Signed-off-by: Thomas Kosiewski <tk@coder.com> --- _Generated with [`xum`](https://github.com/coder/xum) • Model: `anthropic:claude-opus-5-5` • Thinking: `high`_ Change-Id: I866976cbc9f696e9a288fbf48986ace8640fa7cf Signed-off-by: Thomas Kosiewski <tk@coder.com>
|
@codex review |
|
@codex security review |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Codex Review: Didn't find any major issues. Delightful! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
🛡️ Codex Security ReviewSecurity review completed. No security issues were found in this pull request. Reviewed commit: Only the user who started this review can view the report in Codex. ℹ️ About Codex security reviews in GitHubThis is an experimental Codex feature. Security reviews are triggered when:
Once complete, Codex will leave suggestions, or a comment if no findings are found. |
Bumps the exact
effectdevDependency pin inpackages/effectfrom 4.0.6 to 4.0.7, and makes the bridge send a tool's newmodelOutputto the model.Version
effect4.0.6 -> 4.0.7 (devDependency, exact pin). Published 2026-10-28T03:36:20Z, about 28 h before the bump (2026-10-29T07:47Z, lockfile mtime). It has no dependencies.effect4.1.0 (2026-10-29T04:09Z) is too new and is outside the peer range.effect: ~4.0.0. The lockfile holds oneeffect(4.0.7). No other lockfile entry changed.packages/effect/README.mdnames only~4.0.0/ 4.0.x, so it needs no change.Changelog notes (
effect@4.0.7release, Effect-TS/effect)Items that touch modules the bridge imports:
Tool.makeandTool.dynamicget atoModelOutputoption. effect/ai then sets an optionalmodelOutput(text and file parts) on successfulPrompttool-result parts. Effect's own providers send it in place of the serialized result. This needed a bridge change (below).Response.AllParts/Part/StreamPartnow require tool parameter decoding services. The bridge does not call these codecs. Typecheck passes unchanged.JsonSchema.toDocumentDraft07no longer emitsenum: [](it emits anallOfthat rejects all values).schema.tsuses this function. The change is a fix and our tests pass.Schema.Recordoptional values,Schema.toStandardJSONSchemaV1$schema: the bridge uses neither.API drift (
.d.tsdiff of the published 4.0.6 and 4.0.7 tarballs)effect/ai/AiErrorclassifyReasonneeds no change. No newAiErrorReasontags.effect/ai/LanguageModel.d.ts. The.jscopiesmodelOutputonto tool results.effect/ai/Toolkit.d.tseffect/ai/PromptToolModelOutputPart(=TextPart | FilePart),toolModelOutputToText, optionalmodelOutputonToolResultParttoolResultToV4effect/ai/ResponsemodelOutputonToolResultPart. Codec services widened (#9873). No new part types or finish reasons.effect/ai/TooltoModelOutputoption,ParametersDecodingServicestypeBridge fix
Before this PR,
toolResultToV4ignoredmodelOutputand always sent the JSON result. A tool withtoModelOutput(for example, a screenshot tool) never got its image to the model throughCoderLanguageModelorCoderAgentModel.Now a successful tool result with
modelOutputmaps to the AI SDK{ type: "content", value: [...] }tool result output. Text parts becometextitems. File parts reusefilePartToV4. Failures keeperror-json. Results withoutmodelOutputkeepjson, so nothing changes for effect 4.0.0-4.0.6 or for tools without the option.@coder/ai-sdk-agentalready forwardscontenttool outputs to chatd.New unit test
sends a tool's model output in place of its serialized result. It fails without the fix ("type": "json"received,"content"expected).Gates (Node 26.12.1, pnpm 11.28.9, via
pnpm exec)minimumReleaseAge: 1440, thenpnpm dedupe(no change).pnpm-workspace.yamlrestored from a copy.rm -rf node_modules && CI=true pnpm install --frozen-lockfilewith the default store: pass.pnpm -r build,pnpm check: pass.pnpm -r test(non-live): provider 22, release-please-ai 13, agent 378, sandbox 193, effect 101. All pass.pnpm publint,pnpm attw: pass.dogfood.cdr.dev, v2.38.4-devel):cd packages/effect && pnpm exec vitest run test/e2e3/3 pass (2026-10-29T07:50Z). No leftover chats.Published runtime range changes
None.
effectis a devDependency here, and the peer range stays~4.0.0. The source fix ships with the next@coder/ai-sdk-effectrelease.Generated with
xum• Model:anthropic:claude-opus-5-5• Thinking:high