Skip to main content
GitHub

Fix Types

The 7 types of automatic fixes.

Not available in this release

No new fix is generated or deployed today. Fix generation runs after a diagnosis, and diagnosis is held for the beta; fix deployment is gated off, so no fix can be put into a live status. The fix types are built, and this section describes them as designed.

Risicare can generate 7 types of declarative fixes.

Overview

Fix Structure

A fix, as the API returns it:

{
  "fix_id": "fix-abc123",
  "project_id": "proj-123",
  "diagnosis_id": "diag-xyz789",
  "title": "Retry on tool timeout",
  "description": "Add exponential backoff retry for TOOL.EXECUTION.TIMEOUT errors",
  "fix_type": "retry",
  "status": "draft",
  "error_code": "TOOL.EXECUTION.TIMEOUT",
  "agent_id": "researcher",
  "confidence": 0.85,
  "fix_config": {
    "max_retries": 3,
    "initial_delay_ms": 1000,
    "exponential_base": 2.0
  }
}

Targeting

A fix applies by its error_code: an exact code, or a pattern ending in * that matches by prefix — for example TOOL.EXECUTION.*. A fix record can also carry an agent_id, but the SDK does not receive it, so it does not limit where the fix applies. There is no way to target tools, models or environments.

Rollback

A fix has no rollback-strategy setting. Rolling back belongs to the deployment pipeline, which is gated off in this release — see Rollback.

Fix Precedence

The SDK Fix Runtime receives at most one active fix per error_code value: when several fixes share one, the most recently updated is served. When the runtime looks up an error, an exact code match wins over a * pattern.

SDK Integration

No fix reaches the Fix Runtime

The Fix Runtime is off by default since Python 0.4.0 and JavaScript 0.7.0: risicare.init() does not start it. No fix can be put into a live status for it to apply, because fix deployment is gated off. The route that the runtime reads is not reachable with an API key during the beta. See Fix Runtime.

from risicare import init_runtime, FixRuntimeConfig
 
# init() does not start the runtime: fix_runtime defaults to False since 0.4.0.
# This call starts a runtime with a custom configuration. During the beta it
# logs a warning and loads no fix.
runtime = init_runtime(config=FixRuntimeConfig(
    api_endpoint="https://api.risicare.ai",
    api_key="rsk-...",
))

Managing Fixes

Fixes are normally created by the diagnosis pipeline, which is held for the beta — so it generates no new fixes today. There is no way to create, change or read a fix with an API key during the beta: the Management API is not available with an API key.

Via Dashboard

While diagnosis is held for the beta, Self-Healing is removed from the dashboard's navigation: its page shows only a notice that diagnosis is not part of this release, and a fix's detail page is not found.

Via API

Not available with an API key during the beta.

Promotion is gated off

Promoting a fix is part of the not-yet-connected deployment pipeline. A fix cannot be promoted today: not with an API key, and not in the dashboard. As designed, promotion requires the owner or admin role and is never invoked automatically.

Next Steps

Select a fix type to learn more: