Skip to content

Alluvia

v0.1.1 Breaking

This release includes 1 breaking change for platform teams planning a safe upgrade.

Published 17d MCP Developer Tools
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

ai-memory claude cursor developer-tools knowledge-management local-first
+2 more
mcp sqlite

Affected surfaces

breaking_upgrade

ReleasePort's take

Light signal
editorial:auto 9d

Starting with version v0.1.1, every environment variable must be prefixed with ALLUVIA_.

Why it matters: All configuration variables now require the ALLUVIA_ prefix; failure to update existing vars will cause them to be ignored.

Summary

AI summary

Updates comma-separated, AIMD, and https://pypi.org/project/alluvia/0.1.1/ across a mixed release.

Changes in this release

Breaking High

All environment variables now require the ALLUVIA_ prefix.

All environment variables now require the ALLUVIA_ prefix.

Source: llm_adapter@2026-07-18

Confidence: low

Feature Medium

Introduces an LLM governor with cooldown ladders, circuit breakers, and fallthrough chains.

Introduces an LLM governor with cooldown ladders, circuit breakers, and fallthrough chains.

Source: granite4.1:30b@2026-07-18-audit

Confidence: low

Feature Medium

Fallthrough chains allow distill/label/status/why calls to switch models when a model's daily budget is exhausted on Groq's free tier.

Fallthrough chains allow distill/label/status/why calls to switch models when a model's daily budget is exhausted on Groq's free tier.

Source: granite4.1:30b@2026-07-18-audit

Confidence: low

Feature Medium

Fallthrough chains are configurable per role via `ALLUVIA_LLM_CHAIN_<ROLE>` environment variables.

Fallthrough chains are configurable per role via `ALLUVIA_LLM_CHAIN_<ROLE>` environment variables.

Source: granite4.1:30b@2026-07-18-audit

Confidence: low

Feature Medium

`refresh` prints per-stage summaries and warnings with provider retry times when a stage degrades.

`refresh` prints per-stage summaries and warnings with provider retry times when a stage degrades.

Source: granite4.1:30b@2026-07-18-audit

Confidence: low

Feature Medium

Distillation pauses immediately when every model is cooling and can be resumed later.

Distillation pauses immediately when every model is cooling and can be resumed later.

Source: granite4.1:30b@2026-07-18-audit

Confidence: low

Feature Low

`propose` never falls through; generation fails loudly instead of silently downgrading.

`propose` never falls through; generation fails loudly instead of silently downgrading.

Source: granite4.1:30b@2026-07-18-audit

Confidence: low

Feature Low

When the status classifier is unavailable, `unfinished` uses heuristic statuses (open or dormant) instead of unknown.

When the status classifier is unavailable, `unfinished` uses heuristic statuses (open or dormant) instead of unknown.

Source: granite4.1:30b@2026-07-18-audit

Confidence: low

Feature Low

Heuristics for `unfinished` are not cached and are upgraded when the classifier refreshes.

Heuristics for `unfinished` are not cached and are upgraded when the classifier refreshes.

Source: granite4.1:30b@2026-07-18-audit

Confidence: low

Feature Low

MCP tools, `themes`, `unfinished`, and the dashboard surface degradation signals.

MCP tools, `themes`, `unfinished`, and the dashboard surface degradation signals.

Source: granite4.1:30b@2026-07-18-audit

Confidence: low

Feature Low

An all-unknown map now indicates the classifier hasn't completed instead of pretending nothing is unfinished.

An all-unknown map now indicates the classifier hasn't completed instead of pretending nothing is unfinished.

Source: granite4.1:30b@2026-07-18-audit

Confidence: low

Feature Low

Fallback labels cut at word boundaries during distillation pauses.

Fallback labels cut at word boundaries during distillation pauses.

Source: granite4.1:30b@2026-07-18-audit

Confidence: low

Performance Medium

Adaptive pacing (AIMD) empirically discovers a provider's sustainable request rate.

Adaptive pacing (AIMD) empirically discovers a provider's sustainable request rate.

Source: granite4.1:30b@2026-07-18-audit

Confidence: low

Full changelog

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

Breaking Changes

  • All environment variables now require the ALLUVIA_ prefix (e.g., ALLUVIA_DB, ALLUVIA_LLM_MODEL_, ALLUVIA_LLM_CHAIN_), replacing inconsistent prefixes used in v0.1.0.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track Alluvia

Get notified when new releases ship.

Sign up free

About Alluvia

All releases →

Related context

Beta — feedback welcome: [email protected]