@ours.network/fleet 1.1.0-nightly.11 → 1.1.0-nightly.12

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.
@@ -1,9 +1,9 @@
1
1
  {
2
- "version": "1.1.0-nightly.11",
3
- "buildId": "77ffaabcf8d8",
4
- "commit": "0fd62777651b79bf31876dd556d48f7f560dfbe8",
2
+ "version": "1.1.0-nightly.12",
3
+ "buildId": "6da038d91a6d",
4
+ "commit": "57faa7ff79b4097ac94797b9a591ce54aad01c0a",
5
5
  "dirty": true,
6
- "builtAt": "2026-08-31T15:04:31.174Z",
6
+ "builtAt": "2026-08-31T21:40:11.904Z",
7
7
  "capabilities": [
8
8
  "monitor.interrupt.after_tool"
9
9
  ]
@@ -1,5 +1,5 @@
1
1
  import { withFileLock } from '../atomic-file.js';
2
- import type { CoworkAdapter } from './cowork-adapter.js';
2
+ import { type CoworkAdapter } from './cowork-adapter.js';
3
3
  import type { RoomMemberSeat, RoomOrchestrationRecord } from './types.js';
4
4
  export interface RoomCloseDeps {
5
5
  inspectMember?(seat: RoomMemberSeat): Promise<{
@@ -5,6 +5,7 @@ import { attachOursClient } from '@ours.network/sdk/client';
5
5
  import { withFileLock } from '../atomic-file.js';
6
6
  import { agentDir, stateRoot } from '../paths.js';
7
7
  import { readTempSupervisor, secureStoppedTempArchive, stopTempSupervisor, tempSupervisorLiveness, } from '../temp-lifecycle.js';
8
+ import { CoworkProtocolError } from './cowork-adapter.js';
8
9
  import { advanceMemberRetirement, advanceRoomClose, beginRoomClose, closeRoom, deleteRoomRecord, getRoomRecord, listRoomRecords, setRoomCloseError, } from './room-state.js';
9
10
  const CLOSE_LOCK_STALE_MS = 5 * 60_000;
10
11
  const STOP_POLLS = 50;
@@ -172,7 +173,15 @@ export async function closeManagedRoom(input) {
172
173
  export async function deleteLegacyClosedRooms(input) {
173
174
  const deleted = [];
174
175
  for (const room of listRoomRecords({ state: 'closed' })) {
175
- await input.cowork.deleteRoom(room.room_id);
176
+ try {
177
+ await input.cowork.deleteRoom(room.room_id);
178
+ }
179
+ catch (error) {
180
+ // The retained Fleet record is the legacy state being migrated. If the
181
+ // exact Cowork room is already absent, the desired deletion is complete.
182
+ if (!(error instanceof CoworkProtocolError && error.code === 'not_found'))
183
+ throw error;
184
+ }
176
185
  deleteRoomRecord(room.room_id);
177
186
  deleted.push(room.room_id);
178
187
  }
@@ -72,6 +72,7 @@ function expandMembers(template, prefix) {
72
72
  slot: slot.slot,
73
73
  coworkRole: slot.role,
74
74
  agentTemplate: slot.agent_template,
75
+ launchDefinitionId: slot.launch_definition_id ?? slot.agent_template,
75
76
  agentTemplateHash: slot.agent_template_hash,
76
77
  });
77
78
  }
@@ -79,9 +80,13 @@ function expandMembers(template, prefix) {
79
80
  return result;
80
81
  }
81
82
  function settingsFor(member, cfg, sealed) {
82
- const definition = sealed?.[member.agentTemplate] ?? cfg.agentTemplates?.[member.agentTemplate];
83
+ const definition = sealed
84
+ ? sealed[member.launchDefinitionId]
85
+ : cfg.agentTemplates?.[member.agentTemplate];
83
86
  if (!definition)
84
- throw new Error(`Agent Template '${member.agentTemplate}' not found`);
87
+ throw new Error(sealed
88
+ ? `Sealed Agent definition '${member.launchDefinitionId}' not found`
89
+ : `Agent Template '${member.agentTemplate}' not found`);
85
90
  const role = definition.role;
86
91
  return {
87
92
  definition: structuredClone(definition),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ours.network/fleet",
3
- "version": "1.1.0-nightly.11",
3
+ "version": "1.1.0-nightly.12",
4
4
  "description": "Harness-agnostic fleet of persistent, identity-bound AI agents. Declarative fleet.yaml, ACP sessions, supervision, and ours.network messaging.",
5
5
  "type": "module",
6
6
  "license": "FSL-1.1-Apache-2.0",