# Changelog ## Unreleased — my-pi maintained source ### Changed - Imported upstream `v0.3.6` at `ddfb23646fd3957b791214de278e23aa393c9b13` for direct local maintenance. - Migrated runtime imports to `@earendil-works/pi-coding-agent` and current `typebox`. - Replaced the hidden steer/retry compatibility loop with current Pi dynamic-tool propagation. - Replaced the truncated name manifest and add-only lifetime with validated model-generated Tool Cards, workflow groups, and bounded LRU activation. - Added deterministic no-model fallback grouping, private manifest-hash caching, exact group overrides, lazy `/tool-search-rebuild`, and nested model usage accounting. - Added limits for active groups, generated group size, and total dynamic tools, plus current-host catalog/config/LRU tests. - Added checked-in authoritative groups for every tool exposed by the standard my-pi bundle, eliminating first-use model generation and user caching unless unrecognized third-party tools are present. - Replaced the Hermes and third-party Hippo assignments with the five tools exposed by the official Hippo Pi extension, grouped into recall and management workflows. - Added the enabled bundle's `Agent`, `get_subagent_result`, and `steer_subagent` tools to a checked-in `subagents` orchestration group. - Added authoritative `ssh-connection`, `ssh-remote-files`, `ssh-remote-search`, and `ssh-remote-shell` groups for the maintained `pi-ssh` tools, keeping reviewed connection, bounded discovery, structured file operations, and reviewed shell execution separate; the connection workflow now requires sequential `ssh_connect` to succeed before dependent tools. - Added sequential `ssh_cd` to the authoritative remote-shell workflow and direct the model to wait for a successful workspace change before dependent remote calls, avoiding both the unknown-tools fallback and cwd races. - Added the authoritative `user-interaction` group for the maintained `ask_user_question` TUI tool. ## [0.3.6] - 2026-04-24 ### Bug Fixes - Clear footer status when `toolSearch.showToolSearchFooterStatus` is `false`, and re-read setting each refresh so settings changes take effect without stale status. - Add explicit `showToolSearchFooterStatus` config name with backward compatibility for older status keys. ## [0.3.5] - 2026-04-23 ### Other - Add `pi install npm:pi-tool-search` command to README ## [0.3.4] - 2026-04-23 ### Other - Clarify core defaults and token-saving purpose ## [0.3.3] - 2026-04-23 ### Bug Fixes - Refresh active tools on every `turn_start`, not only fresh user prompts, so unlocked tools stay available during agent-loop continuations - Queue hidden steer hint after successful `tool_search` so agent can continue/retry without waiting for another user message - Stop showing visible retry guidance in `tool_search` results and narrow hidden retry hint so successful same-turn tool calls are not repeated ### Other - Document same-response activation caveat and recovery behavior in `README.md` ## [0.3.2] - 2026-04-23 ### Bug Fixes - Split `tool_search` description into "Already active" and "Hidden" sections so LLM skips redundant enable calls - Add `grep` and `find` to default core tools (always enabled alongside `read`, `write`, `edit`, `bash`) ## [0.3.1] - 2026-04-23 ### Other - Add repository field to package.json ## 0.3.0 - Renamed from `pi-lazy-tools` to `pi-tool-search` - Config key changed: `lazyTools` → `toolSearch` in `settings.json` - `showStatus` config option: show/hide `N / total tools` footer status (default: on) - Provider-agnostic: removed payload-level filtering, relies solely on `setActiveTools` - `readUserConfig()` consolidates all settings reads into one call ## 0.2.0 - User config: add `"toolSearch": { "alwaysEnabled": ["lsp", "grep"] }` to `settings.json` to pre-unlock tools beyond the defaults - Reads config at each `session_start` — no reinstall needed after changes ## 0.1.0 - Initial release - Manifest-aware `tool_search` gate - `names: string[]` batch enabling - Per-turn manifest refresh via `before_agent_start`