@ours.network/fleet 0.18.0-nightly.1 → 0.18.0-nightly.3
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/dist/build-info.json +4 -4
- package/dist/supervisor/systemd.js +28 -1
- package/package.json +2 -2
package/dist/build-info.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.18.0-nightly.
|
|
3
|
-
"buildId": "
|
|
4
|
-
"commit": "
|
|
2
|
+
"version": "0.18.0-nightly.3",
|
|
3
|
+
"buildId": "3ca1204392e7",
|
|
4
|
+
"commit": "a9c9c81f5d72f81142b905303b895dd2e9849bd7",
|
|
5
5
|
"dirty": true,
|
|
6
|
-
"builtAt": "2026-08-
|
|
6
|
+
"builtAt": "2026-08-18T09:41:48.614Z",
|
|
7
7
|
"capabilities": [
|
|
8
8
|
"monitor.interrupt.after_tool"
|
|
9
9
|
]
|
|
@@ -69,6 +69,33 @@ export function makeSystemdBackend(exec = realExec) {
|
|
|
69
69
|
dirname(process.execPath),
|
|
70
70
|
...(process.env.PATH ?? '').split(delimiter),
|
|
71
71
|
].filter(Boolean))].join(delimiter);
|
|
72
|
+
// Same reason as PATH, for the other thing a lingering unit cannot inherit:
|
|
73
|
+
// WHICH ours daemon this fleet was set up against.
|
|
74
|
+
//
|
|
75
|
+
// ours-fleet resolves its daemon from OURS_CONFIG / OURS_PORT / OURS_STATE_DIR
|
|
76
|
+
// and otherwise falls back to ~/.ours and port 3050 (src/monitor.ts). A host
|
|
77
|
+
// set up against a non-default daemon — the installer's multi-daemon profiles
|
|
78
|
+
// do exactly this — passes that selection to `ours-fleet init` in the
|
|
79
|
+
// environment, and it died there: nothing persisted it, so every runner
|
|
80
|
+
// systemd started at boot resolved the default daemon again, and on a host
|
|
81
|
+
// where only the non-default daemon exists that is a daemon that is not there.
|
|
82
|
+
//
|
|
83
|
+
// ONLY OURS_CONFIG is baked, deliberately. It names which daemon, and leaves
|
|
84
|
+
// that daemon's own config file authoritative for port and state directory, so
|
|
85
|
+
// a later edit to it still wins. Baking OURS_PORT/OURS_STATE_DIR would freeze
|
|
86
|
+
// those into a unit file that outranks the config for ever after — the failure
|
|
87
|
+
// mode @ours.network/cli avoids for the same reason (packages/cli/src/
|
|
88
|
+
// service.ts: "The port is deliberately NOT baked").
|
|
89
|
+
//
|
|
90
|
+
// Absent from init's environment ⇒ no line, and the unit is byte-for-byte what
|
|
91
|
+
// it has always been. This teaches fleet nothing about installer profiles; it
|
|
92
|
+
// persists the selection fleet was initialised with.
|
|
93
|
+
const unitEnv = ['PATH=' + servicePath];
|
|
94
|
+
if (process.env.OURS_CONFIG)
|
|
95
|
+
unitEnv.push('OURS_CONFIG=' + process.env.OURS_CONFIG);
|
|
96
|
+
const environmentLines = unitEnv
|
|
97
|
+
.map(value => `Environment="${value.replace(/\\/g, '\\\\').replace(/"/g, '\\"').replace(/%/g, '%%')}"`)
|
|
98
|
+
.join('\n');
|
|
72
99
|
mkdirSync(unitDir, { recursive: true });
|
|
73
100
|
writeFileSync(join(unitDir, UNIT_TEMPLATE), `[Unit]
|
|
74
101
|
Description=ours-fleet agent %i
|
|
@@ -76,7 +103,7 @@ After=default.target
|
|
|
76
103
|
|
|
77
104
|
[Service]
|
|
78
105
|
Type=simple
|
|
79
|
-
|
|
106
|
+
${environmentLines}
|
|
80
107
|
ExecStart=${unitArg(process.execPath)} ${unitArg(binPath)} _run %i
|
|
81
108
|
# The RUNNER owns the child-session restart loop, with a counted, backed-off
|
|
82
109
|
# circuit breaker (3.2). systemd must only recover the runner PROCESS crashing —
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ours.network/fleet",
|
|
3
|
-
"version": "0.18.0-nightly.
|
|
3
|
+
"version": "0.18.0-nightly.3",
|
|
4
4
|
"description": "Harness-agnostic fleet of persistent, identity-bound AI agents. Declarative fleet.yaml, tmux or ACP sessions, supervision, and ours.network messaging.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "FSL-1.1-Apache-2.0",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"@agentclientprotocol/sdk": "^1.3.0",
|
|
39
39
|
"@fastify/static": "^10.1.2",
|
|
40
40
|
"@fastify/websocket": "^11.2.0",
|
|
41
|
-
"@ours.network/sdk": "1.
|
|
41
|
+
"@ours.network/sdk": "1.5.2",
|
|
42
42
|
"@xterm/addon-fit": "0.10.0",
|
|
43
43
|
"@xterm/addon-serialize": "0.13.0",
|
|
44
44
|
"@xterm/headless": "5.5.0",
|