Skip to content

✨ Add GPT 5.6 Luna Tile Matching — Lunar Array - #73

Merged
sasler merged 4 commits into
mainfrom
feat/tile-matching-gpt-5-6-luna
Jul 31, 2026
Merged

✨ Add GPT 5.6 Luna Tile Matching — Lunar Array#73
sasler merged 4 commits into
mainfrom
feat/tile-matching-gpt-5-6-luna

Conversation

@sasler

@sasler sasler commented Jul 31, 2026

Copy link
Copy Markdown
Owner

Summary

Adds the standalone GPT 5.6 Luna version of Tile Matching at public/games/tile-matching/gpt-5-6-luna/index.html.

  • 8x8 Lunar Array campaign with 8 missions, blockers, masks, side gravity, dual objectives, and Orbit Run endless mode
  • Six shape-coded tiles with Beam, Moonburst, Eclipse Core, fusion matrix, hints, shuffles, dead-board recovery, and Lunar Pulse direction control
  • Responsive observatory layout with mouse, keyboard, and pointer/touch controls
  • Sensory pass: faceted/extruded gem materials, animated pop/fall/glint motion, layered glass board framing, orbiting nebula/starfield atmosphere, animated selection/hint/Pulse reticles, frosted blocker depth, impact sparks, and score floaters
  • Layered procedural Web Audio ambience/music plus richer event-specific feedback for selections, swaps, rejects, matches, cascades, specials, fusions, blockers, Pulse, hints, shuffles, victory, and failure
  • Test-only deterministic API exposed only under ?test=1
  • Review follow-up: attainable Eclipse Gate objective, immediate Pulse/shuffle end-state checks, valid ring coordinates, capped music catch-up, HUD live-region fix, and corrected pointer-test typing
  • Existing Opus 5 Tile Matching is unchanged

Validation

  • npm test -- tests/tile-matching-luna.spec.ts — 14 passed
  • npm test -- tests/model-identity.spec.ts tests/smoke.spec.ts — 32 passed previously; no identity/smoke files changed in the review follow-up
  • npm run lint — passed
  • npm run validate:game-assets — passed previously; no asset files changed in the review follow-up
  • Metadata synchronized with npm run update-metadata — 893 lines, sound/music/particles/powerups detected
  • Manual desktop and 390x844 responsive visual review — passed
  • Required aggregate PR check remains authoritative before merge

Co-authored-by: GPT 5.6 Luna <gpt-5-6-luna@openai.com>
@vercel

vercel Bot commented Jul 31, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
brainrot Ready Ready Preview Jul 31, 2026 10:57am

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 48f8cecee8

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread public/games/tile-matching/gpt-5-6-luna/index.html Outdated
Comment thread public/games/tile-matching/gpt-5-6-luna/index.html Outdated
Comment thread public/games/tile-matching/gpt-5-6-luna/index.html
Comment thread public/games/tile-matching/gpt-5-6-luna/index.html Outdated

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new standalone Tile Matching implementation for OpenAI GPT 5.6 Luna (“Lunar Array”), wires it into the catalog/metadata, and introduces dedicated deterministic Playwright coverage for the new version.

Changes:

  • Added the standalone game at /public/games/tile-matching/gpt-5-6-luna/index.html with a deterministic test API behind ?test=1.
  • Added a focused Playwright spec for Lunar Array and updated model identity expectations for the extra Tile Matching card.
  • Registered the new version in games-metadata.json and updated README version counts/LOC table.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
tests/tile-matching-luna.spec.ts New deterministic Playwright coverage for Lunar Array (missions, specials/fusions, pulse, input modes, responsive HUD, and test-mode API gating).
tests/model-identity.spec.ts Updates expected Tile Matching model card count and includes “OpenAI GPT 5.6 Luna”.
README.md Bumps Tile Matching version count and adds Luna’s Tile Matching LOC entry.
public/games/tile-matching/gpt-5-6-luna/index.html New standalone Lunar Array game (canvas board, HUD/screens, deterministic API in test mode, audio/music, specials, campaign/endless).
games-metadata.json Registers the GPT 5.6 Luna Tile Matching version and its detected features.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread tests/tile-matching-luna.spec.ts Outdated
Comment thread public/games/tile-matching/gpt-5-6-luna/index.html
Comment thread public/games/tile-matching/gpt-5-6-luna/index.html
Co-authored-by: GPT 5.6 Luna <gpt-5-6-luna@openai.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 5 out of 5 changed files in this pull request and generated no new comments.

Suppressed comments (2)

tests/tile-matching-luna.spec.ts:343

  • TypeScript type for point only includes x/y, but the code accesses point.w and point.h, which will fail type-checking for this spec file.
      const emit = (type: string, point: { x: number; y: number }) => canvas.dispatchEvent(new PointerEvent(type, {
        bubbles: true,
        clientX: point.x + point.w / 2,
        clientY: point.y + point.h / 2,

public/games/tile-matching/gpt-5-6-luna/index.html:885

  • This startup sequence calls parseTerrain(MISSIONS[0].mask) multiple times (one call’s return value is unused) and repeats work unnecessarily. Compute it once and reuse the result for mask/blockers.
  buildMissionMap(); resize(); parseTerrain(MISSIONS[0].mask); state.info = MISSIONS[0]; state.mask = parseTerrain(MISSIONS[0].mask).mask; state.blockers = parseTerrain(MISSIONS[0].mask).blockers; generateBoard(); installTestApi(); showScreen("title"); updateHud(); requestAnimationFrame(tick);

Co-authored-by: GPT 5.6 Luna <gpt-5-6-luna@openai.com>
Co-authored-by: GPT 5.6 Luna <gpt-5-6-luna@openai.com>

sasler commented Jul 31, 2026

Copy link
Copy Markdown
Owner Author

Review follow-up complete. The seven actionable threads were replied to and resolved. The suppressed Copilot startup note was also addressed in aa2e523 by reusing one parseTerrain() result during initialization. Focused Luna coverage is now 14/14 passing.

@sasler
sasler merged commit 9f6b9fa into main Jul 31, 2026
8 checks passed
@sasler
sasler deleted the feat/tile-matching-gpt-5-6-luna branch July 31, 2026 11:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants