Effect
4.0.0-beta.77
Patch Changes
-
#2326
6e9a5caThanks @fubhy! - Prefer OTEL resource environment variables over explicitOtlpResource.fromConfigoptions. -
#2325
302f398Thanks @fubhy! - Add OTEL environment variable configuration for unstable OTLP observability.
4.0.0-beta.76
Patch Changes
-
#2320
016108aThanks @gcanti! - AddSchema.isGUIDand updateSchema.isUUIDto accept the RFC 9562 max UUID. -
#2319
95c03d2Thanks @fubhy! - Add support for configuring Scalar API reference pages with a custom fetch implementation. -
#2318
07299a3Thanks @gcanti! - Replace theSchema.ErrorandSchema.Defectschema constants with constructor functions,Schema.Error()andSchema.Defect().Unify
Schema.ErrorWithStackintoSchema.Error({ includeStack: true })andSchema.DefectWithStackintoSchema.Defect({ includeStack: true }).Error causes are encoded by default using the same JSON defect encoding semantics used by
Schema.Defect; pass{ excludeCause: true }to omit nested cause data.Equivalent
Schema.ErrorandSchema.Defectoptions are canonicalized, so repeated constructor calls with the same option values reuse the same schema.Schema.Defect()now models defects asunknownvalues with a JSON encoded form. Error-shaped JSON objects with a stringmessagedecode to JavaScriptErrorvalues, so non-Errorobjects such as{ message: "boom" }do not round-trip unchanged. Other non-Errorvalues are normalized through JSON serialization, with non-JSON values falling back to Effect’s formatted string representation.
4.0.0-beta.75
Patch Changes
-
#2294
81b187cThanks @mattiamanzati! - Align workflow tags with RPCs by changingWorkflow.maketo accept the tag as its first argument, exposing workflow tags as_tag, and supportingclass MyWorkflow extends Workflow.make(...) {}. -
#2312
ad4b535Thanks @gcanti! - ValidateSchema.StructWithRestfixed fields against rest index signatures at the type level so schemas cannot be constructed with incompatible decoded, encoded, or make shapes. This keepsStructWithResttypes sound and updates the generated OpenAI conversation-items request schema to keep accepting arbitrary additional fields under the stricter validation. -
#2314
a29c2e7Thanks @gcanti! - PreserveSchema.Redactedoptions when roundtripping through schema representations. This keepslabelvalidation anddisallowJsonEncodebehavior intact when schemas are revived from a representation or emitted through code generation. -
#2298
1fdd9aeThanks @gcanti! - Remove theTypes.MergeRecordalias. UseTypes.MergeLeftinstead. -
#2298
1fdd9aeThanks @gcanti! - Align Schema adapter failures:Schemaresult, promise, and sync adapters now surfaceSchemaError, whileSchemaParserresult, promise, and sync adapters exposeSchemaIssue.Issue. MarkSchemaParseroption adapters as internal because their error details are discarded. -
#2313
ffea4ecThanks @MohanedMashaly! - Add -v alias for version flag -
#2306
4255c9bThanks @sam-goodwin! - FixHttpApiSecuritybearer/http credential decoding
4.0.0-beta.74
Patch Changes
- #2295
b1fc6a4Thanks @jgoux! - Fix CLI parsing so command-local flags can override globals without breaking global flags before subcommands.
4.0.0-beta.73
Patch Changes
-
#2291
361ca30Thanks @tim-smart! - Add HttpApiSecurity.http for passing custom schemes -
#2289
b9598c6Thanks @tim-smart! - make EntityResource lazy by default
4.0.0-beta.72
Patch Changes
-
#2287
73e67d1Thanks @tim-smart! - Ensure ClusterWorkflowEngine routes durable clock wakeups and registered workflow deferred completions through the owning workflow’s shard group. -
#2286
01d71ecThanks @tim-smart! - Add default value support toPrompt.file. -
#2285
fcd707eThanks @tim-smart! - Add default value support to CLI integer prompts.
4.0.0-beta.71
Patch Changes
-
#2252
d8ac76bThanks @tim-smart! - AddedSchedule.tap, which allows observing full schedule metadata without altering schedule inputs or outputs. -
#2261
2c3c00aThanks @gcanti! - Add JSON Schema custom annotation passthrough option, closes #2260 -
#2269
3751e7cThanks @gcanti! - Schema: reintroduce.valueonSchema.ArrayandSchema.NonEmptyArrayfor consistency with other collection wrappers (Chunk,HashSet, etc.), closes #2268. -
#2272
fc5f25bThanks @gcanti! - Clarify thatData.$is(tag)only checks the_tagfield, not the full structure, closes #2271. -
#2257
7ccced4Thanks @bwbuchanan! - Fixed thecatch*combinators silently dropping unhandled error types -
#2263
a2e1fe5Thanks @patroza! - UseWeakMapforpendingBatchesinstead ofMap, to allow GC to collect resolvers -
#2266
4a4a36bThanks @gcanti! - Fix schema arbitrary constraints for exclusive BigInt, Date, and integer number bounds. -
#2249
d350292Thanks @tim-smart! - allow encoding Redacted by default, and add option to disallow encoding -
#2276
730afb6Thanks @tim-smart! - Fix AtomRef notifications when a listener re-subscribes itself during notification. -
#2250
df1b008Thanks @tim-smart! - FixArgument.variadic(argument)so it supports direct calls without options. -
#2277
6d469d5Thanks @tim-smart! - Fix string messages and annotations being double-quoted by simple and logfmt loggers.
4.0.0-beta.70
Patch Changes
-
#2228
af7782dThanks @avallete! - AddCommand.withHiddento hide subcommands from--helpoutput, shell completions, and “did you mean?” suggestions, while keeping them fully invocable by exact name.Useful for experimental or internal subcommands that should be accepted but not advertised on the public CLI surface.
import { Command } from "effect/unstable/cli";const experimental = Command.make("experimental").pipe(Command.withHidden);const root = Command.make("mycli").pipe(Command.withSubcommands([experimental]),); -
#2244
7212d70Thanks @tim-smart! - Fix TestClock adjustment when its layer is provided to programs run without an ambient Scope.
4.0.0-beta.69
Patch Changes
-
#2227
70ea04aThanks @avallete! - AddFlag.withHidden(andParam.withHidden) to hide flags from--helpoutput and shell completions while keeping them fully parseable on the command line.Useful for experimental, internal, or deprecated flags that should be accepted but not advertised, e.g.
--experimental-foo, debug toggles, or escape hatches that are not yet committed to the public CLI surface.import { Flag } from "effect/unstable/cli";const experimental = Flag.boolean("experimental-foo").pipe(Flag.withHidden); -
#2240
d0ea8b0Thanks @tim-smart! - pass workflow parent on discard -
#2237
a57674bThanks @notkadez! - FixStream.scopedandChannel.scopedso pull effects run with the scoped resource scope. -
#2239
59aa334Thanks @tim-smart! - fix RpcWorker Protocol service key -
#2242
8f4208eThanks @tim-smart! - Accept.mjsand.mtsmigration files in SQL migrator loaders.
4.0.0-beta.68
Patch Changes
-
#2210
af8267fThanks @tim-smart! - Add Stream.broadcastN for fixed-size stream broadcasts. -
#2180
0176eafThanks @IMax153! - Add a platform-agnosticCryptoservice for cryptographic random bytes, secure random generators, UUIDv4 / UUIDv7 generation, and digest operations. UUID generation should now use theCryptoservice’srandomUUIDv4orrandomUUIDv7, which format bytes from the platformCryptoservice; UUIDv7 also uses theClockservice timestamp.Random.nextUUIDv4has been removed because the baseRandomservice is not cryptographically secure. -
#2221
f136bb7Thanks @gcanti! - ChangeSchema.assertsandSchemaParser.assertsto assert a value directly withasserts(schema, input)and removeSchema.Codec.ToAsserts. -
#2209
6f38f07Thanks @tim-smart! - Fix Channel.decodeText corrupting UTF-8 characters split across chunk boundaries. -
#2207
aec9c40Thanks @tim-smart! - rename Model.Generated to Model.GeneratedByDb