fullstackgtm 0.52.1 → 0.52.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
@@ -7,6 +7,13 @@ The path to 1.0 is planned in [docs/roadmap-to-1.0.md](https://github.com/fullst
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.52.2] — 2026-07-11
11
+
12
+ ### Fixed
13
+
14
+ - Interactive `icp derive` resumes raw terminal input after editing a field,
15
+ returning to the ICP card for further edits instead of exiting the process.
16
+
10
17
  ## [0.52.1] — 2026-07-11
11
18
 
12
19
  ### Fixed
package/dist/cli/icp.js CHANGED
@@ -161,6 +161,10 @@ async function reviewDerivedIcp(result) {
161
161
  if (answer.trim())
162
162
  current = { ...current, icp: updateReviewSegment(current.icp, segment.id, answer) };
163
163
  emitKeypressEvents(process.stdin);
164
+ // readline.close() pauses its input stream. Resume it before restoring
165
+ // raw keypress handling or Node sees no active input and exits after the
166
+ // first field edit instead of returning to the ICP review card.
167
+ process.stdin.resume();
164
168
  process.stdin.setRawMode?.(true);
165
169
  process.stdin.on("keypress", onKey);
166
170
  render(2);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fullstackgtm",
3
- "version": "0.52.1",
3
+ "version": "0.52.2",
4
4
  "description": "Open-source agentic GTM ops framework: canonical GTM data model, pluggable deterministic audits, reviewable dry-run patch plans, approval-gated write-back with conflict detection, and cross-system entity resolution. HubSpot, Salesforce, and Stripe connectors included.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Full Stack GTM LLC <ryan@fullstackgtm.com> (https://fullstackgtm.com)",
package/src/cli/icp.ts CHANGED
@@ -145,6 +145,10 @@ async function reviewDerivedIcp(result: WebsiteIcpDerivation): Promise<WebsiteIc
145
145
  rl.close();
146
146
  if (answer.trim()) current = { ...current, icp: updateReviewSegment(current.icp, segment.id, answer) };
147
147
  emitKeypressEvents(process.stdin);
148
+ // readline.close() pauses its input stream. Resume it before restoring
149
+ // raw keypress handling or Node sees no active input and exits after the
150
+ // first field edit instead of returning to the ICP review card.
151
+ process.stdin.resume();
148
152
  process.stdin.setRawMode?.(true);
149
153
  process.stdin.on("keypress", onKey);
150
154
  render(2);