Skip to content
This repository was archived by the owner on Oct 25, 2026. It is now read-only.

LLMville moves in: the shared-world AI-lab tycoon builds on engine-ref with its Convex backend - #263

Merged
Noisemaker111 merged 1 commit into
betafrom
agent/llmville-move
Oct 25, 2026
Merged

Noisemaker111 merged 1 commit into
betafrom
agent/llmville-move

Conversation

@Noisemaker111

@Noisemaker111 Noisemaker111 commented Oct 25, 2026 •

Copy link
Copy Markdown
Owner

What changed

LLMville (React web client + @llmville/game + Convex backend, accounts, shared multiplayer world) moves in whole as llmville/, built on the engine in engine-ref.txt (0.19 on npm before, engine source e87ceb5 now).

  • Layout: the old apps/web is llmville/ (@games/llmville, found by gameDirs); packages/game and packages/backend sit under llmville/packages/*, added to the root workspaces. Root catalog gains @jgengine/convex (so engine:sync builds and links it), convex, better-auth, @convex-dev/better-auth, zod, dotenv.
  • Snapshot of Noisemaker111/LLMville master (3e2e552), without history: that repo is private and this one is public, so importing 566 commits would publish every past file; history stays in the old repo. Dropped non-game tooling (mcps/, .cursor/, turbo, eslint, opencode) and the deploy workflows. Open LLMville PR harbor-heat: weapon runtime needs the reserve adapter and a shot-presentation seam #156 (cloud setup / prod smoke) was not carried over.
  • Engine adoption: packages/game/src/world/cityHash.ts drops its hand-rolled FNV-1a and mulberry32 for @jgengine/core/random/rng (hashString, stepRandomSeed); a new test pins the exact values saved worlds were placed with.
  • Type fixes for the newer toolchain only (types: ["node"], catalog @types/react so R3F's JSX augmentation lands).
  • check:framework false positives fixed with tests: a type X = "a" | ... declaration no longer counts as a state transition, and dueAt/nextRunAt/scheduledAt only mark a scheduler where the module also drains a queue. Two React setPhase setters renamed.
  • llmville/capabilities.json (36 adopted, 50 not-applicable, 0 debt), README design checklist, llmville-first-model flow.

Engine seam

Engine seam: none - LLMville moved in whole; it adopts the existing @jgengine/core/random/rng and needs no engine change

Checks

  • verify:fast passed (45/45); llmville: 0 type errors in web, game and Convex; 352 tests pass; vite build succeeds.
  • Played locally against a local anonymous Convex: signed up a test account, bought and placed a rack, bought and installed 2 GPUs, licensed Alpaca 1, collected data, fine-tuned Llamma 3 Mini, revealed and served it; cash started rising. Signing in from the old client on the same backend showed the same world and the same view, so the camera and UI match production.
  • Not verified: the drive flow headless, bots/agent API, Google sign-in, two simultaneous players.

Switching production (not done; Jon decides)

Production keeps deploying from Noisemaker111/LLMville master. To move it: point Cloudflare Workers Builds for Worker llmville at this repo (root llmville, build bun install --frozen-lockfile && bun run engine:sync && bun --cwd=llmville run build, deploy bunx wrangler deploy with llmville/wrangler.jsonc) - note the build needs the engine checkout, so a GitHub Action that builds and runs wrangler deploy is simpler; add a deploy-convex workflow here with the CONVEX_DEPLOY_KEY secret; then disable both in the old repo.

🤖 Generated with Claude Code

@Noisemaker111
Noisemaker111 merged commit 4fe1dd4 into beta Oct 25, 2026
2 of 4 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant