![Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>](/assets/img/avatar_default.png) 云服务部-叶林立andDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
2a6bf8c929
|
feat(pi-overflow): 新增统一的新工具结果展示截断扩展
此前截断分散在多层且互相冲突:Pi bash 保留尾部 50KB,RTK 兜底截断又只留
开头 12000 字符(砍掉报错与完整输出路径),pi-chrome 截开头 30K,web_fetch
各 provider 不一致。新扩展统一负责"新结果给模型看多少":
- capture.ts 最先加载暂存原文,index.ts 最后加载(system-prompt 之前)
- 超过 24K 字符时原文落盘 <agentDir>/my-pi/pi-overflow/(700/600、原子写),
优先取 bash fullOutputPath 完整文件;模型看到 头 + 中段信号行 + 尾 的有界
视图,行号基于落盘原文、结尾永远可见
- overflow_query:按 id 正则搜索、行区间、jsonPath 只读查询,id 校验防穿越
- 收编:RTK truncate 默认关闭、删除 pi-chrome truncateText、web_fetch 默认
每页 20000(上限 100000)、web_search max_results 限定 1–20
- pi-compaction 遮蔽带 details.overflow.id 的结果时在占位符提示 overflow_query
- 登记 tools.jsonc / routing / 权限 allow / tool-search 常驻与分组
Generated with [Devin](https://devin.ai)
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
2026-10-21 20:25:44 -07:00 |
|
![Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>](/assets/img/avatar_default.png) 云服务部-叶林立andDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
0c45b1a438
|
docs: 拆分 AGENTS.md,根文件只保留全局规则
根 AGENTS.md 从约 78KB 压缩到约 10KB,避免作为常驻规则加载时被截断:
只保留仓库定位、扩展清单、跨扩展硬规则与通用验证命令。各扩展的维护
约定与验证命令移入对应目录的 AGENTS.md(新增 extensions/AGENTS.md 承载
系统提示词与根目录 TS/LSP 约定),上游来源记录统一放进各目录的中文
UPSTREAM.md,并补齐 pi-permission-system 与 pi-rtk-optimizer 的来源记录。
Generated with [Devin](https://devin.ai)
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
2026-10-20 19:43:22 -07:00 |
|
![Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>](/assets/img/avatar_default.png) 云服务部-叶林立andDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
2aa1be0b54
|
feat: 组合包配置以包内 config/ 为唯一来源,并新增受保护写入人工审批
配置统一:权限策略、硬防御、Tool Search、提示词封面以及新迁入的
RTK、pi-compaction、pi-worktree、pi-hermes-memory 配置全部由扩展
直接读取已安装组合包内的 config/,pi install / pi update 即完成部署;
删除 rebuild-bundle-config.mjs 与 bundle-manifest.json,my-pi/ 只保留
日志与缓存。update.sh 成功升级后将默认 git 来源的已安装副本
reset 回发布版本。AGENTS.md 新增「组合包配置原则」。
脚本整合:search_config.sh / ssh_config.sh 合并为 configure.sh
search|ssh;install.sh / update.sh 共享函数抽到 scripts/lib.sh,远程
安装器改为先下载到临时文件再执行,下载失败可被检测。
权限:hard-guards 新增 protectedWrites,写入 Pi 凭据/设置、已安装
组合包与扩展目录、pi-ssh 凭据库时一律人工确认(跳过 AutoReview、
yolo 与 Session grant,无 UI 时拒绝);放行 ls、LSP 查询、ctx 只读、
web_search、Chrome 只读与 git 只读命令,skill_manage 改为 ask。
Generated with [Devin](https://devin.ai)
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
2026-10-20 01:05:31 -07:00 |
|
![Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>](/assets/img/avatar_default.png) 云服务部-叶林立andDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
a0ee9389c7
|
chore: 清理 pi-mcp-adapter 移除后的陈旧引用
Pi 0.99+ 已内置 MCP(builtin:mcp),组合包不再加载 adapter;
删除引用不存在 mcp 工具的 mcp-management 分组,并把权限文档
中的 MCP 表述澄清为内置 mcp__<server>__<tool> 命名。
Generated with [Devin](https://devin.ai)
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
2026-10-19 22:35:49 -07:00 |
|
![Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>](/assets/img/avatar_default.png) 云服务部-叶林立andDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
ee1e6999d7
|
feat(pi-web-search): 统一 web_search/web_fetch 并由主模型路由搜索厂商
7 个按厂商命名的搜索工具收敛为 2 个统一工具,schema 与提示词不再暴露
provider 概念:web_search 由当前主模型按内置规则在 Tavily/Exa/Keenable
间路由(会话内 LRU 缓存,失败按可用性降级),web_fetch 固定走 Exa 并
静默降级。三家均改为纯 fetch 直连——Exa 直接对 mcp.exa.ai 发 JSON-RPC
并缓存会话,彻底移除 pi-mcp-adapter、@tavily/pi-extension 与
@keenable/pi-search 依赖。
Generated with [Devin](https://devin.ai)
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
2026-10-19 20:13:37 -07:00 |
|
![Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>](/assets/img/avatar_default.png) 云服务部-叶林立andDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
2682bd7fa7
|
feat: 组合包配置集中到 my-pi/ 目录并改为整体重建
- 组合包拥有、可随时重建的配置、日志与缓存统一放在
<agentDir>/my-pi/:permission-system/(policy.jsonc、hard-guards.jsonc、
logs/)、rtk-optimizer/config.json、tool-search/(config.json、
catalog-v1.json)与 system-prompt-cover.md。hashline.json、lsp.json
由外部扩展读取固定路径,是唯一例外。
- 新增 config/bundle-manifest.json 与 scripts/rebuild-bundle-config.mjs:
先校验全部来源与目标,在临时目录构建完整树,再整体删除旧 my-pi/
(符号链接只删链接)并原子替换,不备份。install.sh / update.sh 每次
运行都调用它;扩展自身不再播种或迁移配置。
- update.sh 删除 pi update 失败后的 git clean 恢复逻辑:Pi 1.3.0 会在
下一次 pi update 时依据中断标记自行恢复。同时删除 Tool Search
settings.json 快照迁移与封面部署脚本。
- Tool Search 改为读取 my-pi/tool-search/config.json(源为
config/tool-search.json,须与 BUNDLE_TOOL_SEARCH_DEFAULTS 一致),
不再读写 settings.json 的 toolSearch 段,移除 bundleDefaultsVersion。
- 默认权限策略开启 debugLog。
- 旧位置的残留文件不迁移、不清理;AGENTS.md / README 同步新约束。
Generated with [Devin](https://devin.ai)
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
2026-10-19 02:26:57 -07:00 |
|
云服务部-叶林立
|
dec48dab6d
|
feat: 新增系统提示词封面,并修正工具结果投影与常驻工具
系统提示词封面(新增能力):
- extensions/system-prompt-cover.ts:读取 ~/.pi/agent/SYSTEM_COVER.md,
在 before_agent_start 返回 { systemPrompt },用文本拼接替换 Pi 默认
系统提示词的开头,同时保留 tools / rules / docs / skills /
project_context / cwd 全部分区及其原始顺序。
- 必须走 forceSystemPrompt 投影路径。customPrompt 选项会连带抑制
tools / rules / docs 三个分区,而回填只能追加到末尾,无法恢复原顺序;
且 forceSystemPrompt 优先级更高,二者同时存在时 customPrompt 会被
静默忽略,因此 handler 不得写 customPrompt。
- 分割边界要求独占一行的裸标签:<project_instructions path="..."> 嵌套在
<project_context> 内,只有裸标签才是分区边界。
- 注册在 tool-routing 之前,否则提示词已被压平,改 systemPromptOptions
不再影响本轮请求。
- scripts/deploy-system-prompt-cover.mjs:同目录临时文件 + rename 原子
覆盖,不保留备份;install.sh 从脚本目录、update.sh 从升级后组合包
定位 helper,禁止回退到可能陈旧的脚本目录。
- 封面缺失、不可读或空白时静默 no-op,Pi 行为保持不变;封面每轮重新
读取,修改后在下一轮生效,不影响已结束的历史对话。
pi-compaction 投影修正:
- 仅在「摘要 + Source 行」严格短于原文时才替换工具结果。此前命中即
无条件替换,小结果反而被包壳放大;未替换的结果完整保留原始 content
parts(含非文本部分)。
- deterministic.maxStubTokens 由 256 提升到 1024。
pi-tool-search 常驻工具:
- alwaysEnabled 增加 context_tree_query:恢复被投影的工具证据不应依赖
一次 tool_search 激活,常驻同时保持请求前缀稳定。
- BUNDLE_TOOL_SEARCH_DEFAULTS_VERSION 由 3 提升到 4;
scripts/migrate-tool-search-settings.mjs 新增 version-3 快照常量,
使其与 version-2 一样可被完整精确匹配并迁移。
- 权限策略为 context_tree_query 显式 allow:它只读扩展自己的 segment
索引、不触碰工作区,常驻后不应每轮触发 AutoReview 往返。该种子仅在
全新安装时部署,已存在的用户 policy.jsonc 不会被覆盖。
文档与测试同步:
- AGENTS.md:新增 system-prompt-cover 开发约定,修正加载顺序、
bundleDefaultsVersion、可迁移旧快照集合与常驻工具范围的描述。
- pi-tool-search 的 README / CHANGELOG 同步 version 4 与新增常驻工具。
- tests/system-prompt-cover.test.ts:覆盖顺序保持、尾部逐字节不变、
嵌套 project_instructions 不误判、部署幂等与覆盖、缺源时非零退出。
- 修正 pi-tool-search/test/config.test.ts 与
tests/tool-search-settings-migration.test.ts 中写死的 version 3 与
工具列表断言。
- update-git-clean-recovery / tool-search-settings-migration 的 mock
组合包补拷 scripts/,与真实发布包结构一致,避免 helper 定位失败。
测试:根 61/61、pi-compaction 36/36 + tsc、pi-tool-search 16/16 + tsc、
pi-permission-system 2577/2577;sh -n 与 git diff --check 通过。
|
2026-10-15 18:02:03 -07:00 |
|
云服务部-叶林立
|
73f3117a7e
|
feat(pi-hermes-memory): 接入持久记忆扩展并移除 Hippo
用仓库内 pi-hermes-memory 替换 hippo-memory-pi,清理 Hippo 在组合包中的
全部注入点。
移除 Hippo:
- 删除 hippo-memory-pi/ 与 config/hippo-memory-version。
- extensions/plugin-init.ts 只保留 CodeGraph 初始化目标与预检。
- install.sh / update.sh / uninstall.sh 移除 Hippo CLI 的安装、升级、卸载
与版本校验逻辑;uninstall.sh 同时删除仅服务于该提示的死代码 ask_yes_no。
- 删除 tests/hippo-extension.test.ts 与 tests/hippo-scripts.test.ts。
- tests/extension-load.test.ts 反转“不得加载 Hermes”的断言为必须加载,
并断言其排在 pi-compaction 之前。
接入 pi-hermes-memory:
- package.json 增加 file:./pi-hermes-memory 依赖、files 条目与加载入口;
加载顺序位于 pi-compaction 之前,否则 flushOnCompact 会被 pi-compaction
的 { cancel: true } 静默跳过。
- 六个记忆工具在 Tool Search 中常驻:memory_search 与 session_search 连同
context_tree_query 归入 memory-recall,memory_add / memory_replace /
memory_remove / skill_manage 归入 memory-management。常驻是必需的——注入
的 memory policy 会在普通工作中指示模型调用它们,schema 不可见会让模型
静默放弃而不是去 tool_search,同时常驻也保持请求前缀缓存稳定。
- bundleDefaultsVersion 由 2 升到 3;migrate-tool-search-settings.mjs 新增
上一版快照到当前版本的迁移路径,仍只迁移完整匹配的默认快照并保留自定义
配置。
- config/pi-permission-policy.jsonc 为六个工具设置 allow:它们只写扩展自己的
agent 目录数据、不触碰工作区,且 memory_search 每轮都可能被调用,落入
默认 ask 会产生每轮 AutoReview 往返。
依赖:
- pi-hermes-memory 的 devDependencies 由上游 ^0.80.2 等范围改为与根包一致的
精确版本。上游范围与根包 0.84.2 不兼容,会让 npm 在本目录嵌套安装第二套
Pi runtime(实测 229 MB),违反“不得在组合包内再安装一套 Pi runtime”的
纪律。
- 根 allowScripts 保持只有 better-sqlite3@12.11.1。hermes 的
better-sqlite3@13 运行时 dlopen 的是包内 N-API 预编译二进制
prebuilds/<platform>.node,npm 因 binding.gyp 推断出的 node-gyp rebuild
无需执行;实测删除 build/ 目录后仍正常工作。
文档:AGENTS.md 与 README.md 改写记忆章节,新增 pi-hermes-memory 开发约定,
替换文末的 Hippo 项目记忆块。
验证:根 12 个测试文件、pi-tool-search 的 typecheck/test/build、
pi-permission-system 的 typecheck/2569 测试、pi-hermes-memory 自带的 59 个
测试文件全部通过;隔离 Pi 环境联合加载无错误并生成 bundleDefaultsVersion 3;
npm install 幂等;迁移 helper 对 v2 快照迁移、对自定义配置保留。
|
2026-10-14 00:56:41 -07:00 |
|
云服务部-叶林立
|
879fc5d37f
|
docs(upstream): 将 UPSTREAM.md 来源记录统一改为中文维护
把 12 份 UPSTREAM.md 来源记录全部翻译为中文,并把中文定为这份仓库自有
维护文档的强制语言。
- 翻译 hippo-memory-pi、pi-ask-user、pi-chrome、pi-compaction、
pi-extension-codex-fast-mode、pi-minimal-footer、pi-notify、
pi-permission-system/docs/auto-review、pi-ssh、pi-subagents 与
pi-tool-search 的来源记录。
- 在 AGENTS.md 增加纪律:每个自维护扩展目录必须保留中文 UPSTREAM.md,
内容涵盖官方仓库、tag/commit、导入版本、导入日期、许可证归属、本地
改动清单与同步上游时的约束。
- 明确边界:UPSTREAM.md 属于仓库自有的维护文档,因此使用中文;上游自带
的源码、测试、文档、README、CHANGELOG 与 LICENSE 一律保持原文,不翻
译、不改写,避免同步上游时产生无意义 diff 并破坏许可证原文完整性。
- 所有 40 位 commit、tag/版本号、仓库 URL 与许可证路径原样保留,仅翻译
叙述性文字。
验证:12 份文件均无残留英文正文;逐份复核了 commit、版本、URL 与
LICENSES/ 路径未发生改变。
|
2026-10-13 23:19:01 -07:00 |
|
云服务部-叶林立
|
44f27f7585
|
feat(pi-ask-user): support RPC UI dialogs
|
2026-09-01 11:04:31 +08:00 |
|
云服务部-叶林立
|
2dcec0207c
|
feat(tool-search): expand dynamic group activation
|
2026-08-28 12:05:11 +08:00 |
|
云服务部-叶林立
|
bf874455db
|
fix(tool-search): avoid blocking known group activation
|
2026-08-27 10:13:52 +08:00 |
|
云服务部-叶林立
|
b7758b239e
|
Merge remote-tracking branch 'origin/my-pi-worktree1'
# Conflicts:
# AGENTS.md
|
2026-08-26 11:04:54 +08:00 |
|
叶林立
|
ca0a7c0bfd
|
Merge branch 'main' of bitbucket.org:siakitem/my-pi
# Conflicts:
# AGENTS.md
# README.md
# package-lock.json
# package.json
# pi-tool-search/CHANGELOG.md
# pi-tool-search/README.md
# pi-tool-search/docs/dynamic-tool-loading.md
# pi-tool-search/extensions/bundle-groups.ts
# pi-tool-search/test/bundle-groups.test.ts
|
2026-08-26 10:59:34 +08:00 |
|
叶林立
|
7571ba6dd9
|
feat: enable permission-aware subagents
|
2026-08-26 10:49:26 +08:00 |
|
云服务部-叶林立
|
b658e52367
|
feat: integrate pi-chrome with tool search
|
2026-08-26 10:46:47 +08:00 |
|
云服务部-叶林立
|
dc925e1eeb
|
Merge branch 'my-pi-worktree1'
# Conflicts:
# AGENTS.md
# pi-tool-search/CHANGELOG.md
# pi-tool-search/docs/dynamic-tool-loading.md
|
2026-08-25 15:18:58 +08:00 |
|
云服务部-叶林立
|
aff91b0972
|
fix(pi-ssh): harden remote execution and search
|
2026-08-24 23:04:29 +08:00 |
|
云服务部-叶林立
|
939139b5f3
|
feat: add interactive ask-user extension
|
2026-08-24 20:23:54 +08:00 |
|
云服务部-叶林立
|
a7891f18bf
|
feat(pi-ssh): add reviewed agent connection flow
|
2026-08-21 20:52:50 +08:00 |
|
云服务部-叶林立
|
0ac50eb581
|
feat: add pure ssh2 remote operations
|
2026-08-21 19:51:43 +08:00 |
|
云服务部-叶林立
|
3cdcc3510b
|
feat: vendor official hippo memory extension
|
2026-08-19 21:07:23 +08:00 |
|
云服务部-叶林立
|
3507f85363
|
feat: vendor grouped tool search
|
2026-08-19 16:43:36 +08:00 |
|