lody 0.71.0 → 0.71.2

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.
@@ -3,7 +3,7 @@ import { readFile, mkdir, writeFile, rename } from "node:fs/promises";
3
3
  import os__default from "node:os";
4
4
  import path__default from "node:path";
5
5
  import process from "node:process";
6
- const reviewViewerVersion = "0.71.0";
6
+ const reviewViewerVersion = "0.71.2";
7
7
  const reviewViewerSha256 = "e395b367a7644fe83bc050d0c646810914a2844824fd2b5d11d24ae4f55b6893";
8
8
  const reviewViewerFileName = "standalone.html";
9
9
  const DEFAULT_CDN_BASES = ["https://cdn.jsdelivr.net/npm", "https://unpkg.com"];
package/dist/index.js CHANGED
@@ -4190,7 +4190,7 @@ let __tla = Promise.all([
4190
4190
  }
4191
4191
  }
4192
4192
  const name$1 = "lody";
4193
- const version$7 = "0.71.0";
4193
+ const version$7 = "0.71.2";
4194
4194
  const description$1 = "Lody Agent CLI tool for managing remote command execution";
4195
4195
  const type$2 = "module";
4196
4196
  const main$4 = "dist/index.js";
@@ -136800,6 +136800,7 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
136800
136800
  deliveryChains = /* @__PURE__ */ new Map();
136801
136801
  operationAbortControllers = /* @__PURE__ */ new Map();
136802
136802
  metaWatch = null;
136803
+ store = null;
136803
136804
  storeWatch = null;
136804
136805
  storeWakeTimer = null;
136805
136806
  started = false;
@@ -136815,15 +136816,15 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
136815
136816
  "doc-metadata"
136816
136817
  ]
136817
136818
  });
136818
- this.withStore(() => void 0);
136819
+ this.store = this.storeFactory();
136819
136820
  const storePath = this.options.storePath ?? getLodyOperationStorePath(this.options.machineId);
136820
136821
  const storeBasename = path__default$1.basename(storePath);
136821
136822
  this.storeWatch = watch(path__default$1.dirname(storePath), (_event, filename) => {
136822
136823
  if (!filename || !filename.toString().startsWith(storeBasename)) return;
136823
- this.abortTerminalCoordinators();
136824
- if (this.storeWakeTimer) clearTimeout(this.storeWakeTimer);
136824
+ if (this.storeWakeTimer) return;
136825
136825
  this.storeWakeTimer = setTimeout(() => {
136826
136826
  this.storeWakeTimer = null;
136827
+ this.abortTerminalCoordinators();
136827
136828
  this.wake("operation-store");
136828
136829
  }, 10);
136829
136830
  this.storeWakeTimer.unref?.();
@@ -136838,6 +136839,8 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
136838
136839
  this.storeWatch = null;
136839
136840
  if (this.storeWakeTimer) clearTimeout(this.storeWakeTimer);
136840
136841
  this.storeWakeTimer = null;
136842
+ this.store?.close();
136843
+ this.store = null;
136841
136844
  for (const subscription of this.targetSubscriptions.values()) {
136842
136845
  subscription.unsubscribe();
136843
136846
  }
@@ -136877,6 +136880,7 @@ The postId is ${normalizedFeedbackPostId}. Use the feedback-progress-reporter sk
136877
136880
  ]);
136878
136881
  }
