Skip to content

chore: merge upstream/dev into the embed fork - #26

Merged
imconnorngl merged 167 commits into
devfrom
chore/merge-upstream-2026-10-21
Oct 21, 2026
Merged

imconnorngl merged 167 commits into
devfrom
chore/merge-upstream-2026-10-21

Conversation

@imconnorngl

Copy link
Copy Markdown
Member

Merges the latest SkyCryptWebsite/SkyCrypt-Frontend dev (166 commits) into the fork. It's a merge, not a rebase, so dev history is preserved.

What upstream brought in

  • SvelteKit 3: $app/env/* replaces $env/dynamic/*, #lib/* replaces $lib/*, config lives in vite.config.ts.
  • Logging: evlog replaces Sentry. The tunnel route, instrumentation.server.ts and the CMS mutator are deleted.
  • The newsroom, banners and profile emoji now read from Postgres/R2 instead of the Payload CMS.
  • New route matchers: /stats/[ign=ign]/[[profile=profile]].

How the embed behaviour was kept

  • Workers: @sveltejs/adapter-cloudflare bumped to ^8.0.1, the Kit 3 release. Hooks keep upstream's evlog setup, but there's no better-auth, protected-route redirects, startup migrations or frame-locking. The handleFetch User-Agent override is kept.
  • API token: the Secrets Store binding is still resolved at request time. One change: $app/env/private returns "" for unset vars, so the fallback to the binding now uses || instead of ??.
  • API fetcher: still forwards only the enabledPacks cookie, not every browser header. It gains upstream's toBackendPath and the X-Maintenance-Bypass header for prerendering.
  • Card: still no native takumi Renderer, so fonts are passed per response. It now uses upstream's lazy asset loading, render semaphore and fetchCache. The server-side player render is fetched from skins.mcstats.com.
  • Image proxy: stays fetch-based. Upstream's new node:http helper uses a custom DNS lookup, which doesn't run reliably on Workers.
  • No DB-backed UI on public pages: I dropped the profile emoji, the homepage newsroom section, site banners and the newsroom toast. Before this, a local workerd run returned 500 on / because the newsroom query fails without a DB.
  • Layout: the embed layout is kept, with no header or footer. Main keeps its static skin column and the stats page doesn't render upstream's SkinColumn, so Skin3D never loads.
  • Settings: upstream's new "Beta Version" toggle is left out of Misc, like the other removed toggles.
  • Third-party images: the new upstream nmsr.nickac.dev usages (UserChip, Discord embed, dashboard, SkinColumn) now point to skins.mcstats.com.

API URL

  • PUBLIC_SERVER_API_URL is now https://api.shiiyu.moe/api/ in every wrangler env and the deploy workflow, matching upstream.
  • PUBLIC_API_URL is removed. Nothing reads it any more.
  • Both sky.shiiyu.moe and api.shiiyu.moe now return https://api.shiiyu.moe/... asset URLs, which the old rewrite (sky.shiiyu.moe only) missed. The texture proxy now rewrites all three public hosts (api, beta-api, sky).

Checks run locally

  • pnpm check: 0 errors. The 2 warnings are in upstream's tiptap component.
  • eslint: clean. oxfmt --check: clean apart from the CLAUDE.md symlink on a Windows checkout.
  • pnpm test: 347/347 passing.
  • pnpm build with adapter-cloudflare succeeds. wrangler deploy --dry-run passes for both envs and shows the bindings. Upload is 3.87 MiB gzipped.
  • Local workerd: /textures serves item and resource-pack images from api.shiiyu.moe.

Still needs checking on the preview deploy

  • Stats pages and cards haven't been tested end to end with a real token. The local Secrets Store has no skycrypt-server-api-key. On the preview, check that /stats/<ign> and /stats/<ign>/card render.
  • The card's font and logo fetches use PUBLIC_ORIGIN, which isn't set in wrangler.jsonc. That was already true before this merge. If cards come back as the error card, set it.
  • /newsroom and the dashboard routes need Postgres and will error on the embed, as the CMS-backed versions would have without the CMS.

DarthGigi and others added 30 commits August 22, 2026 01:04
- Add secure component embed serialization with profile links and player data
- Add embed generation tests and discord-api-types dependency
- Preserve saved resource-pack preferences across builds
- Display the prerender version and add cache regression coverage
- Append SkyCrypt campaign parameters to all profile buttons
- Update embed link expectations
Add Discord component embeds and improve caching
- Prefer the player's plus color, then rank color
- Fall back to the default preview color when invalid or unavailable
Signed-off-by: Gigi <47110839+DarthGigi@users.noreply.github.com>
Fix capitalization and add discord invite to the embed
Redesign Discord embeds and update package version
github-actions Bot and others added 27 commits October 21, 2026 00:27
Fix origin validation logic in client logs handler
Fix navigation in ListItem component and update cache control
- POST /api/internal/api-keys/verify wraps auth.api.verifyApiKey, which
  better-auth only exposes on the server
- POST /api/internal/api-keys/usage stores the request counts the backend
  enforces
- disable better-auth's API key rate limiter, since the backend enforces
  limits, and keep it on for new keys
- point the API docs links at api.shiiyu.moe/openapi
…end-api-key-routes

feat: internal API key routes for the Go backend
Implement internal API key routes for Go backend
- Skip the respin when the route IGN matches the loaded skin's UUID or username
- Pass the full player (uuid and username) into Skin3D so it can compare against the route
- Preload the skin texture during the slowdown so the viewer load hits the cache
- Shorten the landing delay from 600ms to 300ms and tighten the slowdown timing
Brings in 166 upstream commits (SvelteKit 3, $app/env, #lib imports, evlog,
in-house newsroom) while keeping the embed's Cloudflare Workers behaviour:

- adapter-cloudflare 8 (Kit 3), no better-auth/migrations/frame-locking in hooks,
  Lunar Client User-Agent on every outbound fetch
- Workers-safe card rendering (no native takumi Renderer), player render from
  skins.mcstats.com, fetch-based image proxy
- no DB-backed UI on public pages (profile emoji, homepage newsroom, site banners)
- embed layout kept: no header/footer, own static skin column instead of SkinColumn
- point PUBLIC_SERVER_API_URL at api.shiiyu.moe and drop the unused PUBLIC_API_URL;
  the texture proxy now rewrites api/beta-api/sky.shiiyu.moe asset URLs
- new upstream nmsr.nickac.dev usages mapped to skins.mcstats.com
@imconnorngl
imconnorngl merged commit 86e9d79 into dev Oct 21, 2026
12 checks passed
@imconnorngl
imconnorngl deleted the chore/merge-upstream-2026-10-21 branch October 21, 2026 17:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

4 participants