Skip to content

Combined critique #46: dedup tooling devDeps via bun workspace catalog - #854

Merged
Noisemaker111 merged 1 commit into
mainfrom
claude/critique-46-catalog-dedup
Jul 16, 2026
Merged

Noisemaker111 merged 1 commit into
mainfrom
claude/critique-46-catalog-dedup

Conversation

@Noisemaker111

Copy link
Copy Markdown
Owner

Problem

All 10 games + apps/dev + apps/desktop repeated an identical devDependencies block (@tailwindcss/vite, @types/react, @types/react-dom, @types/three, @react-three/drei, @vitejs/plugin-react, tailwindcss, typescript, vite) with no shared source of truth.

Fix

  • Root package.json workspaces converted from a bare string[] to the object form { packages, catalog }, with the shared dev-dep versions defined once in catalog.
  • All 10 Games/* + apps/dev + apps/desktop devDependencies now reference "catalog:" instead of a pinned version string.
  • bun install resolves the catalog refs; bun.lock committed with a new top-level "catalog" block.

Critical-order trap (handled first, same PR)

scripts/ensure-ready.ts, scripts/agent-preflight.ts, and packages/jgengine/src/pkg.ts (findWorkspaceRoot, used by the jgengine CLI's doctor/create) all read package.json.workspaces assuming a bare string[] — each now accepts both string[] and { packages, catalog? } before the root package.json was converted, so bun run agent:preflight never throws.

Untouched — flagged, not silently left

apps/web stays on its own newer stack (vite ^8.1.3, @vitejs/plugin-react ^6.0.3, @types/react-dom pinned to 19.2.3 rather than ^19) — an unexplained major-version split from the vite ^6.2.2 / @vitejs/plugin-react ^4.3.4 used everywhere else. Not part of this catalog (would need someone to confirm apps/web's upgrade was intentional and either backport it repo-wide or keep it isolated); worth a follow-up look.

packages/*, registry, examples/* also have some overlapping dev-dep versions but are out of scope here — published packages resolving through a workspace catalog at publish time wasn't verified safe, so left as-is.

Gate (local)

  • bun install — resolves catalog refs, bun.lock updated
  • bun run agent:preflight — ok (exercises the new dual-shape workspaces reader)
  • bun run build — ok
  • bun scripts/check-types-all.ts — 29/29 (baseline)
  • bun run test:all — 4503 pass, 0 fail, 1 skip

Generated by Claude Code

10 games + apps/dev + apps/desktop repeated an identical devDependencies
block. Move the shared versions into a root workspaces.catalog and
reference them with "catalog:".

ensure-ready.ts, agent-preflight.ts, and packages/jgengine/src/pkg.ts
read package.json.workspaces as a bare string[] and would have thrown
on the new object form ({ packages, catalog }) — teach all three to
accept both shapes first.

apps/web stays on its own vite 8 / @vitejs/plugin-react 6 / pinned
@types/react-dom, unrelated to the shared catalog (untouched, noted
in the PR).
@vercel

vercel Bot commented Jul 16, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
jgengine-web Ignored Ignored Preview Jul 16, 2026 1:27pm

@Noisemaker111
Noisemaker111 merged commit 459cf8d into main Jul 16, 2026
8 checks passed
@Noisemaker111
Noisemaker111 deleted the claude/critique-46-catalog-dedup branch July 16, 2026 13:52
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