# Changelog

## 0.7.0 - 2026-09-16

### Added

- Persist approved PR submission intents and per-step outcomes. Resume confirmed decisions without repeating grammar dialogs or replaying uncertain writes; reconcile only attributable, complete provider evidence.
- Keep failed grammar verification in a separate unconfirmed handoff, with trusted source bindings and explicit original comment indexes.
- Share confirmed-scope draft cleanup between UI and tool submissions, preserving edited/unsubmitted feedback and reporting local failures separately from remote acceptance.
- Give fresh reviews independent instance IDs, with explicit resume for existing and legacy drafts. Generation-checked saves reject stale overwrites; terminal tombstones prevent discarded or consumed instances from returning.
- Recover picker membership from valid snapshots after interrupted index writes, and check the snapshot's current timestamp before 30-day expiry.
- Save active editor compositions separately on a fixed two-second typing deadline. Explicit completion and editor parking flush before reporting success; failures keep the editor open. Recovery restores editable text and cursor, validates the original anchor, and requires an explicit decision before replacing conflicting feedback while preserving its current version as another recovery.

### Changed

- Pin all built-in GitHub review verdicts to the reviewed commit and submit approvals with inline comments atomically. Return typed submitted/partial/unknown/rejected evidence and shared diagnostic receipts.
- Keep completed COMMENT/DISCUSS pastes expanded for cursor recovery. Recovered buffers use the owned exact-text editor. Recovery storage has seven-day retention, 256 KiB per record and shared 64-record/16 MiB limits; capacity errors preserve existing text instead of truncating it.
- Require manual orphan-lock recovery with all writers stopped. Draft persistence covers local process interruption, not `fsync` or power-loss durability.

### Fixed

- Show fetched PR facts before optional model explanations, without replacing facts or moving the context pane's scroll position.
- Keep known PR facts visible when context sections fail, and label unavailable data instead of reporting an empty conversation.
- Preserve replies from unknown authors and distinguish unknown thread resolution from unresolved in PR context and Replies.
- Use consistent thread reads in PR context and Replies, label incomplete coverage, and avoid REST fallback for valid empty GraphQL results.
- Bound provider reads and show known PR facts while conversation sections are pending, preserving useful facts when limits or errors stop a read.
- Share pending PR context and Replies reads, preserve supplied context without provider calls, and let explicit refresh start a new conversation generation.
- Preserve admitted conversation checkpoints across interrupted reads and support bounded same-generation retries without accepting stale model updates.
- Page through PR review threads within read limits, resume admitted outer cursors, and keep usable GraphQL fragments when later data is unavailable.
- Read additional comment pages within review threads and resume each thread from admitted progress.
- Page through REST comments and reviews within shared read limits, honoring HTTP status and retaining interrupted progress without following supplied Link hosts.
- Refresh or resume PR conversation from either pane without losing review position, retaining usable data on failure and separating fetched coverage from preview limits.
- Inspect all fetched thread text beyond reply previews, retain missing refreshed threads with a warning, and analyze full threads read-only with safe multiline text.
- Navigate from a PR thread only to a verified current-revision code location, revealing unchanged lines and cancelling delayed jumps after later interaction.
- Edit per-thread response buffers within the open review window without submitting feedback, sending replies, or saving responses across close.

## 0.6.2 - 2026-09-02

### Changed

- Put `Start discussion with agents` first among remote review completion actions when discussion items are present.

## 0.6.1 - 2026-09-01

### Added

- Allow launchers to override Herdr fullscreen for one Pi process with `PI_CODE_DIFF_HERDR_FULLSCREEN=on|off` without changing the saved preference.

## 0.6.0 - 2026-08-24

### Added

- Toggle persistent Herdr pane zoom with `/diff fullscreen on|off`.
- Use one configured code command for `/code`, `open_code`, `open_code_diff`, and review open-code actions.

## 0.5.0 - 2026-08-21

### Added

