Skip to content

chore: bump effect to 4.0.7 - #403

Merged
ThomasK33 merged 1 commit into
mainfrom
chore-effect-4-0-7
Oct 29, 2026
Merged

ThomasK33 merged 1 commit into
mainfrom
chore-effect-4-0-7

Conversation

@ThomasK33

Copy link
Copy Markdown
Member

Bumps the exact effect devDependency pin in packages/effect from 4.0.6 to 4.0.7, and makes the bridge send a tool's new modelOutput to the model.

Version

  • effect 4.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.
  • It is the newest 4.0.x with at least 24 h of publish age. effect 4.1.0 (2026-10-29T04:09Z) is too new and is outside the peer range.
  • The peer range stays effect: ~4.0.0. The lockfile holds one effect (4.0.7). No other lockfile entry changed.
  • packages/effect/README.md names only ~4.0.0 / 4.0.x, so it needs no change.

Changelog notes (effect@4.0.7 release, Effect-TS/effect)

Items that touch modules the bridge imports:

API drift (.d.ts diff of the published 4.0.6 and 4.0.7 tarballs)

Module Change Bridge impact
effect/ai/AiError none (identical) classifyReason needs no change. No new AiErrorReason tags.
effect/ai/LanguageModel none in .d.ts. The .js copies modelOutput onto tool results. none
effect/ai/Toolkit none in .d.ts none
effect/ai/Prompt new ToolModelOutputPart (= TextPart | FilePart), toolModelOutputToText, optional modelOutput on ToolResultPart fixed in toolResultToV4
effect/ai/Response optional modelOutput on ToolResultPart. Codec services widened (#9873). No new part types or finish reasons. none (the field is optional on decoded provider parts)
effect/ai/Tool toModelOutput option, ParametersDecodingServices type none

Bridge fix

Before this PR, toolResultToV4 ignored modelOutput and always sent the JSON result. A tool with toModelOutput (for example, a screenshot tool) never got its image to the model through CoderLanguageModel or CoderAgentModel.

Now a successful tool result with modelOutput maps to the AI SDK { type: "content", value: [...] } tool result output. Text parts become text items. File parts reuse filePartToV4. Failures keep error-json. Results without modelOutput keep json, so nothing changes for effect 4.0.0-4.0.6 or for tools without the option. @coder/ai-sdk-agent already forwards content tool 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)

  • Guarded install with a temporary minimumReleaseAge: 1440, then pnpm dedupe (no change). pnpm-workspace.yaml restored from a copy.
  • Empty-cache frozen install (scratch store and cache): "Lockfile passes supply-chain policies (455 entries)".
  • rm -rf node_modules && CI=true pnpm install --frozen-lockfile with 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.
  • Live (dogfood.cdr.dev, v2.38.4-devel): cd packages/effect && pnpm exec vitest run test/e2e 3/3 pass (2026-10-29T07:50Z). No leftover chats.

Published runtime range changes

None. effect is a devDependency here, and the peer range stays ~4.0.0. The source fix ships with the next @coder/ai-sdk-effect release.


Generated with xum • Model: anthropic:claude-opus-5-5 • Thinking: high

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>
@ThomasK33

Copy link
Copy Markdown
Member Author

@codex review

@ThomasK33

Copy link
Copy Markdown
Member Author

@codex security review

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 29, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-29T07:53:03.507996Z c201f2a Manual request
🔒 Security Review ✅ Completed 2026-10-29T07:53:47.202267Z c201f2a Manual request
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Delightful!

Reviewed commit: c201f2a046

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

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".

@chatgpt-codex-connector

Copy link
Copy Markdown

🛡️ Codex Security Review

Security review completed. No security issues were found in this pull request.

Reviewed commit: c201f2a046

View security finding report

Only the user who started this review can view the report in Codex.

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

@ThomasK33
ThomasK33 added this pull request to the merge queue Oct 29, 2026
Merged via the queue into main with commit 8d689ca Oct 29, 2026
6 checks passed
@ThomasK33
ThomasK33 deleted the chore-effect-4-0-7 branch October 29, 2026 08:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant