@gavin-hu/my-pi-agent 0.19.0 → 0.21.0

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.
Files changed (208) hide show
  1. package/README.md +19 -12
  2. package/README.zh-CN.md +15 -9
  3. package/docs/extensions/README.md +2 -1
  4. package/docs/extensions/board.md +329 -151
  5. package/docs/extensions/bytefly.md +427 -273
  6. package/docs/extensions/file-browse.md +46 -44
  7. package/docs/extensions/job.md +1 -2
  8. package/docs/extensions/plan.md +86 -24
  9. package/docs/extensions/serve.md +129 -0
  10. package/docs/extensions/session-bus.md +23 -10
  11. package/docs/extensions/team.md +56 -28
  12. package/docs/extensions/wechat.md +2 -1
  13. package/docs/extensions/worktree.md +30 -15
  14. package/extensions/board/commands.ts +48 -17
  15. package/extensions/board/format.ts +107 -9
  16. package/extensions/board/index.ts +14 -2
  17. package/extensions/board/join.ts +31 -10
  18. package/extensions/board/page.ts +202 -156
  19. package/extensions/board/result.ts +10 -24
  20. package/extensions/board/rows.ts +1 -1
  21. package/extensions/board/schema.ts +31 -10
  22. package/extensions/board/seat.ts +9 -10
  23. package/extensions/board/snapshot.ts +7 -5
  24. package/extensions/board/tools.ts +211 -34
  25. package/extensions/board/transport/router.ts +27 -110
  26. package/extensions/board/transport/server.ts +76 -56
  27. package/extensions/board/types.ts +57 -0
  28. package/extensions/board/view/client.ts +24 -13
  29. package/extensions/board/view/dialog.ts +43 -0
  30. package/extensions/board/view/keys.ts +28 -24
  31. package/extensions/board/view/live.ts +6 -178
  32. package/extensions/board/view/names.ts +91 -0
  33. package/extensions/board/view/page.ts +60 -89
  34. package/extensions/board/view/render.ts +228 -200
  35. package/extensions/board/view/styles.ts +72 -49
  36. package/extensions/board/view/team.ts +63 -41
  37. package/extensions/bytefly/footer/budget.ts +6 -5
  38. package/extensions/bytefly/footer/collect/entries.ts +12 -4
  39. package/extensions/bytefly/footer/collect/snapshot.ts +8 -17
  40. package/extensions/bytefly/footer/config.ts +19 -11
  41. package/extensions/bytefly/footer/price/price.ts +30 -8
  42. package/extensions/bytefly/footer/register.ts +5 -5
  43. package/extensions/bytefly/footer/render/footer.ts +18 -4
  44. package/extensions/bytefly/footer/render/format.ts +18 -0
  45. package/extensions/bytefly/footer/render/key.ts +46 -0
  46. package/extensions/bytefly/footer/render/layout.ts +13 -3
  47. package/extensions/bytefly/footer/render/lines.ts +23 -7
  48. package/extensions/bytefly/footer/render/segments.ts +93 -31
  49. package/extensions/bytefly/footer/types.ts +29 -5
  50. package/extensions/bytefly/footer/unpriced.ts +42 -17
  51. package/extensions/bytefly/header/component.ts +4 -20
  52. package/extensions/bytefly/panel/commands.ts +28 -1
  53. package/extensions/bytefly/panel/filter.ts +68 -0
  54. package/extensions/bytefly/panel/format.ts +16 -15
  55. package/extensions/bytefly/panel/join.ts +56 -13
  56. package/extensions/bytefly/panel/prices.ts +43 -0
  57. package/extensions/bytefly/panel/settings.ts +72 -23
  58. package/extensions/bytefly/panel/tui/entries.ts +26 -8
  59. package/extensions/bytefly/panel/tui/frame.ts +130 -93
  60. package/extensions/bytefly/panel/tui/keys.ts +352 -0
  61. package/extensions/bytefly/panel/tui/list-view.ts +25 -46
  62. package/extensions/bytefly/panel/tui/panes.ts +76 -0
  63. package/extensions/bytefly/panel/tui/section-view.ts +126 -0
  64. package/extensions/bytefly/panel/tui/settings-section.ts +54 -125
  65. package/extensions/bytefly/panel/tui/settings-view.ts +30 -131
  66. package/extensions/bytefly/panel/tui/side-pane.ts +224 -0
  67. package/extensions/bytefly/panel/tui.ts +306 -259
  68. package/extensions/check/commands.ts +2 -1
  69. package/extensions/check/render.ts +10 -1
  70. package/extensions/file-browse/config/config.ts +4 -19
  71. package/extensions/file-browse/files/classify.ts +136 -0
  72. package/extensions/file-browse/files/files.ts +8 -547
  73. package/extensions/file-browse/files/index.ts +90 -0
  74. package/extensions/file-browse/files/list.ts +261 -0
  75. package/extensions/file-browse/files/tree.ts +101 -0
  76. package/extensions/file-browse/index.ts +27 -48
  77. package/extensions/file-browse/live/live.ts +1 -1
  78. package/extensions/file-browse/transport/router.ts +12 -6
  79. package/extensions/file-browse/transport/server.ts +61 -28
  80. package/extensions/file-browse/view/chrome.ts +4 -4
  81. package/extensions/file-browse/view/client.ts +3 -1
  82. package/extensions/file-browse/view/emit.ts +51 -0
  83. package/extensions/file-browse/view/html.ts +78 -46
  84. package/extensions/file-browse/view/live-client.ts +2 -2
  85. package/extensions/file-browse/view/markdown.ts +23 -26
  86. package/extensions/file-browse/view/palette.ts +2 -2
  87. package/extensions/file-browse/view/raw-html.ts +27 -22
  88. package/extensions/file-browse/view/tree.ts +1 -1
  89. package/extensions/file-browse/view/urls.ts +20 -6
  90. package/extensions/goal/tui.ts +12 -2
  91. package/extensions/job/runtime.ts +4 -4
  92. package/extensions/job/tools.ts +19 -7
  93. package/extensions/job/tui.ts +2 -28
  94. package/extensions/plan/commands.ts +2 -2
  95. package/extensions/plan/feedback.ts +88 -18
  96. package/extensions/plan/format.ts +10 -3
  97. package/extensions/plan/index.ts +24 -2
  98. package/extensions/plan/plan-files.ts +88 -0
  99. package/extensions/plan/plan-text.ts +114 -0
  100. package/extensions/plan/plans.ts +19 -23
  101. package/extensions/plan/policy.ts +10 -5
  102. package/extensions/plan/runtime.ts +43 -4
  103. package/extensions/plan/todos.ts +51 -3
  104. package/extensions/plan/tools/exit.ts +10 -1
  105. package/extensions/plan/tools/todo-seed.ts +4 -2
  106. package/extensions/plan/tools/write.ts +12 -1
  107. package/extensions/plan/tools.ts +2 -2
  108. package/extensions/plan/types.ts +15 -0
  109. package/extensions/plan/web-blocks.ts +160 -0
  110. package/extensions/plan/web-chrome.ts +7 -5
  111. package/extensions/plan/web-client.ts +271 -325
  112. package/extensions/plan/web-collab.ts +7 -7
  113. package/extensions/plan/web-comments.ts +57 -16
  114. package/extensions/plan/web-composer.ts +91 -0
  115. package/extensions/plan/web-draft.ts +40 -0
  116. package/extensions/plan/web-keys.ts +258 -0
  117. package/extensions/plan/web-markdown.ts +1 -1
  118. package/extensions/plan/web-outline.ts +212 -0
  119. package/extensions/plan/web-page.ts +59 -86
  120. package/extensions/plan/web-payload.ts +188 -0
  121. package/extensions/plan/web-plan.ts +160 -0
  122. package/extensions/plan/web-router.ts +0 -1
  123. package/extensions/plan/web-settle.ts +201 -0
  124. package/extensions/plan/web-share-session.ts +24 -55
  125. package/extensions/plan/web-share.ts +19 -37
  126. package/extensions/plan/web-write.ts +112 -0
  127. package/extensions/plan/web.ts +77 -130
  128. package/extensions/rewind/commands/review.ts +2 -1
  129. package/extensions/serve/config.ts +37 -0
  130. package/extensions/serve/index.ts +71 -0
  131. package/extensions/serve/registry.ts +251 -0
  132. package/extensions/session-bus/join-request.ts +16 -9
  133. package/extensions/session-bus/result.ts +1 -27
  134. package/extensions/session-bus/rows.ts +7 -3
  135. package/extensions/session-bus/runtime.ts +100 -38
  136. package/extensions/session-bus/store.ts +14 -2
  137. package/extensions/session-bus/tools.ts +5 -4
  138. package/extensions/session-bus/tui.ts +1 -1
  139. package/extensions/session-bus/types.ts +10 -1
  140. package/extensions/subagent/commands.ts +2 -1
  141. package/extensions/team/commands.ts +44 -9
  142. package/extensions/team/format.ts +14 -0
  143. package/extensions/team/index.ts +2 -1
  144. package/extensions/team/tools.ts +30 -9
  145. package/extensions/team/types.ts +17 -0
  146. package/extensions/todo/index.ts +4 -1
  147. package/extensions/todo/nudge.ts +8 -2
  148. package/extensions/todo/tui.ts +21 -3
  149. package/extensions/wechat/bridge.ts +43 -172
  150. package/extensions/wechat/intake.ts +245 -0
  151. package/extensions/worktree/commands.ts +24 -17
  152. package/extensions/worktree/exit.ts +12 -6
  153. package/extensions/worktree/git.ts +22 -14
  154. package/extensions/worktree/guard.ts +15 -285
  155. package/extensions/worktree/handoff.ts +10 -2
  156. package/extensions/worktree/index.ts +2 -1
  157. package/extensions/worktree/lifecycle.ts +2 -0
  158. package/extensions/worktree/registry.ts +20 -11
  159. package/extensions/worktree/root-tools.ts +13 -3
  160. package/extensions/worktree/runtime.ts +8 -2
  161. package/extensions/worktree/screen.ts +15 -8
  162. package/extensions/worktree/shell.ts +303 -0
  163. package/extensions/worktree/state.ts +1 -1
  164. package/extensions/worktree/status.ts +42 -9
  165. package/extensions/worktree/tools.ts +19 -13
  166. package/lib/README.md +9 -7
  167. package/lib/board/card.ts +192 -3
  168. package/lib/board/links.ts +26 -2
  169. package/lib/board/page-pointer.ts +111 -32
  170. package/lib/board/round-text.ts +11 -2
  171. package/lib/board/round.ts +25 -20
  172. package/lib/board/rules.ts +144 -11
  173. package/lib/board/session.ts +84 -18
  174. package/lib/board/store.ts +268 -55
  175. package/lib/board/view.ts +114 -24
  176. package/lib/bus-request.ts +83 -0
  177. package/lib/format.ts +22 -0
  178. package/lib/http/index.ts +11 -7
  179. package/lib/http/mount.ts +142 -0
  180. package/lib/http/port.ts +25 -0
  181. package/lib/http/serve.ts +170 -43
  182. package/lib/http/server.ts +3 -3
  183. package/lib/http/sink.ts +34 -9
  184. package/lib/plan-entry.ts +20 -13
  185. package/lib/policy.ts +14 -1
  186. package/lib/requirements.ts +2 -2
  187. package/lib/session-label.ts +23 -7
  188. package/lib/session-roster.ts +74 -3
  189. package/lib/session-tool.ts +37 -21
  190. package/lib/spawn.ts +37 -3
  191. package/lib/stray-fields.ts +45 -0
  192. package/lib/tool-names.ts +13 -0
  193. package/lib/tui/README.md +6 -3
  194. package/lib/tui/glyphs.ts +3 -6
  195. package/lib/tui/render-cache.ts +29 -0
  196. package/lib/tui/tool.ts +30 -1
  197. package/lib/web/README.md +52 -2
  198. package/lib/web/client-runtime.ts +149 -0
  199. package/lib/web/index.ts +4 -2
  200. package/lib/web/markup.ts +106 -2
  201. package/lib/web/names.ts +42 -0
  202. package/package.json +3 -2
  203. package/extensions/board/config.ts +0 -36
  204. package/extensions/board/view/actions.ts +0 -306
  205. package/extensions/board/writes.ts +0 -99
  206. package/extensions/bytefly/panel/tui/extensions-view.ts +0 -40
  207. package/extensions/bytefly/panel/tui/skills-view.ts +0 -50
  208. package/extensions/job/process.ts +0 -35
