# 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).

## [1.2.0] - 2026-05-18

### Added

- Project-local persistence of the loaded/unloaded toggle in `.pi/pi-claude-compat/config.json`
- Auto-append `.pi/pi-claude-compat/` to the project `.gitignore` on first config write
- Project config overrides session-replay state so the choice survives across sessions and machines

### Changed

- Split the monolithic `extensions/claude-compat/index.ts` into focused modules (`types`, `constants`, `fs-utils`, `discovery`, `command-content`, `project-config`, `widget`, `system-prompt`, `commands`); behaviour unchanged

## [1.1.0] - 2025-05-17

### Added

- `/claude-unload` command to temporarily unload all commands and skills
- `/claude-load` command to re-load commands and skills after an unload
- Unloaded state persists across session switches and forks
- Widget shows "claude-compat unloaded /claude-load" when unloaded
- `/claude-commands` shows UNLOADED status and marks items with [UNLOADED]
- Command handlers reject invocations with guidance when unloaded
- System prompt injection and skill discovery suppressed when unloaded

## [1.0.0] - 2025-05-13

### Added

- Discover `.claude/commands/**/*.md` and register as pi slash commands
- Discover `.claude/skills/*/SKILL.md` and register via `resources_discover`
- Also discover skills from `.agents/skills/` and `.pi/skills/` (with `.claude/skills/` priority)
- Support `$ARGUMENTS`, `${ARGUMENTS}`, and `{{ARGUMENTS}}` placeholder replacement
- Support YAML frontmatter `description` field for command descriptions
- Nested directory command naming with `:` separator (Claude CLI convention)
- `/claude-commands` command to list all loaded commands and skills
- Widget showing active command and skill count
- System prompt injection listing available commands and skills
- Collision detection with other extensions' commands
- Automatic re-discovery on session start, switch, fork, and tree navigation
- Session state persistence for commands and skills across reloads