chore(deps): bump unthrown to 5.0.0-beta.7 - #349
Merged
Conversation
Raises the catalog entries for `unthrown` and `@unthrown/vitest`, and the peer range on contract/client/worker to `^5.0.0-beta.7`. `latest` on npm is still 4.3.0 (the stable line), so this tracks the `beta` tag, matching where this package's 8.0 line already sits. Two upstream changes, neither needing code changes here: - `returnType<R>()` pins a match's output type across all five `*ErrCases` combinators, `match`'s `errCases` handler, and standalone `match(value)`. - `tapErrCases` no longer silently drops a `defect(…)` branch — it now produces a Defect carrying an AggregateError, matching what a `throw` in the same position already did. Only breaking for code relying on the drop; the single `tapErrCases` call site here (activity-contract-errors.spec.ts:301) logs and does not use the marker. Verified: typecheck, unit tests (105 contract + worker/client/testing), and the in-process time-skipping integration suite all pass against beta.7; lint, knip, and the docs build are clean. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates the repository’s dependency baseline to keep the Temporal Contract v8 beta line aligned with unthrown v5 beta, specifically bumping from 5.0.0-beta.6 to 5.0.0-beta.7 and updating the related peer dependency ranges and documentation accordingly.
Changes:
- Bump
unthrownand@unthrown/vitestto5.0.0-beta.7via the workspace catalog and lockfile. - Raise
unthrownpeer dependency ranges to^5.0.0-beta.7for@temporal-contract/{contract,client,worker}. - Update install/upgrade docs and add a Changeset documenting the bump.
Reviewed changes
Copilot reviewed 7 out of 8 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| pnpm-workspace.yaml | Updates the workspace catalog versions for unthrown and @unthrown/vitest. |
| pnpm-lock.yaml | Refreshes lock entries to reflect 5.0.0-beta.7 resolution. |
| packages/worker/package.json | Raises the worker package’s unthrown peer range to ^5.0.0-beta.7. |
| packages/contract/package.json | Raises the contract package’s unthrown peer range to ^5.0.0-beta.7. |
| packages/client/package.json | Raises the client package’s unthrown peer range to ^5.0.0-beta.7. |
| docs/how-to/upgrade-to-v8.md | Updates the upgrade/install instructions to use ^5.0.0-beta.7. |
| docs/how-to/install.md | Updates the peer dependency table to ^5.0.0-beta.7. |
| .changeset/bump-unthrown-beta-7.md | Adds a changeset describing the dependency bump and upstream behavior changes. |
Files not reviewed (1)
- pnpm-lock.yaml: Generated file
The changeset's `tapErrCases` bullet had an unindented continuation line, which markdown renders as a new paragraph, breaking the list. Cause: the inline code span `[the branch's cause, the observed error]` wrapped across lines, and oxfmt strips the continuation indent there — leading whitespace is significant inside a code span, so reflowing it would alter the span's text. The indent was correct as written and the formatter removed it. Reworded so the span no longer wraps; re-running oxfmt now leaves the indentation alone. Swept the rest of the docs for the same shape and found two more (upgrade-to-v8.md, why-temporal-contract.md). Neither sat in a list, so both rendered fine, but they carried the same latent hazard — reworded too. A backtick-parity scan over all authored markdown is now clean. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
Bumps
unthrownand@unthrown/vitestfrom5.0.0-beta.6to5.0.0-beta.7, and raises the peer range on contract/client/worker to^5.0.0-beta.7.Which "latest"
lateston npm is still 4.3.0 — the stable v4 line. The v5 work ships under thebetatag, currently5.0.0-beta.7. Since this package's 8.0 line already tracks v5 beta, takinglatestwould be a downgrade; this followsbeta.Both packages are listed in
minimumReleaseAgeExclude, so the 7-day maturity gate does not apply.What changed upstream
Neither change required code changes here.
returnType<R>()on the built-in matcher (minor). Pins a match's output type so every branch is checked against it, rather than the result being the union of branch returns. A drifting branch now fails on that branch instead of downstream. Reaches all five*ErrCasescombinators,match'serrCaseshandler, and standalonematch(value).tapErrCasesno longer silently drops adefect(…)branch. Previously such a branch compiled but the value was discarded, so the pipeline carried on with the originalErr— while athrowin the same position already produced aDefect. It now takes the throw route, producing aDefectwhose cause is anAggregateErrorof[the branch's cause, the observed error].Only breaking for code that relied on the drop. This repo has exactly one
tapErrCasescall site —packages/worker/src/activity-contract-errors.spec.ts:301— and it logs rather than using thedefectmarker, so it is unaffected. The doc-comment example atpackages/worker/src/activity.ts:297is the same shape.Verification
pnpm typecheckpnpm test--project integration-inprocesspnpm lintpnpm knippnpm --filter ./docs exec turbo buildThe in-process integration run matters more than the typecheck here: it exercises the actual runtime through the full contract pipeline against beta.7, which is where a matcher or defect-channel regression would show up. I did not run the Docker-backed
integrationproject locally — CI covers it.Also updated
docs/how-to/install.mdpeer table anddocs/how-to/upgrade-to-v8.mdinstall command + checklist now say^5.0.0-beta.7.upgrade-to-v8.md:38("built in again as of beta.6") alone — that is a historical statement about when the matcher stopped needingts-pattern, and remains accurate.returnType<R>()is not documented in our guides. It is unthrown's API rather than ours, but it would genuinely improve themapErrCasesexamples where the output type is fixed by a signature — happy to add a short mention if you want it.🤖 Generated with Claude Code