Skip to content

chore(deps): bump effect to 4.0.4 - #1449

Merged
Makisuo merged 4 commits into
mainfrom
chore/effect-4.0.4
Oct 13, 2026
Merged

Makisuo merged 4 commits into
mainfrom
chore/effect-4.0.4

Conversation

@Makisuo

@Makisuo Makisuo commented Oct 13, 2026 •

Copy link
Copy Markdown
Collaborator

What

  • Bump effect and every @effect/* package 4.0.1 → 4.0.4 (catalog, overrides for sql-d1/sql-sqlite-do, packages/db sql-pg/sql-pglite), @effect/language-service ^0.87.4.
  • Regenerate the three patches as *@4.0.4.patch. No hunk was upstreamed. vitest and ai-openrouter carry over unchanged; in the effect patch the HttpApiBuilder, redacted and first three LanguageModel hunks applied at zero fuzz, and the three deferDecodeFailure hunks were re-anchored by exact match. 4.0.4's disableToolCallResolution path also validates provider-executed calls when validation is deferred, so that check is folded into the deferred decode. Every patched file passes node --check.
  • genai-spans.ts stops setting gen_ai.output.type: Effect AI's LanguageModel records it itself since 4.0.2.
  • Regenerated contracts: positive-int fields (Int + isGreaterThan(0)) gain "maximum": 9007199254740991 beside exclusiveMinimum: 0. 4 additions in the v1 cloud-event/signal-projection schemas, 8 in the iOS openapi.json, nothing removed. Matches what the decoder already enforced.

Reviewed, nothing to change

  • 4.0.2 GenAI attribute renames (gen_ai.provider.name, cache read/write tokens): Maple's readers already accept old and new names, and our own spans use the cache-included convention. One edge left alone: the read-time fallback in packages/domain/src/gen-ai.ts treats anthropic as cache-excluded, so an un-stamped 4.0.2+ Anthropic span would double count. Only affects spans that never passed the ingest stamp.
  • McpServer.layerHttpRequestScoped not adopted: it only accepts the sessionless v2026_07_28 adapter, and current clients speak v2025_06_18, so the hand-rolled stateless transport stays.
  • toolCallValidation: "deferred" can't be set from Maple: disableToolCallResolution is only used inside @yielded/agent, which defers tool params its own way. Needs to land there.
  • Crypto.randomUUIDv* signature change: no usages. Diffed the // => doc examples between 4.0.1 and 4.0.4: only behavior change is zoned DateTime.add, unused here.

Checked

  • bun install --frozen-lockfile
  • Typecheck: ai, api, backend, domain, db, query-engine, query-engine-integrations, agent-sessions, ui, eventing-core, web
  • Vitest: apps/ai platform, MCP app/dispatcher/registry/contract, chat agents; eventing-core; domain openapi + error-policy; schemas:check, ios:openapi:check
  • apps/cli under CI=true bun test (exercises the vitest patch)

Not checked yet

Full typecheck, lint and test suite (left to CI), bun dev, iOS Swift build against the regenerated openapi.json.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

Bumps effect and every @effect/* package from 4.0.1 to 4.0.4 and
@effect/language-service to 0.87.4.

The effect patch is regenerated: the streamText decode-deferral hunks are
re-anchored on 4.0.4, whose disableToolCallResolution path now also
validates provider-executed tool calls under deferred tool-call
validation. That check runs inside the deferred decode. The vitest and
openrouter patches carry over unchanged.
Since effect 4.0.2 LanguageModel records gen_ai.output.type itself on the
model-call span, so the span transformer no longer repeats it. The
model-call span test still asserts the attribute.
effect 4.0.4 resolves colliding numeric bounds in place. Positive
integer fields (Schema.Int with isGreaterThan(0)) now keep the
safe-integer maximum the decoder already enforced, which 4.0.1 dropped.
The v1 event schemas and the iOS OpenAPI document only gain those
maximum keywords; nothing is removed.
@maple-review-bot

maple-review-bot Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

Maple review

🟢 Confidence 9/10 · safe to merge
The only source change drops an attribute whose value was a constant, and model-call-span.test.ts:306 still pins it on the instrumented span.
quality 100/100 · no findings · tests covered · risk medium

Bumps effect and every @effect/* package to 4.0.4, re-anchors the three patched dependencies, and regenerates the eventing and iOS JSON schemas. No behavior change beyond one attribute now left to Effect AI; safe to merge once CI confirms the patches apply.

  • Catalog and overrides pin effect/@effect/* at 4.0.4
  • effect, vitest and ai-openrouter patches renamed and re-anchored
  • modelCallTransformer no longer sets gen_ai.output.type
  • Eventing and iOS schemas add int maximum only
What was checked
  • No Maple call ever passed a responseFormat (grep apps/ai), so the removed attribute was always "text"
  • model-call-span.test.ts:306 still asserts gen_ai.output.type on the instrumented model span
  • Schema diffs only add "maximum": 9007199254740991 beside exclusiveMinimum: 0; no key removed

99a2c78 · Updated on every push. Reply "won't fix" to dismiss a finding, or mention @maple-review-bot to ask about one.

@coderabbitai

coderabbitai Bot commented Oct 13, 2026

Copy link
Copy Markdown

Review in Change Stack →

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 529469ed-428d-4764-be54-53fe99b9e51e
📥 Commits

Reviewing files that changed from the base of the PR and between 93e595d and 99a2c78.

⛔ Files ignored due to path filters: 1
  • bun.lock is excluded by !**/*.lock
📒 Files selected for processing: 9
  • apps/ai/src/platform/genai-spans.ts
  • apps/ios/Packages/MapleAPI/Sources/MapleAPI/openapi.json
  • package.json
  • packages/db/package.json
  • packages/eventing-core/schemas/cloud-event.v1.schema.json
  • packages/eventing-core/schemas/signal-projection.v1.schema.json
  • patches/@effect%2Fai-openrouter@4.0.4.patch
  • patches/@effect%2Fvitest@4.0.4.patch
  • patches/effect@4.0.4.patch
 ______________________________
< torvalds@linux:~$ git review >
 ------------------------------
  \
   \   \
        \ /\
        ( )
      .( o ).
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@Makisuo
Makisuo merged commit d5fe216 into main Oct 13, 2026
5 checks passed
@Makisuo
Makisuo deleted the chore/effect-4.0.4 branch October 13, 2026 23:30
@maple-review-bot

maple-review-bot Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

Maple review

🟢 Confidence 8/10 · likely safe to merge
Only behavior change is the dropped gen_ai.output.type, which model-call-span.test.ts:306 still pins on the model-call span.
quality 100/100 · no findings · tests covered · risk medium

Bumps effect and every @effect/* package to 4.0.4, re-anchors the three patches, regenerates the JSON contracts, and drops Maple's own gen_ai.output.type now that Effect AI stamps it. Nothing in the diff introduces a defect.

  • Catalog and overrides move to 4.0.4; patches renamed to *@4.0.4.patch
  • modelCallTransformer no longer sets gen_ai.output.type
  • deferDecodeFailure folds the deferred provider-tool-call validation into the deferred decode
  • Positive-int fields in the v1 and iOS contracts gain maximum: 9007199254740991
What was checked
  • Patch hunks re-anchored by exact match; streamContent/deferDecodeFailure push each part into the aggregate once, so no double count
  • patchedDependencies names all four shipped patch files, and patches/ contains exactly those (package.json:131)
  • No stale 4.0.1 or alchemy@2.0.0-beta.81 reference remains anywhere in the tree

6c5e789 · Updated on every push. Reply "won't fix" to dismiss a finding, or mention @maple-review-bot to ask about one.

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