@awebai/oats 0.35.3 → 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,31 @@
1
+ # OATS 0.35.4
2
+
3
+ ## Fixed
4
+
5
+ - **A Desktop workspace never waits silently on "Reading the deployment…",
6
+ and a folder that is not a deployment never drops the open ones**
7
+ (awebai/oats#461). With three or more deployments open, the third and later
8
+ ones were never read: the server started every deployment's reads at once
9
+ past the observer's two-read bound, and kept the refused ones on their
10
+ first "pending" forever. That is also why an empty deployment (no souls,
11
+ no instances) listed third never loaded; an empty answer is an
12
+ observation, shown as no instances. Deployments are now read two at a
13
+ time, each one every cycle. A launch from a folder that is not a
14
+ deployment (a parent such as `~/Agents` as the cwd or `--dir`), at a
15
+ moment when no saved deployment could be opened, saved that folder as the
16
+ whole open set; only deployments are saved now, and the saved set is
17
+ never replaced with nothing. Add workspace → Browse… on a folder without
18
+ `oats-local.yaml` is refused with an explanation and lists the
19
+ deployments in it (or the one it is inside) as one-click adds; setting up
20
+ a new deployment there is a secondary action. A workspace the Desktop's
21
+ server does not serve, or does not answer for within 45 s, shows an
22
+ error naming it, with Retry and Re-add workspace. Behaviour change in
23
+ the Desktop's own server: an explicit `?ws=` it does not serve (any id)
24
+ on `/api/panel` and `/api/agents` is now 404 `E_WORKSPACE_NOT_SERVED`
25
+ instead of the first workspace's answer.
26
+
27
+ - **After upgrading from a version before 0.35.3, restart once a tmux
28
+ server that a Finder-launched Desktop started earlier** (awebai/oats#468).
29
+ Such a server keeps launchd's PATH for the sessions it starts. Restart it once to pick up the
30
+ new PATH. Restarting it ends the sessions in it, so do it when no instance
31
+ is running.
@@ -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.3",
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",