SCIP oracle auto-fresh ([oracle])

Part of the config reference.

[oracle] controls the background auto-fresh SCIP oracle — compiler-grade ranking that keeps itself current without a manual rag-rat oracle run. Opt-in; off by default. When enabled, the long-lived rag-rat mcp server runs the oracle for the active checkout when its index is stale (changed since the last run) and quiet (no recent edits), heavily throttled by two gates:

[oracle]
auto_run = false                 # off by default — opt in explicitly
auto_run_quiet_period_secs = 900   # run only after ~15 min with no index change (debounce)
auto_run_min_interval_secs = 21600 # and at most once every 6 h (floor)

Both gates are required, not redundant: producing a .scip takes minutes while edits arrive in seconds, so debouncing a single burst is not enough — the quiet-period keeps a pass from firing mid-session, and the min-interval floor caps how often it can run regardless of churn. The pass runs on a detached thread of the MCP server only (never short-lived CLI/hook commands), uses the same lock-free production path as oracle run (the slow subprocess runs OUTSIDE the index write lock; only the brief join/write serializes), and is fail-open — any error, or a missing indexer tool, is a silent no-op, and the thread dies with the server process. While auto-fresh is on, important-symbols reports heuristic ranking — compiler ranking refreshes in the background instead of nudging you to run the oracle by hand.

Source: docs/config/oracle.md · synced from cq27-dev/rag-rat