Skip to content

chore(deps): ai-ration v0.2.1 — the chain's Groq link was entirely dead - #352

Merged
github-actions[bot] merged 1 commit into
mainfrom
chore/ai-ration-v0.2.1
Aug 25, 2026
Merged

chore(deps): ai-ration v0.2.1 — the chain's Groq link was entirely dead#352
github-actions[bot] merged 1 commit into
mainfrom
chore/ai-ration-v0.2.1

Conversation

@catomean

Copy link
Copy Markdown
Collaborator

chore(deps): ai-ration v0.2.1 — the chain's Groq link was entirely dead

Companion to #350. That PR fixed FleetCrown's own direct Groq calls; this one
fixes the shared chain underneath Loki.

ai-ration is the package that exists BECAUSE a single pinned free model is a
scheduled outage. It had the same disease: checked against the live catalogues,
four of its nine default ids were gone.

groq       llama-3.3-70b-versatile         GONE
groq       llama-3.1-8b-instant            GONE   <- whole vendor dead
openrouter openai/gpt-oss-20b:free         GONE   <- was FIRST in the list
openrouter nvidia/nemotron-3-nano-30b-...  GONE

So Loki's chain burned two Groq 404s and then a third on its preferred
OpenRouter fallback before reaching a model that could answer. Not an outage —
OpenRouter's remaining links carried it — but the fastest vendor and the whole
100k/day Groq budget were unreachable. Checked the direction that costs money:
every OpenRouter link carries :free, so nothing had silently moved to paid.

Upstream (bitbaum/ai-kit#4, tag v0.2.1) replaces the dead pins with
openai/gpt-oss-120b / openai/gpt-oss-20b — probed with a real tool call, not
guessed — and adds checkCatalog(): a zero-token existence check, three-state
(present / retired / could-not-read), cheap enough to run on a schedule. The
existing probe:models costs real tokens and so could never be scheduled, which
is why five rots in a row went unnoticed.

── one test changed, and it was pinning a dead model ────────────────────────

scripts/test/agent-name-lookup.ts asserted the chain still contains
llama-3.1-8b-instant — "a model verified to drive the loop". That model is one
of the four the vendor retired. The guard was correct in intent and anchored to
a single rotting id, so it failed because its one EXAMPLE died, not because the
property broke. A rot-detector anchored to one pinned id reproduces the exact
failure it is watching for.

It now asserts the property against a set of models actually probed for
tool-calling, with the probe date and an instruction not to add a model you have
not run. Mutation-proven: emptying the verified set turns it red (exit 1).

Verified end-to-end rather than assumed: the installed copy reports 0.2.1,
resolves to 07c492c, and its dist/chain.js carries the live ids. The lockfile
diff is exactly one dependency — no incidental churn.

Co-Authored-By: Claude Opus 5 noreply@anthropic.com

Companion to #350. That PR fixed FleetCrown's own direct Groq calls; this one
fixes the shared chain underneath Loki.

`ai-ration` is the package that exists BECAUSE a single pinned free model is a
scheduled outage. It had the same disease: checked against the live catalogues,
four of its nine default ids were gone.

    groq       llama-3.3-70b-versatile         GONE
    groq       llama-3.1-8b-instant            GONE   <- whole vendor dead
    openrouter openai/gpt-oss-20b:free         GONE   <- was FIRST in the list
    openrouter nvidia/nemotron-3-nano-30b-...  GONE

So Loki's chain burned two Groq 404s and then a third on its preferred
OpenRouter fallback before reaching a model that could answer. Not an outage —
OpenRouter's remaining links carried it — but the fastest vendor and the whole
100k/day Groq budget were unreachable. Checked the direction that costs money:
every OpenRouter link carries `:free`, so nothing had silently moved to paid.

Upstream (bitbaum/ai-kit#4, tag v0.2.1) replaces the dead pins with
`openai/gpt-oss-120b` / `openai/gpt-oss-20b` — probed with a real tool call, not
guessed — and adds `checkCatalog()`: a zero-token existence check, three-state
(present / retired / could-not-read), cheap enough to run on a schedule. The
existing `probe:models` costs real tokens and so could never be scheduled, which
is why five rots in a row went unnoticed.

── one test changed, and it was pinning a dead model ────────────────────────

`scripts/test/agent-name-lookup.ts` asserted the chain still contains
`llama-3.1-8b-instant` — "a model verified to drive the loop". That model is one
of the four the vendor retired. The guard was correct in intent and anchored to
a single rotting id, so it failed because its one EXAMPLE died, not because the
property broke. A rot-detector anchored to one pinned id reproduces the exact
failure it is watching for.

It now asserts the property against a set of models actually probed for
tool-calling, with the probe date and an instruction not to add a model you have
not run. Mutation-proven: emptying the verified set turns it red (exit 1).

Verified end-to-end rather than assumed: the installed copy reports 0.2.1,
resolves to 07c492c, and its dist/chain.js carries the live ids. The lockfile
diff is exactly one dependency — no incidental churn.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@github-actions
github-actions Bot merged commit e7d1933 into main Aug 25, 2026
2 checks passed
@github-actions
github-actions Bot deleted the chore/ai-ration-v0.2.1 branch August 25, 2026 13:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants