# Changelog

The API follows semantic versioning within `/api/v1`: new endpoints and fields can appear at any time; nothing is removed or renamed without a new version (`/api/v2`, announced here at least 90 days ahead). Current version: **1.1.0**.

## 1.1.0 (2026-10-05)

- New endpoints: `/events/months` and a `month=YYYY-MM` filter on `/events` (the site’s month pages); `/news/archive/{year}`; `/zoning/addresses` (civic address suggestions) and `/zoning/small-scale-housing`. `/maps/layers/{id}` takes `bbox` and `near`.
- `meta.updatedAt` is always a date-time with Z or an offset: sources dated only to a day, month or year give the start of that period in the city’s time zone, with `meta.updatedAtPrecision`. Transit departures add ISO `scheduledAt`/`expectedAt` next to the epoch-millisecond values; air stations add `pm25Avg24h` (same value as `pm25_24`).
- Every OpenAPI operation has a response example (hand-written or a placeholder generated from its schema).
- MCP: focused tools for news, jobs, weather, address zoning, garbage day and bus stops; event month and date filters; tool titles; two resources (usage guide, API catalogue) and two prompts (local briefing, address report); schema violations return the same structured `invalid_arguments` error as other failures; HTTP refusals use the API error shape. The server card lists the tools, resources, prompts and protocol version.

## 1.0.2 (2026-10-02)

- Responses carry `Last-Modified` (from `meta.updatedAt`) and the full `RateLimit-*` set is declared in OpenAPI; ETags now ignore `meta.ageSec`, so `If-None-Match` returns 304 whenever the data is unchanged.
- Discovery from the domain alone: `/.well-known/api-catalog` (RFC 9727), an MCP server card at `/.well-known/mcp/server-card.json`, and `/.well-known/security.txt`. A Postman collection at `/developers/postman.json`. OpenAPI documents error codes, the `If-None-Match` header and the versioning policy.

## 1.0.1 (2026-10-01)

- Full public API coverage through MCP discovery, filtered queries and bounded batches, with explicit partial results and actionable retry errors.
- Client setup and downloadable configurations at /developers/mcp/. City-aware examples, safer pagination, nested-array field selection and accessible code copying.

## 1.0.0 (2026-09-30)

- First public release: every module of PG Pulse as read-only JSON under /api/v1, with OpenAPI 3.1, Markdown, CSV and GeoJSON output, ETags and generous per-IP rate limits.
- Markdown versions of every page (/<page>.md, /md/<page>, or Accept: text/markdown), plus /llms.txt and /llms-full.txt.
