agents-pod 0.3.1 → 0.3.2

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/CHANGELOG.md CHANGED
@@ -4,6 +4,29 @@ All notable changes to agents-pod. The format follows
4
4
  [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and the project
5
5
  adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [0.3.2] — 2026-11-04
8
+
9
+ 0.3.1 taught `spawn_pod` to name standing work and got one word wrong: 每天. Two
10
+ surfaces answer "recurring" requests — this tool and agents-cron's scheduler
11
+ skill — and a skill body outweighs a guideline snippet, so the pod frame
12
+ absorbed the schedule's vocabulary and pods were asked to read the clock. The
13
+ fix is one sentence, stated on the side that decides: a TIME rule is a
14
+ schedule, a MESSAGE or a ROLE that must stay alive is a pod, and a pod never
15
+ carries a clock (issue #23, ADR 0005).
16
+
17
+ ### Fixed
18
+
19
+ - **A time rule is a schedule, not a pod** (issue #23). 0.3.1 listed 每天 among
20
+ `spawn_pod`'s triggers, so the scheduler skill's vocabulary was absorbed into
21
+ the pod frame: "每天早上 9 点汇总 CI" and "每 30 分钟检查 CI" both spawned a
22
+ pod whose goal carried a clock (one even instructed the pod to "register a
23
+ 09:00 cron trigger" — a pod has no clock). The guidelines now split on the
24
+ signal — a TIME rule (每天/每小时/到点/明天提醒我) is `schedule_task` /
25
+ agents-cron; a MESSAGE or a ROLE that must stay alive (常驻/监听/收消息/路由/
26
+ 服务某个 inbox/直到我说停) is `spawn_pod` — the description says NO CLOCK, and
27
+ the check now asserts both directions: a standing prompt must spawn first, a
28
+ scheduled one must not spawn at all.
29
+
7
30
  ## [0.3.1] — 2026-11-04
8
31
 
9
32
  Two measurements decided this patch: a standing pod with an empty inbox is no
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agents-pod",
3
- "version": "0.3.1",
3
+ "version": "0.3.2",
4
4
  "description": "Supervision for long-running coding agents: detached pods, heartbeat liveness, cron-ticked reconcile, and a Pi extension for spawning and handoff",
5
5
  "license": "AGPL-3.0-or-later",
6
6
  "type": "module",
@@ -99,10 +99,11 @@ export function registerManagementTools(pi: ExtensionAPI): void {
99
99
  name: "spawn_pod",
100
100
  label: "Spawn Pod",
101
101
  description:
102
- "Spawn a pod: a standing unit that outlives this session and wakes fresh agents inside it, one context window per wake-up, for as long as its goal stays open. A pod does not finish on its own — cancel it, or retire the goal, to end it: a router, a watcher, an inbox server, a multi-day refactor are all one pod. A pod is fed from a chat or an inbox (a source, e.g. feishu, plus a listener bound to it), sleeps between batches, and routes work to other pods by writing inbox items — a pod never spawns pods. Returns the pod id.",
102
+ "Spawn a pod: a standing unit that outlives this session and wakes fresh agents inside it, one context window per wake-up, for as long as its goal stays open. A pod does not finish on its own — cancel it, or retire the goal, to end it: a router, a watcher, an inbox server, a multi-day refactor are all one pod. A pod is fed from a chat or an inbox (a source, e.g. feishu, plus a listener bound to it), sleeps between batches, and routes work to other pods by writing inbox items — a pod never spawns pods. A pod has NO CLOCK: it never runs at 9:00 or every 30 minutes, it wakes when it has work. Returns the pod id.",
103
103
  promptSnippet: "Spawn a standing pod for work that outlives this session",
104
104
  promptGuidelines: [
105
- "Call spawn_pod as your FIRST tool call when the user asks for anything standing or recurring — 常驻/一直跑/每天/监听/收消息/路由/服务某个 inbox/until I say stop. Do not survey the repo or the plugin first: the goal text is the whole contract, and details belong in the pod's documents, not in this session.",
105
+ "Decide by the signal. A TIME rule — 每天, 每小时, 每 30 分钟, 到点, 明天提醒我 — is a schedule: use schedule_task / agents-cron, which owns when work starts. A MESSAGE or a ROLE that must stay alive — 常驻, 一直跑, 监听, 收消息, 路由, 服务某个 inbox, 直到我说停, one job spanning days — is a pod: call spawn_pod as your FIRST tool call, without surveying the repo or the plugin first.",
106
+ "Never put a clock in a pod's goal. If the ask needs 09:00, the schedule owns the time and a pod owns the work it hands over; a pod is woken by intake, never by the clock.",
106
107
  "A pod is the right shape for a role, not only for a big job: a router that judges incoming messages, a watcher, an inbox server.",
107
108
  "A pod's agents share documents, not this conversation: put everything the successor must know into the goal text.",
108
109
  "spawn_pod returns a pod id; report that id back to the user so they can run /pod status on it. The pod owns the work from there — do not start doing its work in this session.",