## Gentleman-Programming/gentle-ai — v3.5.0…v3.6.0

_29 commits._

### Features
- **feat(pi): honor PI_CODING_AGENT_DIR for the Pi agent directory** (4edbd00)

### Fixes
- **Merge pull request #4881 from egdev6/fix/2153-restore-help** (05626be)
- **fix(app): answer every help spelling before detection** (cfbcf41)
- **fix(pi): keep the Pi config root single-meaning and target the agent npm manifest** (9f1fd74)
- **fix(app): answer restore help before system detection** (8aa33ae)
- **fix(cli): answer restore help before resolving the home directory** (16e2ae9)
- **fix(cli): document the positional restore syntax in the derived help** (4573130)
- **fix(cli): answer --help with derived usage instead of an opaque sentinel** (4d3ccfd)
- **Merge pull request #4877 from egdev6/fix/2124-canonical-hook-dedupe** (7a1af77)
- **fix(sdd): scope the canonical hook check to UserPromptSubmit** (3b2e3bd)
- **fix(sdd): never append a second canonical hook after pruning** (65b5a6e)
- **Merge pull request #4875 from egdev6/fix/2124-windows-hook** (0e8b9d3)
- **fix(sdd): persist legacy-hook pruning when canonical already exists** (edf877d)
- **fix(sdd): correct gofmt in #2342** (db2ab68)
- **fix(sdd): prune empty UserPromptSubmit entries in legacy hook migration** (7ace5c7)
- **fix(sdd): correct argv index in PowerShell special-chars hook test** (80f2e6d)
- **fix(sdd): narrow pruneLegacyClaudeHook to UserPromptSubmit only** (8b038e6)
- **fix(sdd): run legacy-hook pruning before canonical early return per decode2 review** (62a9349)
- **fix(sdd): quote --cwd $dir in the Windows UserPromptSubmit hook** (a886276)
- **fix(sdd): emit PowerShell-safe UserPromptSubmit hook on Windows** (79507a6)

### Backend
- **Merge pull request #4892 from Gentleman-Programming/feat/pi-agent-dir-override** (314bbbb)

### Tests
- **test(engram): follow the Pi npm manifest into the agent directory** (2103246)
- **test(pi): pin the unset override case and skip the sh probe on Windows** (486af11)
- **test(sdd): execute the generated Windows hook command against a real fake** (b0b2a52)
- **test(sdd): assert the Windows hook command quotes its --cwd argument** (c723fde)
- **test(sdd): regression for legacy prune when canonical already present** (0674525)
- **test(sdd): harden legacy-replacement assertion and document Windows hook test scope** (616748d)
- **test(sdd): pin prune behavior for non-legacy siblings inside the same item** (06f28fe)

### Chore
- **chore(sdd): trim verbose comments and meta-language in #2342** (4eda9e1)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/Gentleman-Programming/gentle-ai?utm_source=github-action)._