@elitedcs/ghl-mcp 3.53.1 → 3.53.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/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # Changelog
2
2
 
3
+ ## 3.53.2 — Fixes a serious 3.53.1 regression: upgrade immediately
4
+
5
+ 3.53.1 resolved the machine identity randomly when nothing was passed in, and
6
+ that is exactly how attestation verification asks for it. Cached attestations
7
+ failed to verify, the tool dropped to bootstrap, and each restart would have
8
+ claimed another install slot until the member hit their cap.
9
+
10
+ - No-argument identity resolution is deterministic again: stored `device_id`
11
+ first, then the fingerprint inside an existing attestation (so an upgrade
12
+ keeps the slot it already holds), then the legacy scheme as a last resort.
13
+ - Two tests pin the determinism so this cannot ship again.
14
+
15
+ If you ran 3.53.1, upgrade. If your install count looks inflated, write to
16
+ support@ghlcommand.com and we will reset it.
17
+
3
18
  ## 3.53.1 — Laptops stop eating install slots; "cancelled" stops lying
4
19
 
5
20
  Reported by Carlos Boyd, who hit his install cap with two physical machines.
package/dist/index.js CHANGED
@@ -1010,8 +1010,26 @@ function deviceFingerprint(opts) {
1010
1010
  return opts.cached;
1011
1011
  }
1012
1012
  const crypto4 = require("node:crypto");
1013
+ if (!opts) {
1014
+ try {
1015
+ const store = (init_credentials_store(), __toCommonJS(credentials_store_exports));
1016
+ const creds = store.readCredentials();
1017
+ if (creds?.device_id) return creds.device_id;
1018
+ const adopted = creds?.signed_attestation ? parseAttestationPayload(creds.signed_attestation)?.device_fingerprint : void 0;
1019
+ const id = adopted || crypto4.randomBytes(8).toString("hex");
1020
+ if (creds) {
1021
+ try {
1022
+ store.writeCredentials({ ...creds, device_id: id });
1023
+ } catch {
1024
+ }
1025
+ }
1026
+ return id;
1027
+ } catch {
1028
+ return legacyDeviceFingerprint();
1029
+ }
1030
+ }
1013
1031
  const fresh = crypto4.randomBytes(8).toString("hex");
1014
- opts?.persist?.(fresh);
1032
+ opts.persist?.(fresh);
1015
1033
  return fresh;
1016
1034
  }
1017
1035
  function base64urlDecode(s) {
@@ -2084,7 +2102,7 @@ var require_package = __commonJS({
2084
2102
  "package.json"(exports2, module2) {
2085
2103
  module2.exports = {
2086
2104
  name: "@elitedcs/ghl-mcp",
2087
- version: "3.53.1",
2105
+ version: "3.53.2",
2088
2106
  mcpName: "io.github.drjerryrelth/ghl-command",
2089
2107
  description: "GoHighLevel MCP Server for Claude. 232 tools \u2014 full CRM, automation, marketing control, account-wide workflow audit, live funnel-capture verification, and the only programmatic GHL workflow builder, now multi-tenant across client accounts.",
2090
2108
  main: "dist/index.js",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elitedcs/ghl-mcp",
3
- "version": "3.53.1",
3
+ "version": "3.53.2",
4
4
  "mcpName": "io.github.drjerryrelth/ghl-command",
5
5
  "description": "GoHighLevel MCP Server for Claude. 232 tools \u2014 full CRM, automation, marketing control, account-wide workflow audit, live funnel-capture verification, and the only programmatic GHL workflow builder, now multi-tenant across client accounts.",
6
6
  "main": "dist/index.js",