@memtensor/memos-local-openclaw-plugin 1.0.6-beta.3 → 1.0.6-beta.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/viewer/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/viewer/server.ts"],"names":[],"mappings":"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"}
@@ -3604,6 +3604,41 @@ class ViewerServer {
3604
3604
  const shortName = pluginName?.replace(/^@[\w-]+\//, "") ?? "memos-local-openclaw-plugin";
3605
3605
  const extDir = node_path_1.default.join(node_os_1.default.homedir(), ".openclaw", "extensions", shortName);
3606
3606
  const tmpDir = node_path_1.default.join(node_os_1.default.tmpdir(), `openclaw-update-${Date.now()}`);
3607
+ const backupDir = node_path_1.default.join(node_path_1.default.dirname(extDir), `${shortName}.backup-${Date.now()}`);
3608
+ let backupReady = false;
3609
+ const cleanupTmpDir = () => {
3610
+ try {
3611
+ node_fs_1.default.rmSync(tmpDir, { recursive: true, force: true });
3612
+ }
3613
+ catch { }
3614
+ };
3615
+ const rollbackInstall = () => {
3616
+ try {
3617
+ node_fs_1.default.rmSync(extDir, { recursive: true, force: true });
3618
+ }
3619
+ catch { }
3620
+ if (!backupReady)
3621
+ return;
3622
+ try {
3623
+ node_fs_1.default.renameSync(backupDir, extDir);
3624
+ backupReady = false;
3625
+ this.log.info(`update-install: restored previous version from ${backupDir}`);
3626
+ }
3627
+ catch (restoreErr) {
3628
+ this.log.warn(`update-install: failed to restore previous version: ${restoreErr?.message ?? restoreErr}`);
3629
+ }
3630
+ };
3631
+ const discardBackup = () => {
3632
+ if (!backupReady)
3633
+ return;
3634
+ try {
3635
+ node_fs_1.default.rmSync(backupDir, { recursive: true, force: true });
3636
+ backupReady = false;
3637
+ }
3638
+ catch (cleanupErr) {
3639
+ this.log.warn(`update-install: failed to remove backup dir ${backupDir}: ${cleanupErr?.message ?? cleanupErr}`);
3640
+ }
3641
+ };
3607
3642
  // Download via npm pack, extract, and replace extension dir.
3608
3643
  // Does NOT touch openclaw.json → no config watcher SIGUSR1.
3609
3644
  this.log.info(`update-install: downloading ${packageSpec} via npm pack...`);
@@ -3612,10 +3647,7 @@ class ViewerServer {
3612
3647
  if (packErr) {
3613
3648
  this.log.warn(`update-install: npm pack failed: ${packErr.message}`);
3614
3649
  this.jsonResponse(res, { ok: false, error: `Download failed: ${packErr.message}` });
3615
- try {
3616
- node_fs_1.default.rmSync(tmpDir, { recursive: true, force: true });
3617
- }
3618
- catch { }
3650
+ cleanupTmpDir();
3619
3651
  return;
3620
3652
  }
3621
3653
  const tgzFile = packOut.trim().split("\n").pop();
@@ -3627,40 +3659,45 @@ class ViewerServer {
3627
3659
  if (tarErr) {
3628
3660
  this.log.warn(`update-install: tar extract failed: ${tarErr.message}`);
3629
3661
  this.jsonResponse(res, { ok: false, error: `Extract failed: ${tarErr.message}` });
3630
- try {
3631
- node_fs_1.default.rmSync(tmpDir, { recursive: true, force: true });
3632
- }
3633
- catch { }
3662
+ cleanupTmpDir();
3634
3663
  return;
3635
3664
  }
3636
3665
  // npm pack extracts to a "package" subdirectory
3637
3666
  const srcDir = node_path_1.default.join(extractDir, "package");
3638
3667
  if (!node_fs_1.default.existsSync(srcDir)) {
3639
3668
  this.jsonResponse(res, { ok: false, error: "Extracted package has no 'package' dir" });
3640
- try {
3641
- node_fs_1.default.rmSync(tmpDir, { recursive: true, force: true });
3642
- }
3643
- catch { }
3669
+ cleanupTmpDir();
3644
3670
  return;
3645
3671
  }
3646
3672
  // Replace extension directory
3647
3673
  this.log.info(`update-install: replacing ${extDir}...`);
3648
3674
  try {
3649
- node_fs_1.default.rmSync(extDir, { recursive: true, force: true });
3675
+ node_fs_1.default.mkdirSync(node_path_1.default.dirname(extDir), { recursive: true });
3676
+ try {
3677
+ node_fs_1.default.rmSync(backupDir, { recursive: true, force: true });
3678
+ }
3679
+ catch { }
3680
+ if (node_fs_1.default.existsSync(extDir)) {
3681
+ node_fs_1.default.renameSync(extDir, backupDir);
3682
+ backupReady = true;
3683
+ }
3684
+ node_fs_1.default.renameSync(srcDir, extDir);
3685
+ }
3686
+ catch (replaceErr) {
3687
+ this.log.warn(`update-install: replace failed: ${replaceErr?.message ?? replaceErr}`);
3688
+ cleanupTmpDir();
3689
+ rollbackInstall();
3690
+ this.jsonResponse(res, { ok: false, error: `Replace failed: ${replaceErr?.message ?? replaceErr}` });
3691
+ return;
3650
3692
  }
3651
- catch { }
3652
- node_fs_1.default.mkdirSync(node_path_1.default.dirname(extDir), { recursive: true });
3653
- node_fs_1.default.renameSync(srcDir, extDir);
3654
3693
  // Install dependencies
3655
3694
  this.log.info(`update-install: installing dependencies...`);
3656
3695
  const npmCmd = process.platform === "win32" ? "npm.cmd" : "npm";
3657
3696
  (0, node_child_process_1.execFile)(npmCmd, ["install", "--omit=dev", "--ignore-scripts"], { cwd: extDir, timeout: 120_000 }, (npmErr, npmOut, npmStderr) => {
3658
3697
  if (npmErr) {
3659
- try {
3660
- node_fs_1.default.rmSync(tmpDir, { recursive: true, force: true });
3661
- }
3662
- catch { }
3663
3698
  this.log.warn(`update-install: npm install failed: ${npmErr.message}`);
3699
+ cleanupTmpDir();
3700
+ rollbackInstall();
3664
3701
  this.jsonResponse(res, { ok: false, error: `Dependency install failed: ${npmStderr || npmErr.message}` });
3665
3702
  return;
3666
3703
  }
@@ -3673,15 +3710,15 @@ class ViewerServer {
3673
3710
  }
3674
3711
  this.log.info(`update-install: running postinstall...`);
3675
3712
  (0, node_child_process_1.execFile)(process.execPath, ["scripts/postinstall.cjs"], { cwd: extDir, timeout: 180_000 }, (postErr, postOut, postStderr) => {
3676
- try {
3677
- node_fs_1.default.rmSync(tmpDir, { recursive: true, force: true });
3678
- }
3679
- catch { }
3713
+ cleanupTmpDir();
3680
3714
  if (postErr) {
3681
3715
  this.log.warn(`update-install: postinstall failed: ${postErr.message}`);
3682
3716
  const postStderrStr = String(postStderr || "").trim();
3683
3717
  if (postStderrStr)
3684
3718
  this.log.warn(`update-install: postinstall stderr: ${postStderrStr.slice(0, 500)}`);
3719
+ rollbackInstall();
3720
+ this.jsonResponse(res, { ok: false, error: `Postinstall failed: ${postStderrStr || postErr.message}` });
3721
+ return;
3685
3722
  }
3686
3723
  // Read new version
3687
3724
  let newVersion = "unknown";
@@ -3690,6 +3727,7 @@ class ViewerServer {
3690
3727
  newVersion = newPkg.version ?? newVersion;
3691
3728
  }
3692
3729
  catch { }
3730
+ discardBackup();
3693
3731
  this.log.info(`update-install: success! Updated to ${newVersion}`);
3694
3732
  this.jsonResponse(res, { ok: true, version: newVersion });
3695
3733
  setTimeout(() => {