136879
136882
  withStore(fn) {
136883
+ if (this.store) return fn(this.store);
136880
136884
  const store = this.storeFactory();
136881
136885
  try {
136882
136886
  return fn(store);
@@ -143470,7 +143474,7 @@ ${entry.text}`).join("\n\n");
143470
143474
  this.deps.logger.debug(`[${sessionId}] auto-commit-push: turn cancelled during ${stage}; skipping remaining work`);
143471
143475
  return true;
143472
143476
  };
143473
- if (!resolveProjectGitHubRepo(project)) {
143477
+ if (!resolveProjectGitHubRepo(project) || project?.kind === "local" && project.useWorktree !== true) {
143474
143478
  return;
143475
143479
  }
143476
143480
  const workspace = await this.resolveWorkspaceSessionContext(sessionId, sessionDoc);
@@ -167412,8 +167416,7 @@ export PATH=${toSingleQuotedShellString(ghShimBinDir)}:"$PATH"
167412
167416
  if (this.status === "failed" || this.status === "stopping" || this.status === "terminated") {
167413
167417
  throw new Error(`Session ${this.sessionId} is not running`);
167414
167418
  }
167415
- const formattedCommand = this.formatCommand(command2, args2);
167416
- const execPromise = await this.runCommand(formattedCommand, workdir, isAI);
167419
+ const execPromise = await this.runCommand(command2, args2, workdir, isAI);
167417
167420
  return execPromise;
167418
167421
  }
167419
167422
  async terminate(force = false) {
@@ -167524,13 +167527,6 @@ export PATH=${toSingleQuotedShellString(ghShimBinDir)}:"$PATH"
167524
167527
  const message = formatErrorMessage(error2);
167525
167528
  this.logger.error(`[${this.sessionId}] Parser error: ${message}`);
167526
167529
  };
167527
- formatCommand(command2, args2) {
167528
- if (!args2.length) {
167529
- return command2;
167530
- }
167531
- const serializedArgs = args2.map((arg) => `'${arg.replace(/'/g, `'"'"'`)}'`).join(" ");
167532
- return `${command2} ${serializedArgs}`;
167533
- }
167534
167530
  buildShellEnv(extraEnv, loginShellEnv = getCachedLoginShellEnvSync()) {
167535
167531
  const configEnv = this.config.env ?? {};
167536
167532
  const workspaceSessionId = this.config.parentSessionId ?? this.sessionId;
@@ -167739,14 +167735,11 @@ export PATH=${toSingleQuotedShellString(ghShimBinDir)}:"$PATH"
167739
167735
  getAcpCapabilities() {
167740
167736
  return this.acpCapabilities;
167741
167737
  }
167742
- runCommand(command2, workdir, isAI) {
167738
+ runCommand(command2, args2, workdir, isAI) {
167743
167739
  const env2 = this.buildShellEnv();
167744
- this.logger.debug(`[${this.sessionId}] Executing command: ${command2}`);
167740
+ this.logger.debug(`[${this.sessionId}] Executing command: ${command2} args=${JSON.stringify(args2)}`);
167745
167741
  return new Promise((resolve2, reject) => {
167746
- void this.sandbox.spawn("bash", [
167747
- "-lc",
167748
- command2
167749
- ], {
167742
+ void this.sandbox.spawn(command2, args2, {
167750
167743
  cwd: workdir,
167751
167744
  env: env2,
167752
167745
  stdio: [
@@ -167756,7 +167749,7 @@ export PATH=${toSingleQuotedShellString(ghShimBinDir)}:"$PATH"
167756
167749
  ]
167757
167750
  }).then((processHandle) => {
167758
167751
  const child = processHandle.child;
167759
- this.logger.debug(`[${this.sessionId}] Spawned process PID: ${child.pid} with command: bash -lc ${command2}`);
167752
+ this.logger.debug(`[${this.sessionId}] Spawned process PID: ${child.pid} with command: ${command2}`);
167760
167753
  this.activeProcess = processHandle;
167761
167754
  const stdoutChunks = [];
167762
167755
  const stderrChunks = [];
@@ -167823,17 +167816,9 @@ export PATH=${toSingleQuotedShellString(ghShimBinDir)}:"$PATH"
167823
167816
  });
167824
167817
  processHandle.onError((error2) => {
167825
167818
  cleanup();
167826
- this.emit("error", {
167827
- sessionId: this.sessionId,
167828
- error: error2
167829
- });
167830
167819
  reject(error2);
167831
167820
  });
167832
167821
  }).catch((error2) => {
167833
- this.emit("error", {
167834
- sessionId: this.sessionId,
167835
- error: error2 instanceof Error ? error2 : new Error(String(error2))
167836
- });
167837
167822
  reject(error2);
167838
167823
  });
167839
167824
  });
@@ -203347,7 +203332,7 @@ ${page}${helpTipBottom}${choiceDescription}${ansiEscapes.cursorHide}`;
203347
203332
  data = createReviewBundleSnapshot(bundle);
203348
203333
  }
203349
203334
  const { injectReviewSnapshot } = await import("./chunks/index-VoI6Ds2-.js");
203350
- const { resolveReviewViewerTemplate } = await import("./chunks/review-viewer-Bn33ciqG.js");
203335
+ const { resolveReviewViewerTemplate } = await import("./chunks/review-viewer-CP4bkTWs.js");
203351
203336
  const template = await resolveReviewViewerTemplate();
203352
203337
  const html = injectReviewSnapshot(template, data);
203353
203338
  const outputPath = options.output ? path__default$1.resolve(options.output) : defaultHtmlOutputPath(inputPath);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lody",
3
- "version": "0.71.0",
3
+ "version": "0.71.2",
4
4
  "description": "Lody Agent CLI tool for managing remote command execution",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -76,14 +76,14 @@
76
76
  "zod": "^4.1.5",
77
77
  "zstd-stream": "^1.1.0",
78
78
  "@lody/cli-supervisor": "0.0.1",
79
+ "@lody/code-review-helper": "0.0.0",
80
+ "@lody/shared": "0.0.1",
79
81
  "@lody/convex": "0.0.1",
80
82
  "@lody/loro-streams-rpc": "0.0.1",
81
- "@lody/shared": "0.0.1",
82
- "@lody/code-review-helper": "0.0.0",
83
- "acp-extension-codex": "1.2.1",
84
83
  "acp-extension-claude": "0.59.0",
85
84
  "acp-extension-core": "0.0.5",
86
- "lody-code-review-viewer": "0.71.0"
85
+ "acp-extension-codex": "1.2.1",
86
+ "lody-code-review-viewer": "0.71.2"
87
87
  },
88
88
  "files": [
89
89
  "dist",