Skip to content

Silent render-failure detection for Build App: advisory vision pass over the render screenshot #6273

Description

@arsenyinfo

Context

validate_app's "live render clean" gate only captures JS runtime errors + CSP violations, so a render that is visually broken but throws nothing passes as clean. PR #6271 closed one instance of this class (a hidden element left painted by app CSS) with a CSS reset + a render-check diagnostic channel.

render-check handles objective contract violations (a documented invariant is provably broken). It does not — and shouldn't — cover the general "does this look broken" case (invisible text, a fixed element covering the viewport, an empty root, off-screen content), which is heuristic and would false-positive as a hard gate.

Proposal

The general detector already has its input: get_app_diagnostics captures a render screenshot, but validate_app doesn't look at it. Add an advisory vision pass over that screenshot (with the app's stated intent) that surfaces a "this render may be broken: " note to the authoring model — never gate-blocking, since it's non-deterministic.

Only build this if the silent-render category recurs (right now n is small); logging it so the trajectory is captured rather than building a framework prematurely.

Not in scope

  • New per-footgun render-check entries (add those to the existing channel; only refactor to a check registry once there's a second objective check).
  • Making the vision signal block publish.

Archestra Contributor

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions