Skip to content

fix: pair @unthrown/prisma with the unthrown the catalog now pins - #19

Merged
btravers merged 2 commits into
mainfrom
fix/unthrown-prisma-pairing
Aug 13, 2026
Merged

fix: pair @unthrown/prisma with the unthrown the catalog now pins#19
btravers merged 2 commits into
mainfrom
fix/unthrown-prisma-pairing

Conversation

@btravers

Copy link
Copy Markdown
Contributor

main is red; this fixes it. ci / Type Check fails on 35ca4bb with five TS7006 implicit-any errors in examples/order-infrastructure/src/prisma-order-repository.ts.

Cause

PR #18's last commit collapsed the graph onto one unthrown (5.5.0) to close the dual-copy hazard CLAUDE.md names. It left @unthrown/prisma at 0.2.0, which depends on unthrown@^5.1.0 and was built against that line's type shape. Under 5.5.0 the mapErrCases/match callbacks in the repository lose their inference and their parameters become implicit any.

@unthrown/prisma@0.3.2 depends on unthrown@^5.5.0. That is the coherent pairing.

Why it passed locally and broke on main

My local node_modules still carried the pre-bump resolution; CI installs clean. That is the whole gap, and it is worth writing down: a green local pnpm typecheck after a catalog change proves nothing until the lockfile has been rebuilt from a fresh resolution. The pnpm clean --lockfile in #18 rebuilt the lockfile but not my tree.

Verification

Run on Node 24, the version CI's Type Check job uses — not the Node 22 my shell defaults to, which is how the original slipped through:

  • pnpm typecheck — 20/20 turbo tasks
  • pnpm lint, pnpm format --check, pnpm knip — clean
  • Suites re-run on Node 22: all green but packages/start's documented binds 9000

One thing I could not reproduce and am not chasing here: on this machine under Node 24, examples/order-temporal's suite times out at 120 s. It passes on Node 22 locally, and CI passed Node 22.19, 24 and 26 on 35ca4bb, so it is this machine's Temporal native bridge rather than the code. Flagging it rather than burying it.

Also confirmed by 35ca4bb's run

The two open questions from the -amqp design are now answered on real CI: the supply-chain age policy cleared, and ci / Tests passed on all three Node versions — so testcontainers and its RabbitMQ work on the runner with no workflow change. That was the design's largest unverified risk.

🤖 Generated with Claude Code

Collapsing the graph onto unthrown 5.5.0 left `@unthrown/prisma` at 0.2.0,
which depends on `unthrown@^5.1.0` and was built against that line's type
shape. Under 5.5.0 the `mapErrCases`/`match` callbacks in
`prisma-order-repository.ts` lost their inference and became implicit `any`,
failing `pnpm typecheck` — on a clean install only, which is why it passed
locally and broke on main. 0.3.2 depends on `unthrown@^5.5.0`.

Verified on Node 24, the version CI's Type Check job runs: 20/20 turbo tasks.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings August 13, 2026 16:24

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

Updates the pnpm catalog + lockfile to align @unthrown/prisma with the repository’s pinned unthrown version, addressing the TypeScript inference regression that caused TS7006 implicit-any errors in CI.

Changes:

  • Bump @unthrown/prisma in the workspace catalog from 0.2.0 to 0.3.2.
  • Update minimumReleaseAgeExclude to reflect the new @unthrown/prisma version.
  • Regenerate pnpm-lock.yaml to remove all 0.2.0 references and pin 0.3.2 consistently.

Reviewed changes

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

File Description
pnpm-workspace.yaml Updates catalog + release-age exclusion to @unthrown/prisma@0.3.2 to match pinned unthrown@5.5.0.
pnpm-lock.yaml Locks the new @unthrown/prisma@0.3.2 resolution and removes the old 0.2.0 entry throughout.
Files not reviewed (1)
  • pnpm-lock.yaml: Generated file

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

`order-infrastructure`'s `test` and `typecheck` scripts each began with
`prisma generate`, while turbo also ran the workspace's own `generate` task —
so on a cold cache the two fired concurrently and raced:

    EEXIST: file already exists, mkdir .../src/generated/prisma/models

It only shows when both tasks miss the cache at once, which a dependency change
guarantees and an ordinary run almost never does. Turbo's `test` / `typecheck` /
`test:types` now depend on `generate` as well as `^generate`, and the scripts
no longer call the generator themselves — one generator, ordered, rather than
two that usually miss each other.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@btravers
btravers merged commit 245de2e into main Aug 13, 2026
13 checks passed
@btravers
btravers deleted the fix/unthrown-prisma-pairing branch August 13, 2026 16:38
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