@ouro.bot/cli 0.1.0-alpha.163 → 0.1.0-alpha.165
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/changelog.json
CHANGED
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_note": "This changelog is maintained as part of the PR/version-bump workflow. Agent-curated, not auto-generated. Agents read this file directly via read_file to understand what changed between versions.",
|
|
3
3
|
"versions": [
|
|
4
|
+
{
|
|
5
|
+
"version": "0.1.0-alpha.165",
|
|
6
|
+
"changes": [
|
|
7
|
+
"fix(daemon): dont launchctl bootstrap during ouro up \u2014 write plist only, prevents competing daemon process"
|
|
8
|
+
]
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"version": "0.1.0-alpha.164",
|
|
12
|
+
"changes": [
|
|
13
|
+
"fix(daemon): keep /dev/null fds open until parent exits \u2014 fixes ouro up daemon crash"
|
|
14
|
+
]
|
|
15
|
+
},
|
|
4
16
|
{
|
|
5
17
|
"version": "0.1.0-alpha.163",
|
|
6
18
|
"changes": [
|
|
@@ -1195,13 +1195,14 @@ function defaultStartDaemonProcess(socketPath) {
|
|
|
1195
1195
|
const entry = path.join((0, identity_1.getRepoRoot)(), "dist", "heart", "daemon", "daemon-entry.js");
|
|
1196
1196
|
// Redirect stdio to /dev/null via file descriptors — using 'ignore' causes EPIPE
|
|
1197
1197
|
// when the daemon's logging system writes to stderr after the parent exits.
|
|
1198
|
-
const
|
|
1198
|
+
const outFd = fs.openSync(os.devNull, "w");
|
|
1199
|
+
const errFd = fs.openSync(os.devNull, "w");
|
|
1199
1200
|
const child = (0, child_process_1.spawn)("node", [entry, "--socket", socketPath], {
|
|
1200
1201
|
detached: true,
|
|
1201
|
-
stdio: ["ignore",
|
|
1202
|
+
stdio: ["ignore", outFd, errFd],
|
|
1202
1203
|
});
|
|
1203
1204
|
child.unref();
|
|
1204
|
-
|
|
1205
|
+
// Don't close fds — the child process needs them. They'll be cleaned up when the parent exits.
|
|
1205
1206
|
return Promise.resolve({ pid: child.pid ?? null });
|
|
1206
1207
|
}
|
|
1207
1208
|
function defaultWriteStdout(text) {
|
|
@@ -117,11 +117,13 @@ function installLaunchAgent(deps, options) {
|
|
|
117
117
|
catch { /* best effort */ }
|
|
118
118
|
}
|
|
119
119
|
writeLaunchAgentPlist(deps, options);
|
|
120
|
-
|
|
120
|
+
// Don't bootstrap here — ouro up starts the daemon directly via spawn.
|
|
121
|
+
// The plist is written so launchd will manage the daemon on next login/reboot.
|
|
122
|
+
// Loading it now would start a competing daemon that conflicts with the spawned one.
|
|
121
123
|
(0, runtime_1.emitNervesEvent)({
|
|
122
124
|
component: "daemon",
|
|
123
125
|
event: "daemon.launchd_installed",
|
|
124
|
-
message: "launch agent
|
|
126
|
+
message: "launch agent plist written (will activate on next login)",
|
|
125
127
|
meta: { plistPath: fullPath },
|
|
126
128
|
});
|
|
127
129
|
}
|