Skip to content

Add built-in Circuit Shift retro game - #31

Merged
randroid88 merged 3 commits into
mainfrom
codex/real-retro-catalog-game
Aug 11, 2026
Merged

Add built-in Circuit Shift retro game#31
randroid88 merged 3 commits into
mainfrom
codex/real-retro-catalog-game

Conversation

@randroid88

Copy link
Copy Markdown
Contributor

Summary

  • add Circuit Shift, an original offline tile-merging game, as the first immediately playable Retro catalog entry
  • route D-pad, Back, and Home through the existing console launcher lifecycle and persist bounded progress locally
  • keep libretro packages behind signed native inventory while marking only the exact built-in manifest as installed
  • refresh catalog, TV, font, and source-binding evidence for the expanded launcher

Verification

  • pnpm typecheck
  • pnpm build
  • pnpm test (1,091 evidence/policy tests plus all workspace package tests)
  • pnpm test:e2e (83 passed)

Qualification boundary

Browser and synthetic standard-controller behavior are verified. Physical Raspberry Pi, television, and controller behavior remains pending on-device qualification.

@coderabbitai

coderabbitai Bot commented Aug 11, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 0f49370d-30f7-4b4d-b904-ac8455726194

📥 Commits

Reviewing files that changed from the base of the PR and between b8d94d7 and 2c45d29.

📒 Files selected for processing (37)
  • apps/console-lab/src/launcher/CircuitShiftGame.svelte
  • apps/console-lab/src/launcher/Launcher.svelte
  • apps/console-lab/tests/console-flow.spec.ts
  • benchmarks/camera-angle/fixed-angle-escalation-evidence-plan-v1.json
  • benchmarks/camera-cabling/cross-tier-camera-cable-plan-v1.json
  • benchmarks/camera-geometry/cross-tier-camera-placement-geometry-plan-v1.json
  • benchmarks/camera-service/camera-replacement-recalibration-plan-v1.json
  • benchmarks/camera-state/physical-shutter-camera-state-experience-plan-v1.json
  • benchmarks/controller-only-usability/cross-tier-controller-only-usability-plan-v1.json
  • benchmarks/cross-tier-reference/pi5-x86-product-contract-plan-v1.json
  • benchmarks/csi-fallback/pi5-camera-module-3-wide-csi-fallback-plan-v1.json
  • benchmarks/depth-comparison/oak-d-pro-w-rgb-depth-comparison-plan-v1.json
  • benchmarks/depth-interference/cross-device-ir-interference-safety-plan-v1.json
  • benchmarks/enclosure/pi5-integrated-enclosure-reference-build-plan-v1.json
  • benchmarks/failure-critical-substitutes/cross-tier-failure-critical-substitute-plan-v1.json
  • benchmarks/first-party-motion-adaptation/first-party-motion-adaptation-ranking-plan-v1.json
  • benchmarks/font-coverage/ocra-font-structural-evidence-v1.json
  • benchmarks/font-coverage/windows-x64-chrome-151-ocra-platform-fallback-v1.json
  • benchmarks/idle-energy/cross-tier-idle-energy-plan-v1.json
  • benchmarks/kiosk-compositor/cross-tier-kiosk-compositor-plan-v1.json
  • benchmarks/lens-calibration/cross-tier-lens-distortion-rectification-plan-v1.json
  • benchmarks/libretro/supervised-libretro-frontend-qualification-plan-v1.json
  • benchmarks/orbbec/gemini-335l-linux-target-plan-v1.json
  • benchmarks/pi5-hdmi-cec/pi5-hdmi-audio-cec-plan-v1.json
  • benchmarks/realsense/d455-linux-target-plan-v1.json
  • benchmarks/room-survey/living-room-play-zone-plan-v1.json
  • benchmarks/shutdown-reserve/pi5-shutdown-reserve-comparison-plan-v1.json
  • benchmarks/steam-machine-os-comparison/steam-machine-steamos-windows-comparison-plan-v1.json
  • benchmarks/system-economics/complete-system-economics-plan-v1.json
  • benchmarks/tv-appliance/cross-tier-tv-appliance-plan-v1.json
  • benchmarks/tv-conformance/windows-x64-chrome-150-launcher-home-tv-conformance-v1.json
  • benchmarks/tv-conformance/windows-x64-chrome-150-launcher-representative-surfaces-tv-conformance-v1.json
  • benchmarks/tv-conformance/windows-x64-chrome-150-launcher-search-tv-conformance-v1.json
  • benchmarks/tv-visual-tokens/physical-tv-visual-token-plan-v1.json
  • benchmarks/visual-robustness/cross-tier-visual-robustness-plan-v1.json
  • scripts/validate-launcher-tv-conformance-evidence.mjs
  • scripts/validate-ocra-platform-fallback-evidence.mjs
📜 Recent review details
⏰ Context from checks skipped due to timeout. (4)
  • GitHub Check: native / windows-latest
  • GitHub Check: e2e / ubuntu-latest
  • GitHub Check: node / windows-latest
  • GitHub Check: node / ubuntu-latest
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2026-08-11T02:09:53.271Z
Learnt from: randroid88
Repo: Randroids-Dojo/VCG-Console PR: 28
File: benchmarks/tv-conformance/windows-x64-chrome-150-launcher-home-tv-conformance-v1.json:0-0
Timestamp: 2026-08-11T02:09:53.271Z
Learning: In TV conformance evidence JSON files under benchmarks/tv-conformance, do not flag the coexistence of the chrome-150 artifact/generator naming with Chrome/151.0.7922.76 browser metadata when a PR only refreshes source or build bindings. Treat this as an established repository-wide convention unless the PR changes the naming or browser-version convention itself.

Applied to files:

  • benchmarks/tv-conformance/windows-x64-chrome-150-launcher-representative-surfaces-tv-conformance-v1.json
  • benchmarks/tv-conformance/windows-x64-chrome-150-launcher-home-tv-conformance-v1.json
  • benchmarks/tv-conformance/windows-x64-chrome-150-launcher-search-tv-conformance-v1.json
🔇 Additional comments (13)
benchmarks/tv-conformance/windows-x64-chrome-150-launcher-search-tv-conformance-v1.json (1)

6-9: LGTM!

Also applies to: 50-50, 70-72, 402-402, 432-439, 448-451, 959-959, 989-996, 1005-1008, 1036-1037, 1516-1516, 1546-1562, 1593-1594, 1980-1981, 2036-2036, 2052-2060, 2077-2083

scripts/validate-launcher-tv-conformance-evidence.mjs (1)

128-129: LGTM!

scripts/validate-ocra-platform-fallback-evidence.mjs (1)

46-47: LGTM!

benchmarks/font-coverage/ocra-font-structural-evidence-v1.json (1)

727-728: LGTM!

Also applies to: 871-873, 881-883, 951-963, 1056-1058, 1271-1277, 1333-1339

benchmarks/font-coverage/windows-x64-chrome-151-ocra-platform-fallback-v1.json (1)

70-71: LGTM!

Also applies to: 99-105, 122-123

benchmarks/tv-conformance/windows-x64-chrome-150-launcher-home-tv-conformance-v1.json (1)

6-6: LGTM!

Also applies to: 165-166, 204-204, 216-224, 241-242

benchmarks/tv-conformance/windows-x64-chrome-150-launcher-representative-surfaces-tv-conformance-v1.json (1)

6-9: LGTM!

Also applies to: 393-394, 433-433, 447-451, 474-475

benchmarks/camera-service/camera-replacement-recalibration-plan-v1.json (1)

45-55: 🗄️ Data Integrity & Integration

No source-binding changes are required. All listed bindings match their normalized UTF-8 source contents, with no missing sources, line-ending errors, digest drift, or conflicting records.

			> Likely an incorrect or invalid review comment.
benchmarks/camera-state/physical-shutter-camera-state-experience-plan-v1.json (1)

51-51: 🗄️ Data Integrity & Integration

Source-binding digests are consistent.

All 21 listed bindings match the referenced files after CRLF-to-LF normalization.

benchmarks/enclosure/pi5-integrated-enclosure-reference-build-plan-v1.json (1)

33-33: 🗄️ Data Integrity & Integration

Source binding digests are consistent

All listed source bindings match their referenced bytes and use consistent digests.

apps/console-lab/src/launcher/CircuitShiftGame.svelte (1)

16-16: LGTM!

Also applies to: 34-36, 83-83

apps/console-lab/src/launcher/Launcher.svelte (1)

482-483: LGTM!

apps/console-lab/tests/console-flow.spec.ts (1)

2318-2318: LGTM!


📝 Walkthrough

Walkthrough

Adds Circuit Shift as an offline built-in game in the console launcher. The change includes game logic, persistence, controller input, catalog metadata, launcher routing, tests, and refreshed search, conformance, and benchmark evidence.

Changes

Circuit Shift game integration

Layer / File(s) Summary
Game engine and persistence
apps/console-lab/src/launcher/circuit-shift.ts, apps/console-lab/src/launcher/circuit-shift.test.ts
Adds the 4×4 board, movement, merging, scoring, spawning, game-over detection, serialization, restoration, and validation.
Game interface and input
apps/console-lab/src/launcher/CircuitShiftGame.svelte
Adds the game UI, keyboard and console input, local-storage persistence, restart behavior, accessibility labels, and responsive styling.
Launcher routing and game lifecycle
apps/console-lab/src/launcher/Launcher.svelte, apps/console-lab/src/launcher/types.ts
Adds supervised local-web launching, the retro-game view, controller routing, Back navigation, built-in installation status, and catalog dispatch.
Catalog and end-to-end coverage
catalog/circuit-shift.vcg-game.json, catalog/launcher-policy.json, packages/launcher-catalog/..., apps/console-lab/tests/console-flow.spec.ts
Registers Circuit Shift, permits local-web retro runtimes, and tests discovery, launch, input, persistence, and return navigation.

Evidence and benchmark refresh

Layer / File(s) Summary
Search conformance expectations
apps/console-lab/tests/tv-conformance.spec.ts, scripts/*launcher-search-tv*, scripts/validate-launcher-tv-conformance-evidence.mjs, scripts/validate-ocra-platform-fallback-evidence.mjs, benchmarks/tv-conformance/*
Updates search counts from 21 to 22 results and refreshes related measurements, screenshots, hashes, and asset names.
Generated source and asset metadata
benchmarks/font-coverage/*, benchmarks/tv-conformance/*
Refreshes source inventories, provenance hashes, production tree counts, and generated asset references.
Benchmark source bindings
benchmarks/camera-*/..., benchmarks/controller-only-usability/..., benchmarks/cross-tier-reference/..., benchmarks/csi-fallback/..., benchmarks/depth-*/..., benchmarks/enclosure/..., benchmarks/failure-critical-substitutes/..., benchmarks/first-party-motion-adaptation/..., benchmarks/idle-energy/..., benchmarks/kiosk-compositor/..., benchmarks/lens-calibration/..., benchmarks/libretro/..., benchmarks/orbbec/..., benchmarks/pi5-hdmi-cec/..., benchmarks/realsense/..., benchmarks/room-survey/..., benchmarks/shutdown-reserve/..., benchmarks/steam-machine-os-comparison/..., benchmarks/system-economics/..., benchmarks/tv-appliance/..., benchmarks/tv-visual-tokens/..., benchmarks/visual-robustness/...
Replaces recorded SHA-256 source-binding digests.

Estimated code review effort: 4 (Complex) | ~45 minutes

Possibly related PRs

Poem

