Skip to content

Upgrade Effect from 4.0.0-beta.73 to stable 4.0.0 (all @effect/* packages, language-service 0.87.3) #4551

Open

Description

@eltmon

Goal

Upgrade every Effect package from the pre-release pin 4.0.0-beta.73 (PAN-1562, 2026-05-28) to the stable Effect 4.0.0 (released 2026-10-01). This moves Overdeck off a 4-month-old beta and onto the supported line: 34 later betas and 118 release candidates of fixes.

Current pins (single-version pinning, PAN-1562)

package.json catalog (~lines 49-54), root dependencies (~lines 78, 162-164, 182) and packages/contracts/package.json (~line 33):

Package Now Target
effect 4.0.0-beta.73 4.0.0
@effect/platform-node 4.0.0-beta.73 4.0.0
@effect/platform-bun 4.0.0-beta.73 4.0.0
@effect/platform-node-shared 4.0.0-beta.73 4.0.0
@effect/sql-sqlite-bun 4.0.0-beta.73 4.0.0
@effect/vitest 4.0.0-beta.73 4.0.0
@effect/language-service 0.84.2 0.87.3

Each @effect/* 4.0.0 declares peerDependencies.effect: ^4.0.0. 705 files under src/ and packages/ import from effect.

Plan

  1. Read the Effect 4.0 release notes and the changelog from beta.73 through 4.0.0 (the GitHub releases of Effect-TS/effect). List every breaking change that touches an API Overdeck uses, with the files affected (git grep).
  2. Bump all seven packages together, keeping single-version pinning: one exact version per package across every workspace, catalog entries updated, bun install then commit bun.lock.
  3. Fix the breaks in one PR. Keep the repo's Effect conventions: docs/EFFECT-BRIDGING.md (no new façades; npm run lint:effect-facades must not regress) and docs/EFFECT-DIAGNOSTICS.md (the language-service diagnostics ratchet). Any new diagnostics the newer language service reports are fixed or ratchet-recorded per that doc, never silenced wholesale.
  4. Gates: npm run typecheck, npm run lint (including lint:effect-facades, lint:circular, lint:dist-externals through npm run build), and npx vitest run on the touched test files. CI runs the full suite.
  5. Packaging check: after npm run build, confirm lint:dist-externals passes and that npm pack plus a clean npx of the tarball prints the version (the release skill's clean-install check). Effect is a runtime dependency, so a broken externals list ships a crash.
  6. Docs: update docs/EFFECT-BRIDGING.md and docs/EFFECT-DIAGNOSTICS.md where APIs or ratchet counts change, and add a v0.66.0 changelog note under "Changed".

Acceptance criteria

  • Every effect and @effect/* version in every package.json and the catalog is 4.0.0 (@effect/language-service 0.87.3), and bun.lock is updated.
  • npm run typecheck, npm run lint and npm run build pass; lint:effect-facades and the diagnostics ratchet do not regress.
  • CI is fully green on the PR.
  • A clean npx of the packed tarball prints the package version.
  • The PR lists the breaking changes found and how each was handled.

Routing and sequencing

This touches review, merge and agent-runtime code (TENET-10): supervised pan handoff, not an unattended pan start. Run it after the verification/auto-merge bundle (PAN-4527/4532/4531/4540/4534, conversation 3230) merges. Those fixes make the large PR's own verification reliable, and running both at once would conflict.

Activity

  1. self-assigned this
    on Oct 4, 2026
  2. added
    enhancementNew feature or request
    substrate-improvementNon-blocker Panopticon infrastructure improvement — file, don't patch inline
    needs-handoffPipeline-runtime refactor: supervised pan handoff only, never autonomous pickup (TENET-10)
    on Oct 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requestneeds-handoffPipeline-runtime refactor: supervised pan handoff only, never autonomous pickup (TENET-10)substrate-improvementNon-blocker Panopticon infrastructure improvement — file, don't patch inline

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions