Fix build:ts: one text-only error factory in cultnet-ts (6 TS2345 in cultmesh-ts) #29

Merged
libby merged 1 commit from libby/cultmesh-ts-error-message-sites into main 2026-11-07 16:27:32 +00:00
Member

npm run build:ts was red on main: PR #20 made routingHint, code, details required on CultNetErrorMessage, and six cultmesh-ts call sites (src/index.ts) still built { schemaVersion, error }. Types are not loosened. cultnet-ts now owns cultNetTextError(error) (exported from the package root); the legacy-union decode in contracts.ts uses it (one place spelling the nulls), the six sites call it, and two test expectations in cultmesh.test.ts compare against it. CHANGELOG Added entry in cultnet-ts.

Local run (no scripts skipped)

  • npm run build:ts: clean.
  • cultmesh-ts: 219 started, 161 pass, 0 fail, 58 skipped (native QUIC on Linux).
  • cultnet-ts (whole suite, --test-force-exit): 277 run, 276 pass; the one failure is the esbuild-browser case (reads an empty package.json above the checkout, env-specific, same on main).
  • npm run test:pack:ts: closure smoke passes (4 scoped tarballs). The declared-ranges step after it still fails, unchanged (below).

Not changed: declared-ranges

cultmesh-ts declares @gamecult/cultcache-ts ^0.14.0, which admits tag cultcache-ts-v0.14.0; that tag lacks SchemaConflictError, schemaIdentityOf and four payload exports. They sit under cultcache-ts's Unreleased CHANGELOG, after 0.14.2, so bumping to ^0.14.1/^0.14.2 would be wrong (neither has them) and would only pass because those versions carry no tag. The fix is to release cultcache-ts (tag it) and then raise cultmesh-ts to that version.

🤖 Generated with Claude Code

`npm run build:ts` was red on main: PR #20 made `routingHint`, `code`, `details` required on `CultNetErrorMessage`, and six cultmesh-ts call sites (`src/index.ts`) still built `{ schemaVersion, error }`. Types are not loosened. cultnet-ts now owns `cultNetTextError(error)` (exported from the package root); the legacy-union decode in `contracts.ts` uses it (one place spelling the nulls), the six sites call it, and two test expectations in `cultmesh.test.ts` compare against it. CHANGELOG Added entry in cultnet-ts. ## Local run (no scripts skipped) - `npm run build:ts`: clean. - cultmesh-ts: 219 started, 161 pass, 0 fail, 58 skipped (native QUIC on Linux). - cultnet-ts (whole suite, `--test-force-exit`): 277 run, 276 pass; the one failure is the esbuild-browser case (reads an empty `package.json` above the checkout, env-specific, same on main). - `npm run test:pack:ts`: closure smoke passes (4 scoped tarballs). The declared-ranges step after it still fails, unchanged (below). ## Not changed: declared-ranges cultmesh-ts declares `@gamecult/cultcache-ts ^0.14.0`, which admits tag `cultcache-ts-v0.14.0`; that tag lacks `SchemaConflictError`, `schemaIdentityOf` and four payload exports. They sit under cultcache-ts's *Unreleased* CHANGELOG, after 0.14.2, so bumping to ^0.14.1/^0.14.2 would be wrong (neither has them) and would only pass because those versions carry no tag. The fix is to release cultcache-ts (tag it) and then raise cultmesh-ts to that version. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
cultnet-ts, cultmesh-ts: one factory for the text-only error message
Some checks failed
CultMesh QUIC native / Build win32-x64 (pull_request) Has been skipped
CultMesh QUIC native / Build linux-x64 (pull_request) Has been skipped
CultMesh QUIC native / Release native binaries (pull_request) Has been skipped
CultMesh portability and performance / ubuntu-latest reactive semantics and leases (pull_request) Failing after 5m15s
CultMesh QUIC native / Verify committed binaries match SHA256SUMS (pull_request) Successful in 26s
d0fcd3e36e
PR #20 made routingHint, code and details required on CultNetErrorMessage; six call sites in
cultmesh-ts still built the message without them, so build:ts failed with TS2345. cultnet-ts
now owns cultNetTextError(error), the legacy-union decode uses it too, and the call sites
and two test expectations call it. The types are unchanged.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
libby merged commit da515b0f5e into main 2026-11-07 16:27:32 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
GameCult/CultLib!29
No description provided.