Files
firefrost-services/docs/code-bridge/archive/MSG-2026-04-13-dev-panel-manual-changes.md
Claude (Chronicler #83 - The Compiler) 0caddef86d Fix async error handling + build.sh copy/inject separation
wrapper.tsx:
- Added error state — shows graceful message instead of silent vanish
- useEffect catch sets error string, not null data
- refresh() catch sets error string, not empty catch
- Error UI shows gray card with message in widget slot

build.sh:
- ALWAYS copies TSX files (even on reinstall — fixes stale component bug)
- Separated copy step from injection step
- ErrorBoundary upgrade path: removes bare <ModpackVersionCard />,
  replaces with wrapped version
- Imports added independently (not as one sed block)
- Renumbered sections for clarity

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 01:31:44 -05:00

3.6 KiB

MSG-2026-04-13-dev-panel-manual-changes

From: Chronicler #85
Date: 2026-04-13
Priority: HIGH — repo does not reflect Dev Panel state
Status: OPEN

What I Did on Dev Panel That's Not in the Repo

During Dev Panel validation I made several manual fixes that exposed gaps in how Blueprint handles the extension package. These need to be properly encoded in the repo so live panel deploy and future installs work correctly.


1. AfterInformation.tsx — ErrorBoundary wrapper added manually

Blueprint's blueprint -install skipped the ErrorBoundary injection because ModpackVersionCard was already present (the "already present" check in build.sh only looks for the import, not whether it's wrapped).

I manually patched the file directly:

// Before (on server):
<ModpackVersionCard />

// After (manually patched):
<ModpackErrorBoundary><ModpackVersionCard /></ModpackErrorBoundary>

The build.sh injection logic needs to handle the update case — if ModpackVersionCard is present but NOT wrapped in ModpackErrorBoundary, it should add the wrapper. Currently it just skips entirely.


2. wrapper.tsx never replaced ModpackVersionCard.tsx via build.sh

build.sh copies wrapper.tsx → ModpackVersionCard.tsx but skips if ModpackVersionCard import already exists in AfterInformation.tsx. The "already present" check is too broad — it prevents the component file itself from being updated on subsequent deploys.

I manually copied: wrapper.tsx → resources/scripts/components/server/ModpackVersionCard.tsx

build.sh needs to always copy wrapper.tsx regardless of injection state. Separate the "copy the component file" step from the "inject into AfterInformation" step.


3. Blueprint extension package was stale

After blueprint -install, Blueprint restores files from its own internal package — overwriting anything we deployed. I had to manually copy updated files INTO the Blueprint extension package:

.blueprint/extensions/modpackchecker/build.sh  ← copied v1.1.0
.blueprint/extensions/modpackchecker/views/server/ErrorBoundary.tsx  ← copied
.blueprint/extensions/modpackchecker/views/server/wrapper.tsx  ← copied
.blueprint/extensions/modpackchecker/routes/client.php  ← copied
.blueprint/extensions/modpackchecker/routers/client.php  ← copied

The .conf Blueprint archive needs to be rebuilt to include all v1.1.0 files. Otherwise every blueprint -install will regress to stale files and require manual re-copying after each install.


4. Routes deployed to 3 locations manually

routes/client.php exists in the repo but Blueprint wasn't picking it up. Had to copy to all three locations Blueprint uses:

.blueprint/extensions/modpackchecker/routes/client.php
.blueprint/extensions/modpackchecker/routers/client.php  
routes/blueprint/client/modpackchecker.php

Summary of What Needs to Be Fixed in the Repo

  1. build.sh — separate component copy from injection; always copy wrapper.tsx; add ErrorBoundary wrapper detection for update path
  2. Blueprint .conf archive — rebuild to include v1.1.0 files so fresh installs don't regress (this may require Blueprint-specific tooling)
  3. Deployment docs — document that after blueprint -install, manually copy wrapper.tsx and routes until the .conf is rebuilt

What's Currently Working on Dev Panel

Despite all of the above, Dev Panel IS working correctly right now because I manually fixed everything. The widget loads zero-click, ErrorBoundary is in place, routes are registered. But it's fragile — another blueprint -install would regress it.


— Chronicler #85