# Changelog

**A changelog entry is a user-visible behaviour change in one package.** This page summarises them for the developer tooling; package-specific release notes are finalised from Changesets when a concrete version is published.

## Prerequisites

Nothing to read this page. Before acting on an upgrade entry, make sure the folder's local work is committed or pushed.

## Unreleased — CLI

- Added verified interactive API-key login with explicit workspace selection and safe CI environment overrides.
- Added `hlix init` and project-local `.hlix` configuration/state boundaries.
- Added read-only environment discovery across Cursor, Dev Containers, package managers, Docker, Gitpod, Procfile, tool versions, ports, and environment references.
- Added `hlix import [folder]` with dry-run reporting, Git-history preservation, secret-history findings, encrypted protected files, resumable bundle upload, integrity verification, and idempotent project creation.
- Added immutable revision `push`, `pull`, and `sync` with compare-and-swap conflict detection.
- Added explicit skill, agent, and MCP import commands with HTTPS and stdio trust gates.
- Added stable JSON envelopes, typed error codes, and task status streaming.

## Unreleased — TypeScript SDK

- Added workspace-scoped API-key and session credentials.
- Added typed errors with validation issues, request IDs, retry metadata, and transport failures.
- Added bounded retry for idempotent methods only.
- Added typed project, task, cycle, import, and revision operations from the OpenAPI contract.
- Added resumable bundle upload/download helpers and Server-Sent Event parsing.

## Unreleased — generated SDK previews

- Added reproducible Python and Go source trees generated from OpenAPI 3.1.
- Pinned OpenAPI Generator `7.22.0` and its downloaded JAR checksum.
- Kept preview installation source-only until language-specific publishing and clean-consumer verification complete.

## Unreleased — official MCP server

- Added the `@hlix/mcp` stdio server with strict schemas and the same workspace-scoped TypeScript SDK used by the CLI.
- Exposed bounded project, task, cycle, comment, and verified-review reads by default.
- Added an explicit process-level write gate for task creation, task comments, and cycle proposals; destructive operations and direct execution endpoints remain unavailable. A proposal on an active autonomous project can resume planning and lead to task dispatch.
- Added owner-only CLI credential reuse, project-binding mismatch checks, bounded results, and sanitized structured errors.
- Added pinned npm, MCP Registry, clean-client handshake, checksum, GitHub release, and release-ledger gates.

## Release status

[Current versions](/releases/availability/) shows the published version of each package, rendered from the release ledger.

## Compatibility notes

- Imported projects use manifest schema version 2.
- Local project config and revision state use schema version 1.
- CLI JSON output uses envelope schema version 1.
- The public API contract is OpenAPI 3.1 with independent semantic versioning.

## Before upgrading

1. Read the package's GitHub release notes and migration section.
2. Run `hlix --version` and record the current version.
3. Commit or back up local project work.
4. Run `hlix sync` and resolve divergence before replacing the binary.
5. Verify `hlix --help`, `hlix projects list`, and one dry-run import after upgrade.

## If an upgrade goes wrong

- **`hlix --version` still prints the old version** — an older binary is earlier on `PATH`. Check `which -a hlix`.
- **`hlix sync` reports a conflict after upgrading** — resolve the divergence, not the version. Run `hlix sync --dry-run` for the file counts on each side.
- **A `--json` consumer breaks** — check `schemaVersion` first. The envelope version is the contract; human formatting is not, and may change between releases.
- **A flag disappeared** — that is a major change and carries a Changeset saying so. Read the package's release notes before pinning around it.
- **`npm view` reports no version at all** — that channel has not opened. See [Current versions](/releases/availability/).
**How this page will be produced:** Entries here are written by hand today. At the first verified release the package sections become generated output: every user-visible change already carries a Changeset, and the release pipeline renders those summaries into per-package notes rather than anyone re-typing them.

Two things stay hand-written either way — the **compatibility notes**, because they describe schema and contract versions rather than commits, and the **upgrade checklist**, because it is advice rather than history.

## Next steps

[Current versions](/releases/availability/)
  [Versions & releases](/releases/versioning/)
  [CLI reference](/reference/cli/)
  [Troubleshooting](/reference/troubleshooting/)