Skip to content

Alluvia 0.1.1 — ride out rate limits

Choose a tag to compare

@dylanp12 dylanp12 released this 10 Jul 02:11

Resilience release: provider rate limits no longer darken the map (#1, #2, #3).

  • LLM governor — every provider call now runs behind a provider-agnostic
    governor: escalating cooldown ladder, per-model circuit breakers, and
    role→model fallthrough chains, all driven by abstract call outcomes (HTTP
    status and the standard Retry-After header are optional fast-paths, never
    dependencies). Breaker state persists in SQLite, so short CLI runs respect
    cooldowns learned by earlier runs instead of re-hammering an exhausted model.
  • Fallthrough chains — on Groq's free tier each model has its own daily
    budget; distill/label/status/why calls fall through to sibling models when
    the head model hits a wall. propose never falls through — generation fails
    loud rather than silently downgrading. Override per role with
    ALLUVIA_LLM_CHAIN_<ROLE> (comma-separated).
  • unfinished never goes dark — when the status classifier is
    unavailable, recurring themes get a heuristic status (recently touched →
    open, stale → dormant) instead of unknown. Heuristics are never cached;
    the classifier upgrades them on a later refresh.
  • Degradation is visiblerefresh prints a per-stage summary and a
    warning with the provider retry time when a stage degraded; themes /
    unfinished, the MCP tools, and the dashboard surface the same signal. An
    all-unknown map now says "the classifier hasn't completed" instead of
    pretending nothing is unfinished.
  • Distillation pauses immediately (and resumably) when every model is cooling;
    fallback labels cut at word boundaries; adaptive pacing (AIMD) discovers a
    provider's sustainable request rate empirically.
  • Breaking: every environment variable now uses the ALLUVIA_ prefix
    (ALLUVIA_DB, ALLUVIA_LLM_MODEL_<ROLE>, ALLUVIA_LLM_CHAIN_<ROLE>, …) — 0.1.0
    shipped them under an inconsistent prefix. If you exported variables for
    0.1.0, re-export them with the new prefix; config.toml users are
    unaffected.

Install: uv tool install alluvia · PyPI · Closes #1, #2, #3