Skip to content

feat(mapgen-studio): decompose App.tsx into StudioProviders/StudioShell + chrome tree#1611

Merged
mateicanavra merged 1 commit into
mainfrom
design/app-shell
Jun 12, 2026
Merged

feat(mapgen-studio): decompose App.tsx into StudioProviders/StudioShell + chrome tree#1611
mateicanavra merged 1 commit into
mainfrom
design/app-shell

Conversation

@mateicanavra

Copy link
Copy Markdown
Owner

Split the remaining ~2,583-LoC App.tsx god-component into the component tree per
architecture/10 §4 + audit/03. The AppContent orchestration closure MOVES verbatim
into src/app/StudioShell.tsx; the provider wrapper, deck.gl canvas host, floating
docks, error banner, and sonner toast adapter become standalone units under
src/app/. App.tsx reduces to a 17-LoC thin root rendering StudioProviders.

Behavior-preserving by construction: state web, effects, refs, and all hard-core
behaviors (live-poll request-key staleness + adaptive backoff, run-in-game
fingerprint/relation/materialization, browserRunner gating, localStorage schema)
move byte-for-byte. Live reads still flow through the typed oRPC client; no new
hand-rolled fetch. Verified: bun run check (tsc clean), bun run build (incl
worker-bundle), live preview (recipe authoring + stage/step nav + run controls
present and functional, no console errors).

OpenSpec: mapgen-studio-app-shell (validated --strict).

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

mateicanavra commented Jun 12, 2026

Copy link
Copy Markdown
Owner Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

@github-actions

Copy link
Copy Markdown

Railway preview (MapGen Studio): not provisioned for this PR.

Policy (Graphite stacks): previews are created only for the top-of-stack PR by default.

  • To force a preview for this PR: add label railway-preview
  • To suppress a preview: add label no-railway-preview

Debug: {"isClosed":false,"isFork":false,"suppress":false,"force":false,"isTopOfStack":false,"hasToken":true,"draft":false}

This was referenced Jun 12, 2026

mateicanavra commented Jun 12, 2026

Copy link
Copy Markdown
Owner Author

Merge activity

  • Jun 12, 8:50 PM UTC: A user started a stack merge that includes this pull request via Graphite.
  • Jun 12, 9:05 PM UTC: Graphite rebased this pull request as part of a merge.
  • Jun 12, 9:05 PM UTC: @mateicanavra merged this pull request with Graphite.

@mateicanavra
mateicanavra changed the base branch from design/client-data to graphite-base/1611 June 12, 2026 21:02
@mateicanavra
mateicanavra changed the base branch from graphite-base/1611 to main June 12, 2026 21:03
…ll + chrome tree

Split the remaining ~2,583-LoC App.tsx god-component into the component tree per
architecture/10 §4 + audit/03. The AppContent orchestration closure MOVES verbatim
into src/app/StudioShell.tsx; the provider wrapper, deck.gl canvas host, floating
docks, error banner, and sonner toast adapter become standalone units under
src/app/. App.tsx reduces to a 17-LoC thin root rendering StudioProviders.

Behavior-preserving by construction: state web, effects, refs, and all hard-core
behaviors (live-poll request-key staleness + adaptive backoff, run-in-game
fingerprint/relation/materialization, browserRunner gating, localStorage schema)
move byte-for-byte. Live reads still flow through the typed oRPC client; no new
hand-rolled fetch. Verified: bun run check (tsc clean), bun run build (incl
worker-bundle), live preview (recipe authoring + stage/step nav + run controls
present and functional, no console errors).

OpenSpec: mapgen-studio-app-shell (validated --strict).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@mateicanavra
mateicanavra merged commit 082cef8 into main Jun 12, 2026
This was referenced Jun 12, 2026
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