Skip to content

chore: version packages#43

Merged
jonlaing merged 1 commit into
mainfrom
changeset-release/main
Jul 24, 2026
Merged

chore: version packages#43
jonlaing merged 1 commit into
mainfrom
changeset-release/main

Conversation

@github-actions

@github-actions github-actions Bot commented Jul 24, 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.

Releases

@effex/dom@1.3.1

Patch Changes

  • 8b07d3d: Warn on invalid HTML nesting during rendering. Certain parent/child pairs (<p> in <p>, block-level content in <p>, nested anchors, interactive content in <button>, nested forms) get silently normalized by the browser's HTML parser — the live DOM ends up different from what SSR emitted, and hydration reports a confusing "Expected <X> but not found in <Y>" mismatch far from the actual cause.

    The renderers (DOMRenderer, SSR StringRenderer) now check each parent/child pair at appendChild time and emit a targeted console.warn once per pair per process explaining what the browser will do to the tree. Small runtime cost (a set lookup + string check), catches this class of bug at its source instead of downstream at hydration.

    Covered nestings:

    • <p> inside <p> and all block-level tags inside <p> (div, section, ul, form, h1-h6, table, …)
    • <a> inside <a>
    • Interactive elements inside <button> (a, input, select, textarea, …)
    • <form> inside <form>

@effex/platform@1.2.2

Patch Changes

  • bed39a9: Pin @effex/core exactly instead of via a caret range. @effex/platform's source used "@effex/core": "workspace:^", which publishes as ^X.Y.Z — a range. @effex/dom, @effex/router, and @effex/form all use "workspace:*" which publishes as the exact current version. The mismatch meant projects installing both @effex/dom and @effex/platform could end up with two different @effex/core copies in node_modules when pnpm couldn't hoist to a single satisfying version — and two copies means Effect Context tags (Signal, Readable, ControlCtx, etc.) declared in one copy don't unify with the other, so cross-package interactions break silently.

    Switched to "workspace:*". Now every core bump forces a platform patch bump, which was already the effective behaviour for the other packages, and every published @effex/platform will pin the exact @effex/core version it was published against — no ambiguity for pnpm to resolve.

    Peer deps on @effex/dom and @effex/router stay on workspace:^ — those are peers that the user installs and semver ranges are appropriate.

  • 9ba649c: Fix client-side navigation on SSG (static-file-hosted) sites. makeClientLayer's data provider used to unconditionally fetch(<path>?_data=1) then response.json(), which works with the SSR HTTP handler (that URL returns JSON) but breaks on any static host — static file servers ignore the query string and return the target page's HTML shell. response.json() then threw, Effect.orDie killed the fiber silently, and the Outlet went blank while the URL updated (no error surfaced in the console).

    Now the provider inspects the response's Content-Type. On application/json it parses as before. On anything else it treats the response as HTML, extracts the window.__EFFEX_DATA__ blob that generateDocument embeds in every SSG'd page, and returns that. The escapes emitted by serializeForHtml (<, >, &) are JSON-safe, so JSON.parse on the extracted string round-trips cleanly.

    No config change required — SSG projects using Platform.makeClientLayer(router) should just start navigating correctly after upgrading.

    Also: added console.error logging before the provider's Effect.orDie guard so a genuinely failed fetch (network error, malformed response, etc.) surfaces in the browser console instead of dying silently. If the HTML fallback runs but no __EFFEX_DATA__ blob is present, that's logged as a console.warn — non-fatal but useful for catching broken builds.

  • Updated dependencies [8b07d3d]

    • @effex/dom@1.3.1
    • @effex/router@1.2.6

@effex/router@1.2.6

Patch Changes

  • Updated dependencies [8b07d3d]
    • @effex/dom@1.3.1

docs@0.0.18

Patch Changes

  • Updated dependencies [8b07d3d]
  • Updated dependencies [bed39a9]
  • Updated dependencies [9ba649c]
    • @effex/dom@1.3.1
    • @effex/platform@1.2.2
    • @effex/router@1.2.6

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 24, 2026

Copy link
Copy Markdown

Deploying effex-api with  Cloudflare Pages  Cloudflare Pages

Latest commit: 17a0fa1
Status: ✅  Deploy successful!
Preview URL: https://f7f73722.effex-api.pages.dev
Branch Preview URL: https://changeset-release-main.effex-api.pages.dev

View logs

@github-actions
github-actions Bot force-pushed the changeset-release/main branch from 0a1de5b to 6913274 Compare July 24, 2026 03:46
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 24, 2026

Copy link
Copy Markdown

Deploying effex with  Cloudflare Pages  Cloudflare Pages

Latest commit: 17a0fa1
Status: ✅  Deploy successful!
Preview URL: https://d368522b.effex.pages.dev
Branch Preview URL: https://changeset-release-main.effex.pages.dev

View logs

@github-actions
github-actions Bot force-pushed the changeset-release/main branch from 6913274 to 17a0fa1 Compare July 24, 2026 13:56
@jonlaing
jonlaing merged commit e468a64 into main Jul 24, 2026
4 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