Skip to content

Port the SDKs to Effect 4.0.3 and sui-effect 0.3.0 - #61

Merged
tamashi095 merged 4 commits into
mainfrom
effect-4.0.3
Oct 13, 2026
Merged

tamashi095 merged 4 commits into
mainfrom
effect-4.0.3

Conversation

@tamashi095

@tamashi095 tamashi095 commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Ports the Effect-based SDKs from effect@4.0.0-rc.112 + @unconfirmed/sui-effect@0.2.x to stable Effect 4.0.x (peer floor 4.0.3, developed and tested on 4.0.4) + @unconfirmed/sui-effect@0.3.0. Prepares the release only: no tags are pushed and nothing is published here.

Package Old New
@misofm/streaming 0.3.0 0.4.0
@misofm/musicos 0.7.1 0.8.0
@misofm/partyos 0.7.1 0.8.0
@misofm/platform 0.45.0 0.46.0
@misofm/transcoding 0.4.0 0.5.0
@misofm/effect (deprecated) 0.2.0 untouched, no release

What changed

  • Peers: effect >=4.0.3 <4.1 (transcoding also @effect/platform-node), @unconfirmed/sui-effect >=0.3.0 <0.4.0, @mysten/sui ^2.29.0 (was exactly 2.29.0 in partyos/platform; musicos keeps ^2.28). Dev pins: effect and @effect/platform-node 4.0.4 (a 4.0.3 pin is an invalid peer tree: platform-node-shared ^4.0.3 resolves to 4.0.4, which peers effect ^4.0.4), sui-effect 0.3.0, @mysten/sui 2.29.0. The isolated consumers install with --strict-peer-deps and run npm ls.
  • @mysten/bcs is now a peer (^2.1.1) in partyos and platform instead of a dependency, so one copy is installed.
  • Source: the only compile break was Config.nonEmptyString -> Config.NonEmptyString in Partyos.layerConfig, Musicos.layerConfig and Miso.layerConfig. The published .d.ts files of every package are identical to the previous release (diffed), so there is no public API change.
  • partyos: new tests/golden.test.ts builds both party recipes offline and asserts byte-identical TransactionData and digests for four golden vectors generated by 0.7.1 on rc.112.
  • @misofm/effect stays frozen on rc.112 (superseded by sui-effect, nothing depends on it). The consumer fixture and check-consumer skip it because its exact rc peer cannot share an install with the ported packages.
  • Each ported package gets a CHANGELOG.md (shipped in the tarball) with a consumer migration note and the behaviour changes from Effect 4.0.x / sui-effect 0.3.0.

Behaviour audit

No partition/separate, Effect.timeout, Effect.retry, Schema.brand or Encoding use in these packages. TimeoutError now has a message and Effect.retry skips mixed typed+defect causes (both reach callers only through sui-effect). Interruption semantics changed in 4.0.x for the transcoder (checked by its cancellation test). A differential run over every exported error class against the rc.112 build shows identical message, JSON, Schema encode/decode output. Details are in the per-package changelogs.

Verification

bun install --frozen-lockfile, bun run typecheck, bun run test (streaming 27, effect 23, partyos 41, musicos 93, transcoding 52, platform 386, all pass), bun run build, npm pack --dry-run per package, bun run test:consumer (npm install of the packed tarballs into the isolated fixture: one effect, one @mysten/sui, one @mysten/bcs), the transcoding isolated Node 22 and Bun consumers, and the ffmpeg integration test with a local FFmpeg 8.1.2 (including MISO_PINNED_FFMPEG=1). The workspace tests also pass with @mysten/sui 2.35.0. codegen:check was not run: it needs the sui binary and the sibling Move checkouts, no generated file changed, and CI does not run it.

CI

New sui-matrix job runs partyos, musicos and platform typecheck and tests against @mysten/sui 2.29.0 and 2.30.0.

Release (after merge)

Tag the merge commit on main, in dependency order: streaming-v0.4.0, then musicos-v0.8.0 and partyos-v0.8.0, then platform-v0.46.0 and transcoding-v0.5.0.

Risks for consumers

See the changelogs. The main ones: rc consumers (misofm/api, misofm/app) must move effect and every @effect/* package to 4.0.x and sui-effect to 0.3.0 together; @mysten/bcs must now be installed by the consumer; pin effect and every @effect/* package to one 4.0.x (the changelogs show 4.0.4); the peer range alone can resolve an invalid tree.

🤖 Generated with Claude Code

tamashi095 and others added 4 commits October 13, 2026 06:46
Moves musicos, partyos, platform, streaming and transcoding from
effect 4.0.0-rc.112 to stable 4.0.3 (and @effect/platform-node to 4.0.3),
and the sui-effect extensions to @unconfirmed/sui-effect 0.3.0.

- peers: effect >=4.0.3 <4.1, sui-effect >=0.3.0 <0.4.0, @mysten/sui
  ^2.29.0 (was exactly 2.29.0; musicos keeps ^2.28), @mysten/bcs a peer
  ^2.1.1 in partyos and platform (was a dependency)
- source: Config.nonEmptyString -> Config.NonEmptyString in the three
  layerConfig definitions; no other API change, the built .d.ts files are
  identical to the previous release
- versions: musicos/partyos 0.8.0, platform 0.46.0, streaming 0.4.0,
  transcoding 0.5.0, with the workspace dependencies moved to match
- @misofm/effect is deprecated and stays frozen on rc.112; the consumer
  fixture and check-consumer no longer include it, and the fixture installs
  @effect/platform-node 4.0.3 explicitly so npm does not resolve a newer
  4.0.x whose effect peer is newer than the pinned effect
- tests: dependency contracts follow the new ranges; the consumer fixture
  asserts a single @mysten/bcs

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Four sponsored vectors (mainnet individual, testnet group, Unicode name,
maximum-length name) generated by 0.7.1 on the rc.112 stack; the 0.8.0
recipes build byte-identical TransactionData and digests with no client.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Adds a CHANGELOG.md to each ported package (shipped in the tarball) with the
breaking peer changes, the behaviour changes that come with Effect 4.0.x and
sui-effect 0.3.0, and a consumer migration note; updates the README peer
lists, the musicos LLMS.md Config name and the Effect conventions.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… matrix

- dev pins effect and @effect/platform-node to 4.0.4 (peer ranges stay
  >=4.0.3 <4.1): @effect/platform-node@4.0.3 pulls
  @effect/platform-node-shared ^4.0.3, which resolves to 4.0.4 and peers
  effect ^4.0.4, so a 4.0.3 pin was an invalid peer tree. Both isolated
  consumers now install with --strict-peer-deps and run npm ls
- CHANGELOGs: tell consumers to pin the whole train to one 4.0.x (show 4.0.4);
  replace the incorrect ManagedRuntime.dispose and Cause.pretty notes with the
  real changes (Effect #8528, #8512, #8783, #8895); note the bcs peer is
  type-only
- CI: sui-matrix job runs partyos, musicos and platform typecheck and tests
  against @mysten/sui 2.29.0 and 2.30.0 (scripts/use-sui-version.ts); the
  dependency-contract test takes the dev version from MISO_SUI_VERSION and
  asserts the peer range admits it
- docs: fix the stale SuiClient/@misofm/effect lines in CLAUDE.md and README

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@tamashi095
tamashi095 merged commit 06119b1 into main Oct 13, 2026
7 checks passed
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