# Changelog

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

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.3.6] - 2026-05-11

### Added

- Auto-rename the current tmux window to the selected project's directory basename when running `pj` inside a tmux session

## [0.3.5] - 2026-04-10

### Fixed

- Shell function now runs `--list` directly instead of capturing its stdout, fixing terminal width detection and table rendering

## [0.3.4] - 2026-04-10

### Fixed

- `pj --list` path shortening now works on wide terminals by capping the path column width

## [0.3.3] - 2026-04-10

### Fixed

- `pj --list` path display now collapses middle directories with `~/.../` to fit the terminal width instead of truncating column content

## [0.3.2] - 2026-04-10

### Fixed

- `pj --list` table no longer overflows the terminal width; paths are shortened with `~` and columns are truncated to fit

## [0.3.1] - 2026-03-22

### Fixed

- `pj --init` now replaces the existing shell function instead of skipping when the marker is already present, ensuring updates to the shell integration are applied
- Shell function is now installed when `ai_assistant` is configured, even if `cd_on_select` is disabled

## [0.3.0] - 2026-03-22

### Added

- AI assistant integration: new `ai_assistant` config setting to launch codex, claude, gemini, or a custom AI assistant when selecting a project
- CLI flags `--ai <AI_ASSISTANT>` and `--no-ai` to override the configured AI assistant per invocation
- AI assistant selection in setup wizard (`pj --init`) and config editor (`pj --config`)
- Shell functions updated to support AI assistant launch protocol

### Fixed

- tmux split now opens in detached mode (`-d` flag) so cursor stays on the original pane

## [0.2.6] - 2026-03-15

### Added

- Multiplexer-aware editor launch: when vim/nvim is the configured editor and a tmux or cmux session is detected, opens the editor in a new vertical split pane instead of spawning a background process

## [0.2.5] - 2026-03-08

### Fixed

- Skip GitHub remote creation when git repository does not exist (e.g., when user declines git init prompt)

## [0.2.4] - 2026-03-08

### Changed

- `pj --add` now prompts for confirmation before initializing a git repository instead of doing it automatically

## [0.2.3] - 2026-01-05

### Fixed

- GitHub repo creation (`gh_create_on_add`) now works correctly with shell function wrapper
- Shell function updated to run interactive commands (`-a`, `-i`, `--config`) directly without stdout capture

## [0.2.2] - 2026-01-05

### Added

- STATUS column in `pj --list` output showing whether project paths exist (OK/MISSING)

## [0.2.1] - 2026-01-01

### Changed

- Updated README documentation for v0.2.0 CLI changes

## [0.2.0] - 2026-01-01

### Changed

- CLI restructured to use flags instead of subcommands (`pj --list` instead of `pj list`)
- Skim selection now fullscreen (100% height)
- Filter terms passed as arguments for smart matching (`pj rust` filters projects)
- Auto-select when filter results in single match

### Added

- Interactive configuration editor (`pj --config`) with arrow key navigation
- Multi-select instructions header in skim screens
- Esc key support to cancel init wizard
- New editor options: `none`, `nano`, `emacs`

## [0.1.2] - 2025-12-29

### Fixed

- Shell function now correctly handles non-directory output (`--help`, `--version`, `list`)
- Use `builtin cd` in bash/zsh to avoid conflicts with cd-wrapping plugins (e.g., enhancd)

## [0.1.1] - 2025-12-26

### Changed

- Rename crate to `pj-cli` for crates.io (binary name remains `pj`)

## [0.1.0] - 2025-12-26

### Added

- Interactive fuzzy project selector powered by skim
- Frecency-based ranking algorithm combining frequency and recency
- Hierarchical tag system with `/` separator support
- Shell integration for bash, zsh, fish, and POSIX sh
- Editor integration with configurable editor command
- Git auto-initialization when adding projects
- GitHub remote creation via gh CLI (opt-in)
- Interactive setup wizard (`pj init`)
- Commands:
  - `pj` - Select and open a project
  - `pj -a` - Add current directory as a project
  - `pj list` - Display all tracked projects in a table
  - `pj tag` - Manage project tags
  - `pj rm` - Remove projects from tracking
  - `pj rm --missing` - Bulk remove projects with missing paths
- Configuration via `~/.pj/config.toml`
- Project data storage in `~/.pj/projects.json`
