> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ironlabs.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Refinery changelog

> API, SDK, and docs releases for IronLabs Refinery.

Reverse-chronological. Newest first. Every meaningful SDK, API, or docs change.

## June 2026

### Docs nav cleanup

* **Sidebar consolidation.** Merged **Custom Routers** + **Agent Optimization** into a single Refinery group; renamed `AgentOpt` → **Agent Optimization** for clarity. Reordered the Refinery sidebar so API Reference sits above Integrations / Pricing.
* **Archived pages.** Removed `essentials/prompt_optimization.mdx` and `essentials/optimizer-comparison.mdx` (GEPA vs MIPROv2) — superseded by the unified Agent Optimization page.
* **Removed Mintlify-starter cruft.** Dropped the `Authoring` group (`essentials/markdown`, `essentials/navigation`, `essentials/reusable-snippets`, `essentials/settings`) — all four were tutorial pages about authoring with `mint.json`, which no longer exists.
* **Foundry sidebar.** Folded the single-page `Workflows` group under `Tasks` (one fewer group; the Blueprints "coming soon" page lives on alongside the Tasks family it points consumers to).
* **Navbar.** Removed redundant `Dashboard` and `Open IronLabs` entries from the top-right dropdown.

### SDK — package rename (npm + PyPI) and release sequence

* **Node SDK renamed to `ironlabs`.** After a brief interim as `ironlabsai@1.0.0`, the final brand-aligned name is **`ironlabs`** on npm. Both `ironlabsai` and `ironaai` are deprecated with a redirect message.
  * `ironlabs@2.0.0` (2026-06-15) — package rename, new canonical export `IronLabs`, env-var primary `IRONLABS_API_KEY` with fallback chain to `IRONLABS_AI_API_KEY` and `IRONAAI_API_KEY`.
  * `ironlabs@2.1.0` (2026-06-17) — surface OpenRouter ground-truth cost via the `onCost` callback. Previously dropped; now flows through the same `llmgateway-cost` stream part regardless of which gateway served the request.
  * `ironlabs@2.1.1` (2026-06-18) — companion fix: request OpenRouter `usage: { include: true }` so the cost field actually lands in the stream chunk. Without this, 2.1.0's callback was a silent no-op for OR.
  * `ironlabs@2.1.2` (2026-06-18) — defensive guard against unhandled-rejection crash on no-output streams from `streamText`.
* **Python SDK renamed to `ironlabs`** on PyPI. `ironlabs@0.1.0` published 2026-06-16 (was `ironaai`). README documents the preferred `uv build` + `uv publish` path; legacy `poetry build` / `poetry publish` kept as a fallback.
* **Migration.** Update install command + import; existing API key keeps working — the SDK accepts `IRONLABS_API_KEY` (preferred), `IRONLABS_AI_API_KEY`, and `IRONAAI_API_KEY` with a one-time deprecation warning when a legacy name is used.

### URL + brand finalization

* All public `*.irona.ai` URL references migrated to `*.ironlabs.ai` across the SDKs and consumer surfaces.
* `iron.cx` short-link still redirects to `chat.ironlabs.ai` (308).
* Modal infrastructure slugs (`irona-ai--*.modal.run`) intentionally unchanged — those are real backend names.

## December 2025

* **Docs:** New `essentials/routing-lifecycle.mdx` — five-state Mermaid flowchart of every request from received → logged.
* **Docs:** New `essentials/sandbox-isolation.mdx` — negative-guarantee table for tenant / Custom Router / AgentOpt sandbox / provider-key boundaries.
* **API:** `POST /completions` endpoint reference published.
* **Docs site:** Restructured into two tabs — **Refinery** and **Foundry**. Brand standardized to **IronLabs**.
* **Domain:** Docs site moved to [`docs.ironlabs.ai`](https://docs.ironlabs.ai).

## November 2025

* **Released: Custom Router.** Train and deploy your own LLM router on your data via `RouterTrainer`. Python SDK + Node SDK.
* **Released: Prompt Optimization.** Run GEPA + MIPROv2 in parallel against your dataset; winner picked automatically. `PromptOptimizer.fit(...)`.
* **Released: AgentOpt.** Closed-loop agent optimization. Upload `agent.py` with `EDITABLE` / `FIXED` markers, an `eval.py`, and a dataset; Foundry's optimizer rewrites the agent across iterations and returns the best-scoring version.
* **SDK:** New cookbooks shipped alongside each feature — `custom_router_cookbook.ipynb`, `prompt_optimization_cookbook.ipynb`, `agentopt_notebook.ipynb`.

## Older releases

For pre-November history, see commit log or contact [support@ironlabs.ai](mailto:support@ironlabs.ai).
