Skip to content

[Inference/Web] Surface model readiness and effective config before decompile jobs #73

Description

@agorevski

Finding

The web service can start with no usable model, but the health/UI flow does not make readiness or effective model configuration obvious before a user submits work.

Evidence

  • load_model() logs failures and sets decompiler = None without failing process startup: web/app.py:337-352.
  • /api/health always returns status: ok plus only model_loaded and mock_mode: web/app.py:943-950.
  • The frontend starts by polling GPU stats, not health/readiness: web/static/app.js:1122-1126.
  • Model config is rendered only after a decompile result arrives: web/static/app.js:497-510, web/static/app.js:1038-1041.

Impact

Users can paste bytecode and wait through analysis before discovering Solidity generation is unavailable. Operators also cannot use /api/health as a reliable readiness check for inference.

Recommended fix

Add a readiness endpoint/payload with ready, model_loaded, model_path, load error, lookup DB availability/stats, bytecode limits, concurrency limit, and effective generation defaults. Show this in the UI before input and disable or clearly label decompile when only TAC/lookup mode is available.

Acceptance criteria

  • /api/health distinguishes process liveness from inference readiness.
  • Health includes model path/config or last model load error, lookup availability, and request limits.
  • UI displays a startup readiness banner/card before the first decompile.
  • If no model is loaded, the Decompile button explains expected TAC-only/partial behavior before submission.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions