# Changelog

All notable changes to pi-meat are documented here. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and versions follow [Semantic Versioning](https://semver.org/).

## [Unreleased]

## [0.3.3] - 2026-09-28

### Added

- Optional background pre-processing for new commits: committed revisions are pre-built into the reading-diff cache so `/meat HEAD` opens without waiting for the model.
- `backgroundPreprocess` setting in `/meat-settings`, off by default, with progress shown through a dedicated status key.
- Retry a failed reading diff from the viewer: `Enter` or `R` restarts Meat for the same revision, model, and thinking level without reopening `/meat`.
- Mouse text selection in the viewer: hold the left button and drag to select diff text, then right-click to comment the selection. A right-click without a selection comments the line under the cursor.

### Changed

- Shared `abridge.ts` pipeline for cache key, model authorization, bridge invocation, and artifact publication, used by both `/meat` and background pre-processing.
- Cached entries are pruned to the 50 most recent after each background pre-processing run.
- Comments store the exact selected text, which can span a line fragment or several lines, and are anchored on the first selected line.
- `Esc` clears an active selection before it closes the viewer.
- The footer always advertises `drag select · right-click comment`, and the help panel lists the mouse gestures.

### Fixed

- Replay Pi's provider session-attribution headers on nested Meat calls, and reuse Pi's session id, so opencode-hosted models no longer fail with `MissingSessionID`.

## [0.3.2] - 2026-08-18

### Fixed

- Keep long file paths identifiable by showing their filename end in the sidebar and the full path above the diff.

## [0.3.1] - 2026-08-06

### Fixed

- Recover from malformed model tool-call arguments instead of aborting reading-diff generation.

## [0.3.0] - 2026-08-05

### Added

- Add configurable `default` and `on-demand` Meat startup modes.
- Keep generation status visible in the diff viewer and mark a ready reading diff with `✨`.

### Changed

- Defer provider authentication and Meat generation until requested in `on-demand` mode.

## [0.2.0] - 2026-08-05

### Added

- Open the original diff immediately and show Meat chunk and turn progress while the reading diff is generated.
- Add an independent model-supported Meat thinking level to `/meat-settings` and cache identity.

## [0.1.1] - 2026-08-05

### Added

- Added line hover feedback and an overlaid dialog for adding, editing, and deleting review comments.
- Added comment markers and per-file comment counts to the diff viewer.

### Fixed

- Corrected comment anchors for visible lines in split view.

### Changed

- Updated pinned GitHub Actions.
- Avoided duplicate branch and pull-request CI runs and limited package-release checks to Linux.
- Switched npm releases from a static token to OIDC trusted publishing.

### Security

- Neutralized Unicode bidirectional controls in terminal-rendered diff content.
- Added full development-toolchain auditing while retaining stricter runtime dependency gates.

## [0.1.0] - 2026-08-04

### Added

- Pi extension package with `/meat`, `/meat-settings`, and model picker.
- Meat-to-Pi JSONL bridge using existing authenticated Pi model.
- Cached reading/original diff artifacts and verification-oriented review handoff.
- Responsive syntax-aware viewer with unified and side-by-side layouts.
- Keyboard, pointer, vertical wheel, and horizontal wheel navigation.
- Added/removed line foreground and subtle background styling.
- Open-source community, security, privacy, architecture, and release documentation.

### Security

- Disabled model-driven repository file and grep tools; only selected diff is sent for abridgement.
- Removed ambient credentials and unrelated variables from helper environment.
- Restricted cache directories/files to owner-only POSIX permissions.
- Added strict bridge event validation, protocol negotiation, and terminal-text sanitization.

[Unreleased]: https://github.com/arro000/pi-meat/compare/v0.3.3...HEAD
[0.3.3]: https://github.com/arro000/pi-meat/compare/v0.3.2...v0.3.3
[0.3.2]: https://github.com/arro000/pi-meat/compare/v0.3.1...v0.3.2
[0.3.1]: https://github.com/arro000/pi-meat/compare/v0.3.0...v0.3.1
[0.3.0]: https://github.com/arro000/pi-meat/compare/v0.2.0...v0.3.0
[0.2.0]: https://github.com/arro000/pi-meat/compare/v0.1.1...v0.2.0
[0.1.1]: https://github.com/arro000/pi-meat/compare/v0.1.0...v0.1.1
[0.1.0]: https://github.com/arro000/pi-meat/releases/tag/v0.1.0
