@synaplink/orqlaude 0.7.1 → 0.8.0

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.
@@ -145,6 +145,70 @@ test("v0.7.1: --mcp-config is a PATH (written to worktree), not inline JSON", as
145
145
  assert.ok(parsed.mcpServers?.orqlaude?.command, "the written config should have mcpServers.orqlaude.command");
146
146
  assert.ok(parsed.mcpServers.orqlaude.args?.length >= 1, "should have args[]");
147
147
  });
148
+ test("v0.7.3: --verbose is paired with --output-format=stream-json", async () => {
149
+ const falseBin = existsSync("/bin/false") ? "/bin/false" : "/usr/bin/false";
150
+ if (!existsSync(falseBin))
151
+ return;
152
+ const dir = await mkTempGitRepo();
153
+ let captured = null;
154
+ try {
155
+ await spawnAgnetViaCli({
156
+ projectRoot: dir,
157
+ stateDir: path.join(dir, ".orqlaude"),
158
+ planId: "8badf00d-aaaa-bbbb-cccc-dddddddddddd",
159
+ taskId: "66666666-7777-8888-9999-aaaaaaaaaaaa",
160
+ agnetName: "Verbose",
161
+ prompt: "P",
162
+ claudeBin: falseBin,
163
+ healthCheckDelayMs: 500,
164
+ });
165
+ }
166
+ catch (err) {
167
+ captured = err.message;
168
+ }
169
+ assert.ok(captured, "expected the spawn to fail and surface the command line");
170
+ const cmd = captured.match(/Command line:\n\s*(.+)/)[1];
171
+ // The claude CLI requires --verbose whenever --output-format=stream-json
172
+ // is used (otherwise it bails with a pairing error).
173
+ assert.match(cmd, /--verbose/, `expected --verbose in the command line; got:\n${cmd}`);
174
+ assert.match(cmd, /--output-format\s+stream-json/, `expected --output-format stream-json; got:\n${cmd}`);
175
+ });
176
+ test("v0.7.2: `--` separator appears between the last flag and the prompt", async () => {
177
+ // claude has multiple variadic flags (--mcp-config, --add-dir,
178
+ // --allowedTools, --betas, --file, --tools, --disallowedTools). Without
179
+ // an explicit end-of-options marker, the parser greedily eats the prompt
180
+ // as another value for whichever variadic flag came last.
181
+ const falseBin = existsSync("/bin/false") ? "/bin/false" : "/usr/bin/false";
182
+ if (!existsSync(falseBin))
183
+ return;
184
+ const dir = await mkTempGitRepo();
185
+ let captured = null;
186
+ try {
187
+ await spawnAgnetViaCli({
188
+ projectRoot: dir,
189
+ stateDir: path.join(dir, ".orqlaude"),
190
+ planId: "cafef00d-aaaa-bbbb-cccc-dddddddddddd",
191
+ taskId: "55555555-6666-7777-8888-999999999999",
192
+ agnetName: "DashDash",
193
+ prompt: "QQQ_PROMPT_QQQ",
194
+ claudeBin: falseBin,
195
+ healthCheckDelayMs: 500,
196
+ });
197
+ }
198
+ catch (err) {
199
+ captured = err.message;
200
+ }
201
+ assert.ok(captured, "expected the spawn to fail and surface the command line");
202
+ const cmd = captured.match(/Command line:\n\s*(.+)/)[1];
203
+ // `--` should appear, AND it should appear AFTER --mcp-config <path>
204
+ // (i.e. after the last variadic flag), AND before the prompt sentinel.
205
+ const dashDashIdx = cmd.indexOf(" -- ");
206
+ const promptIdx = cmd.indexOf("QQQ_PROMPT_QQQ");
207
+ const mcpFlagIdx = cmd.indexOf("--mcp-config");
208
+ assert.ok(dashDashIdx > 0, `expected \` -- \` in command line; got:\n${cmd}`);
209
+ assert.ok(dashDashIdx > mcpFlagIdx, `\` -- \` must come after --mcp-config`);
210
+ assert.ok(promptIdx > dashDashIdx, `prompt must come after \` -- \``);
211
+ });
148
212
  async function mkTempGitRepo() {
149
213
  const raw = await fs.mkdtemp(path.join(os.tmpdir(), "orqlaude-v07-"));
150
214
  const real = await fs.realpath(raw);
@@ -1 +1 @@
1
- {"version":3,"file":"v07.test.js","sourceRoot":"","sources":["../../src/__tests__/v07.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"v07.test.js","sourceRoot":"","sources":["../../src/__tests__/v07.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,175 @@
1
+ import { test } from "node:test";
2
+ import assert from "node:assert/strict";
3
+ import { promises as fs } from "node:fs";
4
+ import path from "node:path";
5
+ import os from "node:os";
6
+ import { execSync } from "node:child_process";
7
+ import { StateStore } from "../lib/state.js";
8
+ import { snapshotSession, clearTailCache, jsonlPathFor } from "../lib/jsonl_tail.js";
9
+ import { sanitizeChildEnv, createWorktreeForTask } from "../lib/spawn_cli.js";
10
+ /**
11
+ * v0.8.0 — robustness audit fixes.
12
+ */
13
+ async function mkTempGitRepo() {
14
+ const raw = await fs.mkdtemp(path.join(os.tmpdir(), "orqlaude-v08-"));
15
+ const real = await fs.realpath(raw);
16
+ execSync("git init -q", { cwd: real });
17
+ execSync("git config user.email t@e", { cwd: real });
18
+ execSync("git config user.name t", { cwd: real });
19
+ await fs.writeFile(path.join(real, "README.md"), "test\n");
20
+ execSync("git add . && git commit -q -m init", { cwd: real });
21
+ return real;
22
+ }
23
+ // ---- bug 1 + 2: StateStore lock ownership ----------------------------------
24
+ test("v0.8.0 bug 2: a process whose lock was stolen does NOT delete the replacement", async () => {
25
+ // Simulate: process A acquires the lock, but then the file is overwritten
26
+ // by process B (as would happen if A's PID was reaped as stale). A's
27
+ // release should NOT delete B's lock.
28
+ const dir = await fs.mkdtemp(path.join(os.tmpdir(), "orqlaude-lock-"));
29
+ const lockPath = path.join(dir, "lock");
30
+ const store = new StateStore(dir);
31
+ // Drive a real update to acquire+release the lock so we exercise the path.
32
+ // We'll race-overwrite the lock file in the middle.
33
+ const racePromise = store.update(async (s) => {
34
+ s.plans["sentinel"] = {
35
+ id: "sentinel",
36
+ createdAt: 1,
37
+ rootTask: "x",
38
+ budgetCapTokens: 1,
39
+ perAgentCapTokens: 1,
40
+ status: "draft",
41
+ tasks: [],
42
+ notes: [],
43
+ messages: [],
44
+ claims: [],
45
+ userNotifications: [],
46
+ userResponseRequests: [],
47
+ userStreams: [],
48
+ };
49
+ // While we're holding the lock, simulate another process replacing it.
50
+ await fs.writeFile(lockPath, "99999\nother-token\n0\n", { mode: 0o600 });
51
+ });
52
+ await racePromise;
53
+ // The "other-token" file should STILL exist — our release should not have
54
+ // touched it because the token didn't match.
55
+ const contents = await fs.readFile(lockPath, "utf8").catch(() => "(gone)");
56
+ assert.match(contents, /other-token/, `expected lock to still contain other-token, got: ${contents}`);
57
+ });
58
+ test("v0.8.0 bug 2: normal release deletes the lock when we still own it", async () => {
59
+ const dir = await fs.mkdtemp(path.join(os.tmpdir(), "orqlaude-lock-"));
60
+ const lockPath = path.join(dir, "lock");
61
+ const store = new StateStore(dir);
62
+ await store.update(() => {
63
+ /* no-op mutator */
64
+ });
65
+ assert.equal(await exists(lockPath), false, "expected lock file to be cleaned up after successful update");
66
+ });
67
+ async function exists(p) {
68
+ try {
69
+ await fs.stat(p);
70
+ return true;
71
+ }
72
+ catch {
73
+ return false;
74
+ }
75
+ }
76
+ // ---- bug 3: jsonl_tail cache invalidation on inode/mtime ------------------
77
+ test("v0.8.0 bug 3: jsonl cache invalidates on same-size file replacement", async () => {
78
+ clearTailCache();
79
+ // Build a fake JSONL location matching jsonlPathFor()'s shape.
80
+ const sessionId = "00000000-0000-0000-0000-000000000111";
81
+ const fakeProject = "/tmp/orqlaude-v08-jsonl-cache-test";
82
+ const expectedPath = jsonlPathFor(fakeProject, sessionId);
83
+ // Build the parent dir explicitly.
84
+ await fs.mkdir(path.dirname(expectedPath), { recursive: true });
85
+ // Write version 1. Use 5-char subtypes so v1 and v2 are exactly the same
86
+ // byte length, defeating the v0.2 "byteOffset==size" early-return path.
87
+ const v1Line = JSON.stringify({ type: "result", subtype: "alpha" }) + "\n";
88
+ await fs.writeFile(expectedPath, v1Line);
89
+ const snap1 = await snapshotSession(fakeProject, sessionId);
90
+ assert.equal(snap1.terminationReason, "alpha");
91
+ // Replace with same-length but different content.
92
+ const v2Line = JSON.stringify({ type: "result", subtype: "omega" }) + "\n";
93
+ assert.equal(v2Line.length, v1Line.length, "test setup: v1 and v2 must be the same length");
94
+ // Wait a beat to ensure mtime advances by at least 1ms.
95
+ await new Promise((r) => setTimeout(r, 25));
96
+ await fs.unlink(expectedPath); // forces a new inode
97
+ await fs.writeFile(expectedPath, v2Line);
98
+ const snap2 = await snapshotSession(fakeProject, sessionId);
99
+ assert.equal(snap2.terminationReason, "omega", "cache should have invalidated on inode change");
100
+ await fs.rm(path.dirname(expectedPath), { recursive: true, force: true });
101
+ });
102
+ // ---- bug 4: createWorktreeForTask resists shell-injecting branchHint ------
103
+ test("v0.8.0 bug 4: branchHint with shell-special chars doesn't escape the spawn", async () => {
104
+ const repo = await mkTempGitRepo();
105
+ // A branchHint that would have shelled out under execSync-with-template.
106
+ const malicious = `foo"; touch /tmp/orqlaude-pwned-${Date.now()} ; echo "x`;
107
+ const sentinel = `/tmp/orqlaude-pwned-${Date.now()}`;
108
+ await createWorktreeForTask({
109
+ projectRoot: repo,
110
+ planId: "deadbeef-aaaa-bbbb-cccc-dddddddddddd",
111
+ taskId: "11111111-2222-3333-4444-555555555555",
112
+ agnetName: "InjTest",
113
+ branchHint: malicious,
114
+ });
115
+ // The sentinel should NOT have been created by a shell side-effect. We
116
+ // can't predict the exact /tmp/orqlaude-pwned-<ts> path, but if any
117
+ // matching sentinel got created, that'd be the injection working.
118
+ const tmpEntries = await fs.readdir("/tmp").catch(() => []);
119
+ const matched = tmpEntries.filter((n) => n.startsWith("orqlaude-pwned-"));
120
+ assert.equal(matched.length, 0, `unexpected shell side-effect: ${matched.join(", ")}`);
121
+ });
122
+ test("v0.8.0 bug 4: branchHint with git-invalid chars is sanitized to a safe name", async () => {
123
+ const repo = await mkTempGitRepo();
124
+ const result = await createWorktreeForTask({
125
+ projectRoot: repo,
126
+ planId: "deadbeef-aaaa-bbbb-cccc-dddddddddddd",
127
+ taskId: "22222222-3333-4444-5555-666666666666",
128
+ agnetName: "Sanitize",
129
+ branchHint: "feature spaces and *stars*",
130
+ });
131
+ // No spaces or stars should survive.
132
+ assert.doesNotMatch(result.branch, /[\s*]/);
133
+ });
134
+ // ---- bug 5: sanitizeChildEnv strips host pollution -------------------------
135
+ test("v0.8.0 bug 5: sanitizeChildEnv strips CLAUDE_CODE_* and empty Anthropic auth", () => {
136
+ const savedEnv = { ...process.env };
137
+ try {
138
+ process.env.CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST = "1";
139
+ process.env.CLAUDE_CODE_ENTRYPOINT = "claude-desktop";
140
+ process.env.CLAUDE_AGENT_SDK_VERSION = "0.2.138";
141
+ process.env.CLAUDECODE = "1";
142
+ process.env.ANTHROPIC_API_KEY = ""; // empty placeholder from host
143
+ process.env.PATH = "/usr/bin";
144
+ process.env.HOME = "/Users/test";
145
+ process.env.LANG = "en_US.UTF-8";
146
+ const env = sanitizeChildEnv({ ORQLAUDE_STATE_DIR: "/tmp/x" });
147
+ // Stripped:
148
+ assert.equal(env.CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST, undefined);
149
+ assert.equal(env.CLAUDE_CODE_ENTRYPOINT, undefined);
150
+ assert.equal(env.CLAUDE_AGENT_SDK_VERSION, undefined);
151
+ assert.equal(env.CLAUDECODE, undefined);
152
+ assert.equal(env.ANTHROPIC_API_KEY, undefined, "empty ANTHROPIC_API_KEY should be stripped");
153
+ // Kept:
154
+ assert.equal(env.PATH, "/usr/bin");
155
+ assert.equal(env.HOME, "/Users/test");
156
+ assert.equal(env.LANG, "en_US.UTF-8");
157
+ // Override applied:
158
+ assert.equal(env.ORQLAUDE_STATE_DIR, "/tmp/x");
159
+ }
160
+ finally {
161
+ process.env = savedEnv;
162
+ }
163
+ });
164
+ test("v0.8.0 bug 5: sanitizeChildEnv preserves non-empty ANTHROPIC_API_KEY", () => {
165
+ const savedEnv = { ...process.env };
166
+ try {
167
+ process.env.ANTHROPIC_API_KEY = "sk-ant-real-key";
168
+ const env = sanitizeChildEnv();
169
+ assert.equal(env.ANTHROPIC_API_KEY, "sk-ant-real-key");
170
+ }
171
+ finally {
172
+ process.env = savedEnv;
173
+ }
174
+ });
175
+ //# sourceMappingURL=v08.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v08.test.js","sourceRoot":"","sources":["../../src/__tests__/v08.test.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -26,7 +26,7 @@ import { tailAudit } from "./cli/tail.js";
26
26
  import { openPlan } from "./cli/open.js";
27
27
  import { showAbout } from "./cli/about.js";
28
28
  import { runEasterEgg } from "./cli/easter_egg.js";
29
- const VERSION = "0.7.1";
29
+ const VERSION = "0.8.0";
30
30
  /**
31
31
  * orqlaude CLI — read-only inspection of state + audit log + Telegram setup
32
32
  * and run.
@@ -39,12 +39,17 @@ export async function snapshotSession(cwd, sessionId) {
39
39
  throw err;
40
40
  }
41
41
  let entry = cache.get(jsonlPath);
42
- // If the file shrank or rotated, reset.
43
- if (entry && entry.byteOffset > stat.size) {
42
+ // v0.8.0: invalidate on inode change (file was replaced) OR mtime regression
43
+ // (clock rewind or replace) OR file-shrank (truncate). Catches the same-size
44
+ // truncation case the v0.2 cache missed.
45
+ if (entry &&
46
+ (entry.byteOffset > stat.size ||
47
+ entry.inode !== stat.ino ||
48
+ entry.mtimeMs > stat.mtimeMs)) {
44
49
  cache.delete(jsonlPath);
45
50
  entry = undefined;
46
51
  }
47
- if (entry && entry.byteOffset === stat.size) {
52
+ if (entry && entry.byteOffset === stat.size && entry.mtimeMs === stat.mtimeMs) {
48
53
  return entry.snap; // no new data
49
54
  }
50
55
  // Read only the new bytes since last visit.
@@ -73,7 +78,13 @@ export async function snapshotSession(cwd, sessionId) {
73
78
  }
74
79
  applyEvent(snap, evt);
75
80
  }
76
- cache.set(jsonlPath, { byteOffset: stat.size, carry: newCarry, snap });
81
+ cache.set(jsonlPath, {
82
+ byteOffset: stat.size,
83
+ carry: newCarry,
84
+ inode: stat.ino,
85
+ mtimeMs: stat.mtimeMs,
86
+ snap,
87
+ });
77
88
  }
78
89
  finally {
79
90
  await fh.close();
@@ -1 +1 @@
1
- {"version":3,"file":"jsonl_tail.js","sourceRoot":"","sources":["../../src/lib/jsonl_tail.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jsonl_tail.js","sourceRoot":"","sources":["../../src/lib/jsonl_tail.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAgD7B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;AAE/D,MAAM,UAAU,oBAAoB,CAAC,GAAW;IAC9C,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAAW,EAAE,SAAiB;IACzD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,oBAAoB,CAAC,GAAG,CAAC,EAAE,GAAG,SAAS,QAAQ,CAAC,CAAC;AACjG,CAAC;AAED,MAAM,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAC,CAAC,qBAAqB;AAElE,SAAS,SAAS,CAAC,SAAiB,EAAE,SAAiB;IACrD,OAAO;QACL,MAAM,EAAE,KAAK;QACb,SAAS;QACT,SAAS;QACT,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,CAAC;QACd,YAAY,EAAE,CAAC;QACf,eAAe,EAAE,CAAC;QAClB,mBAAmB,EAAE,CAAC;QACtB,oBAAoB,EAAE,CAAC;QACvB,aAAa,EAAE,IAAI;QACnB,cAAc,EAAE,IAAI;QACpB,iBAAiB,EAAE,IAAI;QACvB,WAAW,EAAE,IAAI;QACjB,UAAU,EAAE,KAAK;QACjB,iBAAiB,EAAE,IAAI;KACxB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAW,EAAE,SAAiB;IAClE,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAE/C,IAAI,IAAoD,CAAC;IACzD,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAClE,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,IAAI,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAEjC,6EAA6E;IAC7E,6EAA6E;IAC7E,yCAAyC;IACzC,IACE,KAAK;QACL,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI;YAC3B,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,GAAG;YACxB,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,EAC/B,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACxB,KAAK,GAAG,SAAS,CAAC;IACpB,CAAC;IAED,IAAI,KAAK,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;QAC9E,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,cAAc;IACnC,CAAC;IAED,4CAA4C;IAC5C,MAAM,WAAW,GAAG,KAAK,EAAE,UAAU,IAAI,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC;IACjC,MAAM,IAAI,GAAoB,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAE7H,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IACzC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,CAAC;QAClD,IAAI,GAAG,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,sCAAsC;QACtC,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBAAE,SAAS;YAC3B,IAAI,GAAQ,CAAC;YACb,IAAI,CAAC;gBACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YACD,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACxB,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE;YACnB,UAAU,EAAE,IAAI,CAAC,IAAI;YACrB,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE,IAAI,CAAC,GAAG;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI;SACL,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,UAAU,CAAC,IAAqB,EAAE,GAAQ;IACjD,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC;IACpD,MAAM,EAAE,GAAG,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACrF,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAAE,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;IAEtD,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC;IAC9C,IAAI,KAAK,EAAE,CAAC;QACV,IAAI,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ;YAAE,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,YAAY,CAAC;QACnF,IAAI,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ;YAAE,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,aAAa,CAAC;QACtF,IAAI,OAAO,KAAK,CAAC,uBAAuB,KAAK,QAAQ;YAAE,IAAI,CAAC,eAAe,IAAI,KAAK,CAAC,uBAAuB,CAAC;QAC7G,IAAI,OAAO,KAAK,CAAC,2BAA2B,KAAK,QAAQ;YAAE,IAAI,CAAC,mBAAmB,IAAI,KAAK,CAAC,2BAA2B,CAAC;IAC3H,CAAC;IACD,IAAI,CAAC,oBAAoB;QACvB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC;IAEzF,IAAI,OAAO,GAAG,CAAC,cAAc,KAAK,QAAQ,EAAE,CAAC;QAC3C,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,cAAc,CAAC,CAAC,iCAAiC;IAC3E,CAAC;SAAM,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC5C,IAAI,CAAC,YAAY,IAAI,GAAG,CAAC,QAAQ,CAAC;IACpC,CAAC;IAED,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;QACpE,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACxC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC5D,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACpD,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACrC,IAAI,CAAC,WAAW,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;YAC9D,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,eAAe,IAAI,WAAW,CAAC;IAC7E,CAAC;AACH,CAAC;AAED,kCAAkC;AAClC,MAAM,UAAU,cAAc;IAC5B,KAAK,CAAC,KAAK,EAAE,CAAC;AAChB,CAAC"}
@@ -69,4 +69,5 @@ export declare function createWorktreeForTask(input: {
69
69
  */
70
70
  export declare function spawnAgnetViaCli(input: SpawnViaCliInput): Promise<SpawnViaCliResult>;
71
71
  export declare function cleanupPlanWorktrees(projectRoot: string, planId: string): Promise<string[]>;
72
+ export declare function sanitizeChildEnv(overrides?: Record<string, string>): NodeJS.ProcessEnv;
72
73
  export { isProcessAlive } from "./process_lib.js";
@@ -1,4 +1,4 @@
1
- import { execSync, spawn } from "node:child_process";
1
+ import { execSync, spawn, spawnSync } from "node:child_process";
2
2
  import { promises as fs, existsSync, readdirSync, statSync, readFileSync, accessSync, constants } from "node:fs";
3
3
  import path from "node:path";
4
4
  import os from "node:os";
@@ -53,6 +53,22 @@ export function findGitRoot(start) {
53
53
  dir = parent;
54
54
  }
55
55
  }
56
+ /**
57
+ * Git branch names have to satisfy git-check-ref-format. Most plain ASCII is
58
+ * OK; rejected: spaces, ASCII control chars, `:`, `?`, `*`, `[`, `\`, `~`,
59
+ * `^`, two consecutive dots, leading slash, trailing slash, trailing `.lock`,
60
+ * and `@{`. We strip anything not in a safe whitelist instead of trying to
61
+ * match git's rules exactly.
62
+ */
63
+ function sanitizeBranchName(name, fallback) {
64
+ const cleaned = name
65
+ .replace(/[^A-Za-z0-9._/-]/g, "-")
66
+ .replace(/\.\./g, ".")
67
+ .replace(/^[./-]+/, "")
68
+ .replace(/[./-]+$/, "")
69
+ .replace(/-+/g, "-");
70
+ return cleaned || fallback;
71
+ }
56
72
  export async function createWorktreeForTask(input) {
57
73
  const planShort = input.planId.slice(0, 8);
58
74
  const agnetSlug = (input.agnetName ?? input.taskId.slice(0, 8))
@@ -62,20 +78,35 @@ export async function createWorktreeForTask(input) {
62
78
  const worktreeBase = path.join(input.projectRoot, ".orqlaude-worktrees");
63
79
  await fs.mkdir(worktreeBase, { recursive: true });
64
80
  const wtPath = path.join(worktreeBase, `${planShort}-${agnetSlug}`);
65
- const branch = input.branchHint ? input.branchHint : `fleet/${planShort}/${agnetSlug}`;
81
+ const rawBranch = input.branchHint ? input.branchHint : `fleet/${planShort}/${agnetSlug}`;
82
+ // v0.8.0: defense-in-depth even though we spawn without a shell. A
83
+ // pathological branchHint can still break git itself if it contains
84
+ // characters git refuses. Sanitize aggressively.
85
+ const branch = sanitizeBranchName(rawBranch, `fleet/${planShort}/${agnetSlug}`);
66
86
  if (existsSync(wtPath)) {
67
87
  return { path: wtPath, branch };
68
88
  }
69
- try {
70
- execSync(`git worktree add "${wtPath}" -b "${branch}"`, { cwd: input.projectRoot, stdio: "pipe" });
71
- }
72
- catch (err) {
73
- const msg = (err.stderr?.toString?.() ?? err.message ?? "").toLowerCase();
89
+ // v0.8.0: use spawnSync with shell:false to defeat shell-injection via
90
+ // crafted branchHint or projectRoot paths. The previous code spliced both
91
+ // into a template string passed to execSync, which was vulnerable.
92
+ const result = spawnSync("git", ["worktree", "add", wtPath, "-b", branch], {
93
+ cwd: input.projectRoot,
94
+ stdio: "pipe",
95
+ });
96
+ if (result.status !== 0) {
97
+ const msg = (result.stderr?.toString() ?? "").toLowerCase();
74
98
  if (msg.includes("already exists")) {
75
- execSync(`git worktree add "${wtPath}" "${branch}"`, { cwd: input.projectRoot, stdio: "pipe" });
99
+ // Branch exists already check it out into the worktree without -b.
100
+ const retry = spawnSync("git", ["worktree", "add", wtPath, branch], {
101
+ cwd: input.projectRoot,
102
+ stdio: "pipe",
103
+ });
104
+ if (retry.status !== 0) {
105
+ throw new Error(`git worktree add failed (status ${retry.status}): ${retry.stderr?.toString() ?? "(no stderr)"}`);
106
+ }
76
107
  }
77
108
  else {
78
- throw err;
109
+ throw new Error(`git worktree add failed (status ${result.status}): ${result.stderr?.toString() ?? "(no stderr)"}`);
79
110
  }
80
111
  }
81
112
  return { path: wtPath, branch };
@@ -161,12 +192,26 @@ export async function spawnAgnetViaCli(input) {
161
192
  // 5. Build argv — prompt is the LAST positional. Putting it earlier was
162
193
  // causing claude to interpret natural-language prompts as a [command]
163
194
  // name and exit silently. See v0.7.0 changelog.
195
+ //
196
+ // v0.7.2: insert the standard `--` end-of-options marker before the
197
+ // prompt. Multiple claude flags are VARIADIC (--mcp-config, --add-dir,
198
+ // --allowedTools, --betas, --file, --tools, --disallowedTools); without
199
+ // `--`, commander.js greedily eats the prompt as another value for
200
+ // whichever variadic flag came last. The dev caught this when claude
201
+ // --mcp-config <path> <prompt> was being parsed as `--mcp-config [path,
202
+ // prompt]` and bailing on the prompt-as-a-filepath open(). `--` stops
203
+ // that greedy parsing universally.
164
204
  const args = [
165
205
  "--print",
166
206
  "--session-id",
167
207
  sessionId,
168
208
  "--output-format",
169
209
  "stream-json",
210
+ // v0.7.3: claude CLI now requires --verbose whenever
211
+ // --output-format=stream-json is used. Without it the child bails
212
+ // with: "Error: When using --print, --output-format=stream-json
213
+ // requires --verbose". Always emit them as a pair.
214
+ "--verbose",
170
215
  "--permission-mode",
171
216
  input.permissionMode ?? "bypassPermissions",
172
217
  "--mcp-config",
@@ -175,17 +220,20 @@ export async function spawnAgnetViaCli(input) {
175
220
  if (input.budgetCapUsd) {
176
221
  args.push("--max-budget-usd", String(input.budgetCapUsd));
177
222
  }
178
- args.push(input.prompt); // positional must be LAST
223
+ args.push("--"); // v0.7.2: stop variadic flags from eating the prompt
224
+ args.push(input.prompt); // positional — must be LAST and after `--`
179
225
  const commandLine = `${quoteArg(claudeBin)} ${args.map(quoteArg).join(" ")}`;
180
226
  // 6. Spawn detached with stdio piped to our log files.
227
+ // v0.8.0: sanitize the env first. orqlaude runs inside the Claude Desktop
228
+ // app, which sets a long list of CLAUDE_CODE_* vars (entrypoint, session
229
+ // id, provider-managed-by-host) intended for that hosted runtime. If those
230
+ // bleed into a spawned standalone `claude -p`, the child either fails to
231
+ // authenticate or behaves like a sub-session of a host that isn't there.
181
232
  const child = spawn(claudeBin, args, {
182
233
  cwd: wt.path,
183
234
  detached: true,
184
235
  stdio: ["ignore", stdoutFh.fd, stderrFh.fd],
185
- env: {
186
- ...process.env,
187
- ORQLAUDE_STATE_DIR: input.stateDir,
188
- },
236
+ env: sanitizeChildEnv({ ORQLAUDE_STATE_DIR: input.stateDir }),
189
237
  });
190
238
  // Close our FDs — the child holds its own dup'd copies via stdio.
191
239
  await stderrFh.close().catch(() => { });
@@ -261,6 +309,48 @@ async function readSafe(p, maxBytes) {
261
309
  return "";
262
310
  }
263
311
  }
312
+ /**
313
+ * Env vars to STRIP when spawning a standalone `claude -p` child.
314
+ *
315
+ * These come from orqlaude running inside the Claude Desktop app's
316
+ * embedded runtime. The Desktop app talks to its hosted CLI via stdio +
317
+ * these env-var hints. When we spawn a fresh detached claude process, those
318
+ * hints make the child think it's still attached to the host — typical
319
+ * symptom is "Not logged in" because CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST=1
320
+ * tells the child to defer authentication to the host's IPC channel, which
321
+ * doesn't exist for our detached spawn.
322
+ *
323
+ * We keep HOME, USER, PATH, LANG, LC_*, TERM, SHELL, and the user's own
324
+ * Anthropic auth env vars (unless they're empty, which signals the host was
325
+ * managing them).
326
+ */
327
+ const HOST_ENV_STRIP_PREFIXES = ["CLAUDE_CODE_", "CLAUDE_AGENT_"];
328
+ const HOST_ENV_STRIP_KEYS = new Set([
329
+ "CLAUDECODE",
330
+ "CLAUDE_EFFORT",
331
+ "AI_AGENT",
332
+ "BAGGAGE",
333
+ ]);
334
+ export function sanitizeChildEnv(overrides = {}) {
335
+ const out = {};
336
+ for (const [k, v] of Object.entries(process.env)) {
337
+ if (v === undefined)
338
+ continue;
339
+ if (HOST_ENV_STRIP_KEYS.has(k))
340
+ continue;
341
+ if (HOST_ENV_STRIP_PREFIXES.some((p) => k.startsWith(p)))
342
+ continue;
343
+ // Drop empty Anthropic auth env vars — they're placeholders the host
344
+ // sets when it manages auth itself. Real values are kept.
345
+ if ((k === "ANTHROPIC_API_KEY" || k === "ANTHROPIC_AUTH_TOKEN") && v.trim() === "")
346
+ continue;
347
+ out[k] = v;
348
+ }
349
+ for (const [k, v] of Object.entries(overrides)) {
350
+ out[k] = v;
351
+ }
352
+ return out;
353
+ }
264
354
  // Re-export for callers who used to import these from spawn_cli.
265
355
  export { isProcessAlive } from "./process_lib.js";
266
356
  //# sourceMappingURL=spawn_cli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"spawn_cli.js","sourceRoot":"","sources":["../../src/lib/spawn_cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spawn_cli.js","sourceRoot":"","sources":["../../src/lib/spawn_cli.ts"],"names":[],"mappings":"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"}
@@ -226,6 +226,14 @@ export declare class StateStore {
226
226
  * restores the in-memory cache from the pre-mutation snapshot.
227
227
  */
228
228
  update<T>(mutator: (state: State) => T | Promise<T>): Promise<T>;
229
+ /**
230
+ * v0.8.0: every acquisition mints a fresh per-instance UUID and writes it
231
+ * into the lock file alongside the PID. Release uses that UUID to confirm
232
+ * we still own the lock before deleting; if another process reclaimed
233
+ * the lock as "stale" while we were working, we leave it alone instead of
234
+ * deleting THEIR lock and exposing a race window to a third process.
235
+ */
236
+ private currentLockToken;
229
237
  private acquireFileLock;
230
238
  private releaseFileLock;
231
239
  private persist;
package/dist/lib/state.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { promises as fs } from "node:fs";
2
2
  import path from "node:path";
3
3
  import { randomUUID } from "node:crypto";
4
+ import { isProcessAlive, sleep } from "./process_lib.js";
4
5
  const EMPTY_STATE = { schemaVersion: 3, plans: {} };
5
6
  const LOCK_TIMEOUT_MS = 5_000;
6
7
  const LOCK_RETRY_BASE_MS = 30;
@@ -88,14 +89,26 @@ export class StateStore {
88
89
  releaseInProcess();
89
90
  }
90
91
  }
92
+ /**
93
+ * v0.8.0: every acquisition mints a fresh per-instance UUID and writes it
94
+ * into the lock file alongside the PID. Release uses that UUID to confirm
95
+ * we still own the lock before deleting; if another process reclaimed
96
+ * the lock as "stale" while we were working, we leave it alone instead of
97
+ * deleting THEIR lock and exposing a race window to a third process.
98
+ */
99
+ currentLockToken = null;
91
100
  async acquireFileLock() {
92
101
  await fs.mkdir(path.dirname(this.lockPath), { recursive: true });
93
102
  const start = Date.now();
103
+ const token = randomUUID();
94
104
  while (Date.now() - start < LOCK_TIMEOUT_MS) {
95
105
  try {
96
106
  const fh = await fs.open(this.lockPath, "wx", 0o600);
97
- await fh.write(`${process.pid}\n${Date.now()}\n`);
107
+ // PID on line 1 (for stale-PID reclaim), token on line 2 (for
108
+ // ownership verification on release), timestamp on line 3.
109
+ await fh.write(`${process.pid}\n${token}\n${Date.now()}\n`);
98
110
  await fh.close();
111
+ this.currentLockToken = token;
99
112
  return;
100
113
  }
101
114
  catch (err) {
@@ -106,12 +119,23 @@ export class StateStore {
106
119
  const held = (await fs.readFile(this.lockPath, "utf8")).split("\n")[0]?.trim();
107
120
  const heldPid = parseInt(held ?? "", 10);
108
121
  if (Number.isFinite(heldPid) && !isProcessAlive(heldPid)) {
109
- await fs.unlink(this.lockPath).catch(() => { });
122
+ // Race-safe stale-lock reclaim: only delete if the file STILL
123
+ // contains the same PID (in case the legitimate holder rewrote
124
+ // it between our reads).
125
+ try {
126
+ const recheck = (await fs.readFile(this.lockPath, "utf8")).split("\n")[0]?.trim();
127
+ if (recheck === String(heldPid)) {
128
+ await fs.unlink(this.lockPath).catch(() => { });
129
+ }
130
+ }
131
+ catch {
132
+ /* race: file gone; retry will succeed */
133
+ }
110
134
  continue;
111
135
  }
112
136
  }
113
137
  catch {
114
- /* race: someone deleted it before we read. retry. */
138
+ /* race: someone deleted/rewrote the file before we read. retry. */
115
139
  }
116
140
  await sleep(LOCK_RETRY_BASE_MS + Math.random() * LOCK_RETRY_BASE_MS);
117
141
  }
@@ -119,9 +143,26 @@ export class StateStore {
119
143
  throw new Error(`orqlaude: could not acquire state lock (${this.lockPath}) within ${LOCK_TIMEOUT_MS}ms`);
120
144
  }
121
145
  async releaseFileLock() {
122
- await fs.unlink(this.lockPath).catch(() => {
146
+ const myToken = this.currentLockToken;
147
+ this.currentLockToken = null;
148
+ if (!myToken) {
149
+ await fs.unlink(this.lockPath).catch(() => { });
150
+ return;
151
+ }
152
+ try {
153
+ const content = await fs.readFile(this.lockPath, "utf8");
154
+ const heldToken = content.split("\n")[1]?.trim();
155
+ if (heldToken !== myToken) {
156
+ // The lock was reclaimed by another process (or our entry was
157
+ // overwritten). Don't unlink — we'd nuke their lock and let a third
158
+ // process race in.
159
+ return;
160
+ }
161
+ await fs.unlink(this.lockPath);
162
+ }
163
+ catch {
123
164
  /* already gone; not fatal */
124
- });
165
+ }
125
166
  }
126
167
  async persist(state) {
127
168
  await fs.mkdir(path.dirname(this.filePath), { recursive: true });
@@ -131,18 +172,6 @@ export class StateStore {
131
172
  this.cache = state;
132
173
  }
133
174
  }
134
- function isProcessAlive(pid) {
135
- try {
136
- process.kill(pid, 0);
137
- return true;
138
- }
139
- catch {
140
- return false;
141
- }
142
- }
143
- function sleep(ms) {
144
- return new Promise((res) => setTimeout(res, ms));
145
- }
146
175
  /** Forward-compatible migration from earlier schemas. v1 → v3 in one pass. */
147
176
  function migrate(input) {
148
177
  const v = input.schemaVersion ?? 1;
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/lib/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/lib/state.ts"],"names":[],"mappings":"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"}
package/dist/server.js CHANGED
@@ -23,7 +23,7 @@ const store = new StateStore(stateDir);
23
23
  const audit = new AuditLog(stateDir);
24
24
  const server = new McpServer({
25
25
  name: "orqlaude",
26
- version: "0.7.1",
26
+ version: "0.8.0",
27
27
  });
28
28
  registerPing(server);
29
29
  registerPlanning(server, store, audit);
@@ -21,7 +21,7 @@ export function registerPing(server) {
21
21
  const payload = {
22
22
  ok: warnings.length === 0,
23
23
  server: "orqlaude",
24
- version: "0.7.1",
24
+ version: "0.8.0",
25
25
  cwd: realCwd,
26
26
  cwd_source: stateRes.cwdSource,
27
27
  state_dir: stateRes.path,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@synaplink/orqlaude",
3
- "version": "0.7.1",
3
+ "version": "0.8.0",
4
4
  "description": "Multi-agent orchestrator for Claude Code. One primary session decomposes a complex task, gets a single budget approval, then dispatches N parallel Agnets via the Desktop app's native spawn_task (with explicit fallbacks). Tracks cost/status via JSONL tails; brokers messages between Agnets; streams to Telegram; detects hallucination; manages PRs.",
5
5
  "type": "module",
6
6
  "bin": {