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

Comic toon look + leaderboard scope fix - #12

Merged
dev0zzz merged 3 commits into
mainfrom
feat/comic-toon-look
Aug 4, 2026
Merged

Comic toon look + leaderboard scope fix#12
dev0zzz merged 3 commits into
mainfrom
feat/comic-toon-look

Conversation

@dev0zzz

@dev0zzz dev0zzz commented Aug 4, 2026

Copy link
Copy Markdown
Owner

Summary

  • Comic toon look: every lit MeshStandardMaterial becomes a MeshToonMaterial at build time (toonifyScene, banded gradient map). A ComicOutlinePass draws ink lines from depth/normal edges; the grade pass lifts exposure, pulls neutral mids toward Tessera gold (saturated signal colors like the red finish stay untouched), adds manga speed lines above ~55% of MAX_SPEED and a soft vignette. Solid track plates are brighter so gaps read as black holes with ink edges. The hazard codex previews run through the same pipeline.
  • Leaderboard scope fix: dev loopback OAuth clients only got the bare atproto scope, so score writes failed with Missing required scope repo:at.tessera.skytess.score. The SDK now carries the scope in the loopback client_id; prod client-metadata.json requests the same granular scope. Existing sessions need one re-login.
  • SDK migration: consumes @dev0zzz.tessera.at/sdk@0.10.3 from registry.tessera.at (scope-per-handle, Ed25519-signed publish) instead of @tesseraat/sdk from npmjs.

Test plan

  • 264 unit tests green, tsc + vite build clean
  • Verified in-browser: toon shading, outlines, gap readability, codex previews, speed lines
  • OAuth authorize request carries atproto repo:at.tessera.skytess.score
  • Re-login once, finish a run, confirm the score lands on the leaderboard

🤖 Generated with Claude Code

https://claude.ai/code/session_01AkRn3wzWCmsTrQufGWaRH7

dev0zzz and others added 3 commits August 4, 2026 07:37
Every lit MeshStandardMaterial is swapped for MeshToonMaterial at build
time (toonifyScene, banded gradient map). A ComicOutlinePass draws ink
lines from depth/normal edges; the CelShadePass grade lifts exposure,
pulls neutral mids toward Tessera gold (saturated signal colors exempt),
and adds speed lines above ~55% of MAX_SPEED plus a soft vignette.
Solid track plates are brighter so missing tiles read as black holes.
The hazard codex previews run through the same pipeline.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AkRn3wzWCmsTrQufGWaRH7
Loopback dev clients only got the bare 'atproto' scope, so score writes
failed with 'Missing required scope repo:at.tessera.skytess.score'.
The SDK (now @dev0zzz.tessera.at/sdk@0.10.3, served from
registry.tessera.at) carries the scope in the loopback client_id;
prod client-metadata.json requests the same granular scope. Existing
sessions need one re-login to pick it up.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AkRn3wzWCmsTrQufGWaRH7
- Dockerfile: copy .npmrc before pnpm install — without the scoped
  registry mapping the Docker build 404s on @dev0zzz.tessera.at/sdk
- toonifyScene: carry blending/depthWrite/depthTest/alphaTest into the
  toon clone; the ghost ship's additive hologram look was silently
  reverting to normal blending with depth writes
- drop dead '@tesseraat/sdk: link:' override from pnpm-workspace.yaml
- guard test: client-metadata.json scope must match auth.ts OAUTH_SCOPE
- codex preview: drive the grade pass time uniform (speed stays 0)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AkRn3wzWCmsTrQufGWaRH7
@dev0zzz

dev0zzz commented Aug 4, 2026

Copy link
Copy Markdown
Owner Author

Adversarial self-review (2 parallel reviewers: render pipeline & material lifecycle, OAuth scope & registry migration) — all confirmed findings fixed in d155052:

  • Critical: Dockerfile didn't copy .npmrc before pnpm install → the Coolify/Docker build 404'd on @dev0zzz.tessera.at/sdk (reproduced via actual image build). Fixed.
  • Critical: toonifyScene dropped blending/depthWrite when cloning materials → the ghost ship's additive hologram look silently reverted to muddy normal blending with wrong occlusion. Fixed and visually verified.
  • Minor: removed a dead @tesseraat/sdk: link: override from pnpm-workspace.yaml; added a guard test asserting client-metadata.json scope == auth.ts OAUTH_SCOPE; codex preview now drives the grade pass uniforms.

Conscious waiver: SceneRenderer.time accumulates unbounded; after many hours of continuous attract-mode the speed-line hash may degrade cosmetically (sin() precision). Not fixed — cosmetic, slow onset, no crash path.

Scope logic itself was verified end-to-end against @atproto/pds source: repo:at.tessera.skytess.score without action qualifier covers create+update+delete, so putRecord is fully covered; listRecords/describeRepo are unauthenticated reads.

@dev0zzz
dev0zzz merged commit 03db845 into main Aug 4, 2026
2 checks passed
@dev0zzz
dev0zzz deleted the feat/comic-toon-look branch August 4, 2026 05:56
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