- Open `/code <repository-relative-path>` directly in whole-buffer INSERT mode, with equivalent `open_code.path` support for explicitly requested agent launches.

## 0.4.6 - 2026-08-19

### Changed

- Publish `pi-coder` as a public npm Pi package with gallery, repository, and install metadata for pi.dev.
- Declare Pi-provided runtime modules as peer dependencies while keeping third-party runtime packages self-contained.

## 0.4.5 - 2026-08-19

### Added

- Choose, autocomplete, and persist any bundled Shiki theme through `/code syntax`.
- Review GitHub pull requests through the authenticated `gh` CLI without provider configuration, while retaining local configuration for other code hosts.

### Fixed

- Expand Explorer ancestor folders when opening nested search results without disrupting normal file opens or Enter handling.

### Changed

- Remove the stale GitHub Actions workflow.

## 0.4.4 - 2026-08-19

### Changed

- Document `/review` alongside `/diff` and explain how `/code` keeps developers in a lightweight human-agent coding loop.

### Fixed

- Select the first changed row when opening a file whose diff begins with unchanged context.
- Keep the repository footer focused on `/diff` and avoid reporting a discard when no useful feedback was produced.

## 0.4.3 - 2026-08-19

### Fixed

- Show the `/diff` and `/code` demos in their correct README sections.

## 0.4.2 - 2026-08-19

### Added

- Use `/review` as an alias for `/diff`, surface both commands in the repository footer, and show `/diff` and `/code` demos in the README.

## 0.4.1 - 2026-08-18

### Added

- Keep parked review comments aligned across pushes and rebases: unchanged files retain exact anchors, changed files are flagged for another look, and comments from removed files move into the review-wide note.
- Open a newest-first picker with `/diff --resume` and clean up parked reviews after 30 days without an update.
- Sort Navigator files by review risk from unresolved threads, blast radius, and change size; toggle risk and alphabetical order with `O`.
- Open pull requests and selected review replies in the browser without suspending the review UI.
- Track replies to review comments in a fifth read-only pane with refresh, browser-open, and opt-in analysis actions.
- Remember the last review verdict and ask explicitly whether to park or discard draft work when exiting.

### Fixed

- Validate agent-supplied pull request context against the live repository, number, provider, and head revision before using it.
- Save bounded local review receipts only after confirmed successful submissions and protect them with owner-only permissions on POSIX systems.

## 0.4.0 - 2026-08-13

### Added

- Review pull requests from additional locally configured providers through the existing `/diff remote` workflow.

## 0.3.6 - 2026-08-12

### Added

- Submitting a local review with `s` and no comments now sends `PR approved` straight to the agent instead of blocking the submit.

## 0.3.4 - 2026-08-10

### Added

- Toggle Navigator, Diff, Comments, and PR context with `1` through `4`, preserving pane visibility across reviews.
- Expand up to 10 hidden file lines above or below the selected diff line with `k` or `j` (`K` and `J` remain aliases).

### Changed

- Move review-scope shortcuts from `1` through `3` to `Alt+1` through `Alt+3`.
- Reserve Up/Down for diff-line navigation and use `k`/`j` for contextual expansion.
- Wrap footer status and shortcut descriptions onto additional lines instead of truncating later actions.

## 0.3.3 - 2026-08-07

### Added

- Allow `Post Comments` to publish inline feedback and an optional general review comment together.

### Changed

- Rename the remote review action from `Comment` to `Post Comments`.
- Leave mouse selection and copying to the terminal or tmux instead of enabling extension-owned mouse reporting.

## 0.3.2 - 2026-07-29

### Added

- Resume remote PR reviews after agent-only `DISCUSS` conversations while preserving reviewer-facing `COMMENT` and `MODIFY` items.
- Prepopulate confirmed discussion findings as editable comments without replacing existing feedback.
- Remove the selected Comments-panel item with `r`, while retaining `d` as an existing shortcut.

### Changed

- Scope agent discussion prompts to `DISCUSS` items and reject saved review sessions when the pull request head changes.
