logicstamp-mcp 0.2.0 → 0.2.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
@@ -15,6 +15,58 @@ For a comprehensive roadmap with detailed status, priorities, and implementation
15
15
 
16
16
  ---
17
17
 
18
+ ## [0.2.2] - 2026-03-24
19
+
20
+ ### Changed
21
+
22
+ - **Canonical documentation links match logicstamp-context `docs/` layout** ([#38](https://github.com/LogicStamp/logicstamp-mcp/pull/38))
23
+ - Updated `logicstamp_read_logicstamp_docs` GitHub fallbacks to current paths (`docs/guides/usage.md`, `docs/reference/uif-contracts.md`, `docs/reference/schema.md`, `docs/reference/limitations.md`; CLI pages unchanged under `docs/cli/`)
24
+ - Set limitations primary URL to `https://logicstamp.dev/docs/reference/limitations`
25
+ - Refreshed `docs/logicstamp-for-llms.md`, `docs/commands/read-logicstamp-docs.md`, README, and `docs/getting-started.md` (including CLI repo `docs/` layout note and fixed external links)
26
+
27
+ ---
28
+
29
+ ## [0.2.1] - 2026-03-06
30
+
31
+ ### Added
32
+
33
+ - **Watch Mode Retry Logic** ([#35](https://github.com/LogicStamp/logicstamp-mcp/pull/35)) - Added automatic retry mechanism with exponential backoff for reading files when watch mode is active
34
+ - Initial delay before reading files: 200ms for regular watch mode, 500ms for strict watch mode
35
+ - Automatic retry up to 3 times with exponential backoff (100ms, 200ms, 400ms) if JSON parsing fails
36
+ - Prevents race conditions when watch mode is actively writing context files
37
+ - Worst case total wait: ~900ms for regular watch, ~1.1s for strict watch
38
+ - Only applies when watch mode is active - no performance impact otherwise
39
+ - Updated `logicstamp_read_bundle` and `logicstamp_list_bundles` to use retry logic
40
+ - **Documentation Warnings Against External `sleep()`** - Added explicit, prominent warnings in tool descriptions and outputs to prevent AI assistants from using unnecessary `sleep()` calls
41
+ - **Tool Descriptions** - Added "⚠️ CRITICAL: Do NOT use sleep() delays" as the FIRST line in all relevant tool descriptions (`logicstamp_watch_status`, `logicstamp_list_bundles`, `logicstamp_read_bundle`, `logicstamp_refresh_snapshot`) to ensure AI assistants see the warning immediately
42
+ - **Tool Output Warnings** - Added `warning` field to `logicstamp_read_bundle` and `logicstamp_list_bundles` outputs when watch mode is active, ensuring warnings appear in every response
43
+ - **Watch Status Messages** - Enhanced `logicstamp_watch_status` messages to explicitly state "DO NOT use sleep() delays" when watch mode is active
44
+ - **Documentation** - Added comprehensive section in `docs/logicstamp-for-llms.md` explaining why `sleep()` is unnecessary
45
+ - **Command Documentation** - Updated command documentation (`docs/commands/read-bundle.md`, `docs/commands/list-bundles.md`) with warnings that delays are internal
46
+ - Emphasizes that watch mode keeps bundles fresh automatically - AI assistants should read bundles directly without waiting
47
+ - Explains that internal retry logic handles all race conditions (200-500ms delays + exponential backoff built-in)
48
+ - Multiple warning touchpoints (descriptions, outputs, messages) ensure AI assistants cannot miss the guidance
49
+ - Prevents unnecessary delays that slow down AI assistant workflows when watch mode is active
50
+ - **Branch Testing Improvements** ([#36](https://github.com/LogicStamp/logicstamp-mcp/pull/36)) - Added comprehensive branch coverage tests for `read-logicstamp-docs.ts` and `compare-snapshot.ts`
51
+ - Added tests for filesystem root check in `findPackageRoot` function
52
+ - Added test for invalid docPath validation branch by exporting `readDocFile` for testing purposes
53
+ - Added depth validation tests (invalid, negative, non-integer values)
54
+ - Added baseline path resolution tests (snapshot, disk, custom path baselines)
55
+ - Added profile-specific command building tests for different profiles and depth combinations
56
+ - Added bundle hash comparison tests (hash changes, bundle addition/removal scenarios)
57
+ - Added tests for missing contracts, loadBundles error handling, and token delta fallback calculation
58
+ - Added cache cleanup tests for corruption detection scenarios
59
+ - Improves branch coverage for error handling paths and edge cases
60
+ - Exported `readDocFile` function for testing to enable coverage of defensive validation branch (line 93)
61
+
62
+ ### Fixed
63
+
64
+ - **TypeScript File Validation** ([#35](https://github.com/LogicStamp/logicstamp-mcp/pull/35)) - Fixed issue where TypeScript file validation errors were masked by JSON parse errors in retry logic
65
+ - Retry logic now checks for TypeScript files (starting with `import` or `export`) before attempting JSON parsing
66
+ - Ensures proper error messages when users accidentally point to TypeScript source files instead of JSON bundle files
67
+
68
+ ---
69
+
18
70
  ## [0.2.0] - 2026-03-03
19
71
 
20
72
  ### ⚠️ Breaking Changes
@@ -334,7 +386,11 @@ For a comprehensive roadmap with detailed status, priorities, and implementation
334
386
  - Requires `logicstamp-context` CLI to be installed globally (`npm install -g logicstamp-context`)
335
387
  - All tools are read-only - they analyze but never modify your codebase
336
388
 
337
- [Unreleased]: https://github.com/LogicStamp/logicstamp-mcp/compare/v0.2.0...HEAD
389
+ [Unreleased]: https://github.com/LogicStamp/logicstamp-mcp/compare/v0.2.2...HEAD
390
+
391
+ [0.2.2]: https://github.com/LogicStamp/logicstamp-mcp/releases/tag/v0.2.2
392
+
393
+ [0.2.1]: https://github.com/LogicStamp/logicstamp-mcp/releases/tag/v0.2.1
338
394
 
339
395
  [0.2.0]: https://github.com/LogicStamp/logicstamp-mcp/releases/tag/v0.2.0
340
396
 
package/README.md CHANGED
@@ -28,9 +28,8 @@
28
28
 
29
29
  ---
30
30
 
31
- ![LogicStamp in action](./assets/logicstamp-workflow.gif)
32
-
33
- *MCP server calling the CLI to generate and consume context bundles*
31
+ ![LogicStamp MCP Workflow](./assets/logicstamp-workflow.gif)
32
+ *Example workflow: `stamp context --strict-watch` generates context bundles that MCP-powered assistants use to explain component architecture (ThemeContext shown here).*
34
33
 
35
34
  ---
36
35
 
@@ -236,15 +235,15 @@ When starting work with a new project, use the [Startup Ritual](docs/startup-rit
236
235
 
237
236
  | Topic | Primary (Landing Page) | Fallback (GitHub) |
238
237
  |-------|----------------------|-------------------|
239
- | **Usage Guide** | [logicstamp.dev/docs/logicstamp-context/usage](https://logicstamp.dev/docs/logicstamp-context/usage) | [GitHub](https://github.com/LogicStamp/logicstamp-context/blob/main/docs/usage.md) |
240
- | **UIF Contracts** | [logicstamp.dev/docs/logicstamp-context/uif-contracts](https://logicstamp.dev/docs/logicstamp-context/uif-contracts) | [GitHub](https://github.com/LogicStamp/logicstamp-context/blob/main/docs/uif_contracts.md) |
241
- | **Schema Reference** | [logicstamp.dev/docs/logicstamp-context/schema](https://logicstamp.dev/docs/logicstamp-context/schema) | [GitHub](https://github.com/LogicStamp/logicstamp-context/blob/main/docs/schema.md) |
238
+ | **Usage Guide** | [logicstamp.dev/docs/logicstamp-context/usage](https://logicstamp.dev/docs/guides/usage) | [GitHub](https://github.com/LogicStamp/logicstamp-context/blob/main/docs/guides/usage.md) |
239
+ | **UIF Contracts** | [logicstamp.dev/docs/logicstamp-context/uif-contracts](https://logicstamp.dev/docs/reference/uif-contracts) | [GitHub](https://github.com/LogicStamp/logicstamp-context/blob/main/docs/reference/uif-contracts.md) |
240
+ | **Schema Reference** | [logicstamp.dev/docs/logicstamp-context/schema](https://logicstamp.dev/docs/reference/schema) | [GitHub](https://github.com/LogicStamp/logicstamp-context/blob/main/docs/reference/schema.md) |
242
241
  | **CLI Commands** | [logicstamp.dev/docs/logicstamp-context/context](https://logicstamp.dev/docs/logicstamp-context/context) | [GitHub](https://github.com/LogicStamp/logicstamp-context/blob/main/docs/cli/context.md) |
243
242
  | **Compare Modes** | [logicstamp.dev/docs/logicstamp-context/compare-modes](https://logicstamp.dev/docs/logicstamp-context/compare-modes) | [GitHub](https://github.com/LogicStamp/logicstamp-context/blob/main/docs/cli/compare-modes.md) |
244
- | **Limitations** | [logicstamp.dev/docs/complete-reference/known-limitations](https://logicstamp.dev/docs/complete-reference/known-limitations) | [GitHub](https://github.com/LogicStamp/logicstamp-context/blob/main/docs/limitations.md) |
243
+ | **Limitations** | [logicstamp.dev/docs/reference/limitations](https://logicstamp.dev/docs/reference/limitations) | [GitHub](https://github.com/LogicStamp/logicstamp-context/blob/main/docs/reference/limitations.md) |
245
244
 
246
245
  **Note:**
247
- - Docs are maintained in the CLI repo and synced to the landing page
246
+ - Docs are maintained in the CLI repo under [`docs/`](https://github.com/LogicStamp/logicstamp-context/tree/main/docs) (folders: `changelog/`, `cli/`, `frameworks/`, `guides/`, `reference/`, `ui-frameworks/`, plus top-level guides and migration notes) and synced to the landing page
248
247
  - If the landing page is unavailable, use the GitHub links as fallback
249
248
  - The `logicstamp_read_logicstamp_docs` tool returns an embedded LLM-focused doc snapshot (`docs/logicstamp-for-llms.md`) for offline use
250
249
 
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAkBnE;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CA8YrC;AAED;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CASjD"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAkBnE;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAqZrC;AAED;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CASjD"}
@@ -32,7 +32,8 @@ export function createServer() {
32
32
  tools: [
33
33
  {
34
34
  name: 'logicstamp_refresh_snapshot',
35
- description: '⚠️ FIRST: Call logicstamp_watch_status! If watch mode is ACTIVE SKIP this tool, go to list_bundles read_bundle (context is fresh). ' +
35
+ description: '⚠️ CRITICAL: Do NOT use sleep() delays. After calling this tool, bundles are immediately available. When watch mode is active, skip this tool entirely and read bundles directly - they\'re already fresh. ' +
36
+ '⚠️ FIRST: Call logicstamp_watch_status! If watch mode is ACTIVE → SKIP this tool, go to list_bundles → read_bundle (context is fresh). ' +
36
37
  'Use when: watch mode INACTIVE, first-time analysis, or after large changes. Default skipIfWatchActive=true (auto-skips regeneration if watch mode active). ' +
37
38
  'WHAT IT DOES: Runs `stamp context` to analyze React/TypeScript/Node.js codebases (Next.js, Express.js, NestJS) and generate structured context files (context_main.json + per-folder context.json bundles). These are STRUCTURED DATA, not raw source. SLOW compared to reading existing context. ' +
38
39
  'WHAT YOU GET: Summary statistics (component counts, token estimates, folder structure) and a snapshotId. If watch mode is active, also includes watchMode status. ' +
@@ -87,12 +88,14 @@ export function createServer() {
87
88
  },
88
89
  {
89
90
  name: 'logicstamp_list_bundles',
90
- description: 'Lists all ROOT bundles from context_main.json. Returns bundle catalog (component names, file paths, bundle paths, token estimates). ' +
91
+ description: '⚠️ CRITICAL: Do NOT use sleep() delays before calling this tool. When watch mode is active, bundles are already fresh - call this tool directly without any waiting. ' +
92
+ 'Lists all ROOT bundles from context_main.json. Returns bundle catalog (component names, file paths, bundle paths, token estimates). ' +
91
93
  'IMPORTANT: LogicStamp organizes components into ROOT components (have their own bundles, listed here) and DEPENDENCIES (included in importing root\'s bundle.graph.nodes[], not listed here). ' +
92
94
  'If a component isn\'t in this list, it\'s a dependency - find which root imports it, then read that root\'s bundle to see the dependency contract in bundle.graph.nodes[]. ' +
93
95
  'Use bundle paths in read_bundle to get component contracts. ' +
94
96
  'Watch mode: Use projectPath directly (no snapshotId needed). Filter: folderPrefix="src/components" to filter by directory. ' +
95
- 'Next: read_bundle(snapshotId|projectPath, bundlePath).',
97
+ 'Next: read_bundle(snapshotId|projectPath, bundlePath). ' +
98
+ 'The tool handles race conditions internally - no external sleep() delays needed.',
96
99
  inputSchema: {
97
100
  type: 'object',
98
101
  properties: {
@@ -113,13 +116,15 @@ export function createServer() {
113
116
  },
114
117
  {
115
118
  name: 'logicstamp_read_bundle',
116
- description: 'Reads bundle/index file to get component contracts and dependency graphs. Reads context_main.json (project overview) or folder context.json (component contracts). ' +
119
+ description: '⚠️ CRITICAL: Do NOT use sleep() delays before calling this tool. When watch mode is active, bundles are already fresh - call this tool directly without any waiting. ' +
120
+ 'Reads bundle/index file to get component contracts and dependency graphs. Reads context_main.json (project overview) or folder context.json (component contracts). ' +
117
121
  'These are pre-parsed summaries optimized for AI - PREFER over raw .ts/.tsx files. ' +
118
122
  'ROOT vs DEPENDENCY: Root components have their own bundles (use rootComponent param). Dependencies appear in bundle.graph.nodes[] of the root that imports them. ' +
119
123
  'If a component isn\'t found as root, it\'s a dependency - read bundles that might import it and check bundle.graph.nodes[] for the dependency contract. ' +
120
124
  'Bundle contains: entryId, graph.nodes[] (UIFContract for root + dependencies), graph.edges[] (dependencies), meta.missing[] (unresolved). ' +
121
125
  'UIFContract: kind, description, props, emits, state, exports, semanticHash, optional style metadata. ' +
122
- 'Watch mode: Use projectPath directly (no snapshotId needed). Use bundlePath="context_main.json" for overview, or folder paths from list_bundles for details.',
126
+ 'Watch mode: Use projectPath directly (no snapshotId needed). Use bundlePath="context_main.json" for overview, or folder paths from list_bundles for details. ' +
127
+ 'The tool handles race conditions internally with retry logic (200-500ms delays + exponential backoff built-in). No external sleep() delays needed.',
123
128
  inputSchema: {
124
129
  type: 'object',
125
130
  properties: {
@@ -235,14 +240,16 @@ export function createServer() {
235
240
  },
236
241
  {
237
242
  name: 'logicstamp_watch_status',
238
- description: '⚠️ CALL THIS FIRST before any other LogicStamp tool! Checks if watch mode (`stamp context --watch`) is active. ' +
243
+ description: '⚠️ CRITICAL: Do NOT use sleep() delays before calling LogicStamp tools when watch mode is active. Watch mode keeps bundles fresh automatically - just read them directly. ' +
244
+ '⚠️ CALL THIS FIRST before any other LogicStamp tool! Checks if watch mode (`stamp context --watch`) is active. ' +
239
245
  'If ACTIVE: SKIP refresh_snapshot, go to list_bundles → read_bundle (context fresh via incremental rebuilds). ' +
240
246
  'If INACTIVE: Call refresh_snapshot first. Enables zero-cost instant context access when watch mode running. ' +
241
247
  'Reads .logicstamp/context_watch-status.json and verifies process is running. ' +
242
248
  'Watch features: Incremental rebuilds (affected bundles only), change detection (props/hooks/state/components), debouncing (500ms), optional log file. ' +
243
249
  'Strict watch mode (`stamp context --watch --strict-watch`): Also detects breaking changes. Returns strictWatch=true when enabled. ' +
244
250
  'Detection: Reads strictWatch field from .logicstamp/context_watch-status.json file (when LogicStamp CLI includes it). ' +
245
- 'Set includeRecentLogs=true to see recent regeneration events.',
251
+ 'Set includeRecentLogs=true to see recent regeneration events. ' +
252
+ 'When watch mode is active, bundles are already fresh - read them directly without any sleep() delays. The tools handle race conditions internally.',
246
253
  inputSchema: {
247
254
  type: 'object',
248
255
  properties: {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"list-bundles.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/list-bundles.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EACV,gBAAgB,EAChB,iBAAiB,EAGlB,MAAM,wBAAwB,CAAC;AAgDhC,wBAAsB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA+HrF"}
1
+ {"version":3,"file":"list-bundles.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/list-bundles.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EACV,gBAAgB,EAChB,iBAAiB,EAGlB,MAAM,wBAAwB,CAAC;AA8GhC,wBAAsB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAuIrF"}
@@ -22,11 +22,12 @@ async function exists(path) {
22
22
  /**
23
23
  * Check if watch mode is active for the project.
24
24
  * Cleans up stale status files when the process is no longer running.
25
+ * Returns watch mode status including strictWatch flag.
25
26
  */
26
27
  async function checkWatchMode(projectPath) {
27
28
  const statusPath = join(projectPath, '.logicstamp', 'context_watch-status.json');
28
29
  if (!(await exists(statusPath))) {
29
- return false;
30
+ return { active: false };
30
31
  }
31
32
  try {
32
33
  const content = await readFile(statusPath, 'utf-8');
@@ -40,19 +41,66 @@ async function checkWatchMode(projectPath) {
40
41
  catch {
41
42
  // Ignore cleanup errors
42
43
  }
43
- return false;
44
+ return { active: false };
44
45
  }
45
- return status.active === true;
46
+ return {
47
+ active: status.active === true,
48
+ strictWatch: status.strictWatch === true,
49
+ };
46
50
  }
47
51
  catch {
48
- return false;
52
+ return { active: false };
53
+ }
54
+ }
55
+ /**
56
+ * Sleep utility for delays
57
+ */
58
+ function sleep(ms) {
59
+ return new Promise((resolve) => setTimeout(resolve, ms));
60
+ }
61
+ /**
62
+ * Read file with retry logic for watch mode.
63
+ * When watch mode is active, files may be in the process of being written,
64
+ * so we retry with exponential backoff if JSON parsing fails.
65
+ */
66
+ async function readFileWithRetry(filePath, watchMode, maxRetries = 3) {
67
+ // If watch mode is active, add a small initial delay to let files stabilize
68
+ // Strict watch mode does breaking change detection which may take longer
69
+ // The retry logic below handles edge cases, so shorter delays are sufficient
70
+ if (watchMode.active) {
71
+ const delay = watchMode.strictWatch ? 500 : 200; // 500ms for strict watch, 200ms for regular watch
72
+ await sleep(delay);
73
+ }
74
+ let lastError = null;
75
+ for (let attempt = 0; attempt <= maxRetries; attempt++) {
76
+ try {
77
+ const content = await readFile(filePath, 'utf-8');
78
+ // Try to parse as JSON to validate it's complete
79
+ // This catches cases where the file is partially written
80
+ JSON.parse(content);
81
+ return content;
82
+ }
83
+ catch (error) {
84
+ lastError = error instanceof Error ? error : new Error(String(error));
85
+ // If watch mode is active and this might be a race condition, retry
86
+ if (watchMode.active && attempt < maxRetries) {
87
+ // Exponential backoff: 100ms, 200ms, 400ms
88
+ const backoffDelay = 100 * Math.pow(2, attempt);
89
+ await sleep(backoffDelay);
90
+ continue;
91
+ }
92
+ // If not watch mode or out of retries, throw immediately
93
+ throw lastError;
94
+ }
49
95
  }
96
+ throw lastError || new Error('Failed to read file after retries');
50
97
  }
51
98
  export async function listBundles(input) {
52
99
  let contextDir;
53
100
  let snapshotId;
54
101
  let projectPath;
55
102
  let isWatchMode = false;
103
+ let watchStatus = { active: false };
56
104
  // Determine context directory: either from snapshot or direct disk access
57
105
  if (input.snapshotId) {
58
106
  // Use snapshot-based access
@@ -66,11 +114,14 @@ export async function listBundles(input) {
66
114
  contextDir = snapshot.contextDir;
67
115
  snapshotId = input.snapshotId;
68
116
  projectPath = snapshot.projectPath;
117
+ // Check watch mode even for snapshots (in case watch mode started after snapshot)
118
+ watchStatus = await checkWatchMode(projectPath);
119
+ isWatchMode = watchStatus.active;
69
120
  }
70
121
  else if (input.projectPath) {
71
122
  // Direct disk access - check if watch mode is active or context files exist
72
123
  projectPath = resolve(input.projectPath);
73
- const watchModeActive = await checkWatchMode(projectPath);
124
+ watchStatus = await checkWatchMode(projectPath);
74
125
  const contextMainPath = join(projectPath, 'context_main.json');
75
126
  const contextExists = await exists(contextMainPath);
76
127
  if (!contextExists) {
@@ -79,12 +130,12 @@ export async function listBundles(input) {
79
130
  `Either: (1) Start watch mode with 'stamp context --watch', or ` +
80
131
  `(2) Call logicstamp_refresh_snapshot to generate context files first.`);
81
132
  }
82
- if (!watchModeActive) {
133
+ if (!watchStatus.active) {
83
134
  // Context exists but watch mode is not active - warn but allow
84
135
  // The context might be stale, but we'll allow access
85
136
  }
86
137
  contextDir = projectPath;
87
- isWatchMode = watchModeActive;
138
+ isWatchMode = watchStatus.active;
88
139
  }
89
140
  else {
90
141
  throw new Error('Either snapshotId or projectPath is required. ' +
@@ -94,7 +145,8 @@ export async function listBundles(input) {
94
145
  try {
95
146
  // Read context_main.json to get folder information
96
147
  const contextMainPath = join(contextDir, 'context_main.json');
97
- const contextMainContent = await readFile(contextMainPath, 'utf-8');
148
+ // Use retry logic when watch mode is active to handle race conditions
149
+ const contextMainContent = await readFileWithRetry(contextMainPath, watchStatus);
98
150
  const contextMain = JSON.parse(contextMainContent);
99
151
  // Filter folders by prefix if specified
100
152
  let folders = contextMain.folders;
@@ -106,7 +158,8 @@ export async function listBundles(input) {
106
158
  for (const folder of folders) {
107
159
  const contextPath = join(contextDir, folder.path, 'context.json');
108
160
  try {
109
- const contextContent = await readFile(contextPath, 'utf-8');
161
+ // Use retry logic when watch mode is active to handle race conditions
162
+ const contextContent = await readFileWithRetry(contextPath, watchStatus);
110
163
  const bundleArray = JSON.parse(contextContent);
111
164
  // Process each bundle in the folder
112
165
  for (const bundle of bundleArray) {
@@ -141,6 +194,8 @@ export async function listBundles(input) {
141
194
  }
142
195
  if (isWatchMode) {
143
196
  output.watchMode = true;
197
+ // Add warning to help AI assistants avoid unnecessary sleep() calls
198
+ output.warning = 'Watch mode is active - bundles are already fresh. Do not use sleep() delays before reading bundles.';
144
199
  }
145
200
  return output;
146
201
  }
@@ -1 +1 @@
1
- {"version":3,"file":"list-bundles.js","sourceRoot":"","sources":["../../../src/mcp/tools/list-bundles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list-bundles.js","sourceRoot":"","sources":["../../../src/mcp/tools/list-bundles.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"read-bundle.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/read-bundle.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAGjB,MAAM,wBAAwB,CAAC;AAgDhC,wBAAsB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAwKlF"}
1
+ {"version":3,"file":"read-bundle.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/read-bundle.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAGjB,MAAM,wBAAwB,CAAC;AA0HhC,wBAAsB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA+KlF"}
@@ -22,11 +22,12 @@ async function exists(path) {
22
22
  /**
23
23
  * Check if watch mode is active for the project.
24
24
  * Cleans up stale status files when the process is no longer running.
25
+ * Returns watch mode status including strictWatch flag.
25
26
  */
26
27
  async function checkWatchMode(projectPath) {
27
28
  const statusPath = join(projectPath, '.logicstamp', 'context_watch-status.json');
28
29
  if (!(await exists(statusPath))) {
29
- return false;
30
+ return { active: false };
30
31
  }
31
32
  try {
32
33
  const content = await readFile(statusPath, 'utf-8');
@@ -40,19 +41,77 @@ async function checkWatchMode(projectPath) {
40
41
  catch {
41
42
  // Ignore cleanup errors
42
43
  }
43
- return false;
44
+ return { active: false };
44
45
  }
45
- return status.active === true;
46
+ return {
47
+ active: status.active === true,
48
+ strictWatch: status.strictWatch === true,
49
+ };
46
50
  }
47
51
  catch {
48
- return false;
52
+ return { active: false };
53
+ }
54
+ }
55
+ /**
56
+ * Sleep utility for delays
57
+ */
58
+ function sleep(ms) {
59
+ return new Promise((resolve) => setTimeout(resolve, ms));
60
+ }
61
+ /**
62
+ * Read file with retry logic for watch mode.
63
+ * When watch mode is active, files may be in the process of being written,
64
+ * so we retry with exponential backoff if JSON parsing fails.
65
+ *
66
+ * Note: This function validates JSON parsing to catch partial writes, but
67
+ * does NOT validate TypeScript files - that's handled by the caller.
68
+ */
69
+ async function readFileWithRetry(filePath, watchMode, maxRetries = 3) {
70
+ // If watch mode is active, add a small initial delay to let files stabilize
71
+ // Strict watch mode does breaking change detection which may take longer
72
+ // The retry logic below handles edge cases, so shorter delays are sufficient
73
+ if (watchMode.active) {
74
+ const delay = watchMode.strictWatch ? 500 : 200; // 500ms for strict watch, 200ms for regular watch
75
+ await sleep(delay);
76
+ }
77
+ let lastError = null;
78
+ for (let attempt = 0; attempt <= maxRetries; attempt++) {
79
+ try {
80
+ const content = await readFile(filePath, 'utf-8');
81
+ // Check if this looks like a TypeScript file (not JSON)
82
+ // If so, return it immediately - let the caller handle the validation error
83
+ const trimmedContent = content.trim();
84
+ if (trimmedContent.startsWith('import ') || trimmedContent.startsWith('export ')) {
85
+ // This is likely a TypeScript file, not a partial JSON write
86
+ // Return it so the caller can throw the appropriate error
87
+ return content;
88
+ }
89
+ // Try to parse as JSON to validate it's complete
90
+ // This catches cases where the file is partially written
91
+ JSON.parse(content);
92
+ return content;
93
+ }
94
+ catch (error) {
95
+ lastError = error instanceof Error ? error : new Error(String(error));
96
+ // If watch mode is active and this might be a race condition, retry
97
+ if (watchMode.active && attempt < maxRetries) {
98
+ // Exponential backoff: 100ms, 200ms, 400ms
99
+ const backoffDelay = 100 * Math.pow(2, attempt);
100
+ await sleep(backoffDelay);
101
+ continue;
102
+ }
103
+ // If not watch mode or out of retries, throw immediately
104
+ throw lastError;
105
+ }
49
106
  }
107
+ throw lastError || new Error('Failed to read file after retries');
50
108
  }
51
109
  export async function readBundle(input) {
52
110
  let contextDir;
53
111
  let snapshotId;
54
112
  let projectPath;
55
113
  let isWatchMode = false;
114
+ let watchStatus = { active: false };
56
115
  // Determine context directory: either from snapshot or direct disk access
57
116
  if (input.snapshotId) {
58
117
  // Use snapshot-based access
@@ -66,11 +125,14 @@ export async function readBundle(input) {
66
125
  contextDir = snapshot.contextDir;
67
126
  snapshotId = input.snapshotId;
68
127
  projectPath = snapshot.projectPath;
128
+ // Check watch mode even for snapshots (in case watch mode started after snapshot)
129
+ watchStatus = await checkWatchMode(projectPath);
130
+ isWatchMode = watchStatus.active;
69
131
  }
70
132
  else if (input.projectPath) {
71
133
  // Direct disk access - check if watch mode is active or context files exist
72
134
  projectPath = resolve(input.projectPath);
73
- const watchModeActive = await checkWatchMode(projectPath);
135
+ watchStatus = await checkWatchMode(projectPath);
74
136
  const contextMainPath = join(projectPath, 'context_main.json');
75
137
  const contextExists = await exists(contextMainPath);
76
138
  if (!contextExists) {
@@ -80,7 +142,7 @@ export async function readBundle(input) {
80
142
  `(2) Call logicstamp_refresh_snapshot to generate context files first.`);
81
143
  }
82
144
  contextDir = projectPath;
83
- isWatchMode = watchModeActive;
145
+ isWatchMode = watchStatus.active;
84
146
  }
85
147
  else {
86
148
  throw new Error('Either snapshotId or projectPath is required. ' +
@@ -90,7 +152,8 @@ export async function readBundle(input) {
90
152
  try {
91
153
  // Read the context.json file from the specified bundle path
92
154
  const contextPath = join(contextDir, input.bundlePath);
93
- const contextContent = await readFile(contextPath, 'utf-8');
155
+ // Use retry logic when watch mode is active to handle race conditions
156
+ const contextContent = await readFileWithRetry(contextPath, watchStatus);
94
157
  // Validate that we're reading JSON, not a TypeScript file
95
158
  const trimmedContent = contextContent.trim();
96
159
  if (trimmedContent.startsWith('import ') || trimmedContent.startsWith('export ')) {
@@ -170,6 +233,8 @@ export async function readBundle(input) {
170
233
  }
171
234
  if (isWatchMode) {
172
235
  output.watchMode = true;
236
+ // Add warning to help AI assistants avoid unnecessary sleep() calls
237
+ output.warning = 'Watch mode is active - bundles are already fresh. Do not use sleep() delays before reading bundles.';
173
238
  }
174
239
  return output;
175
240
  }
@@ -1 +1 @@
1
- {"version":3,"file":"read-bundle.js","sourceRoot":"","sources":["../../../src/mcp/tools/read-bundle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"read-bundle.js","sourceRoot":"","sources":["../../../src/mcp/tools/read-bundle.ts"],"names":[],"mappings":"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"}
@@ -42,5 +42,7 @@ export interface ReadLogicStampDocsOutput {
42
42
  keyConcepts: string[];
43
43
  };
44
44
  }
45
+ declare function readDocFile(docPath: string): Promise<string>;
46
+ export { readDocFile };
45
47
  export declare function readLogicStampDocs(): Promise<ReadLogicStampDocsOutput>;
46
48
  //# sourceMappingURL=read-logicstamp-docs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"read-logicstamp-docs.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/read-logicstamp-docs.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,KAAK,CAAC;IACf,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,aAAa,EAAE;QAIb,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE;YACL,OAAO,EAAE,MAAM,CAAC;YAChB,QAAQ,EAAE,MAAM,CAAC;SAClB,CAAC;QACF,YAAY,EAAE;YACZ,OAAO,EAAE,MAAM,CAAC;YAChB,QAAQ,EAAE,MAAM,CAAC;SAClB,CAAC;QACF,MAAM,EAAE;YACN,OAAO,EAAE,MAAM,CAAC;YAChB,QAAQ,EAAE,MAAM,CAAC;SAClB,CAAC;QACF,OAAO,EAAE;YACP,OAAO,EAAE,MAAM,CAAC;YAChB,QAAQ,EAAE,MAAM,CAAC;SAClB,CAAC;QACF,YAAY,EAAE;YACZ,OAAO,EAAE,MAAM,CAAC;YAChB,QAAQ,EAAE,MAAM,CAAC;SAClB,CAAC;QACF,WAAW,EAAE;YACX,OAAO,EAAE,MAAM,CAAC;YAChB,QAAQ,EAAE,MAAM,CAAC;SAClB,CAAC;KACH,CAAC;IACF,OAAO,EAAE;QACP,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,WAAW,EAAE,MAAM,EAAE,CAAC;KACvB,CAAC;CACH;AAoFD,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,wBAAwB,CAAC,CAgF5E"}
1
+ {"version":3,"file":"read-logicstamp-docs.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/read-logicstamp-docs.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,KAAK,CAAC;IACf,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,aAAa,EAAE;QAIb,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE;YACL,OAAO,EAAE,MAAM,CAAC;YAChB,QAAQ,EAAE,MAAM,CAAC;SAClB,CAAC;QACF,YAAY,EAAE;YACZ,OAAO,EAAE,MAAM,CAAC;YAChB,QAAQ,EAAE,MAAM,CAAC;SAClB,CAAC;QACF,MAAM,EAAE;YACN,OAAO,EAAE,MAAM,CAAC;YAChB,QAAQ,EAAE,MAAM,CAAC;SAClB,CAAC;QACF,OAAO,EAAE;YACP,OAAO,EAAE,MAAM,CAAC;YAChB,QAAQ,EAAE,MAAM,CAAC;SAClB,CAAC;QACF,YAAY,EAAE;YACZ,OAAO,EAAE,MAAM,CAAC;YAChB,QAAQ,EAAE,MAAM,CAAC;SAClB,CAAC;QACF,WAAW,EAAE;YACX,OAAO,EAAE,MAAM,CAAC;YAChB,QAAQ,EAAE,MAAM,CAAC;SAClB,CAAC;KACH,CAAC;IACF,OAAO,EAAE;QACP,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,WAAW,EAAE,MAAM,EAAE,CAAC;KACvB,CAAC;CACH;AAmCD,iBAAe,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA+C3D;AAID,OAAO,EAAE,WAAW,EAAE,CAAC;AAEvB,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,wBAAwB,CAAC,CAoF5E"}
@@ -80,6 +80,9 @@ async function readDocFile(docPath) {
80
80
  }
81
81
  }
82
82
  }
83
+ // Exported for testing purposes to allow coverage of defensive validation logic.
84
+ // Not intended as part of the public API.
85
+ export { readDocFile };
83
86
  export async function readLogicStampDocs() {
84
87
  try {
85
88
  // Read only the LLM-focused doc bundle (embedded in MCP package)
@@ -101,15 +104,15 @@ export async function readLogicStampDocs() {
101
104
  cliRepo: 'https://github.com/LogicStamp/logicstamp-context',
102
105
  usage: {
103
106
  primary: 'https://logicstamp.dev/docs/logicstamp-context/usage',
104
- fallback: 'https://github.com/LogicStamp/logicstamp-context/blob/main/docs/usage.md',
107
+ fallback: 'https://github.com/LogicStamp/logicstamp-context/blob/main/docs/guides/usage.md',
105
108
  },
106
109
  uifContracts: {
107
110
  primary: 'https://logicstamp.dev/docs/logicstamp-context/uif-contracts',
108
- fallback: 'https://github.com/LogicStamp/logicstamp-context/blob/main/docs/uif_contracts.md',
111
+ fallback: 'https://github.com/LogicStamp/logicstamp-context/blob/main/docs/reference/uif-contracts.md',
109
112
  },
110
113
  schema: {
111
114
  primary: 'https://logicstamp.dev/docs/logicstamp-context/schema',
112
- fallback: 'https://github.com/LogicStamp/logicstamp-context/blob/main/docs/schema.md',
115
+ fallback: 'https://github.com/LogicStamp/logicstamp-context/blob/main/docs/reference/schema.md',
113
116
  },
114
117
  context: {
115
118
  primary: 'https://logicstamp.dev/docs/logicstamp-context/context',
@@ -120,8 +123,8 @@ export async function readLogicStampDocs() {
120
123
  fallback: 'https://github.com/LogicStamp/logicstamp-context/blob/main/docs/cli/compare-modes.md',
121
124
  },
122
125
  limitations: {
123
- primary: 'https://logicstamp.dev/docs/complete-reference/known-limitations',
124
- fallback: 'https://github.com/LogicStamp/logicstamp-context/blob/main/docs/limitations.md',
126
+ primary: 'https://logicstamp.dev/docs/reference/limitations',
127
+ fallback: 'https://github.com/LogicStamp/logicstamp-context/blob/main/docs/reference/limitations.md',
125
128
  },
126
129
  },
127
130
  summary: {
@@ -1 +1 @@
1
- {"version":3,"file":"read-logicstamp-docs.js","sourceRoot":"","sources":["../../../src/mcp/tools/read-logicstamp-docs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"read-logicstamp-docs.js","sourceRoot":"","sources":["../../../src/mcp/tools/read-logicstamp-docs.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AA8CtC;;;GAGG;AACH,KAAK,UAAU,eAAe,CAAC,SAAiB;IAC9C,IAAI,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAE1B,OAAO,OAAO,KAAK,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;YACtD,MAAM,IAAI,CAAC,eAAe,CAAC,CAAC;YAC5B,kCAAkC;YAClC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;YACzE,IAAI,WAAW,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBAC1C,OAAO,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,wBAAwB;QAC1B,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,MAAM,KAAK,OAAO;YAAE,MAAM,CAAC,0BAA0B;QACzD,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;IAED,MAAM,IAAI,KAAK,CACb,8CAA8C;QAC9C,6GAA6G;QAC7G,yHAAyH,CAC1H,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,OAAe;IACxC,6CAA6C;IAC7C,IAAI,OAAO,KAAK,6BAA6B,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CACb,yCAAyC,OAAO,IAAI;YACpD,oDAAoD;YACpD,2FAA2F,CAC5F,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,wEAAwE;IACxE,MAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;IACxD,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAE9B,IAAI,CAAC;QACH,OAAO,MAAM,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,8DAA8D;QAC9D,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,SAAS,CAAC,CAAC;YACrD,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAChD,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC9B,OAAO,MAAM,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,uDAAuD;YACvD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;YAC7C,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzB,IAAI,CAAC;gBACH,OAAO,MAAM,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC1C,CAAC;YAAC,OAAO,MAAM,EAAE,CAAC;gBAChB,6DAA6D;gBAC7D,MAAM,IAAI,KAAK,CACb,sCAAsC,OAAO,MAAM;oBACnD,2DAA2D;oBAC3D,oCAAoC,UAAU,CAAC,CAAC,CAAC,IAAI;oBACrD,qCAAqC,UAAU,CAAC,CAAC,CAAC,IAAI,eAAe,IAAI;oBACzE,sCAAsC,UAAU,CAAC,CAAC,CAAC,IAAI,eAAe,MAAM;oBAC5E,+BAA+B,SAAS,mBAAmB,OAAO,CAAC,GAAG,EAAE,MAAM;oBAC9E,mGAAmG;oBACnG,sEAAsE,CACvE,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,iFAAiF;AACjF,0CAA0C;AAC1C,OAAO,EAAE,WAAW,EAAE,CAAC;AAEvB,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,IAAI,CAAC;QACH,iEAAiE;QACjE,wGAAwG;QACxG,iFAAiF;QACjF,MAAM,OAAO,GAAG,6BAA6B,CAAC;QAC9C,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;QAE3C,OAAO;YACL,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,KAAK;YACd,IAAI,EAAE;gBACJ,OAAO;aACR;YACD,aAAa,EAAE;gBACb,mDAAmD;gBACnD,iGAAiG;gBACjG,kFAAkF;gBAClF,WAAW,EAAE,wDAAwD;gBACrE,OAAO,EAAE,kDAAkD;gBAC3D,KAAK,EAAE;oBACL,OAAO,EAAE,sDAAsD;oBAC/D,QAAQ,EACN,iFAAiF;iBACpF;gBACD,YAAY,EAAE;oBACZ,OAAO,EAAE,8DAA8D;oBACvE,QAAQ,EACN,4FAA4F;iBAC/F;gBACD,MAAM,EAAE;oBACN,OAAO,EAAE,uDAAuD;oBAChE,QAAQ,EACN,qFAAqF;iBACxF;gBACD,OAAO,EAAE;oBACP,OAAO,EAAE,wDAAwD;oBACjE,QAAQ,EAAE,gFAAgF;iBAC3F;gBACD,YAAY,EAAE;oBACZ,OAAO,EAAE,8DAA8D;oBACvE,QAAQ,EAAE,sFAAsF;iBACjG;gBACD,WAAW,EAAE;oBACX,OAAO,EAAE,mDAAmD;oBAC5D,QAAQ,EACN,0FAA0F;iBAC7F;aACF;YACD,OAAO,EAAE;gBACP,OAAO,EAAE,sMAAsM;gBAC/M,QAAQ,EAAE;oBACR,oFAAoF;oBACpF,mFAAmF;oBACnF,iGAAiG;oBACjG,yGAAyG;oBACzG,2FAA2F;oBAC3F,4EAA4E;iBAC7E;gBACD,WAAW,EAAE;oBACX,iHAAiH;oBACjH,oHAAoH;oBACpH,4EAA4E;oBAC5E,4EAA4E;oBAC5E,iGAAiG;oBACjG,gHAAgH;oBAChH,8GAA8G;oBAC9G,oGAAoG;oBACpG,gFAAgF;oBAChF,4PAA4P;iBAC7P;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,MAAM,IAAI,KAAK,CACb,2CAA2C;YAC3C,+EAA+E;YAC/E,UAAU,YAAY,IAAI;YAC1B,0DAA0D;YAC1D,uEAAuE;YACvE,oGAAoG,CACrG,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -97,8 +97,8 @@ export async function watchStatus(input) {
97
97
  watchModeActive,
98
98
  message: watchModeActive
99
99
  ? strictWatch
100
- ? `Watch mode is ACTIVE with STRICT WATCH enabled (PID: ${status.pid}, started: ${status.startedAt}). Context bundles are being kept fresh automatically with breaking change detection. You can skip calling refresh_snapshot - just use list_bundles and read_bundle with the existing context files.`
101
- : `Watch mode is ACTIVE (PID: ${status.pid}, started: ${status.startedAt}). Context bundles are being kept fresh automatically. You can skip calling refresh_snapshot - just use list_bundles and read_bundle with the existing context files.`
100
+ ? `⚠️ Watch mode is ACTIVE with STRICT WATCH enabled (PID: ${status.pid}, started: ${status.startedAt}). Context bundles are being kept fresh automatically with breaking change detection. You can skip calling refresh_snapshot - just use list_bundles and read_bundle with the existing context files. DO NOT use sleep() delays - bundles are already fresh, just read them directly.`
101
+ : `⚠️ Watch mode is ACTIVE (PID: ${status.pid}, started: ${status.startedAt}). Context bundles are being kept fresh automatically. You can skip calling refresh_snapshot - just use list_bundles and read_bundle with the existing context files. DO NOT use sleep() delays - bundles are already fresh, just read them directly.`
102
102
  : 'Watch mode is NOT active. Context files may be stale. Consider running refresh_snapshot or starting watch mode with `stamp context --watch` (or `stamp context --watch --strict-watch` for breaking change detection).',
103
103
  };
104
104
  if (watchModeActive && status) {
@@ -1 +1 @@
1
- {"version":3,"file":"watch-status.js","sourceRoot":"","sources":["../../../src/mcp/tools/watch-status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"watch-status.js","sourceRoot":"","sources":["../../../src/mcp/tools/watch-status.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAE/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D;;GAEG;AACH,KAAK,UAAU,MAAM,CAAC,IAAY;IAChC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,eAAe,CAAC,WAAmB;IAChD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,2BAA2B,CAAC,CAAC;IAEjF,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAgB,CAAC;QAElD,sCAAsC;QACtC,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAChD,+DAA+D;YAC/D,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;YAC3B,CAAC;YAAC,MAAM,CAAC;gBACP,wBAAwB;YAC1B,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,aAAa,CAAC,WAAmB,EAAE,KAAa;IAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,8BAA8B,CAAC,CAAC;IAElF,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QAC9B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAClD,+EAA+E;QAC/E,6DAA6D;QAC7D,IAAI,IAAqB,CAAC;QAE1B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACnC,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACnD,CAAC;QAAC,MAAM,CAAC;YACP,6BAA6B;YAC7B,IAAI,GAAG,OAAO;iBACX,KAAK,CAAC,IAAI,CAAC;iBACX,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;iBAC3B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACnC,CAAC;QAED,iCAAiC;QACjC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAuB;IACvD,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,0DAA0D;YAC1D,uDAAuD,CACxD,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC/C,MAAM,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,IAAI,KAAK,CAAC;IAC3D,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;IAErC,oBAAoB;IACpB,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,WAAW,CAAC,CAAC;IAClD,MAAM,eAAe,GAAG,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC;IAClE,yFAAyF;IACzF,MAAM,WAAW,GAAG,eAAe,IAAI,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IAEpE,eAAe;IACf,MAAM,MAAM,GAAsB;QAChC,WAAW;QACX,eAAe;QACf,OAAO,EAAE,eAAe;YACtB,CAAC,CAAC,WAAW;gBACX,CAAC,CAAC,2DAA2D,MAAO,CAAC,GAAG,cAAc,MAAO,CAAC,SAAS,sRAAsR;gBAC7X,CAAC,CAAC,iCAAiC,MAAO,CAAC,GAAG,cAAc,MAAO,CAAC,SAAS,uPAAuP;YACtU,CAAC,CAAC,wNAAwN;KAC7N,CAAC;IAEF,IAAI,eAAe,IAAI,MAAM,EAAE,CAAC;QAC9B,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;QACvB,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,mCAAmC;IACnC,IAAI,iBAAiB,EAAE,CAAC;QACtB,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACxD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -124,6 +124,48 @@ refresh_snapshot({ projectPath: "...", skipIfWatchActive: true })
124
124
  - **Efficient** - Watch mode only rebuilds affected bundles, not entire project
125
125
  - **Smart** - MCP detects watch mode automatically and guides you
126
126
 
127
+ ### ⚠️ Important: Do Not Use `sleep()` with Watch Mode
128
+
129
+ **Why `sleep()` is unnecessary:**
130
+
131
+ Watch mode automatically regenerates bundles in the background when files change. The MCP tools handle this correctly without any waiting:
132
+
133
+ 1. **Watch mode updates bundles automatically** - When a file changes, LogicStamp regenerates the bundle in the background. No waiting needed.
134
+ 2. **Bundles are already fresh** - If watch mode is active, bundles are already up-to-date when you read them. Just read directly.
135
+ 3. **Internal retry logic** - The MCP tools (`list_bundles`, `read_bundle`) have built-in retry logic with exponential backoff to handle race conditions during file writes. This is handled internally - you don't need to wait.
136
+ 4. **Check timestamps if needed** - If you need to verify when a bundle was updated, check the `createdAt` timestamp in the bundle metadata. Don't use `sleep()`.
137
+
138
+ **❌ Avoid this pattern:**
139
+ ```typescript
140
+ // Incorrect: Using sleep to wait for watch mode regeneration
141
+ sleep(3000) // Unnecessary delay
142
+ read_bundle({ projectPath: "...", bundlePath: "..." })
143
+ ```
144
+
145
+ **✅ Correct approach:**
146
+ ```typescript
147
+ // CORRECT: Just read directly - bundles are already fresh if watch mode is active
148
+ read_bundle({ projectPath: "...", bundlePath: "..." })
149
+
150
+ // If you need to verify updates, check timestamps in the bundle response
151
+ // The bundle includes metadata about when it was created/updated
152
+ ```
153
+
154
+ **How it works:**
155
+ - When watch mode is active, LogicStamp monitors file changes and regenerates bundles automatically
156
+ - The MCP tools detect watch mode and read bundles directly (no snapshot needed)
157
+ - Internal retry logic handles any race conditions during file writes (200-500ms delays built-in)
158
+ - Bundles are immediately available - no external waiting required
159
+
160
+ **Architecture explanation:**
161
+ - Watch mode runs `stamp context --watch` in the background, monitoring file system changes
162
+ - When files change, LogicStamp incrementally rebuilds only affected bundles
163
+ - The rebuild happens asynchronously - bundles are written to disk when ready
164
+ - MCP tools use `readFileWithRetry()` which includes small delays (200-500ms) and exponential backoff for edge cases
165
+ - This retry logic is internal to the MCP server - AI assistants should not add external `sleep()` calls
166
+
167
+ **Key takeaway:** Watch mode keeps bundles fresh automatically. When watch mode is active, skip `refresh_snapshot` and read bundles directly - they're already fresh. Do not use `sleep()` to wait for regeneration.
168
+
127
169
  ## The LogicStamp Workflow
128
170
 
129
171
  **Always follow this workflow when working with a new project:**
@@ -435,28 +477,28 @@ For full documentation, see: https://logicstamp.dev/docs
435
477
  - Fallback: https://github.com/LogicStamp/logicstamp-context
436
478
  - **Usage Guide**:
437
479
  - Primary: https://logicstamp.dev/docs/logicstamp-context/usage
438
- - Fallback: https://github.com/LogicStamp/logicstamp-context/blob/main/docs/usage.md
480
+ - Fallback: https://github.com/LogicStamp/logicstamp-context/blob/main/docs/guides/usage.md
439
481
  - **CLI Commands**:
440
482
  - Primary: https://logicstamp.dev/docs/logicstamp-context/context
441
483
  - Fallback: https://github.com/LogicStamp/logicstamp-context/blob/main/docs/cli/context.md
442
484
  - **UIF Contracts**:
443
485
  - Primary: https://logicstamp.dev/docs/logicstamp-context/uif-contracts
444
- - Fallback: https://github.com/LogicStamp/logicstamp-context/blob/main/docs/uif_contracts.md
486
+ - Fallback: https://github.com/LogicStamp/logicstamp-context/blob/main/docs/reference/uif-contracts.md
445
487
  - **Schema Reference**:
446
488
  - Primary: https://logicstamp.dev/docs/logicstamp-context/schema
447
- - Fallback: https://github.com/LogicStamp/logicstamp-context/blob/main/docs/schema.md
489
+ - Fallback: https://github.com/LogicStamp/logicstamp-context/blob/main/docs/reference/schema.md
448
490
  - **Token Optimization**:
449
491
  - Primary: https://logicstamp.dev/docs/logicstamp-context/usage#token-cost-comparison
450
- - Fallback: https://github.com/LogicStamp/logicstamp-context/blob/main/docs/usage.md#token-cost-comparison
492
+ - Fallback: https://github.com/LogicStamp/logicstamp-context/blob/main/docs/guides/usage.md#token-cost-comparison
451
493
  - **Mode Comparison**:
452
494
  - Primary: https://logicstamp.dev/docs/logicstamp-context/compare-modes
453
495
  - Fallback: https://github.com/LogicStamp/logicstamp-context/blob/main/docs/cli/compare-modes.md
454
496
  - **CI Integration**:
455
497
  - Primary: https://logicstamp.dev/docs/logicstamp-context/usage#cicd-integration
456
- - Fallback: https://github.com/LogicStamp/logicstamp-context/blob/main/docs/usage.md#cicd-integration
498
+ - Fallback: https://github.com/LogicStamp/logicstamp-context/blob/main/docs/guides/usage.md#cicd-integration
457
499
  - **Known Limitations**:
458
- - Primary: https://logicstamp.dev/docs/logicstamp-context/limitations
459
- - Fallback: https://github.com/LogicStamp/logicstamp-context/blob/main/docs/limitations.md
500
+ - Primary: https://logicstamp.dev/docs/reference/limitations
501
+ - Fallback: https://github.com/LogicStamp/logicstamp-context/blob/main/docs/reference/limitations.md
460
502
  - **Security Documentation**:
461
503
  - Fallback: https://github.com/LogicStamp/logicstamp-context/blob/main/SECURITY.md
462
504
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "logicstamp-mcp",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "MCP server for LogicStamp - exposes deterministic architectural context for AI workflows.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",