# Changelog

All notable changes to this extension will be documented in this file.

## Unreleased

### Changed
- Reduce Pi startup work by checking required commands directly on `PATH` instead of spawning `which`/`where`, and load the file-browser implementation only when `/readfiles` is invoked.

## [0.2.0] - 2026-07-04

### Added
- `/readfiles` now supports browsing outside the current working directory. Press `u` to re-root to the parent, `.` to jump back to where you started, or pass an explicit starting path (`/readfiles <path>` or `/readfiles ~/somewhere`). The browser header shows the current root so you always know where you are, and comments on files outside the project use absolute paths so the agent can still find them.

### Fixed
- Git status, diff stats, and untracked-file discovery now work when the browser root is a subdirectory of the git repository (e.g. after `u`, `.`, or `/readfiles <subdir>`, or when pi runs from a repo subdirectory). Previously repo-root-relative git paths were mixed with root-relative node keys, producing phantom tree entries, missing statuses, and unopenable nested paths.
- Re-rooting the browser while a background directory scan or line-count batch is in flight no longer lets the stale batch mutate the new root's tree, node index, or scan state.
- Use `where` instead of `which` on Windows to detect `bat`, `delta`, and `glow`, so the dependency check works when running from PowerShell or cmd.exe.

## [0.1.21] - 2026-05-07

### Changed
- Declare `@earendil-works` Pi development dependencies used by runtime imports.
- Update Pi extension imports and peer dependencies to the new `@earendil-works` namespace.


## [0.1.20] - 2026-04-24

### Removed
- Remove the external `/readfiles-review` and `/readfiles-diff` commands so files-widget stays focused on the `/readfiles` browser/viewer.


## [0.1.18] - 2026-04-19

### Changed
- Show symlinks with a `↗` marker in the `/readfiles` tree.

### Fixed
- Let `/readfiles` navigate into directory symlinks in both non-git folders and git repos instead of rendering them as inert files or empty directories.
- Guard symlink directory scanning against ancestor cycles so links like `foo -> .` or `foo -> ..` don't recurse forever.
- Treat git-tracked and untracked directory symlinks as lazily scannable directories rather than plain files.

### Thanks
- Thanks to @xapids for reporting the original macOS symlink navigation issue ([#9](https://github.com/tmustier/pi-extensions/issues/9)).

## [0.1.17] - 2026-04-19

### Changed
- Make the inline comment editor multiline with wrapped footer rendering, `Enter` for a new line, and `Ctrl+Enter`/`Ctrl+D` to send.
- Add an `m` toggle for rendered vs raw Markdown in the viewer, and fall back to raw mode before line-based search or selection.
- Show a sent/queued confirmation toast after returning an inline comment to the agent.

### Thanks
- Thanks to avg8888 in the Pi Discord for surfacing the comment editor and Markdown review issues fixed in this release.

## [0.1.16] - 2026-04-19

### Fixed
- Let `/readfiles` browser search accept `j` and `k` as search text instead of hijacking them for navigation.
- Fix viewer scrolling so the last lines of a file remain reachable.
- Restore `G` / `Shift+G` navigation to jump to the bottom of the viewer.
- Refresh an open viewer when the file changes on disk while `/readfiles` is open.
- Accept pasted, multi-character, and chunked bracketed-paste input in browser search and the inline comment prompt.
- Keep viewer search results in sync after live refreshes.
- Pause live refresh while a line selection or inline comment is active so comments stay anchored to what the user selected.

## [0.1.14] - 2026-02-03

### Added
- Add preview video metadata for the extension listing.

## [0.1.13] - 2026-02-02

### Changed
- **BREAKING:** Renamed `/files` command to `/readfiles` to avoid conflict with Pi's new built-in `/files` command (Pi v0.50.2+)

## [0.1.11] - 2026-01-26

### Changed
- Require `bat`, `delta`, and `glow` before opening `/files`
- Add a postinstall reminder for required system tools
- Document install commands next to the Pi install steps

## [0.1.10] - 2026-01-26

### Fixed
- Treat git-reported directory entries as directories to avoid viewer errors
- Guard the viewer against opening directories directly
- Wrap delta diff output without breaking gutters and avoid truncation
- Add a safe fallback when `bat` fails to render with wrapping

## [0.1.9] - 2026-01-26

### Changed
- Bind render requests to avoid undefined context with the latest pi-tui

## [0.1.8] - 2026-01-26

### Changed
- Compute line counts asynchronously with loading indicators
- Build git repo trees from git file lists to avoid filesystem scans
- Add progressive filesystem scanning with safe mode for large folders
- Reduce refresh work to git metadata updates

## [0.1.7] - 2026-01-26

### Changed
- Cache line counts and skip large files to avoid freezes in big folders
- Avoid recomputing tree stats on every render
- Preserve line counts for open files across refreshes

## [0.1.6] - 2026-01-24

### Added
- Clearer install instructions and dependency notes in README

## [0.1.5] - 2026-01-24

### Added
- Demo recording embedded in README

### Changed
- Comment sending now queues with follow-up delivery in streaming sessions
- Split viewer logic into `viewer.ts` and shared helpers
- Reduced browser render duplication with node format helpers

## [0.1.4] - 2026-01-24

### Changed
- Split viewer logic into `viewer.ts` and shared helpers
- Reduced browser render duplication with node format helpers

## [0.1.3] - 2026-01-24

### Changed
- `c` in viewer now opens an inline comment prompt and sends a follow-up message

## [0.1.2] - 2026-01-24

### Changed
- `c` in viewer now appends selection to editor input instead of sending immediately

## [0.1.1] - 2026-01-24

### Added
- README with install steps, dependencies, and keybindings

### Changed
- Refactored into modular files (browser, git, tree, viewer, utils)

## [0.1.0] - 2026-01-24

### Added
- `/files` command opens full-screen file browser
- File tree with j/k navigation, Enter to open, h/l to collapse/expand
- File viewer with syntax highlighting via `bat`
- Markdown rendering via `glow`
- Git diff view via `delta` with line numbers
- Git status indicators (M, A, D, ?) on files
- Agent-modified file tracking (🤖 indicator)
- Changed files filter (`c` to toggle)
- Jump to next/prev changed file (`]`/`[`)
- Search in file tree (`/` then type)
- Search in file viewer (`/` then type, `n`/`N` for next/prev match)
- Select mode (`v`) to select lines and comment (`c`) to send to agent
- Line counts and diff stats (+/-) on files and collapsed folders
- Auto-refresh git status every 3 seconds (preserves expansion state)
- PageUp/PageDown support in browser and viewer
- Height adjustment (`+`/`-`)
- Works in non-git directories (git features gracefully disabled)

### Dependencies
- `bat` - syntax highlighting (recommended)
- `glow` - markdown rendering (recommended)
- `delta` - diff formatting (recommended)

Install with: `brew install bat git-delta glow`
