personal-bot 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -100,7 +100,7 @@ Personal Bot stores no private activation state in the workspace. Pi owns its co
100
100
 
101
101
  ## Updates and historical data
102
102
 
103
- Current release: **0.2.0**. Personal Bot maintains no workspace format, initialization state, or workspace upgrade mechanism. Update the plugin through Pi package management. For a local installation, update the source, run `npm ci --ignore-scripts` if dependencies changed, then reload or restart Pi.
103
+ Current release: **0.2.1**. Personal Bot maintains no workspace format, initialization state, or workspace upgrade mechanism. Update the plugin through Pi package management. For a local installation, update the source, run `npm ci --ignore-scripts` if dependencies changed, then reload or restart Pi.
104
104
 
105
105
  Stop active sub-sessions before changing versions. Sub-session compatibility follows the minor version before 1.0 and the major version from 1.0 onward. Sessions from another compatibility line cannot be resumed directly.
106
106
 
package/README.zh-CN.md CHANGED
@@ -98,7 +98,7 @@ Personal Bot 不在工作区内保存私有启用状态。Pi 配置仍由 Pi 管
98
98
 
99
99
  ## 更新与历史数据
100
100
 
101
- 当前版本为 **0.2.0**。不维护工作区格式、初始化状态或升级机制。插件更新使用 Pi 原生包管理;本地安装则更新来源源码,依赖变化后执行 `npm ci --ignore-scripts`,再重载或重启 Pi。更换版本前先停止活动子会话;不同兼容线的子会话不能直接恢复。
101
+ 当前版本为 **0.2.1**。不维护工作区格式、初始化状态或升级机制。插件更新使用 Pi 原生包管理;本地安装则更新来源源码,依赖变化后执行 `npm ci --ignore-scripts`,再重载或重启 Pi。更换版本前先停止活动子会话;不同兼容线的子会话不能直接恢复。
102
102
 
103
103
  子会话 JSONL 由 Pi 保存在原生 sessions 目录或原生配置指定的位置;`pbot/subagents/` 只保存控制记录与会话引用,团队公共记录保存在 `pbot/teams/`。0.2.0 不兼容旧会话位置,不迁移或删除 0.1.x 历史;旧记录不进入当前列表或后台调度。先在旧版停止活动成员,更新后重新创建 agent。共享 Python 环境使用用户级 `pbot/python/.venv`,具体系统路径见 [Python 说明](python/README.md)。不自动导入其他应用的会话、配置或环境,也不修改其数据。MCP 连接与 CLI 环境按原生方式显式配置;用户资料、历史证据和备份原样保留。
104
104
 
@@ -9,7 +9,7 @@ Personal Bot 保留独立工作和团队工作。成员仍由 tmux 和独立 Pi
9
9
  | start | 新建上下文,可指定 name/provider/model/thinking/cwd/tools;有 message/prompts/files 时执行初始工作,否则只启动待命进程 |
10
10
  | send | 向 agentId 发送 message;delivery 默认为 steer,followUp 排到当前工作之后 |
11
11
  | rename | 修改名称,agentId 保持不变 |
12
- | status/list | 查询状态或当前父会话的子会话 |
12
+ | status/list | 查询状态或当前父会话的子会话;status 不读取报告正文,报告通过 read 获取 |
13
13
  | read | 按 agentId、可选 cycleId 和 offset/limit 读取报告 |
14
14
  | stop | 请求停止,保留历史 |
15
15
  | resume | 用新 message 重启已停止子会话,不重放旧工作 |
@@ -18,6 +18,8 @@ Personal Bot 保留独立工作和团队工作。成员仍由 tmux 和独立 Pi
18
18
 
19
19
  start 支持 noExtensions、noSkills、noPromptTemplates 和 noContextFiles。noExtensions 默认 true,显式保留子入口及 Pi 内置 MCP、codemode、工具搜索;设为 false 时按 Pi 规则发现其他扩展。tools 遵循 Pi 原生选择。子入口只增加 pbot_team_message,不提供 pbot_agent 或 pbot_team 管理能力。
20
20
 
21
+ 初始 files 相对工作区根目录解析。子入口在每份附件前标出绝对来源路径,保留 Pi 原生 read 的文本、图像及截断提示;未读完的附件由成员沿该路径续读。message 与 prompts 合并为一次输入,不继承父聊天历史。
22
+
21
23
  初始模型与思考级别默认继承主会话;恢复时交由 Pi 使用保存的原生模型配置,不重新传入初始模型选项。模型不可用或缺少认证时仍遵循 Pi 的原生回退与错误行为。子会话从自己的 cwd 和 Pi agent dir 取得原生配置与认证,不继承父进程临时注册的模型或 MCP。环境与授权规则见[工具与执行](capability-design.md)。
22
24
 
23
25
  ## 原生会话与恢复入口
@@ -71,7 +73,7 @@ run 要求全部成员空闲、无未消费的私人输入,并已加载可用
71
73
 
72
74
  团队公共记录独立于各自私人会话。新团队请求通过原有 inbox 投递;before_agent_start 注入已署名的公共原文,运行中在 turn_end 安全边界追加消息,不请求额外 continuation。空闲成员在下一次团队请求时取得信息,私人工作不自动注入新群消息。
73
75
 
74
- 成员任务、团队背景、自动注入的公共消息和批次通知使用 Markdown 文档。团队背景按共同目标、成员职责和本批次要求分节;公共消息按 seq 分节,列出作者、回复关系与来源,正文放入保留原文的代码区块,包含代码围栏的正文也不会破坏区块边界。成员原文中的 JSON 保留原样。
76
+ 成员任务、团队背景、自动注入的公共消息和批次通知使用 Markdown 文档。团队背景按共同目标和成员职责分节,保留身份与轮次;本批次要求仅在成员任务输入中给出,避免在系统简报中重复。公共消息按 seq 分节,列出作者、回复关系与来源,正文放入保留原文的代码区块,包含代码围栏的正文也不会破坏区块边界。成员原文中的 JSON 保留原样。
75
77
 
76
78
  read 的文本结果也使用 Markdown,同时保留工具的结构化结果。nextOffset 非空表示该条正文未读完,用同一 teamId、seq 和 offset 续读;nextAfterSeq 用于后续消息。自动注入按实际 Markdown 长度限制上下文,并用 remainingFromSeq 标明未包含的消息,从 afterSeq: remainingFromSeq - 1 继续读取。不能将展示片段当作完整记录。Pi 压缩不删除公共记录。
77
79
 
@@ -99,7 +101,7 @@ read 的文本结果也使用 Markdown,同时保留工具的结构化结果。
99
101
 
100
102
  主 agent 收到的独立子会话结果通知,以及 pbot_agent、pbot_team 和 pbot_team_message 的文本结果均使用 Markdown。列表、状态、工作周期和报告分节展示,报告保留原文;通知中的报告最多展示 2000 字符,完整内容通过 read 分页读取。工具的 structuredContent、details 与 read 收据保持原有契约。
101
103
 
102
- 独立周期保留原有自动通知与 read 收据。团队关联周期不重复发个人完成通知;主模型只收到批次结束、暂停和收尾状态。普通 post 不唤醒主模型。团队通知按 teamId/runId/状态去重,UI 或工具 read 不领取模型通知。
104
+ 独立周期的 read 结果进入当前分支后领取该周期通知,包括只读取部分正文的情况。nextOffset 非空时,以同一 agentId、返回的 cycle.cycleId 和 nextOffset 续读,避免默认最新周期发生变化;status 不领取通知。团队关联周期不重复发个人完成通知;主模型只收到批次结束、暂停和收尾状态。普通 post 不唤醒主模型。团队通知按 teamId/runId/状态去重,UI 或工具 read 不领取模型通知。
103
105
 
104
106
  团队与成员均绑定父 session/分支。失去归属时暂停新安排,不向当前主分支投递结果。fork 不接管旧团队;返回原分支不会自动恢复旧批次。公共记录与外部工作不会随树导航回滚。
105
107
 
@@ -120,7 +122,9 @@ pause 返回时可能仍有在途请求。unresolved 区分排队、已接收、
120
122
 
121
123
  /pbot agents 提供状态列表、进入子 TUI、补充要求、重命名和停止,不再提供单独的报告查看或恢复并继续菜单。报告仍可通过 pbot_agent read 获取。/pbot teams 提供团队状态、公共记录分页、post、新批次、pause、close,以及相同的成员菜单。无 TUI 时通过同样的结构化工具使用,不支持 attach。
122
124
 
123
- 后台扫描遇到短暂的 `.control` 锁竞争时,在下一次扫描重试,不立即显示错误;连续至少 5 秒仍无法取得锁时显示错误。扫描成功后清除旧错误提示。此等待不自动删除锁,也不重跑旧任务;命令和工具的锁冲突仍直接报告。
125
+ 后台扫描遇到短暂的 `.control` 锁竞争时,在下一次扫描重试;连续至少 5 秒仍无法取得锁,包括主会话中断后暂停团队仍被锁阻塞的情况,会保留 UI 错误并通知模型。暂停未成功时,通知明确说明暂停尚未确认。报告或控制记录读取失败也会通知模型。同一持续故障在当前分支去重;恢复要求升级时补发一次通知。主会话中断期间延后投递,恢复输入后再通知。
126
+
127
+ 通知按实际服务状态说明恢复方式:锁释放后自动恢复扫描;可恢复的读取错误先排障,修复后由后台重试;团队服务或协作存储已停用时,修复文件仍不能恢复当前实例,须请用户在当前 Pi 会话执行 `/reload`。重载前不反复调用 pbot_team,可通过 pbot_agent list/status/read 核对仍可读取的成员状态与报告;重载后再用 pbot_team status/read 核对团队。成功扫描后清除故障状态。通知不重发任务、不删除锁,命令和工具的错误仍直接返回。
124
128
 
125
129
  选择成员后,操作菜单的“进入 TUI”选项直接标明返回快捷键,选中后立即进入,不再二次确认。团队成员入口使用相同流程。默认 tmux 绑定下,普通终端按 Ctrl+B 后按 d 脱离子会话;主会话已在 tmux 中时,按 Ctrl+B 后按小写 l 切回上一个会话。自定义绑定以自己的 tmux 配置为准。返回不会停止成员,不要用 /exit 代替返回。
126
130
 
package/docs/release.md CHANGED
@@ -59,7 +59,7 @@ git tag "v$VERSION"
59
59
  git push origin "v$VERSION"
60
60
  ```
61
61
 
62
- 发布作业下载本次 CI 的同一 tarball,使用 OIDC 和 provenance 上传,跳过包脚本,然后查询公开版本与 latest。普通分支推送只运行 CI;已推送的发布 tag 保持不变。预发布版本不适用此流程。
62
+ 发布作业下载本次 CI 的同一 tarball,使用 OIDC 和 provenance 上传,跳过包脚本,然后查询公开版本与 latest。npm 可能在上传成功后继续处理包,查询最多执行 20 次,失败后间隔 15 秒;只重试只读查询,不重试上传。普通分支推送只运行 CI;已推送的发布 tag 保持不变。预发布版本不适用此流程。
63
63
 
64
64
  ## 本机发布
65
65
 
@@ -91,6 +91,6 @@ npm view personal-bot dist-tags --json --registry=https://registry.npmjs.org
91
91
 
92
92
  在独立 Pi 配置和临时工作区执行 `pi install --local npm:personal-bot`,核对安装版本、扩展加载、技能发现和 /pbot status。
93
93
 
94
- 上传结果不明时先查询 registry。若上传完成但后续查询失败,手动运行 Publish npm,选择原版本 tag 并保持 verify_only=true。该模式重新执行检查与 registry 查询,不上传;目标版本已不是 latest 时会失败。
94
+ 上传结果不明时先查询 registry。若上传完成但后续查询失败,手动运行 Publish npm,选择原版本 tag 并保持 verify_only=true。该模式重新执行检查与 registry 查询,不上传;目标版本已不是 latest 时会失败。不要直接重跑原上传作业,也不要移动已发布 tag。
95
95
 
96
96
  已发布版本不可覆盖。问题修复由维护者选择新版本、弃用说明或 dist-tag 调整。当前远端发布和全新安装仍待验收,范围见[验证](validation.md)。
@@ -60,7 +60,7 @@ Pi 原生配置决定扩展加载范围,启动目录作为工作区根目录
60
60
 
61
61
  主会话通过 before_agent_start 增加提示词 section,同时保留 Pi 原生 AGENTS.md 加载。资源在使用时读取,缺失时报错;提示词更新后通过 /reload 或重启加载。
62
62
 
63
- 公共约定负责工作区与执行边界,角色负责职责与验收,技能提供专业方法与必要的本地操作约定,工具定义参数与结果语义。工作区资料保存目标、偏好、任务定义和证据,布局见[文件存储](file-storage.md)。
63
+ 公共约定负责工作区与执行边界,角色负责职责与验收,技能提供专业方法与必要的本地操作约定,工具定义参数与结果语义。委派资料修改依据原任务授权及明确的文件责任,诊断环境问题不要求再次授权。工具按 action 校验必填与允许字段,返回具体参数错误;status 不读取报告正文。附件组装由 integrations/pi/agent-input 保留绝对来源及 Pi 原生读取结果。工作区资料保存目标、偏好、任务定义和证据,布局见[文件存储](file-storage.md)。
64
64
 
65
65
  ## 原生子会话存储
66
66
 
@@ -27,6 +27,8 @@ npm test 先构建 dist,再串行执行 Node 测试。测试使用真实本地
27
27
 
28
28
  0.2.0 的会话存储测试不调用模型。真实 CLI 观察扩展只记录会话身份、路径和原生模型状态;历史输入通过实际 SDK 保存。测试覆盖引用 I/O 失败阻断输入,以及缺失、空白、无效、错误身份/cwd 和非普通文件在 generation/入队变更前拒绝恢复。无认证环境只能验证不以初始模型选项覆盖原生恢复;保存模型的认证恢复成功仍需获准环境验收。
29
29
 
30
+ 新增输入与通知检查使用真实本地附件和 Pi SDK:验证多附件来源、图片内容与原生截断续读,报告不可读时 status 仍可查询,工具拒绝缺项及跨 action 字段,以及故障通知进入模型上下文并遵循中断。通知回归使用真实控制锁与时间,检查暂停持续受阻后的延迟通知、去重和锁释放后的恢复;损坏的团队记录用于检查已通知的读取错误升级为需重载故障时再次通知,以及修复存储后仍须原生 reload 才恢复团队工具。这些检查不验证通知文案、真实模型的工具选择或提示优化效果。
31
+
30
32
  Node 测试不下载第三方 Python 依赖;原生库集成验证见 [Python 说明](../python/README.md)。
31
33
 
32
34
  ## 已批准的真实模型冒烟(0.1.3)