mcp-code-context 3.4.0 โ†’ 3.4.1

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 (52) hide show
  1. package/CHANGELOG.md +3 -3
  2. package/CHANGELOG_v3.2.0.md +196 -196
  3. package/CHANGELOG_v3.3.0.md +266 -266
  4. package/SECURITY.md +177 -177
  5. package/dist/src/core/engine.d.ts +1 -1
  6. package/dist/src/core/engine.js +11 -1
  7. package/dist/src/core/engine.js.map +1 -1
  8. package/dist/src/core/validator.d.ts +1 -1
  9. package/dist/src/core/validator.js +1 -1
  10. package/dist/src/index.d.ts +1 -1
  11. package/dist/src/index.js +2 -2
  12. package/dist/src/operations/compress.d.ts +1 -1
  13. package/dist/src/operations/compress.js +1 -1
  14. package/dist/src/operations/confirmationStore.d.ts +1 -1
  15. package/dist/src/operations/confirmationStore.js +1 -1
  16. package/dist/src/operations/read.d.ts +1 -1
  17. package/dist/src/operations/read.js +1 -1
  18. package/dist/src/operations/write.d.ts +2 -2
  19. package/dist/src/operations/write.js +2 -2
  20. package/dist/src/parsers/base.d.ts +1 -1
  21. package/dist/src/parsers/base.js +1 -1
  22. package/dist/src/parsers/dartTreeSitter.d.ts +1 -1
  23. package/dist/src/parsers/dartTreeSitter.js +1 -1
  24. package/dist/src/parsers/php.d.ts +1 -1
  25. package/dist/src/parsers/php.js +1 -1
  26. package/dist/src/parsers/python.d.ts +1 -1
  27. package/dist/src/parsers/python.js +1 -1
  28. package/dist/src/parsers/registry.d.ts +1 -1
  29. package/dist/src/parsers/registry.js +1 -1
  30. package/dist/src/parsers/typescript.d.ts +1 -1
  31. package/dist/src/parsers/typescript.js +1 -1
  32. package/dist/src/utils/auditLogger.d.ts +1 -1
  33. package/dist/src/utils/auditLogger.js +1 -1
  34. package/dist/src/utils/backupManager.d.ts +1 -1
  35. package/dist/src/utils/backupManager.js +1 -1
  36. package/dist/src/utils/constants.d.ts +1 -1
  37. package/dist/src/utils/constants.js +1 -1
  38. package/dist/src/utils/diff.d.ts +1 -1
  39. package/dist/src/utils/diff.js +1 -1
  40. package/dist/src/utils/fileLock.d.ts +1 -1
  41. package/dist/src/utils/fileLock.js +1 -1
  42. package/dist/src/utils/rateLimiter.d.ts +1 -1
  43. package/dist/src/utils/rateLimiter.js +1 -1
  44. package/dist/src/utils/safeRegex.d.ts +1 -1
  45. package/dist/src/utils/safeRegex.js +1 -1
  46. package/dist/src/utils/streaming.d.ts +1 -1
  47. package/dist/src/utils/streaming.js +1 -1
  48. package/dist/src/utils/telemetry.d.ts +1 -1
  49. package/dist/src/utils/telemetry.js +1 -1
  50. package/llms.txt +5 -5
  51. package/package.json +1 -1
  52. package/scripts/replace-version.js +59 -0
package/CHANGELOG.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Changelog
2
2
 
3
- ## [3.4.0] - 2026-04-24
3
+ ## [3.4.1] - 2026-04-24
4
4
 
5
5
  ### ๐Ÿ”’ PRODUCTION HARDENING - Security & Infrastructure Complete
6
6
 
@@ -30,7 +30,7 @@
30
30
  - **Security**: SecurityValidator enforced on all 13 handlers
31
31
  - **Architecture**: Middleware pipeline (RateLimiter โ†’ FileLock โ†’ Execute โ†’ AuditLog โ†’ Telemetry)
32
32
  - **Parsers**: Removed 300+ lines of duplicated replaceSymbol code
