mirror of
https://bitbucket.org/siakitem/my-pi.git
synced 2026-10-26 10:45:22 +00:00
真实会话中模型仍用 bash grep -o | sort -u 做抽取,被拒后直接放弃核对; 原提示词只说"不要",没告诉它抽取/计数、给程序传文件清单、过滤命令输出时该用什么。 - routing:按已知信息选 grep/find(多变体用 grep 正则 alternation), codemode + tools.grep 做聚合,bash 文件清单用 git ls-files, overflow_query 过滤输出,被拒后改用替代方案继续 - 权限策略:rg/grep/git grep/find/fd 的 deny 附带指向替代工具的 reason - tools.jsonc:grep/find 新 snippet,补上 codegraph_explore snippet - FFF 上游标注 multi_grep 有害:wrapper 删除 PI_FFF_MULTIGREP,清理全部引用 - JSONC 测试改用字符串感知的注释剥离(reason 中含 'src/**/*.ts') Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
8.4 KiB
8.4 KiB
Changelog
Unreleased — my-pi maintained source
Changed
- Removed
multi_grepfrom thefilesystem-navigationgroup: the bundle wrapper keeps FFF's upstreamPI_FFF_MULTIGREPopt-in disabled, so the tool is never registered and the group now covers onlyls. - Pinned Pi's built-in
codemode(exposuremodel-only) inalwaysEnabledso batching several tool calls through one script never depends on atool_searchactivation;platformToolPolicynow also drops tools withhiddenorcodemode(script-only) exposure so they can never enter the catalog or the unknown-tools path. - Removed the
PI_TOOL_SEARCH_CONFIG_PATHenvironment override; the extension reads the bundleconfig/tool-search.json, and tests inject a path through thecreateToolSearchExtension({ configPath })factory. - Removed the retired context-mode integration: the
ctx_execute/ctx_execute_file/ctx_batch_executepins leftalwaysEnabledand the fourcontext-*bundle groups were dropped. Large tool results are now bounded by pi-overflow and recoverable through the pinnedoverflow_query. - Imported upstream
v0.3.6atddfb23646fd3957b791214de278e23aa393c9b13for direct local maintenance. - Migrated runtime imports to
@earendil-works/pi-coding-agentand currenttypebox. - 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.
- Replaced the retired Hippo
hippo_*assignments with the vendored Hermes memory extension's six tools, grouped intomemory-recall(memory_search,session_search,context_tree_query) andmemory-management(memory_add,memory_replace,memory_remove,skill_manage). - Added
overflow_querytomemory-recalland pinned it inalwaysEnabled— inspecting a pi-overflow-stored original must not depend on atool_searchactivation. - Added the enabled bundle's
Agent,get_subagent_result, andsteer_subagenttools to a checked-insubagentsorchestration group. - Added authoritative
ssh-connection,ssh-remote-files,ssh-remote-search, andssh-remote-shellgroups for the maintainedpi-sshtools, keeping reviewed connection, bounded discovery, structured file operations, and reviewed shell execution separate; the connection workflow now requires sequentialssh_connectto succeed before dependent tools. - Added sequential
ssh_cdto 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-interactiongroup for the maintainedask_user_questionTUI tool. - Added authoritative
chrome-navigation,chrome-interaction, andchrome-debugginggroups for all 21 tools registered by the pinnedpi-chromebridge after explicit session authorization. - Raised the bundle defaults to five active groups and 28 dynamic tools, and pinned the high-frequency Context Mode execution trio alongside CodeGraph exploration and LSP diagnostics.
- Moved user configuration from the
settings.jsontoolSearchsection to the bundle-owned<agent-dir>/my-pi/tool-search/config.json, deployed by the bundle's rebuild script; a missing or invalid file falls back toBUNDLE_TOOL_SEARCH_DEFAULTS. Moved the model-enriched catalog cache to<agent-dir>/my-pi/tool-search/catalog-v1.json.
Removed
- Removed
ensureToolSearchDefaults,BUNDLE_TOOL_SEARCH_DEFAULTS_VERSION,bundleDefaultsVersionhandling, and allsettings.jsonreads/writes; the bundle deploys config viascripts/rebuild-bundle-config.mjsinstead of extension-side seeding or snapshot migration. - Pinned all six Hermes memory tools in the bundle defaults and raised
bundleDefaultsVersionto 3. The injected memory policy expects these schemas every turn, and pinning also keeps the request prefix cache-stable instead of paying atool_searchround trip plus a cache invalidation.scripts/migrate-tool-search-settings.mjsmigrates the complete version-2 snapshot with an owner-only backup, atomic replacement, and fail-safe preservation of custom or invalid settings. - Pinned
context_tree_queryalongside the memory tools and raisedbundleDefaultsVersionto 4. Recovering pruned tool evidence must not depend on atool_searchactivation, and the added name keeps the request prefix stable. The migration helper now accepts the complete version-3 snapshot in addition to version 2. - Added atomic multi-group activation through
tool_search.groups, bounded to five exact group ids and rejected without state changes when the complete workflow cannot fit. - Weighted exact tool names, group metadata, and common SSH/Chrome/Context aliases during query routing; weak or ambiguous matches now return candidates instead of activating arbitrarily.
- Added
/tool-search-statusfor catalog source, capacity, active-group LRU order, and latest eviction diagnostics. - Added an explicit
update.shmigration for the complete former3/20bundle-default snapshot, with owner-only backup, atomic replacement, provenance versioning, and fail-safe preservation of custom or invalid user settings.
Fixed
- Treat Pi's optional
powershelldefinition as the same pinned local-shell/core class asbashon Windows, while excluding it from non-Windows catalogs so it cannot become an unknown-tool model group. - Activate exact existing groups from the current catalog before optional unknown-tool model enrichment, preventing unrelated catalog generation from delaying known group loads.
- Include pinned tools in the optional footer's total-tool denominator.
[0.3.6] - 2026-04-24
Bug Fixes
- Clear footer status when
toolSearch.showToolSearchFooterStatusisfalse, and re-read setting each refresh so settings changes take effect without stale status. - Add explicit
showToolSearchFooterStatusconfig name with backward compatibility for older status keys.
[0.3.5] - 2026-04-23
Other
- Add
pi install npm:pi-tool-searchcommand 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_searchso agent can continue/retry without waiting for another user message - Stop showing visible retry guidance in
tool_searchresults 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_searchdescription into "Already active" and "Hidden" sections so LLM skips redundant enable calls - Add
grepandfindto default core tools (always enabled alongsideread,write,edit,bash)
[0.3.1] - 2026-04-23
Other
- Add repository field to package.json
0.3.0
- Renamed from
pi-lazy-toolstopi-tool-search - Config key changed:
lazyTools→toolSearchinsettings.json showStatusconfig option: show/hideN / total toolsfooter 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"] }tosettings.jsonto 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_searchgate names: string[]batch enabling- Per-turn manifest refresh via
before_agent_start