---
summary: "Full BLS tool surface: bls_list_surveys, bls_search_series, bls_get_series, bls_get_latest, DataCanvas dataframe tools, services, and tests."
breaking: false
security: false
---

# 0.1.1 — 2026-05-21

## Added

- **`bls_list_surveys`** — lists BLS survey programs with codes, descriptions, and coverage.
- **`bls_search_series`** — offline LABSTAT catalog search; resolves natural-language queries to SeriesIDs without consuming API quota.
- **`bls_get_series`** — batch POST for 1–50 series; optional year range and BLS-server-side net/percent-change calculations.
- **`bls_get_latest`** — single most-recent observation per SeriesID via sequential GET (one query per series).
- **`bls_dataframe_describe`**, **`bls_dataframe_query`**, **`bls_dataframe_drop`** — DataCanvas integration for large result sets; query with SELECT-only SQL; drop opt-in via `BLS_DATAFRAME_DROP_ENABLED`.
- **`BlsApiService`** (`src/services/bls-api/`) — BLS v2 HTTP client; handles batch fetch, latest, surveys, quota error classification.
- **`BlsCatalogService`** (`src/services/bls-catalog/`) — LABSTAT flat-file loader and fuzzy search; background-loads at startup.
- **`CanvasBridge`** (`src/services/canvas-bridge/`) — wraps `core.canvas`, registers dataframes, provides SQL gate.
- **`server-config.ts`** — BLS-specific env var schema (`BLS_API_KEY`, `BLS_BASE_URL`, `BLS_CATALOG_BASE_URL`, `CANVAS_PROVIDER_TYPE`, `BLS_DATAFRAME_DROP_ENABLED`).
- Tests for all 7 tools and both services (`tests/tools/`, `tests/services/`).

## Removed

- **`echoTool`** and its test — placeholder replaced by the BLS tool surface.