A rabbit taps tiles in a four-by-four grid,
Merges bright charges with every move hid.
The launcher opens the game with a hop,
Scores persist before the play can stop.
Built in and offline, the circuit lights glow—
Back to the Retro hub when ready to go.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description check ✅ Passed The description clearly covers the Circuit Shift game, launcher integration, persistence, catalog behavior, evidence updates, and verification.
Title check ✅ Passed The title clearly and concisely identifies the primary change: adding the built-in Circuit Shift retro game.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/real-retro-catalog-game
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch codex/real-retro-catalog-game

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai 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.

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@apps/console-lab/src/launcher/circuit-shift.ts`:
- Around line 70-90: Update restoreCircuitShift to reject parsed boards
containing no charged cells before constructing the restored state. Preserve
existing validation and return undefined for an all-zero board so the component
starts a new game.
- Around line 127-130: Keep merged charges within the domain accepted by
persistence and restoration: in apps/console-lab/src/launcher/circuit-shift.ts
lines 127-130, update the merge logic around current and charged so normal
gameplay cannot create unsupported values; in lines 60-67, ensure
serializeCircuitShift emits only states restoreCircuitShift accepts; and in
lines 152-157, align charge and score validation bounds with every value
gameplay can produce.

In `@apps/console-lab/src/launcher/Launcher.svelte`:
- Line 784: Update the navigation signal positioning logic in Launcher.svelte,
including the paths around showView("retro-game"), to normalize the view name
retro-game to retro before positionSignal() queries the data-view-target
element. Preserve existing behavior for all other view names.
- Line 614: Update isCircuitShiftEntry and the built-in Circuit Shift descriptor
to require the expected version in addition to the ID, runtime, and entrypoint,
so only the embedded 1.0.0 entry matches. Add a test covering a catalog entry
with a different version and verify it is not treated as installed or
launchable.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: ca4c2bd3-fddc-4b47-bb94-6fa2b75f8121

📥 Commits

Reviewing files that changed from the base of the PR and between 2153503 and 75535ac.

⛔ Files ignored due to path filters (3)
  • apps/console-lab/src/launcher/catalog.generated.ts is excluded by !**/*.generated.*
  • benchmarks/tv-conformance/windows-x64-chrome-150-launcher-search-empty-query-scroll-activation-1080p.png is excluded by !**/*.png
  • benchmarks/tv-conformance/windows-x64-chrome-150-launcher-search-empty-query-scroll-activation-4k.png is excluded by !**/*.png
📒 Files selected for processing (47)
  • apps/console-lab/src/launcher/CircuitShiftGame.svelte
  • apps/console-lab/src/launcher/Launcher.svelte
  • apps/console-lab/src/launcher/circuit-shift.test.ts
  • apps/console-lab/src/launcher/circuit-shift.ts
  • apps/console-lab/src/launcher/types.ts
  • apps/console-lab/tests/console-flow.spec.ts
  • apps/console-lab/tests/tv-conformance.spec.ts
  • benchmarks/camera-angle/fixed-angle-escalation-evidence-plan-v1.json
  • benchmarks/camera-cabling/cross-tier-camera-cable-plan-v1.json
  • benchmarks/camera-geometry/cross-tier-camera-placement-geometry-plan-v1.json
  • benchmarks/camera-service/camera-replacement-recalibration-plan-v1.json
  • benchmarks/camera-state/physical-shutter-camera-state-experience-plan-v1.json
  • benchmarks/controller-only-usability/cross-tier-controller-only-usability-plan-v1.json
  • benchmarks/cross-tier-reference/pi5-x86-product-contract-plan-v1.json
  • benchmarks/csi-fallback/pi5-camera-module-3-wide-csi-fallback-plan-v1.json
  • benchmarks/depth-comparison/oak-d-pro-w-rgb-depth-comparison-plan-v1.json
  • benchmarks/depth-interference/cross-device-ir-interference-safety-plan-v1.json
  • benchmarks/enclosure/pi5-integrated-enclosure-reference-build-plan-v1.json
  • benchmarks/failure-critical-substitutes/cross-tier-failure-critical-substitute-plan-v1.json
  • benchmarks/first-party-motion-adaptation/first-party-motion-adaptation-ranking-plan-v1.json
  • benchmarks/font-coverage/ocra-font-structural-evidence-v1.json
  • benchmarks/font-coverage/windows-x64-chrome-151-ocra-platform-fallback-v1.json
  • benchmarks/idle-energy/cross-tier-idle-energy-plan-v1.json
  • benchmarks/kiosk-compositor/cross-tier-kiosk-compositor-plan-v1.json
  • benchmarks/lens-calibration/cross-tier-lens-distortion-rectification-plan-v1.json
  • benchmarks/libretro/supervised-libretro-frontend-qualification-plan-v1.json
  • benchmarks/orbbec/gemini-335l-linux-target-plan-v1.json
  • benchmarks/pi5-hdmi-cec/pi5-hdmi-audio-cec-plan-v1.json
  • benchmarks/realsense/d455-linux-target-plan-v1.json
  • benchmarks/room-survey/living-room-play-zone-plan-v1.json
  • benchmarks/shutdown-reserve/pi5-shutdown-reserve-comparison-plan-v1.json
  • benchmarks/steam-machine-os-comparison/steam-machine-steamos-windows-comparison-plan-v1.json
  • benchmarks/system-economics/complete-system-economics-plan-v1.json
  • benchmarks/tv-appliance/cross-tier-tv-appliance-plan-v1.json
  • benchmarks/tv-conformance/windows-x64-chrome-150-launcher-home-tv-conformance-v1.json
  • benchmarks/tv-conformance/windows-x64-chrome-150-launcher-representative-surfaces-tv-conformance-v1.json
  • benchmarks/tv-conformance/windows-x64-chrome-150-launcher-search-tv-conformance-v1.json
  • benchmarks/tv-visual-tokens/physical-tv-visual-token-plan-v1.json
  • benchmarks/visual-robustness/cross-tier-visual-robustness-plan-v1.json
  • catalog/circuit-shift.vcg-game.json
  • catalog/launcher-policy.json
  • packages/launcher-catalog/src/index.ts
  • packages/launcher-catalog/tests/launcher-catalog.test.ts
  • scripts/generate-launcher-search-tv-evidence.mjs
  • scripts/validate-launcher-search-tv-evidence.mjs
  • scripts/validate-launcher-tv-conformance-evidence.mjs
  • scripts/validate-ocra-platform-fallback-evidence.mjs
📜 Review details
⏰ Context from checks skipped due to timeout. (5)
  • GitHub Check: node / windows-latest
  • GitHub Check: native / windows-latest
  • GitHub Check: node / ubuntu-latest
  • GitHub Check: e2e / ubuntu-latest
  • GitHub Check: pi bring-up script
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2026-08-11T02:09:53.271Z
Learnt from: randroid88
Repo: Randroids-Dojo/VCG-Console PR: 28
File: benchmarks/tv-conformance/windows-x64-chrome-150-launcher-home-tv-conformance-v1.json:0-0
Timestamp: 2026-08-11T02:09:53.271Z
Learning: In TV conformance evidence JSON files under benchmarks/tv-conformance, do not flag the coexistence of the chrome-150 artifact/generator naming with Chrome/151.0.7922.76 browser metadata when a PR only refreshes source or build bindings. Treat this as an established repository-wide convention unless the PR changes the naming or browser-version convention itself.

Applied to files:

  • benchmarks/tv-conformance/windows-x64-chrome-150-launcher-home-tv-conformance-v1.json
  • benchmarks/tv-conformance/windows-x64-chrome-150-launcher-representative-surfaces-tv-conformance-v1.json
  • benchmarks/tv-conformance/windows-x64-chrome-150-launcher-search-tv-conformance-v1.json
🔇 Additional comments (40)
benchmarks/font-coverage/ocra-font-structural-evidence-v1.json (1)

727-728: LGTM!

Also applies to: 870-883, 952-963, 1057-1058, 1271-1277, 1338-1339

benchmarks/font-coverage/windows-x64-chrome-151-ocra-platform-fallback-v1.json (1)

70-71: LGTM!

Also applies to: 99-105, 122-123

benchmarks/tv-conformance/windows-x64-chrome-150-launcher-home-tv-conformance-v1.json (1)

6-6: LGTM!

Also applies to: 165-166, 204-204, 216-224, 241-242

benchmarks/tv-conformance/windows-x64-chrome-150-launcher-representative-surfaces-tv-conformance-v1.json (1)

6-9: LGTM!

Also applies to: 393-394, 433-433, 447-451, 474-475

apps/console-lab/src/launcher/circuit-shift.ts (1)

1-58: LGTM!

Also applies to: 96-119, 142-150, 160-167

apps/console-lab/src/launcher/circuit-shift.test.ts (1)

1-57: LGTM!

apps/console-lab/src/launcher/CircuitShiftGame.svelte (1)

1-198: LGTM!

apps/console-lab/src/launcher/Launcher.svelte (1)

21-21: LGTM!

Also applies to: 73-73, 187-187, 516-538, 626-630, 732-742, 752-783, 785-786, 1193-1193, 1219-1224

apps/console-lab/src/launcher/types.ts (1)

3-15: LGTM!

catalog/circuit-shift.vcg-game.json (1)

1-32: LGTM!

catalog/launcher-policy.json (1)

50-58: LGTM!

packages/launcher-catalog/src/index.ts (1)

242-259: LGTM!

packages/launcher-catalog/tests/launcher-catalog.test.ts (1)

1-127: LGTM!

apps/console-lab/tests/console-flow.spec.ts (1)

338-338: LGTM!

Also applies to: 1853-1853, 2049-2049, 2090-2090, 2281-2281, 2296-2329

benchmarks/camera-angle/fixed-angle-escalation-evidence-plan-v1.json (1)

40-40: LGTM!

Also applies to: 50-50, 70-75

benchmarks/camera-cabling/cross-tier-camera-cable-plan-v1.json (1)

35-35: LGTM!

benchmarks/camera-geometry/cross-tier-camera-placement-geometry-plan-v1.json (1)

32-32: LGTM!

benchmarks/pi5-hdmi-cec/pi5-hdmi-audio-cec-plan-v1.json (1)

26-26: LGTM!

benchmarks/realsense/d455-linux-target-plan-v1.json (1)

41-41: LGTM!

benchmarks/room-survey/living-room-play-zone-plan-v1.json (1)

31-31: LGTM!

benchmarks/shutdown-reserve/pi5-shutdown-reserve-comparison-plan-v1.json (1)

57-62: LGTM!

benchmarks/steam-machine-os-comparison/steam-machine-steamos-windows-comparison-plan-v1.json (1)

63-68: LGTM!

Also applies to: 78-78

benchmarks/camera-service/camera-replacement-recalibration-plan-v1.json (1)

45-55: 🗄️ Data Integrity & Integration

No source-digest change is required. All source bindings match the final repository tree, with no digest drift, invalid paths, bare carriage returns, or repeated-path inconsistencies.

			> Likely an incorrect or invalid review comment.
benchmarks/camera-state/physical-shutter-camera-state-experience-plan-v1.json (1)

51-51: 🗄️ Data Integrity & Integration

No source-binding mismatch exists.

All 552 bindings match their source files, and duplicate paths use consistent digests. The proposed validator incorrectly rejects valid structured contract declarations.

			> Likely an incorrect or invalid review comment.
benchmarks/depth-interference/cross-device-ir-interference-safety-plan-v1.json (1)

22-22: LGTM!

Also applies to: 27-27, 32-32

benchmarks/enclosure/pi5-integrated-enclosure-reference-build-plan-v1.json (1)

33-33: LGTM!

Also applies to: 43-43, 48-48, 63-63, 68-68, 73-73, 78-78, 83-83, 88-88

benchmarks/failure-critical-substitutes/cross-tier-failure-critical-substitute-plan-v1.json (1)

35-35: LGTM!

Also applies to: 40-40, 70-70, 75-75

benchmarks/first-party-motion-adaptation/first-party-motion-adaptation-ranking-plan-v1.json (1)

43-43: LGTM!

benchmarks/idle-energy/cross-tier-idle-energy-plan-v1.json (1)

25-25: LGTM!

benchmarks/kiosk-compositor/cross-tier-kiosk-compositor-plan-v1.json (1)

47-47: LGTM!

benchmarks/lens-calibration/cross-tier-lens-distortion-rectification-plan-v1.json (1)

40-40: LGTM!

benchmarks/libretro/supervised-libretro-frontend-qualification-plan-v1.json (1)

78-78: LGTM!

benchmarks/orbbec/gemini-335l-linux-target-plan-v1.json (1)

41-41: LGTM!

apps/console-lab/tests/tv-conformance.spec.ts (1)

463-463: LGTM!

Also applies to: 496-502, 559-559

scripts/generate-launcher-search-tv-evidence.mjs (1)

33-35: LGTM!

Also applies to: 102-102, 122-124

scripts/validate-launcher-search-tv-evidence.mjs (2)

70-70: LGTM!

Also applies to: 90-92, 353-354, 393-394, 570-573, 676-682


458-461: 🗄️ Data Integrity & Integration

No screenshot metadata update is required. The 720p screenshot metadata matches the generated file in both evidence contracts.

			> Likely an incorrect or invalid review comment.
benchmarks/tv-conformance/windows-x64-chrome-150-launcher-search-tv-conformance-v1.json (1)

6-9: LGTM!

Also applies to: 50-50, 70-72, 402-402, 432-439, 959-959, 989-996, 1005-1008, 1036-1037, 1516-1516, 1546-1562, 1593-1594, 1980-1981, 2036-2036, 2052-2060, 2077-2083

scripts/validate-launcher-tv-conformance-evidence.mjs (1)

128-129: LGTM!

scripts/validate-ocra-platform-fallback-evidence.mjs (1)

46-47: LGTM!

Comment thread apps/console-lab/src/launcher/circuit-shift.ts
Comment thread apps/console-lab/src/launcher/circuit-shift.ts Outdated
Comment thread apps/console-lab/src/launcher/Launcher.svelte
Comment thread apps/console-lab/src/launcher/Launcher.svelte

@coderabbitai coderabbitai 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.

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
apps/console-lab/src/launcher/Launcher.svelte (1)

777-777: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Move focus into Circuit Shift after the view transition.

At Line 777, showView("retro-game") reaches the generic focus branch at Line 483. That branch searches for data-view-target="retro-game", but the navigation contains only the retro target. Focus remains on the removed launch-screen control instead of the game.

Make the Circuit Shift root focusable. Expose a focus method from CircuitShiftGame. Call that method after await showView("retro-game").

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@apps/console-lab/src/launcher/Launcher.svelte` at line 777, Make the Circuit
Shift root focusable and expose a focus method from the CircuitShiftGame
component. Update the launcher flow around showView("retro-game") to invoke that
method after the view transition completes, ensuring focus moves from the
removed launch-screen control into the game.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@scripts/validate-ocra-platform-fallback-evidence.mjs`:
- Line 47: Update the asset request-count key in the validator’s evidence map to
use the exact production filename `/assets/main-v93HrXkc.js`, matching the
lowercase `k` used by the benchmark and launcher conformance validator.

---

Outside diff comments:
In `@apps/console-lab/src/launcher/Launcher.svelte`:
- Line 777: Make the Circuit Shift root focusable and expose a focus method from
the CircuitShiftGame component. Update the launcher flow around
showView("retro-game") to invoke that method after the view transition
completes, ensuring focus moves from the removed launch-screen control into the
game.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: c2273280-15e0-4228-ae61-796bbd59b4a8

📥 Commits

Reviewing files that changed from the base of the PR and between 75535ac and b8d94d7.

📒 Files selected for processing (37)
  • apps/console-lab/src/launcher/Launcher.svelte
  • apps/console-lab/src/launcher/circuit-shift.test.ts
  • apps/console-lab/src/launcher/circuit-shift.ts
  • benchmarks/camera-angle/fixed-angle-escalation-evidence-plan-v1.json
  • benchmarks/camera-cabling/cross-tier-camera-cable-plan-v1.json
  • benchmarks/camera-geometry/cross-tier-camera-placement-geometry-plan-v1.json
  • benchmarks/camera-service/camera-replacement-recalibration-plan-v1.json
  • benchmarks/camera-state/physical-shutter-camera-state-experience-plan-v1.json
  • benchmarks/controller-only-usability/cross-tier-controller-only-usability-plan-v1.json
  • benchmarks/cross-tier-reference/pi5-x86-product-contract-plan-v1.json
  • benchmarks/csi-fallback/pi5-camera-module-3-wide-csi-fallback-plan-v1.json
  • benchmarks/depth-comparison/oak-d-pro-w-rgb-depth-comparison-plan-v1.json
  • benchmarks/depth-interference/cross-device-ir-interference-safety-plan-v1.json
  • benchmarks/enclosure/pi5-integrated-enclosure-reference-build-plan-v1.json
  • benchmarks/failure-critical-substitutes/cross-tier-failure-critical-substitute-plan-v1.json
  • benchmarks/first-party-motion-adaptation/first-party-motion-adaptation-ranking-plan-v1.json
  • benchmarks/font-coverage/ocra-font-structural-evidence-v1.json
  • benchmarks/font-coverage/windows-x64-chrome-151-ocra-platform-fallback-v1.json
  • benchmarks/idle-energy/cross-tier-idle-energy-plan-v1.json
  • benchmarks/kiosk-compositor/cross-tier-kiosk-compositor-plan-v1.json
  • benchmarks/lens-calibration/cross-tier-lens-distortion-rectification-plan-v1.json
  • benchmarks/libretro/supervised-libretro-frontend-qualification-plan-v1.json
  • benchmarks/orbbec/gemini-335l-linux-target-plan-v1.json
  • benchmarks/pi5-hdmi-cec/pi5-hdmi-audio-cec-plan-v1.json
  • benchmarks/realsense/d455-linux-target-plan-v1.json
  • benchmarks/room-survey/living-room-play-zone-plan-v1.json
  • benchmarks/shutdown-reserve/pi5-shutdown-reserve-comparison-plan-v1.json
  • benchmarks/steam-machine-os-comparison/steam-machine-steamos-windows-comparison-plan-v1.json
  • benchmarks/system-economics/complete-system-economics-plan-v1.json
  • benchmarks/tv-appliance/cross-tier-tv-appliance-plan-v1.json
  • benchmarks/tv-conformance/windows-x64-chrome-150-launcher-home-tv-conformance-v1.json
  • benchmarks/tv-conformance/windows-x64-chrome-150-launcher-representative-surfaces-tv-conformance-v1.json
  • benchmarks/tv-conformance/windows-x64-chrome-150-launcher-search-tv-conformance-v1.json
  • benchmarks/tv-visual-tokens/physical-tv-visual-token-plan-v1.json
  • benchmarks/visual-robustness/cross-tier-visual-robustness-plan-v1.json
  • scripts/validate-launcher-tv-conformance-evidence.mjs
  • scripts/validate-ocra-platform-fallback-evidence.mjs
📜 Review details
⏰ Context from checks skipped due to timeout. (5)
  • GitHub Check: node / windows-latest
  • GitHub Check: node / ubuntu-latest
  • GitHub Check: pi bring-up script
  • GitHub Check: native / windows-latest
  • GitHub Check: e2e / ubuntu-latest
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2026-08-11T02:09:53.271Z
Learnt from: randroid88
Repo: Randroids-Dojo/VCG-Console PR: 28
File: benchmarks/tv-conformance/windows-x64-chrome-150-launcher-home-tv-conformance-v1.json:0-0
Timestamp: 2026-08-11T02:09:53.271Z
Learning: In TV conformance evidence JSON files under benchmarks/tv-conformance, do not flag the coexistence of the chrome-150 artifact/generator naming with Chrome/151.0.7922.76 browser metadata when a PR only refreshes source or build bindings. Treat this as an established repository-wide convention unless the PR changes the naming or browser-version convention itself.

Applied to files:

  • benchmarks/tv-conformance/windows-x64-chrome-150-launcher-representative-surfaces-tv-conformance-v1.json
  • benchmarks/tv-conformance/windows-x64-chrome-150-launcher-home-tv-conformance-v1.json
  • benchmarks/tv-conformance/windows-x64-chrome-150-launcher-search-tv-conformance-v1.json
🔇 Additional comments (12)
benchmarks/tv-conformance/windows-x64-chrome-150-launcher-search-tv-conformance-v1.json (1)

6-9: LGTM!

Also applies to: 50-50, 70-72, 402-402, 432-439, 448-451, 959-959, 989-996, 1005-1008, 1036-1037, 1516-1516, 1546-1562, 1593-1594, 1980-1981, 2036-2036, 2052-2060, 2077-2083

scripts/validate-launcher-tv-conformance-evidence.mjs (1)

129-129: LGTM!

apps/console-lab/src/launcher/circuit-shift.ts (1)

3-6: LGTM!

Also applies to: 25-37, 69-69, 79-81, 98-98, 120-122, 147-147, 172-188

apps/console-lab/src/launcher/circuit-shift.test.ts (1)

5-5: LGTM!

Also applies to: 56-90

apps/console-lab/src/launcher/Launcher.svelte (1)

28-28: LGTM!

Also applies to: 74-74, 188-188, 517-517, 536-539, 615-615, 627-629, 733-743, 1083-1084

benchmarks/font-coverage/ocra-font-structural-evidence-v1.json (1)

727-728: LGTM!

Also applies to: 870-883, 952-963, 1057-1058, 1271-1277, 1338-1339

benchmarks/font-coverage/windows-x64-chrome-151-ocra-platform-fallback-v1.json (1)

70-71: LGTM!

Also applies to: 99-105, 122-123

benchmarks/tv-conformance/windows-x64-chrome-150-launcher-home-tv-conformance-v1.json (1)

6-6: LGTM!

Also applies to: 165-166, 204-204, 216-224, 241-242

benchmarks/tv-conformance/windows-x64-chrome-150-launcher-representative-surfaces-tv-conformance-v1.json (1)

6-9: LGTM!

Also applies to: 393-394, 433-433, 447-451, 474-475

benchmarks/camera-angle/fixed-angle-escalation-evidence-plan-v1.json (1)

40-40: 🗄️ Data Integrity & Integration

No source-binding digest mismatch found. All listed sha256 values match their referenced source files.

benchmarks/camera-state/physical-shutter-camera-state-experience-plan-v1.json (1)

61-61: 🗄️ Data Integrity & Integration

No source-binding changes required. All source bindings in the nine plans match their referenced file contents.

			> Likely an incorrect or invalid review comment.
benchmarks/depth-interference/cross-device-ir-interference-safety-plan-v1.json (1)

22-22: 🗄️ Data Integrity & Integration

No source-binding digest changes are required. All selected bindings match the normalized source files and duplicate paths use consistent digests.

			> Likely an incorrect or invalid review comment.

Comment thread scripts/validate-ocra-platform-fallback-evidence.mjs Outdated
coderabbitai[bot]
coderabbitai Bot previously approved these changes Aug 11, 2026
@randroid88

Copy link
Copy Markdown
Contributor Author

Addressed the outside-diff focus finding in 2c45d29: CircuitShiftGame now exposes a focusable root, Launcher moves focus into it after the retro-game transition, and the E2E flow asserts the game owns focus. Local typecheck, full pnpm test, production build, and all 83 E2E tests pass.

@randroid88
randroid88 merged commit 3a6226a into main Aug 11, 2026
8 checks passed
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.

1 participant