# Changelog Mainline is in public alpha. Until `v1.0.0`, release notes should optimize for clear user impact over strict semver guarantees: call out workflow changes, schema/config changes, migration notes, and known alpha limitations explicitly. This project follows the spirit of [Keep a Changelog](https://keepachangelog.com/) and uses semver-style versions once tags are published. ## [Unreleased] ### Added - _Template: new features, commands, integrations, or user-visible workflow additions._ ### Changed - _Template: behavior changes, workflow changes, docs repositioning, or compatibility-affecting updates._ ### Fixed - _Template: bug fixes, correctness fixes, reliability improvements, or reduced false positives._ ### Security - _Template: vulnerability fixes, hardening, dependency updates, secret-handling changes, or disclosure-process updates._ ### Migration Notes - _Template: actions users or maintainers should take after upgrading._ ### Known Alpha Limits - _Template: intentionally accepted limitations, unstable schemas, incomplete integrations, or non-blocking risks relevant to this release._ ## [0.5.1] - 2026-07-27 ### Fixed - Mainline hook context injection is now bounded. The shared hook renderer compacts status and proposal JSON semantically and enforces final byte budgets (32 KiB for session-start context, 16 KiB for turn-start context); oversized context is replaced with a compact warning that points to the `mainline` commands carrying the full detail instead of flooding the agent session. - The generated Pi extension now caps hook stdout at 256 KiB and combined injected context at 48 KiB, so a pathological repository state can no longer blow up Pi session memory or context windows through the Mainline hook. - Abandoning a shared proposal no longer fails with `NO_ACTIVE_INTENT` when the local draft is missing: `mainline abandon` falls back to the shared intent view so sealed/proposed intents can reach the abandoned terminal state after worktree cleanup. - Syncing after a notes migration no longer resurrects backfill notes on rewritten pre-migration commits: pinning a merged intent with recorded mainline evidence now follows the merged-evidence path instead of replaying stale `BackfillCommits` from the immutable seal event. ### Migration Notes - No action required. Repositories with Pi hooks installed pick up the bounded extension after `mainline hooks install --agent pi` (or a fresh `mainline init`); the previously generated extension keeps working but without the new stdout/context caps. ### Known Alpha Limits - Hook context budgets are fixed constants in this release; they are not yet configurable per repository. ## [0.5.0] - 2026-07-03 ### Added - Pi is now a first-class Mainline hook agent. `mainline hooks list-agents` includes `pi`, and `mainline hooks install --agent pi` writes a managed repo-local extension at `.pi/extensions/mainline.ts`. - Pi lifecycle events now map into Mainline hook events so Pi sessions can receive automatic session-start and per-prompt Mainline context. - `mainline init` installs Pi hooks by default for new repositories, and the default Mainline skill installation path now includes `--agent pi`. ### Changed - README.md and README.zh now lead with Git-native intent memory positioning, add demo videos, and simplify the top-of-page media hierarchy. - Hook documentation now describes Cursor, Codex, Claude Code, and Pi as the supported hook runtimes. ### Fixed - Local-dev hook wrappers for Codex, Claude Code, Cursor, and Pi now fail softly when `go run` cannot build Mainline, instead of blocking the host agent. - `mainline hooks status` now reports a repair reason when local-dev mode finds a Go version below Mainline's minimum supported version. - `mainline doctor --setup` now explains that it must run inside a Git repository and points fresh installs to `mainline version` for CLI validation. - Retrieval status reachability property tests now use explicit witnesses for each status branch, avoiding low-sample Full PBT flakes. ### Migration Notes - Existing repositories that want Pi hook support should run `mainline hooks install --agent pi` or `mainline hooks install` after upgrading. Pi may need to trust, reload, or restart the project session before it loads the repo-local extension. ### Known Alpha Limits - Hooks remain context providers only. They do not auto-start intents, auto-append progress, auto-seal work, or make semantic workflow decisions. ## Release Notes Template Use this checklist when drafting a GitHub Release: ````markdown ## Mainline One sentence: what changed for users and why this release exists. ### Highlights - ... ### Install ```bash curl -fsSL https://raw.githubusercontent.com/mainline-org/mainline/main/install.sh | MAINLINE_VERSION= bash ``` Prebuilt archives and `checksums.txt` are attached to this release. ### Upgrade Notes - ... ### Validation - `make ci-release` - `govulncheck ./...` - install script smoke test on macOS/Linux ### Known Alpha Limits - ... ````