weavatrix 0.2.18 → 0.2.19
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/README.md
CHANGED
|
@@ -28,7 +28,7 @@ Enterprise deployment through one source-free wire contract. It is a thin
|
|
|
28
28
|
extension of this package, not a fork of the parser/graph/Health engine, so core
|
|
29
29
|
updates arrive as normal dependency updates.
|
|
30
30
|
|
|
31
|
-
Version 0.2.
|
|
31
|
+
Version 0.2.19 still contains the explicit opt-in compatibility profiles
|
|
32
32
|
documented below. The paired 0.3/0.1 release removes their network
|
|
33
33
|
implementations from this package; until then the new connector is not
|
|
34
34
|
publishable. The decision and release gates are in
|
|
@@ -430,6 +430,18 @@ metrics are not persisted or transmitted by Weavatrix. If a source checkout's pa
|
|
|
430
430
|
while an old daemon remains alive, `initialize`, `tools/list`, and tool calls fail loudly with
|
|
431
431
|
`STALE_RUNTIME` until the client reconnects; the opt-out is reserved for deliberate development.
|
|
432
432
|
|
|
433
|
+
### 0.2.19 supply-chain signal precision
|
|
434
|
+
|
|
435
|
+
- Installed-package URL literals and ordinary standalone network calls no longer become malware
|
|
436
|
+
findings without a separate security signal. They remain bounded co-evidence beside behavior such
|
|
437
|
+
as environment harvesting, while exfil endpoints, public raw IPs and fetch-plus-exec stay active.
|
|
438
|
+
- Unicode variation selectors used for emoji/presentation are no longer confused with hidden text
|
|
439
|
+
controls. Bidirectional override/isolate controls remain covered.
|
|
440
|
+
- Real Hosted dogfood now completes OSV over 651 package versions and the local malware sweep over
|
|
441
|
+
535 installed packages with zero critical/high/medium/low findings.
|
|
442
|
+
|
|
443
|
+
Full patch notes: [docs/releases/v0.2.19.md](docs/releases/v0.2.19.md).
|
|
444
|
+
|
|
433
445
|
### 0.2.18 repository-root and self-audit trust patch
|
|
434
446
|
|
|
435
447
|
- A directory nested under an ignored parent Git repository is no longer mistaken for an empty
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Weavatrix 0.2.19
|
|
2
|
+
|
|
3
|
+
0.2.19 is a supply-chain signal-precision patch. It was produced after the complete Hosted
|
|
4
|
+
installed-package scan exposed false positives in otherwise ordinary dependency content.
|
|
5
|
+
|
|
6
|
+
## Malware evidence precision
|
|
7
|
+
|
|
8
|
+
- A hardcoded external URL is no longer sufficient for a malware finding.
|
|
9
|
+
- A standalone `fetch`, Axios, request, curl or wget call to an ordinary external URL is also weak
|
|
10
|
+
evidence by itself. It remains attached as bounded co-evidence when the same package has a
|
|
11
|
+
separate security signal, such as whole-environment serialization.
|
|
12
|
+
- Strong URL and execution evidence is unchanged: known exfil/webhook hosts, public raw-IP URLs,
|
|
13
|
+
cloud metadata endpoints, download-plus-exec lifecycle scripts, reverse shells and miners still
|
|
14
|
+
produce review findings.
|
|
15
|
+
- Unicode variation selectors (`U+FE00`–`U+FE0F`) are presentation controls commonly used with
|
|
16
|
+
emoji and no longer trigger hidden-Unicode review. Bidirectional override/isolate controls remain
|
|
17
|
+
covered because they can conceal source order.
|
|
18
|
+
|
|
19
|
+
## Verification
|
|
20
|
+
|
|
21
|
+
- Synthetic end-to-end fixtures prove ordinary URL literals, standalone network calls and variation
|
|
22
|
+
selectors stay quiet while multi-signal and strong malicious families remain detectable.
|
|
23
|
+
- Real Weavatrix Hosted dogfood checked 651/651 pinned package versions through OSV with no known
|
|
24
|
+
advisories and scanned 535 installed npm packages with zero malware findings.
|
|
25
|
+
- The same audit reports complete npm declaration/import verification, zero missing dependencies,
|
|
26
|
+
zero unused dependencies, zero duplicate declarations and zero runtime cycles.
|
|
27
|
+
- Full release tests, release-manifest checks, npm/MCPB pack/runtime smoke and supported Node CI remain
|
|
28
|
+
mandatory before publication.
|
|
29
|
+
|
|
30
|
+
## Product boundary
|
|
31
|
+
|
|
32
|
+
The offline package remains MIT. The accepted 0.3 split and the separate permission-licensed online
|
|
33
|
+
connector are unchanged by this patch.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "weavatrix",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.19",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Local repository intelligence MCP for AI coding agents: reusable architecture graph for fast application understanding, Health, dead code, clones, history, blast radius and architecture safeguards.",
|
|
6
6
|
"author": "Sergii Ziborov <sergii.ziborov@gmail.com>",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"scripts/run-agent-task-benchmark.mjs",
|
|
28
28
|
"docs/agent-task-benchmark.md",
|
|
29
29
|
"docs/adr/0001-v0.3-offline-online-split.md",
|
|
30
|
-
"docs/releases/v0.2.
|
|
30
|
+
"docs/releases/v0.2.19.md",
|
|
31
31
|
"README.md",
|
|
32
32
|
"SECURITY.md",
|
|
33
33
|
"LICENSE"
|
|
@@ -22,6 +22,10 @@ function addTyposquatCoSignals(byPkg) {
|
|
|
22
22
|
function visibleSignals(signals, allow) {
|
|
23
23
|
const kept = signals.filter((s) => !(allow && s.noisy));
|
|
24
24
|
if (!kept.length) return [];
|
|
25
|
+
// A literal URL, or even a network call to one, is ordinary package behavior without a second
|
|
26
|
+
// security signal. Keep those weak observations available as co-evidence (for example beside
|
|
27
|
+
// environment harvesting), but never create a standalone malware finding from them.
|
|
28
|
+
if (!kept.some((s) => !s.weak)) return [];
|
|
25
29
|
const hasStrongerUrl = kept.some((s) => STRONG_URL_KEYS.has(s.key));
|
|
26
30
|
return hasStrongerUrl ? kept.filter((s) => s.key !== "hardcoded-url") : kept;
|
|
27
31
|
}
|
|
@@ -90,6 +90,7 @@ export const CONTENT_RULES = [
|
|
|
90
90
|
severity: "low",
|
|
91
91
|
nearZeroFp: false,
|
|
92
92
|
noisy: true,
|
|
93
|
+
weak: true,
|
|
93
94
|
pattern: "(fetch|axios\\.|XMLHttpRequest|sendBeacon|https?\\.request|request\\(|curl\\b|wget\\b).{0,220}https?://",
|
|
94
95
|
re: new RegExp(`\\b(fetch|axios\\.(get|post|put|patch|request)|XMLHttpRequest|sendBeacon|https?\\.request|http\\.request|request\\(|curl\\b|wget\\b)[\\s\\S]{0,220}?${PLAIN_EXTERNAL_URL}`, "i"),
|
|
95
96
|
what: "network call to hardcoded external URL",
|
|
@@ -172,9 +173,9 @@ export const CONTENT_RULES = [
|
|
|
172
173
|
key: "hidden-unicode",
|
|
173
174
|
severity: "medium",
|
|
174
175
|
nearZeroFp: false,
|
|
175
|
-
pattern: "[\\x{202A}-\\x{202E}\\x{2066}-\\x{2069}
|
|
176
|
-
re: new RegExp("\\u202A|\\u202B|\\u202C|\\u202D|\\u202E|\\u2066|\\u2067|\\u2068|\\u2069
|
|
177
|
-
what: "hidden Unicode control
|
|
176
|
+
pattern: "[\\x{202A}-\\x{202E}\\x{2066}-\\x{2069}]",
|
|
177
|
+
re: new RegExp("\\u202A|\\u202B|\\u202C|\\u202D|\\u202E|\\u2066|\\u2067|\\u2068|\\u2069", "u"),
|
|
178
|
+
what: "hidden bidirectional Unicode control character in package source",
|
|
178
179
|
},
|
|
179
180
|
{
|
|
180
181
|
key: "obfuscated-code",
|
package/docs/releases/v0.2.18.md
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
# Weavatrix 0.2.18
|
|
2
|
-
|
|
3
|
-
0.2.18 is the publishable repository-root and self-audit trust patch. The `v0.2.17` source tag was
|
|
4
|
-
created, but its release validation exposed the nested-root discovery regression before an npm
|
|
5
|
-
package was published. The tag remains immutable; 0.2.18 contains that release plus the fix.
|
|
6
|
-
|
|
7
|
-
## Repository discovery
|
|
8
|
-
|
|
9
|
-
- The internal builder distinguishes an actual Git root from a directory that merely lives below
|
|
10
|
-
another Git repository.
|
|
11
|
-
- When the selected nested directory is ignored by its parent and Git returns an ambiguous empty
|
|
12
|
-
file universe, Weavatrix uses its boundary-safe filesystem walker instead of building a zero-node
|
|
13
|
-
graph.
|
|
14
|
-
- A real Git root with an empty tracked/unignored universe stays empty, so ignored build output and
|
|
15
|
-
secrets are not reintroduced.
|
|
16
|
-
- The live stdio hot-reload regression now exercises the corrected path and passes independently,
|
|
17
|
-
matching the Linux release runner rather than depending on full-suite ordering.
|
|
18
|
-
|
|
19
|
-
## Included 0.2.17 trust work
|
|
20
|
-
|
|
21
|
-
- Drizzle configuration roots its schema modules in production reachability.
|
|
22
|
-
- Scoped typosquat review compares only compatible scoped targets.
|
|
23
|
-
- Executable regular expressions retain equality anchors for clone fingerprints without exposing
|
|
24
|
-
their source text.
|
|
25
|
-
- Obsolete test-only dependency parsers were removed and repeated dependency, graph and architecture
|
|
26
|
-
helpers were consolidated under shared owners.
|
|
27
|
-
- Hosted evidence applies the same production-first classification and recomputes bounded summaries
|
|
28
|
-
after filtering.
|
|
29
|
-
|
|
30
|
-
## Product boundary
|
|
31
|
-
|
|
32
|
-
- `weavatrix` remains MIT and offline-first. No license change is made here.
|
|
33
|
-
- The accepted 0.3 split moves outbound HTTP into the separately versioned `weavatrix-online`
|
|
34
|
-
connector, whose permission-required license remains a release gate.
|
|
35
|
-
|
|
36
|
-
## Verification
|
|
37
|
-
|
|
38
|
-
Release validation covers the full Node test suite on supported Node versions, independent hot
|
|
39
|
-
reload execution, release-manifest checks, npm/MCPB packing and runtime smoke tests. The paired
|
|
40
|
-
Hosted deployment is rebuilt from this graph, then verified through its live Health and History
|
|
41
|
-
views.
|