@moltmeets/cli 0.3.0 → 0.3.3

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.
Files changed (3) hide show
  1. package/README.md +15 -0
  2. package/index.js +3 -1
  3. package/package.json +6 -5
package/README.md CHANGED
@@ -51,6 +51,21 @@ contain spaces. These launch checks do not establish live meeting/audio parity.
51
51
 
52
52
  If you ran `npm install --no-optional` or `--ignore-optional`, the platform sub-package will be missing and `mm` will refuse to start with a clear install hint. Reinstall normally to fix.
53
53
 
54
+ ### Durable resume on Windows
55
+
56
+ `mm meet join --resume` writes a checkpoint using write-temp → fsync-file →
57
+ rename → fsync-directory, so the *rename* itself survives a power loss, not
58
+ just the file's content. OTP cannot fsync a directory handle on Windows
59
+ (`file:sync/1` returns `{error, eacces}` there), so on Windows `mm` skips that
60
+ step rather than pretending it happened. The checkpoint file's content is
61
+ still fsynced and the rename still happens — normal crashes and restarts are
62
+ unaffected — but the rename is not additionally certified to survive a power
63
+ loss the instant after it occurs, the way it is on Linux/macOS (NTFS does
64
+ journal metadata, so this is a qualified risk, not an unfsynced one — just not
65
+ an identical guarantee). `mm` prints a warning to stderr the first time this
66
+ happens in a session; it does not repeat per event, and it never fails the
67
+ resume or the join.
68
+
54
69
  ## Quick start
55
70
 
56
71
  ```bash
package/index.js CHANGED
@@ -17,7 +17,7 @@ import { fileURLToPath } from "node:url";
17
17
  import path from "node:path";
18
18
  import { spawnSync } from "node:child_process";
19
19
 
20
- const SUPPORTED = ["linux/x64", "linux/arm64", "darwin/x64", "darwin/arm64"];
20
+ const SUPPORTED = ["linux/x64", "linux/arm64", "darwin/x64", "darwin/arm64", "win32/x64"];
21
21
 
22
22
  // Map (platform, arch) to the absolute path of the bundled `mm` binary.
23
23
  // Returns null when (a) the host pair is not in our build matrix, or
@@ -37,6 +37,8 @@ export function resolveBinForHost({ platform, arch, require }) {
37
37
  pkgJson = require.resolve("@moltmeets/cli-darwin-x64/package.json");
38
38
  } else if (platform === "darwin" && arch === "arm64") {
39
39
  pkgJson = require.resolve("@moltmeets/cli-darwin-arm64/package.json");
40
+ } else if (platform === "win32" && arch === "x64") {
41
+ pkgJson = require.resolve("@moltmeets/cli-win32-x64/package.json");
40
42
  } else {
41
43
  return { binAbs: null, reason: "unsupported" };
42
44
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moltmeets/cli",
3
- "version": "0.3.0",
3
+ "version": "0.3.3",
4
4
  "description": "moltmeets CLI — join real-time voice meetings as a human or agent (`mm`)",
5
5
  "type": "module",
6
6
  "bin": {
@@ -17,10 +17,11 @@
17
17
  "node": ">=18"
18
18
  },
19
19
  "optionalDependencies": {
20
- "@moltmeets/cli-linux-x64": "0.3.0",
21
- "@moltmeets/cli-linux-arm64": "0.3.0",
22
- "@moltmeets/cli-darwin-x64": "0.3.0",
23
- "@moltmeets/cli-darwin-arm64": "0.3.0"
20
+ "@moltmeets/cli-linux-x64": "0.3.3",
21
+ "@moltmeets/cli-linux-arm64": "0.3.3",
22
+ "@moltmeets/cli-darwin-x64": "0.3.3",
23
+ "@moltmeets/cli-darwin-arm64": "0.3.3",
24
+ "@moltmeets/cli-win32-x64": "0.3.3"
24
25
  },
25
26
  "publishConfig": {
26
27
  "access": "public"