sigmap 2.0.0-beta.3 → 2.0.0-beta.4
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 +11 -0
- package/gen-context.js +14 -4
- package/package.json +1 -1
- package/src/mcp/server.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,17 @@ Format: [Semantic Versioning](https://semver.org/)
|
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
+
## [2.0.0-beta.4] — 2026-04-03
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
- Prerelease version bumped from `2.0.0-beta.3` to `2.0.0-beta.4` across CLI, MCP server info, root package metadata, and VS Code extension metadata.
|
|
13
|
+
|
|
14
|
+
### Validation gate
|
|
15
|
+
- 21/21 extractor tests passed
|
|
16
|
+
- 17/17 integration suites passed (including v2plus 3/3)
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
9
20
|
## [2.0.0-beta.3] — 2026-04-03
|
|
10
21
|
|
|
11
22
|
### Changed
|
package/gen-context.js
CHANGED
|
@@ -3520,7 +3520,7 @@ const path = require('path');
|
|
|
3520
3520
|
const os = require('os');
|
|
3521
3521
|
const { execSync } = require('child_process');
|
|
3522
3522
|
|
|
3523
|
-
const VERSION = '2.0.0-beta.
|
|
3523
|
+
const VERSION = '2.0.0-beta.4';
|
|
3524
3524
|
const MARKER = '\n\n## Auto-generated signatures\n<!-- Updated by gen-context.js -->\n';
|
|
3525
3525
|
|
|
3526
3526
|
function requireSourceOrBundled(key) {
|
|
@@ -3907,8 +3907,10 @@ function buildChangesSection(cwd, config, fileEntries) {
|
|
|
3907
3907
|
continue;
|
|
3908
3908
|
}
|
|
3909
3909
|
const plus = [...diff.matchAll(/^\+.*(?:def\s+|function\s+|class\s+|func\s+)(\w+)/gm)].map((m) => `+${m[1]}`);
|
|
3910
|
-
const
|
|
3911
|
-
|
|
3910
|
+
const modDef = [...diff.matchAll(/^-.*(?:def\s+|function\s+|class\s+|func\s+)(\w+)/gm)].map((m) => `~${m[1]}`);
|
|
3911
|
+
// Also extract function names from @@ hunk headers (catches body-only changes like added comments/lines)
|
|
3912
|
+
const modCtx = [...diff.matchAll(/^@@[^@]*@@\s+(?:(?:async|export|public|private|static)\s+)*(?:def|function|class|func)\s+(\w+)/gm)].map((m) => `~${m[1]}`);
|
|
3913
|
+
const delta = [...new Set([...plus, ...modDef, ...modCtx])].slice(0, 4).join(' ');
|
|
3912
3914
|
if (delta) {
|
|
3913
3915
|
hasDelta = true;
|
|
3914
3916
|
lines.push(`${rel.padEnd(45)} ${delta}`);
|
|
@@ -3933,9 +3935,17 @@ function resolveImpactRadius(fileEntries, cwd, config) {
|
|
|
3933
3935
|
|
|
3934
3936
|
for (const entry of fileEntries) {
|
|
3935
3937
|
const importer = path.relative(cwd, entry.filePath);
|
|
3938
|
+
const importerTop = importer.split('/')[0];
|
|
3936
3939
|
for (const dep of (entry.deps || [])) {
|
|
3937
3940
|
const depNorm = dep.replace(/\\/g, '/').replace(/^\.\//, '').replace(/\.[^.]+$/, '');
|
|
3938
|
-
const matches = keys.filter((k) =>
|
|
3941
|
+
const matches = keys.filter((k) => {
|
|
3942
|
+
if (k.norm === depNorm) return true;
|
|
3943
|
+
// Path-segment or base-only match: both require same top-level directory
|
|
3944
|
+
// to prevent cross-subsystem matches (e.g. 'app' dep in server/ matching desktop/gui/app.py)
|
|
3945
|
+
const matchTop = k.rel.split('/')[0];
|
|
3946
|
+
if (k.norm.endsWith('/' + depNorm) || k.base === depNorm) return matchTop === importerTop;
|
|
3947
|
+
return false;
|
|
3948
|
+
});
|
|
3939
3949
|
for (const m of matches) {
|
|
3940
3950
|
if (!map.has(m.rel)) map.set(m.rel, []);
|
|
3941
3951
|
map.get(m.rel).push(importer);
|
package/package.json
CHANGED
package/src/mcp/server.js
CHANGED