package/README.md CHANGED
@@ -15,7 +15,7 @@ This page is the catalog and the setup instructions. For how to use a feature
15
15
  the keys, the commands, and what you should see — start with the
16
16
  [user guide](./docs/user-guide/).
17
17
 
18
- ![A terminal window running the Pi TUI: the bytefly header naming Pi and bytefly's versions, three key-hint rows, a nameplated message with its answer and an edit diff behind the rail, a finished-jobs notice, the turn rule, the goal and todo rails, and the two-line footer](assets/screens/chrome.png)
18
+ ![A terminal window running the Pi TUI: the bytefly header naming Pi and bytefly's versions, three key-hint rows, a nameplated message with its answer and an edit diff behind the rail, a notice that two background jobs finished, naming the test run that passed and the build that failed, the turn rule, the goal and todo rails, the input editor with a half-typed request between its two rules, and the two-line footer — the plan chip and the branch above, the context gauge, the priced cost against its $5 budget, and the model below](assets/screens/chrome.png)
19
19
 
20
20
  ## Contents
21
21
 
@@ -71,16 +71,22 @@ Windows, macOS, and Linux all work, and the full check suite runs on each in CI.
71
71
 
72
72
  Then, from inside Pi:
73
73
 
74
- - `/bytefly [extension] [refresh]` opens the control center on Extensions, lists
75
- every loaded extension with its runtime health, enables or disables one, and
76
- clears a project override with `x`.
77
- - `/bytefly settings` opens the control center's Settings section: one flat list
78
- of the twelve preferences a session changes, each with its value beside the
79
- label, `Space`/`Enter` to change one and `Tab` for Global/Project scope. Every
80
- other key is a `bytefly.json` edit, listed in the configuration reference.
74
+ - `/bytefly [extension] [refresh]` opens the control center on Extensions: one
75
+ frame for all three sections, its header rule carrying the attention at the
76
+ right (or `all clear`), a tab row with each section's count and the write scope.
77
+ It lists every loaded extension by name, with a checkbox and at most one
78
+ verdict word, enables or disables one, and clears a project override with `x`;
79
+ `/` filters the rows, `!` keeps only what needs attention, and `?` shows every
80
+ key.
81
+ - `/bytefly settings` opens the control center's Settings section: the twelve
82
+ preferences a session changes, grouped under Startup, Notifications, Session,
83
+ and Price with each value in an aligned column, `Space`/`Enter` to change one
84
+ and `s` for Global/Project scope. Every other key is a `bytefly.json` edit,
85
+ listed in the configuration reference.
81
86
  - `/bytefly skills` opens the control center's Skills section: one row per Pi
82
- skill with its enable checkbox, its declared description underneath, and
83
- `Space` to switch it on or off for the active scope.
87
+ skill with its enable checkbox and at most one verdict word, what its `SKILL.md`
88
+ declares in the block beside it, and `Space` to switch it on or off for the
89
+ active scope.
84
90
  - `/bytefly doctor [extension] [refresh]` prints the doctor report —
85
91
  `run_doctor`'s text — and checks that each enabled extension has what it needs
86
92
  at runtime.
@@ -102,7 +108,7 @@ document. `PI_OFFLINE` skips the check;
102
108
 
103
109
  ## What you get
104
110
 
105
- 21 extensions, 4 packaged skills, and 2 themes, grouped by the promises the
111
+ 22 extensions, 4 packaged skills, and 2 themes, grouped by the promises the
106
112
  [roadmap](./ROADMAP.md) tracks; the [guide](./docs/user-guide/) covers the same
107
113
  ground chapter by chapter. Each extension's own page in `docs/extensions/` has
108
114
  the full tool and command surface, opening with its capabilities.
@@ -120,7 +126,8 @@ the full tool and command surface, opening with its capabilities.
120
126
  | [`job`](./docs/extensions/job.md) | `job`, `/jobs` | Run long-lived shell commands in the background; inspect logs, wait, or kill them. |
121
127
  | [`watch`](./docs/extensions/watch.md) | `watch`, `/watch` | Tail a file or command output, match lines against patterns, and alert you or hand matching lines to the agent. |
122
128
  | [`session-bus`](./docs/extensions/session-bus.md) | `session`, `/sessions` (screen) | Coordinate parallel Pi sessions on one repository: discover peers, exchange short messages/events, consume an inbox, or claim paths before editing, with `/sessions` as a live board of peers, unread mail, and claims. Local, pull-based by default, with an opt-in inbox watch that raises this session's turn once it is idle; it never spawns an agent. |
123
- | [`board`](./docs/extensions/board.md) | `board`, `/board` | One shared feature board per repository: a card per feature, which any session claims, moves, edits, notes, and finishes, and one loopback page that shows the same cards live in a **Board** and a **Team** tab. The page serves as the seat `team-lead`, so a second session opens it read-only instead of starting a rival one. A card can carry a priority, name the cards it waits on, and be handed to a teammate from the dashboard. Steps stay in the owner's plan and `todo`; a card is the feature, its owner, and the history that explains it. `board.port` in `bytefly.json` pins the page's port, so a bookmarked URL survives a restart. |
129
+ | [`serve`](./docs/extensions/serve.md) | — | The session's one loopback server. `/board`, `/browse`, and a browser plan review mount path prefixes on it instead of binding their own listeners, so a session has one port, one chip, and one close path — and a second session (a peer conversation, another worktree, another Pi) still gets its own. `serve.port` in `bytefly.json` pins that port, so a bookmarked URL survives a restart, and a shared review borrows exactly one LAN address for the one page that asked. |
130
+ | [`board`](./docs/extensions/board.md) | `board`, `/board` | One shared feature board per repository: a card per feature, which any session claims, moves, edits, notes, finishes, and archives — a finished card leaves the board for an `archive/` pile with its notes and landed commit still readable, so a long history stops costing every read — and one loopback page that shows the same cards live in a **Board** and a **Team** tab. The page is a read view — the tools are the only writers — served as the seat `team-lead`, so a second session opens the same page instead of starting a rival one, and handing a card to a teammate is `team`'s job because only it can message them. A card can carry a priority and name the cards it waits on. Steps stay in the owner's plan and `todo`; a card is the feature, its owner, and the history that explains it. The page answers at `/board` on the session's one port, so `serve.port` is the address to bookmark. |
124
131
  | [`team`](./docs/extensions/team.md) | `team`, `/team` | The lead's round over the same board. `/team join <label>` puts a session on the team, and `/board` does it for the lead as `team-lead`; then `assign` hands a feature to a running session, `offer` hands one to whoever is free — a broadcast that writes nothing, claimed by the first taker — and `reclaim` takes a card back to To do. A result says who will be woken for it and who will read it at their next turn, `/team` prints the round in the terminal without a browser, and nothing is spawned. |
125
132
  | [`context`](./docs/extensions/context.md) | `/context` | Show where the context window goes — system prompt, tool definitions, conversation by role, injected notes — and compact from the report with the before and after numbers. |
126
133
 
package/README.zh-CN.md CHANGED
@@ -13,7 +13,7 @@
13
13
  本页是目录与安装说明。要了解某个功能怎么用 —— 按键、命令以及应有的效果 ——
14
14
  请先看[用户指南](./docs/user-guide/)。
15
15
 
16
- ![一个运行 Pi TUI 的终端窗口:bytefly 头部标出 Pi 与 bytefly 的版本、三行按键提示、带名板的消息及其回答与编辑差异(位于竖线内)、后台任务完成通知、回合分隔线、目标与待办栏,以及两行页脚](assets/screens/chrome.png)
16
+ ![一个运行 Pi TUI 的终端窗口:bytefly 头部标出 Pi 与 bytefly 的版本、三行按键提示、带名板的消息及其回答与编辑差异(位于竖线内)、两个后台任务完成的通知(一个通过的测试任务与一个失败的构建任务)、回合分隔线、目标与待办栏、夹在两条横线之间且已输入半句的输入框,以及两行页脚(上下文指示、按价目计算的费用、模型名)](assets/screens/chrome.png)
17
17
 
18
18
  ## 目录
19
19
 
@@ -63,13 +63,18 @@ Windows、macOS 和 Linux 均可运行,完整检查套件在每个平台上都
63
63
 
64
64
  然后在 Pi 中:
65
65
 
66
- - `/bytefly [extension] [refresh]` 打开控制中心的 Extensions 区,列出每个已加载扩展
67
- 及其运行时健康状况,启用或禁用一个扩展,并用 `x` 清除项目级覆盖。
68
- - `/bytefly settings` 打开控制中心的 Settings 区:一次会话会改动的十二项设置排成
69
- 一列,值紧跟在名称之后;用 `Space`/`Enter` 修改,用 `Tab` 切换 Global/Project
70
- 作用域。其余键都是 `bytefly.json` 编辑,见配置参考。
66
+ - `/bytefly [extension] [refresh]` 打开控制中心的 Extensions 区:三个区共用一个
67
+ 框架,头部横线的右端写着需要注意的事项(没有问题时为 `all clear`),一行 tab
68
+ 标出各区的数量与写入作用域。它按名称列出每个已加载扩展及其复选框与至多一个
69
+ 结论词,启用或禁用一个扩展,并用 `x` 清除项目级覆盖;`/` 过滤行,`!` 只保留
70
+ 需要注意的行,`?` 显示全部按键。
71
+ - `/bytefly settings` 打开控制中心的 Settings 区:一次会话会改动的十二项设置按
72
+ Startup、Notifications、Session、Price 四组排列,值对齐在同一列;用
73
+ `Space`/`Enter` 修改一项,用 `s` 切换 Global/Project 作用域。其余键都是
74
+ `bytefly.json` 编辑,见配置参考。
71
75
  - `/bytefly skills` 打开控制中心的 Skills 区:每个 Pi 技能一行,带启用复选框与
72
- `SKILL.md` 声明的描述,用 `Space` 在当前作用域开关它。
76
+ 至多一个结论词,`SKILL.md` 声明的描述显示在旁边的区块中,用 `Space` 在当前
77
+ 作用域开关它。
73
78
  - `/bytefly doctor [extension] [refresh]` 打印 doctor 报告(`run_doctor` 的文本),
74
79
  检查每个已启用扩展在运行时是否具备所需条件。
75
80
  - `/bytefly update` 立即重跑包更新检查,报告可更新的包、本包版本与 release URL,
@@ -87,7 +92,7 @@ Pi 自己的版本请求只是被重新绘制,本包的最新版本则来自
87
92
 
88
93
  ## 包含内容
89
94
 
90
- 21 个扩展、4 个随包技能,以及 2 个主题,按 [路线图](./ROADMAP.md) 追踪的承诺分组;
95
+ 22 个扩展、4 个随包技能,以及 2 个主题,按 [路线图](./ROADMAP.md) 追踪的承诺分组;
91
96
  [用户指南](./docs/user-guide/) 按章节讲述同样的内容。每个扩展在 `docs/extensions/`
92
97
  下的页面提供完整的工具与命令说明,并以能力表开头。
93
98
 
@@ -104,7 +109,8 @@ Pi 自己的版本请求只是被重新绘制,本包的最新版本则来自
104
109
  | [`job`](./docs/extensions/job.md) | `job`, `/jobs` | 在后台运行长时 shell 命令;查看日志、等待或结束它们。 |
105
110
  | [`watch`](./docs/extensions/watch.md) | `watch`, `/watch` | 跟踪文件或命令输出,按模式匹配行,并提醒你或把匹配的行交给智能体。 |
106
111
  | [`session-bus`](./docs/extensions/session-bus.md) | `session`, `/sessions`(屏幕) | 在同一仓库的多个 Pi 会话之间协调:发现彼此、交换简短消息/事件、读取收件箱、编辑前声明路径;`/sessions` 是显示对等会话、未读邮件和路径声明的实时面板。本地、默认拉取式;收件箱监视需会话自行开启,空闲时会唤起本会话的一轮,从不创建智能体。 |
107
- | [`board`](./docs/extensions/board.md) | `board`、`/board` | 每个仓库一块共享看板:一张卡片代表一个 feature,任何 session 都可以认领、移动、编辑、加注、完成它;同一个看板在浏览器里以 **Board** 和 **Team** 两个 tab 实时显示。看板以固定席位 `team-lead` 对外服务,因此第二个 session 打开的是同一块看板(只读),而不是另起一个。卡片可以带上优先级、声明自己在等待哪几张卡片,也可以在看板里交给某个队友。步骤留在 owner 的 plan 和 `todo` 里,卡片就是 feature、它的 owner,以及解释它的历史。在 `bytefly.json` 里设置 `board.port` 可以固定看板端口,收藏的地址在重启后依然有效。 |
112
+ | [`serve`](./docs/extensions/serve.md) | — | 每个 session 一个 loopback 服务。`/board`、`/browse` 和浏览器里的 plan review 都在它上面挂载路径前缀,而不是各自监听端口,因此一个 session 只有一个端口、一个 chip、一条关闭路径——而第二个 session(peer 会话、另一个 worktree、另一个 Pi)依然有自己的端口。`bytefly.json` 里的 `serve.port` 可以固定该端口,收藏的地址在重启后依然有效;共享 review 只为发起共享的那一个页面借用同一个网段上的一个地址。 |
113
+ | [`board`](./docs/extensions/board.md) | `board`、`/board` | 每个仓库一块共享看板:一张卡片代表一个 feature,任何 session 都可以认领、移动、编辑、加注、完成、归档——已完成的卡片会离开看板进入 `archive/`,其注记与落地 commit 仍可读,长历史不再拖累每次读取——同一个看板在浏览器里以 **Board** 和 **Team** 两个 tab 实时显示。页面只读——写入只走工具——并以固定席位 `team-lead` 对外服务,因此第二个 session 打开的是同一张页面,而不是另起一个;把卡片交给队友由 `team` 负责,因为只有它能给对端发消息。卡片可以带上优先级、声明自己在等待哪几张卡片。步骤留在 owner 的 plan 和 `todo` 里,卡片就是 feature、它的 owner,以及解释它的历史。页面以 `/board` 挂在该 session 唯一的端口上,所以收藏时用 `serve.port`。 |
108
114
  | [`team`](./docs/extensions/team.md) | `team`、`/team` | 同一块看板上的 lead 轮次。`/team join <label>` 让一个 session 加入团队,lead 打开 `/board` 时则以 `team-lead` 自动加入;随后 `assign` 把一个 feature 交给运行中的 session,`offer` 交给谁有空谁接——广播而不写卡片,由第一个认领的人拿走——`reclaim` 把卡片收回 To do。结果会说明谁会因此被叫醒、谁会在下一轮才读到;`/team` 在终端里打印同一份轮次,不用开浏览器,也不启动任何进程。 |
109
115
  | [`context`](./docs/extensions/context.md) | `/context` | 显示上下文窗口的去向 —— 系统提示、工具定义、按角色拆分的对话、注入的笔记 —— 并从报告中触发压缩,给出压缩前后的数字。 |
110
116
 
@@ -17,7 +17,8 @@ sections behind them.
17
17
  | `job` | Long-lived shell commands in the background, with logs and a wait | [`job.md`](./job.md) |
18
18
  | `watch` | Tailing a file or command and matching new lines | [`watch.md`](./watch.md) |
19
19
  | `session-bus` | Coordination between parallel Pi sessions on one repository | [`session-bus.md`](./session-bus.md) |
20
- | `board` | One shared feature board per repository, read and written by every session, and one page a lead serves for the team to watch | [`board.md`](./board.md) |
20
+ | `serve` | The session's one loopback server: every page mounts a path prefix on it | [`serve.md`](./serve.md) |
21
+ | `board` | One shared feature board per repository, written by the tools and shown by one page a lead serves | [`board.md`](./board.md) |
21
22
  | `team` | The lead's round: hand a card to a running session, take one back, or print it with `/team` | [`team.md`](./team.md) |
22
23
  | `context` | Where the context window went, and compacting from the report | [`context.md`](./context.md) |
23
24
  | `worktree` | An isolated `git worktree` per task, and the built-in tools following it | [`worktree.md`](./worktree.md) |