Skip to content

chore: release packages - #30

Merged
btravers merged 1 commit into
mainfrom
changeset-release/main
Aug 7, 2026
Merged

chore: release packages#30
btravers merged 1 commit into
mainfrom
changeset-release/main

Conversation

@btravers

@btravers btravers commented Aug 7, 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

@btravstack/entity@0.2.0

Minor Changes

  • b5758a5: Declaration emit no longer expands the whole static surface into every consumer's .d.ts.

    EntityStatic — what Entity(tag)(fields, options) returns — was not exported,
    so TypeScript had no name to write for it and serialised the entire static
    surface structurally into any downstream package compiling with
    declaration: true: the construct signature, all four ZodObjects, both zod
    slots, the four phantom carriers and make/extend/factory, with the field
    map repeated a dozen times over. A one-field entity emitted a 274,048-byte
    declaration; it is now 240.

    That expansion was two build failures, not a verbosity problem:

    • a realistically wide domain enum (30 members, ordinary DDD widths) pushed the
      repeated field map past the compiler's serialisation ceiling — TS7056,
      fixable only by abandoning z.enum for a branded string and losing both
      runtime membership validation and compile-time exhaustiveness (#31);
    • a branded object field (z.object({…}).brand("X")) was expanded through
      DeepReadonly until zod's module-private $brand symbol reached
      computed-key position, where it cannot be named across a module boundary —
      TS4020 (#32). Branded objects now work, and stay deep-readonly; the
      "model it as a nested entity instead" workaround is no longer needed.

    Both surfaced only at the consuming package's build, long after tsc --noEmit,
    the tests and everything else had gone green.

    EntityStatic is now a top-level export, and Entity.Static for anyone
    annotating by hand. Both regressions are pinned by the consumer fixture.

    EntityUnion and UnionMember are exported for the same reason, one type
    further along: an exported const holding an Entity.union(...) had no
    top-level name either, so TypeScript expanded its members structurally and
    reached $brand through any branded field — TS4023: Exported variable 'X' has or is using name '$brand' … but cannot be named. Reported as the second error
    in #32, and reproduced by declaring a union over an entity with a branded
    Money field.

    The zod peer range widens from ^4.4.0 to ^4.3.0. Nothing in the
    implementation needed 4.4; the range was simply the version current at the
    initial release. The floor is measured — the full surface typechecks, emits
    declarations and passes its runtime assertions on 4.3.0. Monorepos that pin one
    zod across every package no longer have to move the whole catalog, or relax the
    peer locally, to adopt this (#33).

Patch Changes

Copilot AI lite review requested due to automatic review settings August 7, 2026 16:41

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This Changesets release PR prepares @btravstack/entity for publishing 0.1.1 by applying the version bump and recording the release notes generated from the consumed changeset(s).

Changes:

  • Bump @btravstack/entity version from 0.1.0 to 0.1.1.
  • Add a 0.1.1 changelog entry describing the patch change (README now points to the hosted docs site).
  • Remove the consumed .changeset/* markdown entries.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.

File Description
packages/entity/package.json Version bump to 0.1.1 for the package release.
packages/entity/CHANGELOG.md Adds the 0.1.1 release notes entry.
.changeset/no-release-first-publish.md Removed as part of release housekeeping.
.changeset/gentle-hoops-repeat.md Removed after being consumed into the 0.1.1 release notes.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@btravers
btravers force-pushed the changeset-release/main branch from 77f8900 to d675bc4 Compare August 7, 2026 20:28
@btravers
btravers force-pushed the changeset-release/main branch from d675bc4 to 9e0e471 Compare August 7, 2026 21:51
@btravers
btravers merged commit 2bff10a into main Aug 7, 2026
13 checks passed
@btravers
btravers deleted the changeset-release/main branch August 7, 2026 23:20
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.

2 participants