Skip to content

chore: Fallow-driven runtime cleanup and Ridge prototype removal#99

Merged
DaniloNovakovic merged 9 commits into
mainfrom
feat/fallow-code-cleanup
Jun 2, 2026
Merged

chore: Fallow-driven runtime cleanup and Ridge prototype removal#99
DaniloNovakovic merged 9 commits into
mainfrom
feat/fallow-code-cleanup

Conversation

@DaniloNovakovic

@DaniloNovakovic DaniloNovakovic commented Jun 2, 2026

Copy link
Copy Markdown
Owner

Summary

  • Remove the unused folded-desk Ridge blockout stack (source compiler, generated map, prototype traversal/Cicka-home runtime) and update docs/ADRs to mark that path as historical; Stampede Sketch stays reachable via dev switcher only.
  • Reduce Fallow hotspots across the shell and runtime: split InteractiveApp into hook + layout, dedupe SceneManager transitions, simplify overworld interaction priority, and split Potassium commandAdapter into session/combat/boss modules.
  • Refresh Fallow baselines and drop ridge:source scripts from package.json / pnpm check.

Test plan

  • pnpm check (typecheck, lint, tests, docs:check)
  • pnpm fallow:audit (or CI Fallow job)
  • Smoke: load site → enter Ridge (Bridge tracer) → pause/overlay return
  • Smoke: Potassium Slip minigame (combat, upgrades, boss if reachable)
  • Optional: dev switcher → Stampede Sketch still launches
  • Confirm no references to deleted ridge/blockout/ paths in active docs (docs:check covers links)

Made with Cursor

DaniloNovakovic and others added 7 commits June 2, 2026 20:52
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>
@DaniloNovakovic DaniloNovakovic self-assigned this Jun 2, 2026
Shard large switch handlers and extract ricochet math so changed-file
audit stays under cyclomatic/cognitive thresholds.

Co-authored-by: Cursor <cursoragent@cursor.com>

@gemini-code-assist gemini-code-assist 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.

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.

Comment thread src/game/bridge/store.ts
Comment thread src/game/scenes/potassiumSlip/runtime/commandAdapterCombat.ts
Comment thread src/game/scenes/potassiumSlip/runtime/commandAdapterInternals.ts
Comment thread src/game/scenes/potassiumSlip/runtime/commandAdapterCombat.ts
@DaniloNovakovic DaniloNovakovic marked this pull request as ready for review June 2, 2026 19:56
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>
@DaniloNovakovic DaniloNovakovic merged commit 80feb2a into main Jun 2, 2026
1 check passed
@DaniloNovakovic DaniloNovakovic deleted the feat/fallow-code-cleanup branch June 2, 2026 20:00
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