Skip to content

chore: update versions (beta) - #897

Merged
patroza merged 1 commit into
mainfrom
changeset-release/main
Sep 16, 2026
Merged

patroza merged 1 commit into
mainfrom
changeset-release/main

Conversation

@github-actions

@github-actions github-actions Bot commented Sep 16, 2026 •

Copy link
Copy Markdown
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

⚠️⚠️⚠️⚠️⚠️⚠️

main is currently in pre mode so this branch has prereleases rather than normal releases. If you want to exit prereleases, run changeset pre exit on main.

⚠️⚠️⚠️⚠️⚠️⚠️

Releases

effect-app@4.0.0-beta.326

Minor Changes

  • 2ebf8ae: jitM runs at the store boundary as JSON → JSON, before the toCodecJson(toEncoded(schema)) decode; repositories decode the Encoded shape only.

    jitM used to be applied by the repository after the store had already decoded the document, and was typed (pm: Encoded) => Encoded - a lie, since jitMs are written against the stored JSON and Encoded holds native Date/Map/Set values.

    The read pipeline is now: raw JSON document → merge defaultValues (unchanged: they only fill absent keys, so an explicitly stored null reaches jitM) → jitM (JSON → JSON) → decode Schema.toCodecJson(Schema.toEncoded(schema)) → Encoded. The repository then decodes Encoded → the domain type with schema and no longer applies jitM at all. Because jitM now runs before any schema decode sees the document, it can repair legacy shapes including explicit nulls.

    • StoreConfig.jitM?: (json: JsonRecord) => JsonRecord is new, where JsonRecord (exported from effect-app/Store) is { readonly [key: string]: Schema.Json }. It is not applied on the write/encode path, and never receives _etag.
    • RepositoryOptions.jitM changes type from (pm: Encoded) => Encoded to (json: JsonRecord) => JsonRecord and is forwarded into the store config.
    • Migrating a jitM: it now receives and must return JSON. A Date field arrives as an ISO string (return a string, not a Date), a ReadonlySet as an array, a ReadonlyMap as an array of [key, value] pairs. Field access is index-signature based (json["x"]) rather than typed property access.
    • The JSON→Encoded decode stays strict: a document jitM does not repair fails at the store boundary instead of being read back half-decoded.
    • ValidationError.jitMResult is deprecated: validateSample only ever sees the store's output, so it is identical to rawData.

@effect-app/infra@4.0.0-beta.326

Minor Changes

  • 2ebf8ae: jitM runs at the store boundary as JSON → JSON, before the toCodecJson(toEncoded(schema)) decode; repositories decode the Encoded shape only.

    jitM used to be applied by the repository after the store had already decoded the document, and was typed (pm: Encoded) => Encoded - a lie, since jitMs are written against the stored JSON and Encoded holds native Date/Map/Set values.

    The read pipeline is now: raw JSON document → merge defaultValues (unchanged: they only fill absent keys, so an explicitly stored null reaches jitM) → jitM (JSON → JSON) → decode Schema.toCodecJson(Schema.toEncoded(schema)) → Encoded. The repository then decodes Encoded → the domain type with schema and no longer applies jitM at all. Because jitM now runs before any schema decode sees the document, it can repair legacy shapes including explicit nulls.

    • StoreConfig.jitM?: (json: JsonRecord) => JsonRecord is new, where JsonRecord (exported from effect-app/Store) is { readonly [key: string]: Schema.Json }. It is not applied on the write/encode path, and never receives _etag.
    • RepositoryOptions.jitM changes type from (pm: Encoded) => Encoded to (json: JsonRecord) => JsonRecord and is forwarded into the store config.
    • Migrating a jitM: it now receives and must return JSON. A Date field arrives as an ISO string (return a string, not a Date), a ReadonlySet as an array, a ReadonlyMap as an array of [key, value] pairs. Field access is index-signature based (json["x"]) rather than typed property access.
    • The JSON→Encoded decode stays strict: a document jitM does not repair fails at the store boundary instead of being read back half-decoded.
    • ValidationError.jitMResult is deprecated: validateSample only ever sees the store's output, so it is identical to rawData.

Patch Changes

  • Updated dependencies [2ebf8ae]
    • effect-app@4.0.0-beta.326

@effect-app/vue@4.0.0-beta.326

Patch Changes

  • Updated dependencies [2ebf8ae]
    • effect-app@4.0.0-beta.326

@effect-app/vue-components@4.0.0-beta.326

Patch Changes

  • Updated dependencies [2ebf8ae]
    • effect-app@4.0.0-beta.326
    • @effect-app/vue@4.0.0-beta.326

@effect-app/e2e@4.0.0-beta.326

Patch Changes

  • Updated dependencies [2ebf8ae]
    • effect-app@4.0.0-beta.326
    • @effect-app/infra@4.0.0-beta.326
    • @effect-app/vue@4.0.0-beta.326

View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

@patroza
patroza merged commit 20817ff into main Sep 16, 2026
1 check passed
@patroza
patroza deleted the changeset-release/main branch September 16, 2026 06:54
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