@awebai/oats 0.35.4 → 0.35.5

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.
@@ -170,6 +170,12 @@ The task's text never travels on a command line, where any local user could
170
170
  read it in the process list:
171
171
 
172
172
  - pi and Claude Code get `@TASK.md`, which each harness reads as the file.
173
+ pi sends it as the session's first prompt and refuses it if another
174
+ extension's turn (the @awebai/pi welcome) is running or starts while it is
175
+ being sent. The pi bridge (`@awebai/oats-pi`) holds it on pi's own path
176
+ until no turn is active, so it runs exactly once, unaltered; a pi
177
+ deployment without the bridge can sit idle with no task. The exception is
178
+ in the bridge's [README](../packages/pi/README.md).
173
179
  - Codex gets a fixed pointer to the file and reads it with a tool.
174
180
  - A home whose recorded command still hands over `"$(cat TASK.md)"` starts
175
181
  with its harness's safe prompt instead, and the command is saved that way.
@@ -0,0 +1,34 @@
1
+ # OATS 0.35.5
2
+
3
+ ## Fixed
4
+
5
+ - **Adding a workspace never drops a saved deployment that is missing at
6
+ that moment** (awebai/oats#472). A saved deployment on a volume that was
7
+ not mounted yet stayed saved at launch, but adding another workspace then
8
+ saved only the deployments that validated, and it was gone for good. The
9
+ same happened when the Desktop was launched on a new deployment. Now the
10
+ server is still started only with the deployments that are there, while
11
+ `workspace-open.json` keeps every saved one; the next launch serves it again
12
+ once it is back. Only an explicit remove drops a saved deployment (the
13
+ Desktop has no remove action yet).
14
+
15
+ - **A pi instance launched with a task runs it, once, after the @awebai/pi
16
+ welcome** (awebai/oats#469). pi's interactive mode sends `@TASK.md` as the
17
+ session's first prompt with no streamingBehavior (pi 0.85.1
18
+ `interactive-mode.js:816`), so pi refused it ("Agent is already
19
+ processing…") when the @awebai/pi welcome turn was running or started
20
+ while the task was being sent, leaving the instance idle with no task.
21
+ With the bridge, the opening task now runs exactly once, after any turn
22
+ another extension starts, exactly as pi's input processing made it: the
23
+ bridge holds it on pi's own path until no turn is active, and never
24
+ sends, re-sends or alters a message. One exception remains: an extension
25
+ loaded behind the bridge that starts a turn (or awaits I/O while one
26
+ starts) inside its own input or before_agent_start handling of the
27
+ opening prompt can still make pi refuse the task, as before. The bridge
28
+ with @awebai/pi has no such handler and is fully covered. Tested against
29
+ pi 0.85.1; pi before 0.80.4, which has no `agent_settled` event, is
30
+ covered by a model of its behaviour only. The fix ships in
31
+ `@awebai/oats-pi` 0.35.5: a pi deployment must update the bridge to get it
32
+ (`oats update` updates an installed bridge; without one, `pi install
33
+ npm:@awebai/oats-pi`), then restart its pi sessions. The kernel alone does
34
+ not fix it. Claude and Codex launches are unchanged.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@awebai/oats",
3
- "version": "0.35.4",
3
+ "version": "0.35.5",
4
4
  "description": "OATS (Open Agent Team Specification) — durable souls, disposable instances, targetable capability packages, and the runtime-neutral oats CLI/kernel.",
5
5
  "keywords": [
6
6
  "agents",