chore: Fallow-driven runtime cleanup and Ridge prototype removal#99
Conversation
Split overworld interaction, bridge store updates, potassium command dispatch, and ridge blockout parsing into smaller units so cyclomatic complexity drops without behavior changes. Co-authored-by: Cursor <cursoragent@cursor.com>
Move derived bridge/layout state into useInteractiveAppShell and render the default overworld shell from InteractiveAppDefaultShell so the entry component stays a thin scene router. Co-authored-by: Cursor <cursoragent@cursor.com>
Share context load/guard handling between enter and exitTo via prepareContext and startContext. Co-authored-by: Cursor <cursoragent@cursor.com>
Extract parser/sourceCompiler validation into ridgeBlockoutValidation with domain constants in ridgeBlockoutConstants. Ignore stale transition guards before starting scenes and settle async lifecycle tests. Co-authored-by: Cursor <cursoragent@cursor.com>
Delete the legacy blockout compiler, generated map, and prototype runtime (traversal, trail cards, Cicka Home mutations). Bridge tracer and Stampede Sketch stay; docs and CI no longer reference ridge:source. Co-authored-by: Cursor <cursoragent@cursor.com>
Replace try/fail dispatch chains with focused session, combat, and boss modules so the adapter stays a thin facade without changing scene behavior. Co-authored-by: Cursor <cursoragent@cursor.com>
Shard large switch handlers and extract ricochet math so changed-file audit stays under cyclomatic/cognitive thresholds. Co-authored-by: Cursor <cursoragent@cursor.com>
There was a problem hiding this comment.
Code Review
This pull request primarily removes the legacy Ridge blockout pipeline and its associated files, scripts, and documentation, consolidating active Ridge runtime spatial data under the Bridge stage composition. It also introduces several refactorings to improve code modularity and safety, such as splitting the large PotassiumCommandAdapter into smaller modules, refactoring the InteractiveApp shell, and extracting common math helpers. Feedback on the changes highlights a critical safety issue where a missing check for loadingSceneId in the refactored state comparison helper isBridgeSceneShellUnchanged could break the loading overlay. Additionally, several instances of unsafe direct property access on potentially uninitialized or null physics bodies (enemy.body, boss.body, and projectile.body) in the Potassium Slip runtime were identified, which could lead to runtime TypeErrors.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
Avoid TypeErrors when boss, enemy, or projectile bodies are missing during kill, recall boost, and boss fact reads. Co-authored-by: Cursor <cursoragent@cursor.com>
Summary
InteractiveAppinto hook + layout, dedupeSceneManagertransitions, simplify overworld interaction priority, and split PotassiumcommandAdapterinto session/combat/boss modules.ridge:sourcescripts frompackage.json/pnpm check.Test plan
pnpm check(typecheck, lint, tests, docs:check)pnpm fallow:audit(or CI Fallow job)ridge/blockout/paths in active docs (docs:check covers links)Made with Cursor