@elitedcs/ghl-mcp 3.72.0 → 3.72.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 +63 -2
- package/dist/index.js +11682 -9238
- package/guide/guide.html +1 -1
- package/package.json +7 -8
- package/skills/blueprint/examples/medspa-dry-run-report.md +1 -1
- package/skills/blueprint/presets/clinic.md +1 -1
- package/skills/blueprint/presets/clinic.preset.json +1 -1
- package/skills/blueprint/presets/generic-client.md +1 -1
- package/skills/blueprint/presets/generic-client.preset.json +1 -1
- package/skills/blueprint/presets/med-spa.md +1 -1
- package/skills/blueprint/presets/med-spa.preset.json +1 -1
- package/skills/blueprint/references/agency-os-detection.md +1 -1
- package/templates/action-schemas.json +1 -1
- package/templates/clinic-medspa.json +1 -1
- package/templates/external-funnel/README.md +5 -2
- package/templates/external-funnel/wrangler.toml.example +40 -0
- package/skills/blueprint/presets/clinic-launch-a2p.md +0 -39
- package/skills/blueprint/presets/clinic-launch-a2p.preset.json +0 -338
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,66 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 3.72.2 — a form you read back can be saved again
|
|
4
|
+
|
|
5
|
+
A subscriber tried to edit one of her forms the documented way: read it with
|
|
6
|
+
`get_form_full`, change one thing, hand it back to `update_form`. It was refused. She
|
|
7
|
+
tried again from an exact copy of the payload. Refused again. Then she found it herself,
|
|
8
|
+
stripped one key by hand, and the identical edit saved first time.
|
|
9
|
+
|
|
10
|
+
She was right. GoHighLevel's form builder writes every custom field with the field's id
|
|
11
|
+
under two spellings, `Id` and `id`, holding the same value. On her form 42 of 58 fields
|
|
12
|
+
carried the pair; standard fields like name and email never do. Sitting in GoHighLevel it
|
|
13
|
+
is harmless. The trouble starts on the way back out, because editing a form means
|
|
14
|
+
repeating the whole document, and a document that says the same id twice per field, once
|
|
15
|
+
capitalised and once not, is asking to be repeated wrongly.
|
|
16
|
+
|
|
17
|
+
**`get_form_full` now returns one of them, and `update_form` accepts either.** A key is
|
|
18
|
+
dropped only when another key beside it means the same thing in a different case and
|
|
19
|
+
holds exactly the same value, so nothing is lost: the value is still there under the
|
|
20
|
+
name that survives. Where two such keys hold *different* values, both are kept, because
|
|
21
|
+
that is real information and picking one would be a guess. Forms built by the intake
|
|
22
|
+
installer are unaffected; they save by a different route and were never part of this.
|
|
23
|
+
|
|
24
|
+
If you have been working around this by hand, you can stop. Proven before release
|
|
25
|
+
against a real form on a live account: saved with both spellings, saved again with one,
|
|
26
|
+
edit kept, every custom field intact.
|
|
27
|
+
|
|
28
|
+
Counts unchanged: 247 tools, 51 modules, free tier 111.
|
|
29
|
+
|
|
30
|
+
## 3.72.1 — a client's work stops shipping in the package
|
|
31
|
+
|
|
32
|
+
An audit of the published 3.72.0 tarball found somebody else's proprietary material
|
|
33
|
+
inside it. Not a leak of customer data, and nobody did it on purpose: the packaging
|
|
34
|
+
allow-list named `skills` as a whole directory, so every file that landed in that folder
|
|
35
|
+
published itself along with the release.
|
|
36
|
+
|
|
37
|
+
What was in there. A launch-event preset built from a partner agency's own client
|
|
38
|
+
blueprint, their compliance playbook and a protected live account: ten named workflows,
|
|
39
|
+
twenty-five custom values, an event calendar and the whole compliance handoff chain.
|
|
40
|
+
Three more presets credited real client accounts by name in their provenance lines. The
|
|
41
|
+
compiled bundle carried a real GoHighLevel account id with a label identifying whose it
|
|
42
|
+
was, and one shipped example held a real sandbox id.
|
|
43
|
+
|
|
44
|
+
That preset stays in the source tree, because it is a legitimate tool for the agency that
|
|
45
|
+
wrote it. It is now excluded from what gets published. Every client and partner name is
|
|
46
|
+
out of the published files, and the two account lists that used to be compiled into the
|
|
47
|
+
bundle now come from `account-rules.json` in your own application-support directory. A
|
|
48
|
+
fresh install declares no accounts at all, which is the stricter default: without a
|
|
49
|
+
declared practice account every account needs an explicit recorded approval before
|
|
50
|
+
anything is built, and an account you mark off-limits is refused even when an approval
|
|
51
|
+
exists.
|
|
52
|
+
|
|
53
|
+
Engineering comments recording where a workflow shape was captured are untouched. They
|
|
54
|
+
live in source that is never published, and they are how the next person knows a node
|
|
55
|
+
shape came from a real account rather than a guess.
|
|
56
|
+
|
|
57
|
+
A new check reads the actual file list `npm pack` would publish and fails the build if a
|
|
58
|
+
client name, a real-looking account id, or a file on the never-publish list appears in it.
|
|
59
|
+
It caught two files that a careful pass by hand had already missed.
|
|
60
|
+
|
|
61
|
+
Counts unchanged: 247 tools, 51 modules, free tier 111. No tool behaviour changed.
|
|
62
|
+
|
|
63
|
+
|
|
3
64
|
## 3.72.0 — an audit that counts your workflows once
|
|
4
65
|
|
|
5
66
|
A member ran the account audit on a large agency account. The report came back claiming
|
|
@@ -2494,7 +2555,7 @@ Two bugs caught when exercising v3.4.0's `health_check` and `validate_workflow`
|
|
|
2494
2555
|
Also: `src/index.ts` startup `validateApiKey()` had the same wrong-endpoint bug as `health_check`; fixed for consistency. Buyers will now see "API key validated" or a clear 403 message on startup instead of silent ambiguity.
|
|
2495
2556
|
|
|
2496
2557
|
### Verified end-to-end
|
|
2497
|
-
Re-ran the spawn-handshake test against
|
|
2558
|
+
Re-ran the spawn-handshake test against a protected account:
|
|
2498
2559
|
- `health_check` returns 5/5 PASS ("All systems go.")
|
|
2499
2560
|
- `validate_workflow` on the CLL Onboarding Form Submitted workflow correctly scans 2 references (form.id + self-referencing workflow.id), reports 0 issues, surfaces the self-reference as an informational note.
|
|
2500
2561
|
|
|
@@ -2634,7 +2695,7 @@ For Claude that means: when you ask it to read, build, or edit a workflow using
|
|
|
2634
2695
|
| v3.2.0 | **13** | **44** | 57 |
|
|
2635
2696
|
|
|
2636
2697
|
### Round-trip verified
|
|
2637
|
-
- Real `form_submission` workflow from
|
|
2698
|
+
- Real `form_submission` workflow from a protected account parses cleanly through the new typed variant.
|
|
2638
2699
|
- 8 synthetic typed-trigger samples match their respective variants and are correctly rejected by sibling variants (discrimination works as expected).
|
|
2639
2700
|
|
|
2640
2701
|
### Files changed
|