Skip to content

Bring the Wapuu World easter egg to the agentic UI - #4299

Merged
wojtekn merged 5 commits into
trunkfrom
migrate-wapuu-world-to-agentic-ui
Jul 24, 2026
Merged

Bring the Wapuu World easter egg to the agentic UI#4299
wojtekn merged 5 commits into
trunkfrom
migrate-wapuu-world-to-agentic-ui

Conversation

@wojtekn

@wojtekn wojtekn commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Related issues

How AI was used in this PR

The migration was carried out with Claude Code: exploring both the legacy easter-egg module and the agentic UI's architecture, adapting the engine, wiring the connector/score layer, and writing the tests. All changes were reviewed by me, and the game and Settings score block were verified running in the browser (light + dark).

Game window Score
CleanShot 2026-07-23 at 12 46 48@2x CleanShot 2026-07-23 at 12 46 26@2x

Proposed Changes

The Wapuu World easter egg — the Konami-triggered mini platformer with a persisted high score shown in Settings — previously existed only in the legacy Studio renderer. This brings it to the agentic UI so the same easter egg is available there.

  • Entering the Konami code (↑ ↑ ↓ ↓ ← → ← → B A) anywhere in the app opens the game as a centered modal overlay over a dimmed backdrop; Escape or the close button dismisses it.
  • Winning records a high score, surfaced in Settings as a "Wapuu score" progress block with a link out to wapuu.studio. The score persists on desktop (via the existing user-data store) and in the browser targets (studio ui / hosted, via local storage).
  • The legacy renderer keeps its own copy — this is additive, not a move.

Note on adapting to apps/ui: the agentic UI has no Redux and no Tailwind, so open/close state uses a small subscribable module slot (mirroring the existing pending-blueprint pattern), the external link and score go through the Connector abstraction, and the overlay is styled with a CSS module + --wpds-color-* tokens rather than utility classes. The canvas game engine itself moved over essentially unchanged — its only host coupling (persisting the win score) is now an injected callback.

Testing Instructions

  1. Run the agentic UI and enter the Konami code: ↑ ↑ ↓ ↓ ← → ← → B A.
  2. Confirm the game opens as a centered modal over a dimmed backdrop (not stretched full-width), is playable (arrows/WASD, jump), and that Escape and the ✕ button both close it.
  3. Reach the flag to win, then open Settings and confirm the "Wapuu score" block shows the recorded score and its progress bar; check both light and dark mode.
  4. Click "Visit wapuu.studio" and confirm it opens the external URL.
  5. Confirm the legacy (classic) UI's copy still works unchanged.

Automated: npm test -- apps/ui (273 pass, incl. new Konami-hook, overlay open/close, and score-display tests) and npm run typecheck.

Pre-merge Checklist

  • Have you checked for TypeScript, React or other console errors?
Port the Konami-triggered platformer and its high-score display from the
legacy renderer to apps/ui, wiring the score through the connector layer
so it persists on desktop and in the browser targets.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@wpmobilebot

wpmobilebot commented Jul 22, 2026

Copy link
Copy Markdown
Collaborator

📊 Performance Test Results

Comparing 5267962 vs trunk

app-size

Metric trunk 5267962 Diff Change
App Size (Mac) 1362.09 MB 1364.99 MB +2.90 MB 🔴 0.2%

site-editor

Metric trunk 5267962 Diff Change
load 1047 ms 1114 ms +67 ms 🔴 6.4%

site-startup

Metric trunk 5267962 Diff Change
siteCreation 7005 ms 6972 ms 33 ms ⚪ 0.0%
siteStartup 2349 ms 2353 ms +4 ms ⚪ 0.0%

Results are median values from multiple test runs.

Legend: 🟢 Improvement (faster) | 🔴 Regression (slower) | ⚪ No change (<50ms diff)

@wojtekn
wojtekn requested review from a team, shaunandrews and youknowriad July 22, 2026 14:22
wojtekn and others added 3 commits July 23, 2026 12:38
…to-agentic-ui

# Conflicts:
#	apps/ui/src/components/settings-view/index.test.tsx
#	apps/ui/src/components/settings-view/index.tsx
#	apps/ui/src/components/settings-view/style.module.css
Reuse the Usage tab's progress-bar styles for the Wapuu score meter so it
renders consistently, instead of the custom track/fill that displayed poorly.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Use the same outline/neutral Button variant as the account "Log out" button
for the "Visit wapuu.studio" action, instead of a small minimal button.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@shaunandrews

Copy link
Copy Markdown
Contributor

Ha, I didn't know this existed! Fun!

…to-agentic-ui

# Conflicts:
#	apps/ui/src/data/core/connectors/local/index.ts
@wojtekn
wojtekn merged commit b835f1b into trunk Jul 24, 2026
13 checks passed
@wojtekn
wojtekn deleted the migrate-wapuu-world-to-agentic-ui branch July 24, 2026 08:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

3 participants