Effect
4.0.0-beta.11
Patch Changes
-
#1429
88659edThanks @tim-smart! - Add grouped subcommand support toCommand.withSubcommands, including help output sections for named groups while keeping ungrouped commands underSUBCOMMANDS. -
#1426
f2915e8Thanks @tim-smart! - AddEffect.validatefor validating collections while accumulating all failures, equivalent to the v3Effect.validateAllbehavior. -
#1430
eb71aceThanks @tim-smart! - AddCommand.withExamplesto attach concrete usage examples to CLI commands, expose them throughHelpDoc.examples, and render them in the default help formatter. -
#1415
2a16999Thanks @mikearnaldi! - HashMap: compare HAMT bit positions as unsigned to preserve entry lookup when bit 31 is set -
#1417
d42dd52Thanks @mikearnaldi! - unstable/http Headers: hide inspectable prototype methods from for..in iteration to avoid invalid header names in runtime fetch polyfills -
#1418
339adafThanks @mikearnaldi! - runtime: guard keepAlive setInterval / clearInterval so Effect.runPromise works in runtimes that block timer APIs -
#1416
de19645Thanks @mikearnaldi! - Queue.collect: stop duplicating drained messages by appending each batch once -
#1413
9b1dc3bThanks @gcanti! - FixSchema.TupleWithRestincorrectly accepting inputs with missing post-rest elements, closes #1410. -
#1427
8bced95Thanks @tim-smart! - AddCommand.annotateandCommand.annotateMergeto unstable CLI commands, and include command annotations inHelpDocso custom help formatters can access command metadata. -
#1401
9431420Thanks @tim-smart! - AddWorkflowEngine.layer, an in-memory layer for the unstable workflow engine. -
#1428
948dca2Thanks @tim-smart! - AddCommand.withShortDescriptionand use short descriptions for CLI subcommand listings, with fallback to the full command description. -
#1405
d18e327Thanks @candrewlee14! - Strip resolved tool approval artifacts from prompt before sending to provider, preventing errors when providers reject pre-resolved approval requests. -
#1424
ab512f7Thanks @tim-smart! - expose more atom Node properties
4.0.0-beta.10
Patch Changes
-
#1396
371acabThanks @gcanti! - Addunstable/encodingsubpath export. -
#1392
856d774Thanks @tim-smart! - Fix a race inSemaphore.takewhere interruption could leak permits after a waiter was resumed. -
#1388
b9e9202Thanks @tim-smart! - ExportEffectdo notation APIs (Do,bindTo,bind, andlet) fromeffect/Effectand add runtime and type-level coverage. -
#1387
1d1a974Thanks @tim-smart! - short circuit when Fiber.joinAll is called with an empty iterable -
#1386
6bfe2a6Thanks @tim-smart! - simplify http logger disabling -
#1381
b12c811Thanks @tim-smart! - FixUrlParams.Inputusage to accept interface-typed records in HTTP client and server helpers while keeping coercion constraints for url parameter values. -
#1383
d17d98aThanks @tim-smart! - RenameHttpClient.retryTransientoptionmodetoretryOnand rename"both"to"errors-and-responses". -
#1399
68c3c7cThanks @tim-smart! - AddRandom.shuffleto shuffle iterables with seeded randomness support.
4.0.0-beta.9
Patch Changes
-
#1376
3386557Thanks @gcanti! - HttpApiEndpoint: relaxparams,query, andheadersconstraints to accept a full schema in addition to a record of fields. -
#1379
b6666e3Thanks @tim-smart! - FixAtomHttpApi.queryto forward v4params/queryrequest fields toHttpApiClientat runtime. Also alignAtomHttpApiendpoint type inference with v4HttpApiEndpointparams/query naming and add a regression test.
4.0.0-beta.8
Patch Changes
-
#1371
246e672Thanks @IMax153! - FixChildProcessoptions type and implementPgMigrator -
#1372
807dec0Thanks @pawelblaszczyk5! - Remove superfluous error from SqlSchema.findAll signature
4.0.0-beta.7
Patch Changes
-
#1366
a2bda6dThanks @tim-smart! - rename SqlSchema.findOne* apis -
#1360
1f95a2bThanks @tim-smart! - AddSchedule.jitteredto randomize schedule delays between 80% and 120% of the original delay. -
#1364
a8d5e79Thanks @gcanti! - Schema: avoid eager resolution for type-level helpers, closes #1332 -
#1369
a5386baThanks @tim-smart! - align HttpClientRequest constructors with http method names -
#1369
a5386baThanks @tim-smart! - remove body restriction for HttpClientRequest’s -
#1358
06d8a03Thanks @tim-smart! - AddLogLevel.isEnabledfor checking a log level againstReferences.MinimumLogLevel. -
#1363
8caac76Thanks @tim-smart! - rename DurationInput to Duration.Input -
#1363
8caac76Thanks @tim-smart! - DateTime.distance now returns a Duration -
#1363
8caac76Thanks @tim-smart! - remove rpc client nesting to improve type performance
4.0.0-beta.6
Patch Changes
-
#1338
3247da2Thanks @Leka74! - AddshowOperationIdtoHttpApiScalar.ScalarConfig. -
#1326
f205705Thanks @gcanti! - Schema: addBigDecimalschema with comparison checks (isGreaterThanBigDecimal,isGreaterThanOrEqualToBigDecimal,isLessThanBigDecimal,isLessThanOrEqualToBigDecimal,isBetweenBigDecimal). -
#1328
f35022cThanks @gcanti! - Schema: addDateTimeZoned,TimeZoneOffset,TimeZoneNamed, andTimeZoneschemas. -
#1325
8622721Thanks @KhraksMamtsov! - MakeData.Class,Data.TaggedClass, andCause.YieldableErrorpipeable. -
#1323
fc660abThanks @KhraksMamtsov! - PortPipeable.Classfrom v3.class MyClass extends Pipeable.Class() {constructor(public a: number) {super();}methodA() {return this.a;}}console.log(new MyClass(2).pipe((x) => x.methodA())); // 2class A {constructor(public a: number) {}methodA() {return this.a;}}class B extends Pipeable.Class(A) {constructor(private b: string) {super(b.length);}methodB() {return [this.b, this.methodA()];}}console.log(new B("pipe").pipe((x) => x.methodB())); // ['pipe', 4] -
#1337
f37dc33Thanks @IMax153! - Encoding: consolidateeffect/encodingsub-modules (Base64, Base64Url, Hex, EncodingError) into a top-levelEncodingmodule. Functions are now prefixed:encodeBase64,decodeBase64,encodeHex,decodeHex, etc. Theeffect/encodingsub-path export is removed. -
#1351
3662f32Thanks @tim-smart! - addSchema.HashSetfor decoding and encodingHashSetvalues. -
#1336
a7d436fThanks @mikearnaldi! - ExtractSemaphoreandLatchinto their own modules.Semaphore.make/Semaphore.makeUnsafereplaceEffect.makeSemaphore/Effect.makeSemaphoreUnsafe.Latch.make/Latch.makeUnsafereplaceEffect.makeLatch/Effect.makeLatchUnsafe.Merge
PartitionedSemaphoreintoSemaphoreasSemaphore.Partitioned,Semaphore.makePartitioned,Semaphore.makePartitionedUnsafe. -
#1345
6856a41Thanks @tim-smart! - allocate less effects when reading a file -
#1350
8c417d0Thanks @tim-smart! - Add “Previously Known As” JSDoc migration notes for theSemaphoreandLatchAPIs extracted fromEffect. -
#1355
5419570Thanks @tim-smart! - ensure non-middleware http errors are correctly handled -
#1352
449c5edThanks @tim-smart! - AddSchema.HashMapfor decoding and encodingHashMapvalues. -
#1347
4b5ec12Thanks @tim-smart! - use .toJSON for default .toString implementations -
#1329
df87937Thanks @gcanti! - Schema: extract shareddateTimeUtcFromStringtransformation forDateTimeUtcandDateTimeUtcFromString. -
#1318
5dbfca8Thanks @gcanti! - Schema: rename$suffix to$prefix for type-level identifiers that conflict with built-in names (Array$→$Array,Record$→$Record,ReadonlyMap$→$ReadonlyMap,ReadonlySet$→$ReadonlySet). -
#1356
e629497Thanks @tim-smart! - allow passing void for request constructors -
#1348
981c991Thanks @tim-smart! - FixSchedule.andThenResultto initialize the right schedule only after the left schedule completes. This removes the extra immediate transition tick and correctly completes when the right schedule is finite. -
#1320
1ca2ed6Thanks @gcanti! - Struct: addStruct.Recordconstructor for creating records with the given keys and value. -
#1342
45722bdThanks @cevr! -Schema.TaggedErrorClass,Schema.Class, andSchema.ErrorClassconstructors now allow omitting the props argument when all fields have constructor defaults (e.g.new MyError()instead ofnew MyError({})). -
#1322
eb2a85eThanks @tim-smart! - Add arequireServicesAtoption toPersistedCache.makeso lookup-service requirements can be configured likeCache.
4.0.0-beta.5
Patch Changes
-
#1317
f6e133eThanks @tim-smart! - support tag unions in Effect.catchTag/Reason -
#1314
e3893ccThanks @zeyuri! - FixAtom.serializableencode/decode for wire transfer.Use
Schema.toCodecJsoninstead ofSchema.encodeSync/Schema.decodeSyncdirectly, so that encoded values are plain JSON objects that survive serialization roundtrips (JSON, seroval, etc.). Previously,AsyncResult.Schemaencode produced instances with custom prototypes that were lost after wire transfer, causing decode to fail with “Expected AsyncResult” errors during SSR hydration. -
#1314
e3893ccThanks @zeyuri! - Port ReactHydration to effect-smol.Add
Hydrationmodule toeffect/unstable/reactivitywithdehydrate,hydrate, andtoValuesfor SSR state serialization. AddHydrationBoundaryReact component to@effect/atom-reactwith two-phase hydration (new atoms in render, existing atoms after commit).
4.0.0-beta.4
Patch Changes
-
#1308
c5a18efThanks @tim-smart! - improve Schema.TaggedUnion .match auto completion -
#1310
bc6b885Thanks @tim-smart! - AddSchedule.duration, a one-shot schedule that waits for the provided duration and then completes.
4.0.0-beta.3
Patch Changes
-
#1307
c4da328Thanks @tim-smart! - AddHttpClientRequest.bodyFormDataRecordandHttpBody.makeFormDataRecordhelpers for creating multipart form bodies from plain records.
4.0.0-beta.2
Patch Changes
-
#1302
a22ce73Thanks @tim-smart! - allow undefined for VariantSchema.Overridable input -
#1299
ebdabf7Thanks @tim-smart! - PortSqlSchema.findOnefrom effect v3 to returnOptionon empty results and addSqlSchema.singlefor the fail-on-empty behavior. -
#1298
8f663bbThanks @tim-smart! - AddEffect.catchNoSuchElement, a renamed port of v3Effect.optionFromOptionalthat convertsNoSuchElementErrorfailures intoOption.none.