Shared Upstream Candidates
These are the kinds of changes that should be offered as clean pull requests because they help the base project without giving away Cryptic Realm-only economy, realm, or lore systems.
Cryptic Realm-Only Work
These stay in the private/independent track because they define this game and should not be handed over as generic upstream value.
$CR Platinum economy Exchange realm Cryptic Realm lore Infernal / Classic / Dominion / Arcane realms Original mini-games Private custody runbooksLive Upstream Pull Requests
Real, open pull requests offered back to world-of-claudecraft. Each one is sanitized of Cryptic Realm-only branding, economy, and lore, and is proven with tests + a clean build before it is sent. These are receipts: an open PR on the base project is proof the work was contributed.
- PR #1530 — fix(hud): guard entry HUD-ctor id parityHardens a class of renderer boot-crash: the HUD constructor resolves dozens of elements up front, and a missing id on one entry page silently null-crashes the whole HUD. Adds a test asserting every ctor-required id exists in both entry pages — and it immediately caught a live one (a target-frame element missing from /play), which the PR also fixes.
- PR #1529 — feat(desktop): Tauri desktop shellA lightweight, Rust-based Tauri desktop wrapper — an alternative to the Electron build with much smaller binaries. Thin webview that loads the live game; app identity is configurable and all icons ship as neutral placeholders for the maintainers to replace.
- PR #1516 — fix(render): boot prewarm skips lazyPreload visualsFixes a boot crash: the shader-prewarm sweep tried to build models flagged for on-demand loading, throwing "asset not preloaded" and killing the renderer. Now it skips lazy visuals the same way the preload sweep already does.
- PR #1290 — fix(tests): architecture seam gate on WindowsAn architecture guard test used a hard-coded path separator, so it failed on Windows checkouts. Normalizes the path lookup so the gate passes cross-platform.
- PR #1097 — feat(prop-assets): serve external Builder GLBsAdds server routes to serve external prop models (
/props,/api/propscatalog) and an admin upload endpoint, so the in-world Builder can place custom GLB assets. Pairs with the Builder's on-demand loader. - PR #1095 — feat(hardcore): opt-in permadeath modeAn opt-in per-character hardcore flag where death is permanent — the spirit release becomes a no-op for deceased characters. Additive persisted state, no change to the shared wire protocol.
- PR #1056 — feat(world-builder): server-authoritative prop placementThe full in-world Builder: place/edit props live, with the server as the authority. Props ride the entity roster (no new snapshot key), fitting the base project's parity gates. The largest contribution.
- PR #628 — fix(css): mobile viewport right-shiftDefaults the app viewport CSS variables to 100% so the layout doesn't shift right on mobile before JS measures the screen.
- PR #627 — feat(realms): realm-overlay frameworkA generic framework for layering alternate "realms" on the base game: a realm registry, item-rarity hooks, and a pickit-style filter — the reusable scaffolding, with Cryptic Realm's own realm content kept private.
- PR #626 — feat(admin): opt-in self-update endpointAn optional admin self-update endpoint, control panel, and script so an operator can pull and redeploy the server safely from the admin UI.
- PR #624 — feat(auth): OIDC SSO + dashboardsOIDC single sign-on wiring plus moderator and user dashboards — generic account/auth infrastructure any deployment can use.
Current Proof Trail
- Shared upstream candidates are prepared separately before they are offered back to the upstream project.
- Upstream project reference: github.com/levy-street/world-of-claudecraft
- Public news cards on Cryptic Realm News show $CR, platinum, alpha/beta cadence, and shared-work updates.
- Public token proof stays on Official Links; admin custody details stay out of public pages.