Skip to main content
Docs/App Health
DocsApp Health
Free

App Health

An in-editor banner that surfaces runtime issues in your generated app and offers a one-click fix backed by the same heal pipeline used by the hourly background scan.

How It Surfaces

When you open an app you own and GenMB has detected issues, the editor shows an Issues banner. The banner shows what was detected (V1 bug class, runtime error from the live probe, broken build, etc.) and offers two actions: Scan again, or Fix now.

The banner is owner-only. Collaborators with read access see the app exactly as deployed and do not see the heal controls.

Running a Scan

1

Click Scan in the banner

A fresh static V1 scan runs on your current code; if your app is deployed, a Playwright probe also runs against the live URL.
2

Review what came back

Results persist on the app document as healthCheck. The banner re-renders with the latest findings.
3

Decide

Heal it (Fix), skip it (Skip), or close the banner if you would rather sit with the issue and address it manually.

Fix Now

Fix now bypasses the hourly cron schedule and runs the heal pipeline immediately for the current app:

  • Pre-heal probe captures the current behavior.
  • Class-targeted heal rewrites only the code matching the detected bug class.
  • The new version is saved through the standard refinement pipeline (versioned, reversible, plugin-aware).
  • Post-heal probe re-runs; if behavior regressed, the version is reverted.
  • The deploy cache is invalidated so the next request serves the fixed version.
Pressing Fix means you have authorized the heal for this app. The user-level "allow automated healing" preference and the global cron flag are bypassed for the manual path.

Skip Automated Healing

Use the Skip toggle on the banner when you do not want the hourly cron touching this app. Common reasons: you intentionally left a behavior the scanner flags as a bug, or you are mid-refactor and do not want background changes landing.

The skip flag does not stop you from pressing Fix manually. It only gates the automated path.

Behind the Scenes

App Health is the inline-UI front end to the Operation: Heal Existing Apps pipeline. The same heal function runs from three triggers: the hourly cron, the Fix-now button, and the SEO / Security panels' in-chat handoff. Every path persists a chat message and version via save_refinement_version(), so heals show up in chat history and Version History exactly like a manual chat refinement.

See Security & Code Quality and SEO & Discoverability for the panel-driven counterparts.

FAQs

What is the in-editor health banner?
When you open an app that GenMB has flagged with runtime issues (broken builds, JS errors during a Playwright probe, V1-bug-class detections), an Issues banner appears at the top of the editor with a Fix now button.
What does Fix now actually do?
It runs the same heal pipeline the hourly cron uses: a static V1 scan + URL probe to confirm issues, then a class-targeted heal that writes a new version via the standard refinement save path. Pre- and post-heal probes act as a regression gate; if the heal regresses behavior, the version is reverted.
Will heal break my custom code?
The heal only fires when the static scanner detects a known bug class. It rewrites the smallest scope it can, saves a new version (always reversible from Version History), and runs a follow-up probe. If the probe regresses, the version is rolled back automatically.
Can I opt out of automated healing?
Yes. Use the Skip toggle on the health banner. This sets apps.skipAutomatedHealing on the app and tells the hourly cron to ignore it. You can still trigger heal manually with the Fix button; the skip flag only blocks the automated path.
Why does an app I just generated have no health data?
Health data populates after a chat refinement or after the hourly cron runs over the app. Fresh v1 apps show an empty state by design until one of those triggers.

Ready to build?

Create your first app for free, no credit card required.