> For the complete documentation index, see [llms.txt](https://docs.kula.digital/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.kula.digital/for-developers/changelog.md).

# Changelog & versioning

This page explains how the connector evolves and records notable changes.

## Versioning policy

* **The MCP protocol version is negotiated** per connection, so clients and the server agree on a compatible version at handshake time.
* **The tool surface is additive by default.** New tools and new optional parameters can appear at any time without warning — clients should ignore tools they don't recognise.
* **Breaking changes are announced.** Removing a tool, renaming it, removing a parameter, or changing a result shape in a non-additive way is a breaking change. We announce these ahead of time here and, where it matters, keep the old behaviour available during a transition window.
* **The event contract is versioned.** Data pushed into the platform carries a `schema_version` (currently `1.0`); the ingest endpoint defaults it when omitted.

## Compatibility expectations for clients

* Read tool annotations (`readOnlyHint`, `destructiveHint`) rather than assuming behaviour from a tool's name.
* Treat unknown fields in a result as forward-compatible — don't fail on them.
* Handle `401` by refreshing auth, and `403` as a permission-level signal (the token's [scope](/connect-claude-and-access/scopes.md) is too low for that tool).

## Discovering the live surface

The authoritative tool list is whatever the server advertises at connect time. The [tool reference](/for-developers/tools.md) mirrors it, and the [schema reference](/for-developers/schema.md) documents the tables behind the freeform query tools. When in doubt, ask a connected client to list its tools.

## Notable changes

> Dates are listed newest first.

* **Data coverage & windowed re-pull.** Every connector now shows a **Data coverage** card — a day-by-day grid of each data stream, charted by true event date, with any gaps flagged. Operators can **Re-pull** a single missing window (an idempotent, gap-filling force-refresh that re-runs Process over just that range) or **mark a quiet day expected** (one-off or annually recurring) so it stops counting as missing. A nightly sweep tops every connector up and re-processes, closing most gaps automatically. See [Keeping your connectors healthy](/your-data-sources/operating.md).
* **GymMaster connector.** Members, staff, clubs, classes, attendance, and memberships from GymMaster, read-only, on the same Test → Connect → Import → Process rhythm as the other booking sources. See [GymMaster](/your-data-sources/gymmaster.md).
* **Initial public documentation.** Owner, connector, skills, consultant, and developer guides published; OAuth connector front door and the full tool surface documented.

*Material changes will be appended here as they ship.*
