@ctlflow/fleet 0.1.9 → 0.1.11

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.
@@ -4184,6 +4184,7 @@ var fleetView = object({
4184
4184
  directory: text(4096),
4185
4185
  revision: integer(),
4186
4186
  controller,
4187
+ resumeInstanceKeys: nullable(list(name, 100)),
4187
4188
  phase,
4188
4189
  instances: list(instanceView, 100),
4189
4190
  error: nullable(text(4096)),
@@ -61,12 +61,22 @@ cwd. It defaults to that instance's private workarea. It must be canonical, owne
61
61
  and not writable by other users; existing project modes are not tightened.
62
62
  Private state remains in the workarea, passed separately to the native adapter as
63
63
  `stateDirectory`. The adapter's private native home retains the managed histories
64
- and intended provider configuration/authentication, without overwriting or
64
+ and intended provider configuration, without overwriting or
65
65
  importing the project's `.codex/config.toml`, history or coding session. Role
66
66
  instructions, administrator setup instructions and the pinned Crossfire skill
67
67
  are delivered via native developer instructions on both create and resume;
68
68
  external cwd does not rely on private workarea ancestor skill discovery.
69
69
 
70
+ Every native start/resume, including automatic wake and recovery, atomically
71
+ recopies the current host Codex `auth.json` from `CODEX_HOME` (default `~/.codex`).
72
+ Sign in with `codex login` on the controller host before resuming. Changing that
73
+ host login changes the provider account used on subsequent activations, not the
74
+ agent's Matrix identity or saved conversation. Already-running engines retain
75
+ their current login until stopped/resumed. Preflight checks the host login and
76
+ does not rewrite running agents. Invalid or unsafe source files fail before
77
+ startup; absence removes the stale file copy rather than reusing it. Native
78
+ environment-only provider authentication does not require a file login.
79
+
70
80
  Default project setup generates this same roster with one `project` definition,
71
81
  the chosen project as `workspace` and a stable private workarea. Definitions
72
82
  without `workspace` keep their original private cwd; this is one configuration
package/docs/sessions.md CHANGED
@@ -2,8 +2,8 @@
2
2
 
3
3
  ## Management
4
4
 
5
- Open a fleet's **Agents** tab: the agents table comes first, followed by the
6
- fleet-wide **Native sessions** controls. For one agent, open its **Session** tab.
5
+ Open a fleet's **Sessions** tab for fleet-wide controls. Its **Agents** tab keeps
6
+ the agent list separate. For one agent, open its **Session** tab.
7
7
  The fleet owner and administrators can request:
8
8
 
9
9
  | Action | Native execution | History and delivery |
@@ -12,8 +12,13 @@ The fleet owner and administrators can request:
12
12
  | Stop session(s) | Close the selected listeners and owned engines. | Retain native histories, accounts, permissions and unread positions. The controller remains connected. |
13
13
  | Start with fresh history | Stop selected agents, prepare private exports and restart with fresh model contexts. | Archive old bindings; retain identity, credentials, permissions, Matrix messages and configured parameters. Confirmation is required. |
14
14
 
15
- Fleet scope means all enrolled agents in that fleet; agent scope means only the
16
- selected agent. Fresh-history confirmation names the scope and explains that model
15
+ Fleet Stop remembers the enabled agents. Fleet Resume restores that selection and
16
+ any already enabled agents, leaving deliberately stopped agents off. Repeated Stop
17
+ while stopped retains the selection; individual Stop removes its member. An empty
18
+ saved selection resumes nobody. Initial fleet startup without a saved selection
19
+ or active intent starts its configured roster. Fresh history still targets every
20
+ agent in the confirmed fleet scope; agent scope means only the selected agent.
21
+ Fresh-history confirmation names the scope and explains that model
17
22
  context is being replaced. Cancelling confirmation submits nothing. Stopping also
18
23
  confirms that running operating-system commands are not frozen for later continuation.
19
24
 
@@ -40,7 +45,8 @@ listener activity and history availability separately. `fleet agent contexts`
40
45
  reads saved context IDs while sleeping or stopped without waking a process.
41
46
  Attachment requires a live native endpoint; GET never launches one. Use Resume
42
47
  sessions or `fleet agent start` to wake a sleeping native engine for a terminal
43
- without changing its binding or sending a model prompt.
48
+ without changing its binding. Idle histories receive no model prompt; interrupted
49
+ work receives the continuation instruction described below.
44
50
 
45
51
  Orderly daemon shutdown preserves desired activation. Starting the same daemon
46
52
  root after a reboot restores active bindings with retained histories; explicitly
@@ -61,6 +67,16 @@ needed. The runtime retains its full conversation context even though controller
61
67
  RPC responses omit old turn payloads. Missing or broken established bindings cause
62
68
  a visible failure; they never silently fall back to new history.
63
69
 
70
+ Working histories and unanswered questions/approvals have a private unfinished-work
71
+ checkpoint. After Stop, daemon restart or native recovery, their exact saved history
72
+ receives: "Your saved session was restarted... If your previous task is unfinished
73
+ and still authorized, resume that task." The notice is not a new assignment and
74
+ does not approve a pending decision. It retains the task's original reply
75
+ destination; room-isolated histories stay isolated. Idle/sleeping contexts receive
76
+ no synthetic prompt. Native delivery receipts prevent duplicate notices on retries,
77
+ but an interrupted operating-system command is terminated, not frozen, and external
78
+ effects are not guaranteed exactly once. The agent must check completed work first.
79
+
64
80
  Only an explicit flag selects fresh history:
65
81
 
66
82
  ```sh
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@ctlflow/fleet",
3
- "version": "0.1.9",
3
+ "version": "0.1.11",
4
4
  "private": false,
5
5
  "publishConfig": { "access": "public" },
6
6
  "type": "module",
7
- "devDependencies": { "@ctlflow/crossfire-test-support": "0.1.9" },
7
+ "devDependencies": { "@ctlflow/crossfire-test-support": "0.1.11" },
8
8
  "bin": { "fleet": "./dist/bin/fleet.mjs" },
9
9
  "files": ["dist/bin", "docs", "README.md"],
10
10
  "exports": { "./executable": "./dist/bin/fleet.mjs", "./package.json": "./package.json" },
11
- "dependencies": { "@ctlflow/fleetd": "0.1.9" },
11
+ "dependencies": { "@ctlflow/fleetd": "0.1.11" },
12
12
  "engines": {
13
13
  "node": ">=26.0.0",
14
14
  "npm": ">=11.17.0"