---
summary: "Pre-launch polish: code simplification across services and tools, README expanded with full tool docs and Docker section, Dockerfile OCI labels filled, .env.example populated, bunfig.toml added, GitHub topics synced."
breaking: false
---

# 0.1.5 — 2026-05-23

## Changed

- **Code simplification** — `normalizeObs` in `bls-api-service.ts` rewritten as a direct object return (eliminates intermediate mutation); `parseCodeMap` loop switched to destructured `[, ...dataLines]` iteration; `parseSeries` temp variable renamed `titleParts` for clarity; `bls-catalog-service.ts` index loop replaced with `.entries()`; `queryUpper` hoisted out of per-series loop; `bls-get-series.tool.ts` handler returns directly without intermediate `result` binding; `bls-get-latest.tool.ts` pushes directly to `succeeded[]`; `bls-dataframe-query.tool.ts` null check collapsed to `v == null`
- **README** — expanded with full tool documentation table, Docker quick-start section, and DataCanvas/Canvas tier details
- **Dockerfile** — OCI labels `description` and `source` filled in
- **`.env.example`** — populated with all BLS-specific vars (`BLS_API_KEY`, `BLS_BASE_URL`, `BLS_CATALOG_BASE_URL`, `BLS_DATASET_TTL_SECONDS`, `BLS_DATAFRAME_DROP_ENABLED`, `CANVAS_PROVIDER_TYPE`)
- **`bunfig.toml`** — added with `install.auto = "fallback"` and `run.bun = true`
- **`package.json`** — `ppi` keyword added to align with GitHub topics
- **`AGENTS.md`** — added (agent protocol file, mirrors CLAUDE.md for non-Claude agents)
