Effect
4.0.0-beta.17
Patch Changes
- #1516
8f59c32Thanks @gcanti! - FixSchema.encodeKeysto encode non-remapped struct fields during encoding.
4.0.0-beta.16
Patch Changes
-
#1513
bf9096cThanks @gcanti! - AddSchemaParser.makeOptionandSchema.makeOptionfor constructing schema values asOption. -
#1508
29f81caThanks @gcanti! - Schema: addOptionFromUndefinedOrandOptionFromNullishOrschemas. -
#1498
68eb28cThanks @kaylynb! - Fix OpenApi Multipart file upload schema generation
4.0.0-beta.15
Patch Changes
-
#1500
24ae609Thanks @qadama831! - Unwrap_Successschema to enable field access. -
#1486
0e3c059Thanks @tim-smart! - FixStream.groupedWithinto stop emitting empty arrays when schedule ticks fire while upstream is idle. -
#1503
e843b0aThanks @tim-smart! - allow creating standalone http handlers from HttpApiEndpoints -
#1499
f4389a2Thanks @tim-smart! - fix atom node timeout cleanup -
#1494
5b73de0- RefineExtractServicesto omit tool handler requirements when automatic tool resolution is explicitly disabled through thedisableToolCallResolutionoption. -
#1496
595d2d6Thanks @IMax153! - Refactor unstable CLI global flags to command-scoped declarations.Breaking changes
- Remove
GlobalFlag.add,GlobalFlag.remove, andGlobalFlag.clear - Add
Command.withGlobalFlags(...)as the declaration API for command/subcommand scope - Change
GlobalFlag.settingconstructor to curried form which carries type-level identifier:- before:
GlobalFlag.setting({ flag, ... }) - after:
GlobalFlag.setting("id")({ flag })
- before:
- Change setting context identity to a stable type-level string:
effect/unstable/cli/GlobalFlag/${id}
Behavior changes
- Global flags are now scoped by command path (root-to-leaf declarations)
- Out-of-scope global flags are rejected for the selected subcommand path
- Help now renders only global flags active for the requested command path
- Setting defaults are sourced from
Flagcombinators (optional,withDefault) rather than setting constructor defaults
- Remove
4.0.0-beta.14
Patch Changes
-
#1471
c414700Thanks @IMax153! - Make CLI global settings directly yieldable and simplify built-in names.GlobalFlag.settingnow takes{ flag, defaultValue }and returns a setting that is aContext.Reference, so handlers andCommand.provide*effects canyield*global setting values directly.Built-in settings keep internal behavior in
runWith(for example,--log-levelstill configuresReferences.MinimumLogLevel) while also being readable as values.Also renamed built-in globals:
GlobalFlag.CompletionsFlag->GlobalFlag.CompletionsGlobalFlag.LogLevelFlag->GlobalFlag.LogLevel
-
#1490
a30c969Thanks @gcanti! - FixOpenApi.fromApipreserving multiple response content types for one status code, closes #1485.
4.0.0-beta.13
Patch Changes
-
#1454
368f4c3Thanks @lucas-barake! - ExposeNoSuchElementErrorin the error type of stream-basedAtom.makeoverloads. -
#1469
db8a579Thanks @tim-smart! - Update unstable schema variant helpers to use array-based arguments forFieldOnly,FieldExcept, andUnion, aligningVariantSchemaandModelwith other v4 API shapes. -
#1457
668b703Thanks @tim-smart! - Run request resolver batch fibers with request services by usingEffect.runForkWith, so resolver delay effects andrunAllexecution see the request service map. -
#1461
d40e76bThanks @mikearnaldi! - FixSchedule.fixeddouble-executing the effect due to clock jitter.The
elapsedSincePrevious > windowcheck included sleep time from the previous step, so any timer imprecision (e.g. 1001ms for a 1000ms sleep) triggered an immediate zero-delay re-execution. -
#1464
6e18cf8Thanks @gcanti! - Use theidentifierannotation as the expected message when available, closes #1458. -
#1475
86062e8Thanks @tim-smart! - Add a CI check job that runspnpm ai-docgenand fails if it produces uncommitted changes. -
#1448
c27ce75Thanks @IMax153! - Refactor CLI built-in options to use Effect services withGlobalFlagBuilt-in CLI flags (
--help,--version,--completions,--log-level) are now implemented as Effect services usingContext.Reference. This provides:- Visibility: Built-in flags now appear in help output’s “GLOBAL FLAGS” section
- Extensibility: Users can register custom global flags via
GlobalFlag.add - Override capability: Built-in flag behavior can be replaced or disabled
- Composability: Flags compose via Effect’s service system
New
GlobalFlagmodule exports:Action<A>andSetting<A>types for different flag behaviorsHelp,Version,Completions,LogLevelreferences for built-in flagsadd,remove,clearfunctions for managing global flags
Example:
const app = Command.make("myapp");Command.run(app, { version: "1.0.0" }).pipe(GlobalFlag.add(CustomFlag, customFlagValue),); -
#1468
e2d4fbfThanks @lucas-barake! - FixRpc.ExtractProvidesto use middleware service ID instead of constructor type. -
#1465
114ab42Thanks @lloydrichards! - tighten Schema on _meta fields in McpSchema; closes #1463 -
#1470
484caecThanks @tim-smart! - AddCommand.withAliasfor unstable CLI commands, including subcommand parsing by alias and help output that renders aliases asname, aliasin subcommand listings.
4.0.0-beta.12
Patch Changes
-
#1439
70a74e8Thanks @gcanti! - AddConfig.nestedcombinator to scope a config under a named prefix, closes #1437. -
#1452
b5b6e10Thanks @tim-smart! - make fiber keepAlive setInterval evaluation lazy -
#1431
f5ce5a9Thanks @tim-smart! - AddRandom.nextBooleanfor generating random boolean values. -
#1450
a29eb70Thanks @tim-smart! - use cause annotations for detecting client aborts -
#1445
c7b36e5Thanks @mattiamanzati! - FixGraph.toMermaidto escape special characters using HTML entity codes per the Mermaid specification. -
#1443
9381d6dThanks @mikearnaldi! - FixHttpClient.retryTransientautocomplete leakingScheduleinternals by splitting the{...} | Scheduleunion into separate overloads. -
#1444
88439f1Thanks @gcanti! - Schema.encodeKeys: relax input constraint from Struct to schemas with fields so Schema.Class works, closes #1412. -
#1438
e35307dThanks @mikearnaldi! - Atom.searchParam: decode initial URL values correctly when a schema is provided -
#1425
c7df4bcThanks @candrewlee14! - Fix LanguageModel stripping of resolved approval artifacts across multi-round conversations.Previously,
stripResolvedApprovalsonly ran when there were pending approvals in the current round. Stale artifacts from earlier rounds would leak to the provider, causing errors. The stripping now runs unconditionally.In streaming mode, pre-resolved tool results are also emitted as stream parts so
Chat.streamTextpersists them to history, preventing re-resolution on subsequent rounds. -
#1453
accaf3bThanks @tim-smart! - allow mcp errors to be encoded correctly -
#1440
3e1c270Thanks @lloydrichards! - extend McpSchema to work with extensions -
#1447
6cd81f7Thanks @tim-smart! - remove all non-regional service usage -
#1451
f222da3Thanks @tim-smart! - AddEffect.annotateLogsScopedto apply log annotations for the current scope and automatically restore previous annotations when the scope closes. -
#1434
61f901dThanks @tim-smart! - Fix JSON-RPC serialization to return an object for non-batched requests while preserving array responses for true batch requests.
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.