33
- - **Version**: Synchronized all version strings to 3.4.0
33
+ - **Version**: Synchronized all version strings to 3.4.1
34
34
 
35
35
  ### Performance
36
36
  - Streaming I/O for files >5MB (prevents memory exhaustion)
@@ -49,7 +49,7 @@
49
49
  - โœ… All security tests passing
50
50
  - โœ… All rate limiter tests passing
51
51
  - โœ… All file lock tests passing
52
- - โœ… All v3.4.0 feature tests passing
52
+ - โœ… All v3.4.1 feature tests passing
53
53
  - โœ… TypeScript: 0 compilation errors
54
54
  - โœ… Build: Clean production dist
55
55
 
@@ -1,196 +1,196 @@
1
- # Changelog v3.2.0 - Security & Validation Hardening
2
-
3
- ## ๐Ÿ”’ CRITICAL Security Fixes
4
-
5
- ### Path Traversal Protection (CVE-LEVEL)
6
- **Impact**: HIGH - Could allow access to files outside project boundary
7
- **Fix**: Moved path traversal check AFTER `path.resolve()` normalization
8
- ```typescript
9
- // BEFORE (vulnerable):
10
- if (filePath.includes("..")) return { valid: false };
11
- const resolved = path.resolve(filePath);
12
-
13
- // AFTER (secure):
14
- const resolved = path.resolve(filePath);
15
- if (!resolved.startsWith(this.projectRoot)) return { valid: false };
16
- ```
17
-
18
- ### Regex Injection in renameSymbol (CVE-LEVEL)
19
- **Impact**: HIGH - Could corrupt entire codebase with malicious symbol names
20
- **Fix**: Sanitize all regex inputs before use
21
- ```typescript
22
- // BEFORE (vulnerable):
23
- const regex = new RegExp(`\\b${oldName}\\b`, "g");
24
-
25
- // AFTER (secure):
26
- const sanitized = oldName.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
27
- const regex = new RegExp(`\\b${sanitized}\\b`, "g");
28
- ```
29
-
30
- ### Syntax Validation Post-Write
31
- **Impact**: CRITICAL - Prevented silent code corruption
32
- **Fix**: All write operations now validate syntax before returning
33
- ```typescript
34
- const syntaxCheck = validateSyntax(result, parser);
35
- if (!syntaxCheck.valid) {
36
- return { success: false, error: syntaxCheck.error };
37
- }
38
- ```
39
-
40
- ---
41
-
42
- ## โœจ Major Improvements
43
-
44
- ### 1. AST-Aware insertCode
45
- **Before**: Used `indexOf()` to find anchor (could match strings/comments)
46
- **After**: Uses AST `node.startIndex/endIndex` for precise positioning
47
- ```typescript
48
- // Find anchor using AST
49
- const symbols = parser.findSymbols(tree);
50
- const anchorNode = symbols.find(s => s.name === anchorSymbol);
51
- insertIndex = anchorNode.startIndex; // Exact AST position
52
- ```
53
-
54
- ### 2. Improved renameSymbol
55
- - AST-based symbol location (not blind regex)
56
- - Only renames in import statements (not strings/comments)
57
- - Sanitized regex patterns
58
- - Better error messages
59
-
60
- ### 3. Async I/O Migration
61
- **Before**: `fs.readFileSync()` blocked event loop
62
- **After**: `await fs.readFile()` non-blocking
63
- ```typescript
64
- // engine.ts:60
65
- const wasmBuffer = await fs.readFile(wasmPath); // Was: fs.readFileSync
66
- ```
67
-
68
- ### 4. Centralized Constants
69
- **Before**: Hardcoded in 5+ files
70
- ```typescript
71
- const excludeDirs = ["node_modules", "dist", "build", ".git"];
72
- ```
73
- **After**: Single source of truth
74
- ```typescript
75
- import { EXCLUDE_DIRS, SUPPORTED_EXTENSIONS } from "../utils/constants.js";
76
- ```
77
-
78
- ### 5. LCS-Based Diff Generation
79
- **Before**: Simple line-by-line (O(n))
80
- **After**: Longest Common Subsequence algorithm (O(n*m))
81
- - Cleaner diffs with proper context
82
- - Better readability
83
- - Configurable context lines
84
-
85
- ### 6. Size Limits in compress
86
- **Before**: Only file count limit (500)
87
- **After**: Total size limit (50MB) + per-file check
88
- ```typescript
89
- if (totalSize + stat.size > MAX_TOTAL_SIZE_BYTES) break;
90
- ```
91
-
92
- ---
93
-
94
- ## ๐Ÿงช Testing
95
-
96
- ### New Security Test Suite
97
- - โœ… Path traversal protection (4 tests)
98
- - โœ… ReDoS detection (4 patterns)
99
- - โœ… Regex injection protection (4 tests)
100
- - โœ… File size validation (2 tests)
101
-
102
- **Coverage**: 100% on security-critical paths
103
-
104
- ### Existing Tests
105
- - โœ… 47/47 parser tests passing
106
- - โœ… TypeScript, Python, PHP, Dart parsers validated
107
- - โœ… Symbol extraction, replacement, insertion tested
108
-
109
- ---
110
-
111
- ## ๐Ÿ“Š Metrics Improvement
112
-
113
- | Metric | v3.1.0 | v3.2.0 | Change |
114
- |--------|--------|--------|--------|
115
- | Security | 5.0/10 | 9.5/10 | +4.5 โœ… |
116
- | Code Quality | 6.5/10 | 8.5/10 | +2.0 โœ… |
117
- | Maintainability | 7.0/10 | 8.5/10 | +1.5 โœ… |
118
- | **Overall** | **6.2/10** | **8.8/10** | **+2.6** |
119
-
120
- ---
121
-
122
- ## ๐Ÿšจ Breaking Changes
123
-
124
- ### Syntax Validation
125
- All write operations now validate syntax before returning. Invalid code will be rejected:
126
- ```typescript
127
- // This will now fail if newContent has syntax errors:
128
- const result = await replaceSymbol({ symbolName, newContent, ... });
129
- ```
130
-
131
- **Migration**: Ensure all generated code is syntactically valid before calling write operations.
132
-
133
- ---
134
-
135
- ## ๐Ÿ“ Files Changed
136
-
137
- ### Core
138
- - `src/core/validator.ts` - Path traversal fix
139
- - `src/core/engine.ts` - Async I/O migration
140
-
141
- ### Operations
142
- - `src/operations/write.ts` - Syntax validation, AST positioning, sanitization
143
- - `src/operations/compress.ts` - Size limits
144
- - `src/operations/read.ts` - Centralized constants
145
-
146
- ### Utils
147
- - `src/utils/constants.ts` - NEW: Centralized configuration
148
- - `src/utils/diff.ts` - NEW: LCS-based diff
149
-
150
- ### Tests
151
- - `tests/test-security.ts` - NEW: Security test suite
152
-
153
- ---
154
-
155
- ## ๐Ÿ”„ Upgrade Guide
156
-
157
- ### From v3.1.0 to v3.2.0
158
-
159
- 1. **No API changes** - Fully backward compatible
160
- 2. **Stricter validation** - Some previously accepted (but invalid) code will now be rejected
161
- 3. **Better error messages** - Syntax errors now caught before file write
162
-
163
- ### Recommended Actions
164
- 1. Run existing tests to ensure compatibility
165
- 2. Review any custom write operations for syntax validity
166
- 3. Update error handling to catch new validation errors
167
-
168
- ---
169
-
170
- ## ๐ŸŽฏ Next Steps (v3.3.0)
171
-
172
- - [ ] Rate limiting for DoS protection
173
- - [ ] File locking for concurrent writes
174
- - [ ] Streaming for files >10MB
175
- - [ ] LSP integration for advanced refactoring
176
- - [ ] Telemetry and observability
177
-
178
- ---
179
-
180
- ## ๐Ÿ‘ฅ Contributors
181
-
182
- - Security audit and fixes
183
- - Performance optimizations
184
- - Test coverage improvements
185
-
186
- ---
187
-
188
- ## ๐Ÿ“„ License
189
-
190
- MIT
191
-
192
- ---
193
-
194
- **Full Diff**: v3.1.0...v3.2.0
195
- **Release Date**: 2026-04-24
196
- **Stability**: Production-ready
1
+ # Changelog v3.2.0 - Security & Validation Hardening
2
+
3
+ ## ๐Ÿ”’ CRITICAL Security Fixes
4
+
5
+ ### Path Traversal Protection (CVE-LEVEL)
6
+ **Impact**: HIGH - Could allow access to files outside project boundary
7
+ **Fix**: Moved path traversal check AFTER `path.resolve()` normalization
8
+ ```typescript
9
+ // BEFORE (vulnerable):
10
+ if (filePath.includes("..")) return { valid: false };
11
+ const resolved = path.resolve(filePath);
12
+
13
+ // AFTER (secure):
14
+ const resolved = path.resolve(filePath);
15
+ if (!resolved.startsWith(this.projectRoot)) return { valid: false };
16
+ ```
17
+
18
+ ### Regex Injection in renameSymbol (CVE-LEVEL)
19
+ **Impact**: HIGH - Could corrupt entire codebase with malicious symbol names
20
+ **Fix**: Sanitize all regex inputs before use
21
+ ```typescript
22
+ // BEFORE (vulnerable):
23
+ const regex = new RegExp(`\\b${oldName}\\b`, "g");
24
+
25
+ // AFTER (secure):
26
+ const sanitized = oldName.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
27
+ const regex = new RegExp(`\\b${sanitized}\\b`, "g");
28
+ ```
29
+
30
+ ### Syntax Validation Post-Write
31
+ **Impact**: CRITICAL - Prevented silent code corruption
32
+ **Fix**: All write operations now validate syntax before returning
33
+ ```typescript
34
+ const syntaxCheck = validateSyntax(result, parser);
35
+ if (!syntaxCheck.valid) {
36
+ return { success: false, error: syntaxCheck.error };
37
+ }
38
+ ```
39
+
40
+ ---
41
+
42
+ ## โœจ Major Improvements
43
+
44
+ ### 1. AST-Aware insertCode
45
+ **Before**: Used `indexOf()` to find anchor (could match strings/comments)
46
+ **After**: Uses AST `node.startIndex/endIndex` for precise positioning
47
+ ```typescript
48
+ // Find anchor using AST
49
+ const symbols = parser.findSymbols(tree);
50
+ const anchorNode = symbols.find(s => s.name === anchorSymbol);
51
+ insertIndex = anchorNode.startIndex; // Exact AST position
52
+ ```
53
+
54
+ ### 2. Improved renameSymbol
55
+ - AST-based symbol location (not blind regex)
56
+ - Only renames in import statements (not strings/comments)
57
+ - Sanitized regex patterns
58
+ - Better error messages
59
+
60
+ ### 3. Async I/O Migration
61
+ **Before**: `fs.readFileSync()` blocked event loop
62
+ **After**: `await fs.readFile()` non-blocking
63
+ ```typescript
64
+ // engine.ts:60
65
+ const wasmBuffer = await fs.readFile(wasmPath); // Was: fs.readFileSync
66
+ ```
67
+
68
+ ### 4. Centralized Constants
69
+ **Before**: Hardcoded in 5+ files
70
+ ```typescript
71
+ const excludeDirs = ["node_modules", "dist", "build", ".git"];
72
+ ```
73
+ **After**: Single source of truth
74
+ ```typescript
75
+ import { EXCLUDE_DIRS, SUPPORTED_EXTENSIONS } from "../utils/constants.js";
76
+ ```
77
+
78
+ ### 5. LCS-Based Diff Generation
79
+ **Before**: Simple line-by-line (O(n))
80
+ **After**: Longest Common Subsequence algorithm (O(n*m))
81
+ - Cleaner diffs with proper context
82
+ - Better readability
83
+ - Configurable context lines
84
+
85
+ ### 6. Size Limits in compress
86
+ **Before**: Only file count limit (500)
87
+ **After**: Total size limit (50MB) + per-file check
88
+ ```typescript
89
+ if (totalSize + stat.size > MAX_TOTAL_SIZE_BYTES) break;
90
+ ```
91
+
92
+ ---
93
+
94
+ ## ๐Ÿงช Testing
95
+
96
+ ### New Security Test Suite
97
+ - โœ… Path traversal protection (4 tests)
98
+ - โœ… ReDoS detection (4 patterns)
99
+ - โœ… Regex injection protection (4 tests)
100
+ - โœ… File size validation (2 tests)
101
+
102
+ **Coverage**: 100% on security-critical paths
103
+
104
+ ### Existing Tests
105
+ - โœ… 47/47 parser tests passing
106
+ - โœ… TypeScript, Python, PHP, Dart parsers validated
107
+ - โœ… Symbol extraction, replacement, insertion tested
108
+
109
+ ---
110
+
111
+ ## ๐Ÿ“Š Metrics Improvement
112
+
113
+ | Metric | v3.1.0 | v3.2.0 | Change |
114
+ |--------|--------|--------|--------|
115
+ | Security | 5.0/10 | 9.5/10 | +4.5 โœ… |
116
+ | Code Quality | 6.5/10 | 8.5/10 | +2.0 โœ… |
117
+ | Maintainability | 7.0/10 | 8.5/10 | +1.5 โœ… |
118
+ | **Overall** | **6.2/10** | **8.8/10** | **+2.6** |
119
+
120
+ ---
121
+
122
+ ## ๐Ÿšจ Breaking Changes
123
+
124
+ ### Syntax Validation
125
+ All write operations now validate syntax before returning. Invalid code will be rejected:
126
+ ```typescript
127
+ // This will now fail if newContent has syntax errors:
128
+ const result = await replaceSymbol({ symbolName, newContent, ... });
129
+ ```
130
+
131
+ **Migration**: Ensure all generated code is syntactically valid before calling write operations.
132
+
133
+ ---
134
+
135
+ ## ๐Ÿ“ Files Changed
136
+
137
+ ### Core
138
+ - `src/core/validator.ts` - Path traversal fix
139
+ - `src/core/engine.ts` - Async I/O migration
140
+
141
+ ### Operations
142
+ - `src/operations/write.ts` - Syntax validation, AST positioning, sanitization
143
+ - `src/operations/compress.ts` - Size limits
144
+ - `src/operations/read.ts` - Centralized constants
145
+
146
+ ### Utils
147
+ - `src/utils/constants.ts` - NEW: Centralized configuration
148
+ - `src/utils/diff.ts` - NEW: LCS-based diff
149
+
150
+ ### Tests
151
+ - `tests/test-security.ts` - NEW: Security test suite
152
+
153
+ ---
154
+
155
+ ## ๐Ÿ”„ Upgrade Guide
156
+
157
+ ### From v3.1.0 to v3.2.0
158
+
159
+ 1. **No API changes** - Fully backward compatible
160
+ 2. **Stricter validation** - Some previously accepted (but invalid) code will now be rejected
161
+ 3. **Better error messages** - Syntax errors now caught before file write
162
+
163
+ ### Recommended Actions
164
+ 1. Run existing tests to ensure compatibility
165
+ 2. Review any custom write operations for syntax validity
166
+ 3. Update error handling to catch new validation errors
167
+
168
+ ---
169
+
170
+ ## ๐ŸŽฏ Next Steps (v3.3.0)
171
+
172
+ - [ ] Rate limiting for DoS protection
173
+ - [ ] File locking for concurrent writes
174
+ - [ ] Streaming for files >10MB
175
+ - [ ] LSP integration for advanced refactoring
176
+ - [ ] Telemetry and observability
177
+
178
+ ---
179
+
180
+ ## ๐Ÿ‘ฅ Contributors
181
+
182
+ - Security audit and fixes
183
+ - Performance optimizations
184
+ - Test coverage improvements
185
+
186
+ ---
187
+
188
+ ## ๐Ÿ“„ License
189
+
190
+ MIT
191
+
192
+ ---
193
+
194
+ **Full Diff**: v3.1.0...v3.2.0
195
+ **Release Date**: 2026-04-24
196
+ **Stability**: Production-ready