tandem-editor 0.14.0 → 0.14.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.
package/dist/cli/index.js CHANGED
@@ -2396,6 +2396,33 @@ var init_channel = __esm({
2396
2396
  }
2397
2397
  });
2398
2398
 
2399
+ // src/server/annotations/lockfile.ts
2400
+ function parseLockfile(raw) {
2401
+ const trimmed = raw.trim();
2402
+ if (trimmed.startsWith("{")) {
2403
+ try {
2404
+ const parsed = JSON.parse(trimmed);
2405
+ const pid2 = parsed.pid;
2406
+ if (typeof pid2 !== "number" || !Number.isInteger(pid2) || pid2 <= 0) return null;
2407
+ return {
2408
+ pid: pid2,
2409
+ startedAtMs: typeof parsed.startedAtMs === "number" ? parsed.startedAtMs : void 0,
2410
+ app: typeof parsed.app === "string" ? parsed.app : void 0
2411
+ };
2412
+ } catch {
2413
+ return null;
2414
+ }
2415
+ }
2416
+ const pid = Number.parseInt(trimmed, 10);
2417
+ if (!Number.isFinite(pid) || pid <= 0) return null;
2418
+ return { pid };
2419
+ }
2420
+ var init_lockfile = __esm({
2421
+ "src/server/annotations/lockfile.ts"() {
2422
+ "use strict";
2423
+ }
2424
+ });
2425
+
2399
2426
  // src/cli/doctor.ts
2400
2427
  var doctor_exports = {};
2401
2428
  __export(doctor_exports, {
@@ -2742,8 +2769,8 @@ function checkAnnotationStore(r) {
2742
2769
  }
2743
2770
  try {
2744
2771
  const raw = readFileSync3(lockPath, "utf-8").trim();
2745
- const pid = Number.parseInt(raw, 10);
2746
- if (!Number.isFinite(pid)) {
2772
+ const lock = parseLockfile(raw);
2773
+ if (lock === null) {
2747
2774
  r.warn(
2748
2775
  `Annotation store lock at ${lockPath} has unparseable content: "${raw}"`,
2749
2776
  "Restart Tandem or delete the lock file if no server is running.",
@@ -2751,6 +2778,7 @@ function checkAnnotationStore(r) {
2751
2778
  );
2752
2779
  return;
2753
2780
  }
2781
+ const { pid } = lock;
2754
2782
  if (isPidLive(pid)) {
2755
2783
  r.pass(`Annotation store lock held by live PID ${pid}`, void 0, {
2756
2784
  lockHeld: true,
@@ -2875,6 +2903,7 @@ var Recorder;
2875
2903
  var init_doctor = __esm({
2876
2904
  "src/cli/doctor.ts"() {
2877
2905
  "use strict";
2906
+ init_lockfile();
2878
2907
  init_constants();
2879
2908
  Recorder = class {
2880
2909
  failures = 0;
@@ -3151,7 +3180,7 @@ process.once("unhandledRejection", (reason) => {
3151
3180
  `);
3152
3181
  process.exit(1);
3153
3182
  });
3154
- var version = true ? "0.14.0" : "0.0.0-dev";
3183
+ var version = true ? "0.14.2" : "0.0.0-dev";
3155
3184
  var args = process.argv.slice(2);
3156
3185
  if (args.includes("--help") || args.includes("-h")) {
3157
3186
  console.log(`tandem v${version}