chore: release packages - #43
Merged
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
This is an automated Changesets release PR for @btravstack/entity, preparing version 0.3.0 for publication by updating the package version, promoting the pending changeset into the changelog, and removing the consumed changeset file.
Changes:
- Bump
@btravstack/entityfrom0.2.0to0.3.0. - Add the
0.3.0release notes topackages/entity/CHANGELOG.md. - Remove the consumed Changesets entry
.changeset/heavy-buses-repair.md.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| packages/entity/package.json | Updates the package version to 0.3.0 for the release. |
| packages/entity/CHANGELOG.md | Adds the generated 0.3.0 changelog entry describing the release contents. |
| .changeset/heavy-buses-repair.md | Deletes the changeset after it has been incorporated into the changelog. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
btravers
force-pushed
the
changeset-release/main
branch
from
August 7, 2026 23:45
9d5b9d8 to
931076c
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.3.0
Minor Changes
5f1a395: Two correctness fixes, honest
toJSONtyping, and readable errors.deepEqualno longer remembers failed comparisons as equal. Thecycle guard recorded every pair it entered and never forgot one that
finished
false, so twoSet/Mapfields with plainly different contentscould compare equal once their elements shared a subtree. The guard is now a
stack of in-progress pairs, not a memo.
deepFreezeno longer freezes caller-owned values under a unionbranch. The schema walk lost context at
union,pipeandintersectionboundaries, so az.custom(...)value nested inside one wasfrozen in place — mutating an object the caller still owns. The walk now
carries context through all three.
toJSON()returnsDeepReadonly<Output>. The projection is shallow:the top-level object is fresh, but nested containers are the instance's own
frozen references, so the previous mutable type let
toJSON().tags.push(…)compile and throw at runtime.InvalidEntity.messageis populated —"<entity>: <path>: <message>; …"—so a log line or a failed assertion names the entity and the failing fields
instead of printing a blank
Error. The structuredissuesare unchanged.Entity.renderIssueandEntity.keysOf— the issue helpers anadapter needs to turn an
InvalidEntityinto a response body, the same onesthe message is built from.
Entity.unionpreviously let the last member win while zod threw lazily atthe first parse; it now fails at the declaration, naming both members.
__useMakeOrFactoryInstead, sothe compile error on
new SomeEntity(…)tells the reader what to do.ce69f0a:
update()rejects a patch key it cannot apply, instead of dropping it silently.A patch may now carry only keys
updateInputaccepts. A key that isimmutable,computed, or not a field of the entity at all comes back as anInvalidEntitywith that key inpath— every offending key reports, notjust the first.
All three were silently discarded before while
updatereturnedOk: thecaller asked for a change, got a success, and the change never happened. The
patch type already excluded them, but TypeScript's excess-property check only
fires on object literals, so the common adapter shape — building a patch as a
Record<string, unknown>from a request body — evaded it entirely and the keyvanished into a passing
Result.makeis deliberately unchanged: it still ignores extra keys, so a stored rowcarrying computed columns round-trips. Rehydrating data and patching it are
different acts — one heals what is already written, the other states an intent.
Breaking for code that relied on the drop, most likely
update(someWholeOutputObject). Patch only the fields you mean to change, ornarrow the object first —
updateInput.parse(body)strips unknown keys andgives you a patch that is accepted by construction.