weavatrix 0.3.14 → 1.0.0

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 (305) hide show
  1. package/LICENSE +1 -0
  2. package/README.md +231 -199
  3. package/bin/native/darwin-arm64/weavatrix +0 -0
  4. package/bin/native/darwin-x64/weavatrix +0 -0
  5. package/bin/native/linux-arm64/weavatrix +0 -0
  6. package/bin/native/linux-x64/weavatrix +0 -0
  7. package/bin/native/win32-arm64/weavatrix.exe +0 -0
  8. package/bin/native/win32-x64/weavatrix.exe +0 -0
  9. package/bin/resolve-binary.mjs +73 -0
  10. package/bin/run-native.mjs +26 -0
  11. package/bin/weavatrix-mcp.mjs +7 -6
  12. package/bin/weavatrix.mjs +5 -0
  13. package/package.json +8 -66
  14. package/skill/SKILL.md +62 -374
  15. package/skill/agents/openai.yaml +4 -0
  16. package/skill/references/tool-routing.md +45 -0
  17. package/SECURITY.md +0 -101
  18. package/docs/adr/0001-v0.3-offline-online-split.md +0 -60
  19. package/docs/agent-task-benchmark.md +0 -58
  20. package/docs/releases/v0.2.19.md +0 -33
  21. package/docs/releases/v0.3.0.md +0 -43
  22. package/docs/releases/v0.3.1.md +0 -30
  23. package/docs/releases/v0.3.10.md +0 -76
  24. package/docs/releases/v0.3.11.md +0 -55
  25. package/docs/releases/v0.3.12.md +0 -44
  26. package/docs/releases/v0.3.13.md +0 -34
  27. package/docs/releases/v0.3.14.md +0 -37
  28. package/docs/releases/v0.3.2.md +0 -15
  29. package/docs/releases/v0.3.3.md +0 -25
  30. package/docs/releases/v0.3.4.md +0 -40
  31. package/docs/releases/v0.3.5.md +0 -50
  32. package/docs/releases/v0.3.6.md +0 -44
  33. package/docs/releases/v0.3.7.md +0 -37
  34. package/docs/releases/v0.3.8.md +0 -21
  35. package/docs/releases/v0.3.9.md +0 -36
  36. package/scripts/run-agent-task-benchmark.mjs +0 -118
  37. package/src/analysis/allowed-test-runner.js +0 -70
  38. package/src/analysis/architecture/contract-graph.js +0 -119
  39. package/src/analysis/architecture/contract-schema.js +0 -110
  40. package/src/analysis/architecture/contract-storage.js +0 -35
  41. package/src/analysis/architecture/contract-verification.js +0 -168
  42. package/src/analysis/architecture-contract.js +0 -16
  43. package/src/analysis/audit-debt.js +0 -94
  44. package/src/analysis/audit-extensions.js +0 -60
  45. package/src/analysis/cargo-dependency-evidence.js +0 -108
  46. package/src/analysis/cargo-manifests.js +0 -81
  47. package/src/analysis/change-classification/diff-parser.js +0 -103
  48. package/src/analysis/change-classification/options.js +0 -40
  49. package/src/analysis/change-classification/symbol-classifier.js +0 -177
  50. package/src/analysis/change-classification.js +0 -188
  51. package/src/analysis/coverage-reports-tarpaulin.js +0 -112
  52. package/src/analysis/coverage-reports.js +0 -246
  53. package/src/analysis/cycle-route.js +0 -14
  54. package/src/analysis/data-flow-evidence.js +0 -114
  55. package/src/analysis/dead-check.js +0 -300
  56. package/src/analysis/dead-code-review/candidates.js +0 -194
  57. package/src/analysis/dead-code-review/policy.js +0 -23
  58. package/src/analysis/dead-code-review.js +0 -119
  59. package/src/analysis/dep-check-ecosystems.js +0 -205
  60. package/src/analysis/dep-check.js +0 -290
  61. package/src/analysis/dep-rules.js +0 -10
  62. package/src/analysis/dependency/conventions.js +0 -16
  63. package/src/analysis/dependency/scoped-dependencies.js +0 -51
  64. package/src/analysis/dependency/source-references.js +0 -21
  65. package/src/analysis/duplicate-groups.js +0 -104
  66. package/src/analysis/duplicates-worker.js +0 -11
  67. package/src/analysis/duplicates.compute.js +0 -269
  68. package/src/analysis/duplicates.js +0 -15
  69. package/src/analysis/duplicates.run.js +0 -52
  70. package/src/analysis/duplicates.tokenize.js +0 -199
  71. package/src/analysis/endpoints/common.js +0 -79
  72. package/src/analysis/endpoints/extract.js +0 -120
  73. package/src/analysis/endpoints/inventory.js +0 -84
  74. package/src/analysis/endpoints/mounts.js +0 -129
  75. package/src/analysis/endpoints-java.js +0 -260
  76. package/src/analysis/endpoints-rust.js +0 -124
  77. package/src/analysis/endpoints.js +0 -3
  78. package/src/analysis/findings.js +0 -70
  79. package/src/analysis/git-history/analytics.js +0 -177
  80. package/src/analysis/git-history/collector.js +0 -67
  81. package/src/analysis/git-history/options.js +0 -66
  82. package/src/analysis/git-history.js +0 -143
  83. package/src/analysis/git-ref-graph.js +0 -76
  84. package/src/analysis/go-dependency-evidence.js +0 -62
  85. package/src/analysis/graph-analysis.aggregate.js +0 -296
  86. package/src/analysis/graph-analysis.edges.js +0 -24
  87. package/src/analysis/graph-analysis.js +0 -7
  88. package/src/analysis/graph-analysis.refs.js +0 -202
  89. package/src/analysis/graph-analysis.summaries.js +0 -65
  90. package/src/analysis/health-capabilities.js +0 -83
  91. package/src/analysis/hot-path-review.js +0 -266
  92. package/src/analysis/http-contract-wrappers.js +0 -241
  93. package/src/analysis/http-contracts/analysis.js +0 -179
  94. package/src/analysis/http-contracts/client-call-detection.js +0 -82
  95. package/src/analysis/http-contracts/client-call-parser.js +0 -273
  96. package/src/analysis/http-contracts/graph-context.js +0 -143
  97. package/src/analysis/http-contracts/matching.js +0 -61
  98. package/src/analysis/http-contracts/shared.js +0 -85
  99. package/src/analysis/http-contracts.js +0 -6
  100. package/src/analysis/internal-audit/dependency-health.js +0 -113
  101. package/src/analysis/internal-audit/python-manifests.js +0 -78
  102. package/src/analysis/internal-audit/repo-files.js +0 -50
  103. package/src/analysis/internal-audit/supply-chain.js +0 -149
  104. package/src/analysis/internal-audit.collect.js +0 -213
  105. package/src/analysis/internal-audit.js +0 -9
  106. package/src/analysis/internal-audit.reach.js +0 -201
  107. package/src/analysis/internal-audit.run.js +0 -256
  108. package/src/analysis/java-source.js +0 -36
  109. package/src/analysis/jvm-artifact-index.js +0 -87
  110. package/src/analysis/jvm-dependency-evidence.js +0 -138
  111. package/src/analysis/jvm-manifests.js +0 -114
  112. package/src/analysis/manifests.js +0 -123
  113. package/src/analysis/package-reachability.js +0 -39
  114. package/src/analysis/source-complexity.ast.js +0 -97
  115. package/src/analysis/source-complexity.constants.js +0 -55
  116. package/src/analysis/source-complexity.js +0 -14
  117. package/src/analysis/source-complexity.report.js +0 -81
  118. package/src/analysis/source-complexity.walk.js +0 -228
  119. package/src/analysis/source-correctness/retry-patterns.js +0 -93
  120. package/src/analysis/source-correctness.js +0 -222
  121. package/src/analysis/static-test-reachability.js +0 -150
  122. package/src/analysis/structure/dependency-graph.js +0 -151
  123. package/src/analysis/structure/findings.js +0 -162
  124. package/src/analysis/task-retrieval.js +0 -107
  125. package/src/analysis/transport-contracts.js +0 -224
  126. package/src/analysis/transport-runtime-evidence.js +0 -155
  127. package/src/analysis-kit.mjs +0 -17
  128. package/src/bounds.js +0 -4
  129. package/src/build-graph.js +0 -209
  130. package/src/child-env.js +0 -7
  131. package/src/config.js +0 -5
  132. package/src/extension/local-services.mjs +0 -75
  133. package/src/git-exec.js +0 -67
  134. package/src/graph/build-worker.js +0 -49
  135. package/src/graph/builder/go-receiver-resolution.js +0 -112
  136. package/src/graph/builder/js/dynamic-import.js +0 -26
  137. package/src/graph/builder/js/queries.js +0 -48
  138. package/src/graph/builder/lang-csharp.js +0 -40
  139. package/src/graph/builder/lang-css.js +0 -29
  140. package/src/graph/builder/lang-go.js +0 -140
  141. package/src/graph/builder/lang-html.js +0 -29
  142. package/src/graph/builder/lang-java-calls.js +0 -142
  143. package/src/graph/builder/lang-java.js +0 -215
  144. package/src/graph/builder/lang-js.js +0 -291
  145. package/src/graph/builder/lang-python.js +0 -235
  146. package/src/graph/builder/lang-rust-calls.js +0 -63
  147. package/src/graph/builder/lang-rust.js +0 -299
  148. package/src/graph/builder/lang-solidity.js +0 -126
  149. package/src/graph/builder/lang-sql.js +0 -263
  150. package/src/graph/builder/pass2-resolution.js +0 -81
  151. package/src/graph/builder/spec-pkg.js +0 -87
  152. package/src/graph/community.js +0 -27
  153. package/src/graph/edge-provenance.js +0 -31
  154. package/src/graph/file-lock.js +0 -69
  155. package/src/graph/freshness-probe.js +0 -142
  156. package/src/graph/graph-filter.js +0 -63
  157. package/src/graph/incremental-refresh.js +0 -235
  158. package/src/graph/internal-builder.barrels.js +0 -235
  159. package/src/graph/internal-builder.build.js +0 -300
  160. package/src/graph/internal-builder.java.js +0 -33
  161. package/src/graph/internal-builder.js +0 -12
  162. package/src/graph/internal-builder.langs.js +0 -157
  163. package/src/graph/internal-builder.pass2.js +0 -163
  164. package/src/graph/internal-builder.resolvers.js +0 -286
  165. package/src/graph/layout.js +0 -51
  166. package/src/graph/node-id.js +0 -7
  167. package/src/graph/parser-artifact-boundary.js +0 -55
  168. package/src/graph/relations.js +0 -4
  169. package/src/graph/repo-registry.js +0 -124
  170. package/src/graph/resolvers/rust.js +0 -117
  171. package/src/infra/infra-items.js +0 -255
  172. package/src/infra/infra-registry.js +0 -184
  173. package/src/infra/infra.detect.js +0 -119
  174. package/src/infra/infra.js +0 -38
  175. package/src/infra/infra.match.js +0 -102
  176. package/src/infra/infra.scan.js +0 -93
  177. package/src/mcp/actions/graph-lifecycle.mjs +0 -148
  178. package/src/mcp/architecture-bootstrap.mjs +0 -168
  179. package/src/mcp/architecture-starter.mjs +0 -234
  180. package/src/mcp/catalog.mjs +0 -233
  181. package/src/mcp/company-contract-page.mjs +0 -142
  182. package/src/mcp/company-contract-reconcile.mjs +0 -87
  183. package/src/mcp/company-contract-verdict.mjs +0 -42
  184. package/src/mcp/evidence/bun-lock-graph.mjs +0 -209
  185. package/src/mcp/evidence/duplicate-member-order.mjs +0 -8
  186. package/src/mcp/evidence/package-graph-common.mjs +0 -115
  187. package/src/mcp/evidence/package-lock-graph.mjs +0 -92
  188. package/src/mcp/evidence-snapshot.architecture.mjs +0 -80
  189. package/src/mcp/evidence-snapshot.common.mjs +0 -158
  190. package/src/mcp/evidence-snapshot.duplicates.mjs +0 -213
  191. package/src/mcp/evidence-snapshot.health.mjs +0 -102
  192. package/src/mcp/evidence-snapshot.inventory.mjs +0 -148
  193. package/src/mcp/evidence-snapshot.mjs +0 -50
  194. package/src/mcp/evidence-snapshot.package-graph.mjs +0 -34
  195. package/src/mcp/evidence-snapshot.structure.mjs +0 -84
  196. package/src/mcp/extension-api.mjs +0 -77
  197. package/src/mcp/git-output.mjs +0 -7
  198. package/src/mcp/graph/context-core.mjs +0 -111
  199. package/src/mcp/graph/context-seeds.mjs +0 -207
  200. package/src/mcp/graph/context-state.mjs +0 -85
  201. package/src/mcp/graph/reverse-reach.mjs +0 -42
  202. package/src/mcp/graph/tools-core.mjs +0 -143
  203. package/src/mcp/graph/tools-query.mjs +0 -276
  204. package/src/mcp/graph-context.mjs +0 -5
  205. package/src/mcp/graph-diff.mjs +0 -218
  206. package/src/mcp/health/audit-format.mjs +0 -199
  207. package/src/mcp/health/audit.mjs +0 -199
  208. package/src/mcp/health/dead-code.mjs +0 -110
  209. package/src/mcp/health/duplicates.mjs +0 -121
  210. package/src/mcp/health/endpoints.mjs +0 -71
  211. package/src/mcp/health/structure.mjs +0 -220
  212. package/src/mcp/runtime-version.mjs +0 -31
  213. package/src/mcp/server/auto-refresh.mjs +0 -66
  214. package/src/mcp/server/runtime-config.mjs +0 -43
  215. package/src/mcp/server/shutdown.mjs +0 -40
  216. package/src/mcp/staleness-notice.mjs +0 -20
  217. package/src/mcp/sync/evidence-architecture.mjs +0 -54
  218. package/src/mcp/sync/evidence-common.mjs +0 -88
  219. package/src/mcp/sync/evidence-duplicates.mjs +0 -97
  220. package/src/mcp/sync/evidence-health.mjs +0 -56
  221. package/src/mcp/sync/evidence-packages.mjs +0 -95
  222. package/src/mcp/sync/payload-common.mjs +0 -97
  223. package/src/mcp/sync/payload-v2.mjs +0 -54
  224. package/src/mcp/sync/payload-v3.mjs +0 -79
  225. package/src/mcp/sync-evidence.mjs +0 -23
  226. package/src/mcp/sync-payload.mjs +0 -70
  227. package/src/mcp/tool-result.mjs +0 -54
  228. package/src/mcp/tools-actions.mjs +0 -11
  229. package/src/mcp/tools-architecture.mjs +0 -177
  230. package/src/mcp/tools-company.mjs +0 -251
  231. package/src/mcp/tools-context.mjs +0 -222
  232. package/src/mcp/tools-endpoints.mjs +0 -207
  233. package/src/mcp/tools-graph-hubs.mjs +0 -78
  234. package/src/mcp/tools-graph.mjs +0 -17
  235. package/src/mcp/tools-health.mjs +0 -24
  236. package/src/mcp/tools-history.mjs +0 -28
  237. package/src/mcp/tools-impact-change.mjs +0 -220
  238. package/src/mcp/tools-impact-precision.mjs +0 -89
  239. package/src/mcp/tools-impact.mjs +0 -169
  240. package/src/mcp/tools-source.mjs +0 -238
  241. package/src/mcp/tools-verified-change.mjs +0 -200
  242. package/src/mcp-rg.mjs +0 -50
  243. package/src/mcp-runtime.mjs +0 -2
  244. package/src/mcp-server.mjs +0 -298
  245. package/src/mcp-source-tools.mjs +0 -163
  246. package/src/path-classification.js +0 -226
  247. package/src/path-ignore.js +0 -69
  248. package/src/precision/lsp-client/constants.js +0 -12
  249. package/src/precision/lsp-client/environment.js +0 -20
  250. package/src/precision/lsp-client/errors.js +0 -15
  251. package/src/precision/lsp-client/lifecycle.js +0 -114
  252. package/src/precision/lsp-client/message-parser.js +0 -81
  253. package/src/precision/lsp-client/protocol.js +0 -212
  254. package/src/precision/lsp-client/registry.js +0 -59
  255. package/src/precision/lsp-client/repo-uri.js +0 -60
  256. package/src/precision/lsp-client/stdio-client.js +0 -140
  257. package/src/precision/lsp-client.js +0 -10
  258. package/src/precision/lsp-overlay/budget-policy.js +0 -78
  259. package/src/precision/lsp-overlay/build.js +0 -261
  260. package/src/precision/lsp-overlay/contract.js +0 -61
  261. package/src/precision/lsp-overlay/reference-results.js +0 -108
  262. package/src/precision/lsp-overlay/semantic-inputs.js +0 -62
  263. package/src/precision/lsp-overlay/source-session.js +0 -142
  264. package/src/precision/lsp-overlay/store.js +0 -150
  265. package/src/precision/lsp-overlay/target-index.js +0 -152
  266. package/src/precision/lsp-overlay/target-query.js +0 -55
  267. package/src/precision/lsp-overlay.js +0 -11
  268. package/src/precision/symbol-query.js +0 -224
  269. package/src/precision/typescript-lsp-provider.js +0 -12
  270. package/src/precision/typescript-provider/client.js +0 -89
  271. package/src/precision/typescript-provider/discovery.js +0 -124
  272. package/src/precision/typescript-provider/isolated-runtime.js +0 -39
  273. package/src/precision/typescript-provider/project-host.js +0 -254
  274. package/src/precision/typescript-provider/project-safety.js +0 -166
  275. package/src/precision/typescript-provider/reference-usage.js +0 -53
  276. package/src/process.js +0 -95
  277. package/src/repo-path.js +0 -53
  278. package/src/scan/discover.inventory.js +0 -78
  279. package/src/scan/discover.js +0 -5
  280. package/src/scan/discover.list.js +0 -79
  281. package/src/scan/discover.stack.js +0 -227
  282. package/src/scan/search.core.js +0 -24
  283. package/src/scan/search.git.js +0 -102
  284. package/src/scan/search.js +0 -9
  285. package/src/scan/search.node.js +0 -83
  286. package/src/scan/search.preview.js +0 -49
  287. package/src/scan/search.rg.js +0 -145
  288. package/src/security/advisory-store.js +0 -172
  289. package/src/security/installed-jvm-rust.js +0 -46
  290. package/src/security/installed.js +0 -280
  291. package/src/security/malware-file-heuristics.js +0 -121
  292. package/src/security/malware-heuristics.exclusions.js +0 -134
  293. package/src/security/malware-heuristics.js +0 -15
  294. package/src/security/malware-heuristics.roots.js +0 -145
  295. package/src/security/malware-heuristics.scan.js +0 -89
  296. package/src/security/malware-heuristics.sweep.js +0 -122
  297. package/src/security/malware-scoring.js +0 -105
  298. package/src/security/match.js +0 -85
  299. package/src/security/registry-sig.classify.js +0 -137
  300. package/src/security/registry-sig.js +0 -18
  301. package/src/security/registry-sig.rules.js +0 -192
  302. package/src/security/rust-advisory-report.js +0 -60
  303. package/src/security/typosquat.js +0 -81
  304. package/src/util.js +0 -40
  305. package/src/version.js +0 -7
package/SECURITY.md DELETED
@@ -1,101 +0,0 @@
1
- # Security Policy
2
-
3
- ## Supported versions
4
-
5
- | Version | Supported |
6
- |---|---|
7
- | `0.3.x` | Yes |
8
- | `0.2.x` and older | Upgrade to the latest release |
9
-
10
- Security fixes are provided for the latest published version of Weavatrix. Upgrade before reporting
11
- an issue that may already be resolved.
12
-
13
- ## Reporting a vulnerability
14
-
15
- Please do not open a public issue for a suspected vulnerability. Use GitHub's private vulnerability
16
- reporting flow:
17
-
18
- https://github.com/sergii-ziborov/weavatrix/security/advisories/new
19
-
20
- Include the affected Weavatrix version, operating system, MCP client, enabled capability groups,
21
- reproduction steps, expected boundary, observed behavior, and potential impact. Avoid including real
22
- credentials, private source code, or other sensitive data in the report.
23
-
24
- Reports will be investigated privately. Public disclosure should be coordinated after a fix or
25
- mitigation is available so users have a reasonable opportunity to update.
26
-
27
- ## Security boundaries
28
-
29
- The default `offline` MCP profile exposes no HTTP tools. Every standard source, manifest,
30
- configuration and coverage read is canonical-path-contained within the active repository and rejects
31
- traversal plus symlink or junction escapes. The optional malware dependency scan may inspect installed
32
- dependency caches such as GOPATH. `offline` permits repository switching only through an explicit
33
- local `open_repo` call; select `pinned` to remove that tool, the global repository listing, and
34
- cross-repository API tracing, holding a hard startup-repository boundary.
35
-
36
- Installed-package malware pattern matching is static heuristic evidence. It cannot confirm execution,
37
- package compromise, or credential exposure and therefore cannot emit `critical`; heuristic severity
38
- is capped at `high` with explicit `NOT_VERIFIED` runtime/origin/lockfile/exposure fields. Independently
39
- confirmed malicious-package advisories remain separate vulnerability evidence and may be critical.
40
-
41
- The JS/TS precision overlay is enabled by default for new graphs and runs the package-pinned `typescript-language-server` and
42
- TypeScript runtime as local child processes. It never resolves a repository executable, invokes
43
- `npx`, runs package scripts, or installs dependencies. Automatic type acquisition is disabled, and
44
- the provider receives an allowlisted OS/temp/locale environment with a constrained executable path;
45
- registry, proxy, cloud, token and `NODE_OPTIONS` values are excluded. The provider makes no
46
- Weavatrix HTTP request and Weavatrix transmits no source or evidence. TypeScript may still read
47
- locally declared project configuration, dependencies and type declarations; returned evidence is
48
- accepted only after repository realpath containment. Before spawning the provider, Weavatrix parses
49
- the applicable repo-contained TypeScript/JavaScript config chains with its bundled TypeScript API and
50
- refuses semantic mode when a configured language-service plugin, unresolved/outside config, or input
51
- safety limit is encountered. Config and configured-project inputs are fingerprinted and rechecked
52
- before cached evidence is used and after each provider run.
53
- This is an application/process boundary rather than an operating-system
54
- network sandbox. On stdio EOF, SIGTERM or SIGINT, the MCP server stops new providers, performs a
55
- bounded graph-work drain, and closes or tree-terminates TLS/tsserver before exiting.
56
- Set `WEAVATRIX_PRECISION=off` before server startup (or select `off` in the MCPB semantic-precision
57
- setting) to keep new graphs parser-only from their first build.
58
-
59
- The parser runtime and language grammars are also exact package-pinned dependencies. Before compiling
60
- WASM, Weavatrix requires the runtime and every selected grammar to resolve inside their dependency
61
- directories and match a release-pinned SHA-256 allowlist. Repository paths, URLs, symlinks and custom
62
- `runtimeWasm`/`wasmDir` overrides cannot enter this path. This specifically bounds the generated
63
- Emscripten dynamic-module loader in `web-tree-sitter`: although upstream contains `eval` glue for
64
- EM_ASM/EM_JS side-module exports, Weavatrix supplies only its known local runtime and grammar artifacts.
65
- An integrity mismatch fails the graph build instead of silently falling back to an unverified parser.
66
-
67
- Dependency scanners should distinguish a package's declared license from component notices.
68
- `typescript@5.9.3` declares `Apache-2.0`; its `ThirdPartyNoticeText.txt` also reproduces the W3C Community
69
- Final Specification Agreement for the Web Background Synchronization specification. That attribution
70
- does not change the npm package's declared license, but conservative scanners may report the embedded
71
- notice separately. `web-tree-sitter@0.25.10` declares MIT; its generated loader is covered by the
72
- artifact boundary above. These observations are security evidence, not a request to suppress third-party
73
- scanner warnings or legal advice.
74
-
75
- `verified_change` is read-only by default. Its optional targeted-test step can execute only an
76
- existing `package.json` script whose name matches the bounded test/check/verify allowlist. The call
77
- must set `run_tests:true` and the server operator must separately set
78
- `WEAVATRIX_ALLOW_TEST_RUNS=1`; otherwise no repository script runs. The tool accepts no command or
79
- shell string, caps scripts/arguments/time, rejects shell-sensitive argument characters, and launches
80
- the selected package-manager script with the credential-stripped child environment. Repository test
81
- scripts are repository-controlled code and may have arbitrary side effects, so enable this flag only
82
- for repositories and scripts you trust.
83
-
84
- The 0.3 MIT artifact contains no HTTP tool, sync endpoint/token setting, remote advisory refresher or
85
- compatibility alias that can enable one. `offline` and `pinned` are both network-free. Advisory
86
- matching reads only a local validated cache; a missing or stale cache remains `NOT_CHECKED` or
87
- `PARTIAL`, never a clean zero.
88
-
89
- The public extension API allows a dependent package to add MCP tools, packaged skills and local
90
- audit providers. Extension tools cannot replace a core tool, extension profiles cannot replace a
91
- core profile, and audit providers must declare `network:"none"`; failures remain explicit
92
- `ERROR/PARTIAL`. The separate `weavatrix-online` superset owns endpoint policy, consent,
93
- authentication, capability negotiation and every outbound request.
94
-
95
- Every MCP response includes transient local `_meta["weavatrix/metrics"]` timing, output-size/token
96
- estimate, graph freshness/revision/update and graph-cache status. Weavatrix does not persist, aggregate
97
- or transmit these measurements; they are response evidence for the caller, not product telemetry.
98
-
99
- Core exposes local-only services that build and validate the bounded source-free payload, validate
100
- connector-provided advisory records, create opaque repository identity and cache a validated
101
- architecture contract. These services read no connector credential and perform no network I/O.
@@ -1,60 +0,0 @@
1
- # ADR 0001: Weavatrix 0.3 offline/online split
2
-
3
- Status: accepted; release candidate implemented
4
-
5
- Date: 2026-07-19
6
-
7
- ## Decision
8
-
9
- The public `weavatrix` package remains MIT licensed and becomes a strictly
10
- offline MCP in 0.3. Its analyzers, graph, local LSP provider, cache, repository
11
- registry, Health, dependency, duplicate, impact, history and architecture tools
12
- remain available without a network capability.
13
-
14
- All outbound HTTP tools move to the separate public-source `weavatrix-online`
15
- package, starting at 0.1.0. It uses the permission-required Weavatrix Online
16
- Source License 1.0 and remains unpublished until the paired release gates pass.
17
- It extends the MIT engine rather than copying or relicensing it.
18
-
19
- The managed Cloud and licensed self-hosted Enterprise products are private
20
- server implementations of the same source-free wire contract. Neither is
21
- bundled into the offline package.
22
-
23
- ## Tool ownership after extraction
24
-
25
- Offline owns local advisory matching but not remote refresh. Online owns:
26
-
27
- - `refresh_advisories`;
28
- - `preview_sync`;
29
- - `sync_graph`;
30
- - `pull_architecture_contract`;
31
- - endpoint capability negotiation and authentication.
32
-
33
- The exact final catalog is locked by tests before release. There is no legacy
34
- `online`, `hosted` or `full` alias in the offline artifact that can re-enable an
35
- HTTP implementation.
36
-
37
- ## Update model
38
-
39
- `weavatrix-online` depends on a compatible `weavatrix` release and uses a
40
- supported extension API. Parser, graph schema, LSP and baseline Health fixes
41
- are therefore updated once in the MIT core. Online is an expanded superset: it
42
- may add proprietary MCP tools, packaged skills and local analyzer providers as
43
- well as transport, endpoint/authentication and consent workflows. It cannot
44
- replace or carry patched copies of core implementations.
45
-
46
- ## Release gates
47
-
48
- The two public packages are released as a compatible pair only after:
49
-
50
- 1. offline npm, MCPB, skill, server metadata and docs expose no HTTP tools or
51
- hosted URL/token inputs;
52
- 2. network action modules and fetch paths are absent from the offline package;
53
- 3. the online connector passes the same local graph/Health regression suite
54
- through its core dependency;
55
- 4. Cloud and Enterprise pass one wire-contract suite;
56
- 5. license metadata clearly distinguishes MIT core from permission-required,
57
- source-available connector code;
58
- 6. stale 0.2 processes fail clearly rather than advertising mixed catalogs.
59
-
60
- Existing MIT releases are unchanged and remain usable under MIT.
@@ -1,58 +0,0 @@
1
- # Independent agent-change benchmark
2
-
3
- The 0.2.7 release includes two deliberately separate measurements.
4
-
5
- `npm run benchmark:agent` is a deterministic local routing microbenchmark. It measures whether the
6
- task retriever selects the expected symbol, plus false-positive selections, estimated output tokens,
7
- and local latency. It is a regression test, not evidence that an autonomous code change succeeded.
8
-
9
- The release comparison is an independently executed, blind agent-change benchmark. The evaluator
10
- must run the same pinned tasks and repository commits three times: with Weavatrix, with Codebase
11
- Memory, and with Serena. The product author must not adjudicate or repair a run while it is active.
12
-
13
- ## Required task protocol
14
-
15
- Each task must provide a repository commit, natural-language request, allowed commands, timeout, and
16
- machine-verifiable acceptance tests. Keep task prompts and acceptance tests identical across systems;
17
- randomize system order. Record the entire agent input/output token count and wall-clock duration.
18
-
19
- A run is successful only when the requested behavior is implemented, all acceptance tests pass, and
20
- the final diff stays inside the task scope. A false positive is an evidenced warning, impacted symbol,
21
- or required edit that an evaluator confirms is unrelated to the task. Record a count, including zero;
22
- do not silently discard noisy output.
23
-
24
- Use a mix of at least:
25
-
26
- - behavior changes with indirect callers;
27
- - API route/client changes;
28
- - refactors with a duplicate or architecture regression trap;
29
- - changes whose nearest relevant test is not in the edited file;
30
- - one negative task where the correct action is to refuse or return unknown.
31
-
32
- ## Result contract
33
-
34
- Save the blind evaluator output as JSON:
35
-
36
- ```json
37
- {
38
- "schemaVersion": "weavatrix.agent-change-results.v1",
39
- "evaluator": "independent organization or person",
40
- "systems": {
41
- "weavatrix": {"runs": [{"taskId": "change-auth", "success": true, "falsePositives": 0, "tokens": 1234, "durationMs": 4567}]},
42
- "codebase-memory": {"runs": [{"taskId": "change-auth", "success": true, "falsePositives": 1, "tokens": 1400, "durationMs": 5000}]},
43
- "serena": {"runs": [{"taskId": "change-auth", "success": false, "falsePositives": 2, "tokens": 1600, "durationMs": 7000}]}
44
- }
45
- }
46
- ```
47
-
48
- Every system must contain the same unique task IDs. Every run must report success, false positives,
49
- tokens, and duration. Then run:
50
-
51
- ```sh
52
- npm run benchmark:agent -- --independent-results path/to/results.json
53
- npm run benchmark:agent:release -- --independent-results path/to/results.json
54
- ```
55
-
56
- The first command reports change-success rate, false positives per task, median tokens, and median
57
- duration for all three systems. The release command fails unless the independent comparison is
58
- complete and valid. Missing or malformed competitor data is `INCOMPLETE`, never a green comparison.
@@ -1,33 +0,0 @@
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.
@@ -1,43 +0,0 @@
1
- # Weavatrix 0.3.0
2
-
3
- 0.3.0 makes the public MIT package a strictly network-free core and introduces
4
- the supported extension boundary used by the separately versioned
5
- `weavatrix-online` product.
6
-
7
- ## Trust boundary
8
-
9
- - The 34 core tools are local. Remote OSV refresh, endpoint authentication,
10
- architecture pull and graph sync were removed from this package.
11
- - Legacy `online`, `osv`, `hosted` and `full` profile names fail loudly. They
12
- cannot re-enable an outbound request implementation.
13
- - The offline artifact gate scans the packed source boundary and rejects an
14
- HTTP implementation or Hosted credential/config surface.
15
- - Extensions compose in-process through a stable API. They may add tools,
16
- skills and local audit providers without copying or patching the core.
17
-
18
- ## Critical precision fixes
19
-
20
- - Fresh dogfood of this repository produced 58 persisted `EXACT_LSP` edges.
21
- An on-demand `get_dependents(startMcpServer)` query returned its direct caller
22
- as `EXACT_LSP`; zero-edge `UNAVAILABLE` is no longer the expected JS/TS path.
23
- - `Cargo.lock` v3/v4 registry records become exact crates.io pins for offline
24
- OSV matching. A saved `cargo audit --json` report is also imported as native
25
- RustSec vulnerability/warning evidence; missing, invalid or stale reports
26
- remain visibly incomplete.
27
- - Maven/Gradle import-to-artifact evidence now reads exact class ownership from
28
- already installed JAR central directories without executing Java or a build.
29
- A missing JAR, unresolved property/catalog expression, ambiguity or heuristic
30
- fallback keeps the ecosystem `PARTIAL` instead of falsely claiming `COMPLETE`.
31
- - Cross-repository contracts combine static HTTP/GraphQL/gRPC/event models with
32
- source-free `weavatrix.transport-runtime.v1` reports. Normalized or OTLP JSON
33
- observations resolve an exact dynamic GraphQL field, gRPC method or
34
- Kafka/event destination only when the report is fresh, revision-matched,
35
- capture-complete and source-correlated. Missing or unobserved runtime paths
36
- remain explicit `UNKNOWN`, never false matches.
37
-
38
- ## Product family
39
-
40
- `weavatrix` remains the MIT base of the whole product family. The public-source,
41
- separately licensed `weavatrix-online` 0.1.0 package depends on this release and
42
- may add Online-only tools, skills and analyzers. Managed Cloud and licensed
43
- self-hosted servers implement the same source-free wire contract.
@@ -1,30 +0,0 @@
1
- # Weavatrix 0.3.1
2
-
3
- 0.3.1 fixes a dogfood-discovered blind spot in symbol-aware change impact when
4
- one generated or snapshot asset makes the aggregate Git diff exceed its byte
5
- budget.
6
-
7
- ## Bounded large-diff recovery
8
-
9
- - `change_impact` first keeps its normal bounded zero-context diff.
10
- - If that aggregate diff is oversized, it obtains the complete bounded changed-
11
- file list and recovers zero-context diffs one file at a time under the same
12
- global byte and time budgets.
13
- - Source files that fit retain line and symbol classification. Only individual
14
- oversized, timed-out or otherwise unreadable files become conservative
15
- `unknown` seeds.
16
- - The result remains `PARTIAL/HIGH` while any file lacks textual evidence; the
17
- fallback improves useful evidence without turning unknown into clean.
18
-
19
- ## Exact semantic evidence
20
-
21
- The global TypeScript/JavaScript LSP overlay is a bounded prewarm and may report
22
- `PARTIAL` on large repositories. Exact workflows are not limited by that global
23
- cap: `get_dependents` and `inspect_symbol` use revision-bound point queries, and
24
- `change_impact` uses one bounded exact batch for changed symbols.
25
-
26
- On the Hosted 0.3 release commit, the repaired fallback recovered 27/27 changed
27
- paths and 57 mapped symbol changes, reduced the conservative seed set from the
28
- 1,000 cap to 72, and produced `DIRECT_EXACT_TRANSITIVE_GRAPH` with 16/16 selected
29
- JS/TS symbols verified by `typescript-language-server`. The remaining large
30
- snapshot assets stayed explicit `unknown`; transitive hops stayed graph-backed.
@@ -1,76 +0,0 @@
1
- # Weavatrix 0.3.10
2
-
3
- 0.3.10 closes the honesty gaps a production evaluation surfaced: Rust inline
4
- tests are no longer reported as production code, endpoint tools are
5
- production-first everywhere, and semantic-precision statuses say exactly how
6
- much was actually proven. Every fix landed with regression tests and survived
7
- an adversarial multi-agent review of the full changeset.
8
-
9
- ## Node-level Rust test classification
10
-
11
- Rust puts unit tests inside production files, so path classification alone
12
- misreported them everywhere. The extractor now proves test-only compilation —
13
- `#[cfg(test)]` / `#[cfg(all(test, ...))]` on items, impl blocks and modules,
14
- `#[test]`/`#[tokio::test]`-style harness attributes and `#[bench]` functions,
15
- inner `#![cfg(test)]` attributes at file and module-body scope, and attributes
16
- separated from their item by comments — and stamps a `test_surface` flag on the
17
- node. Deliberately conservative: `#[cfg(any(test, ...))]` also ships in
18
- production builds and stays unclassified.
19
-
20
- Every consumer honors the flag like a path-classified test: `find_dead_code`
21
- (candidates and test-only consumer resolution), `query_graph` seeds and
22
- traversal, `hot_path_review`, `god_nodes`, `verified_change` task anchors,
23
- `no-tests`/`tests-only` build modes, hosted sync payloads and evidence
24
- snapshots. A test-term question or `include_tests`/`include_classified` opts
25
- back in. `extractorSchemaV` 5 → 6; cached graphs rebuild once, automatically.
26
-
27
- ## Production-first endpoint tools
28
-
29
- - `list_endpoints` suppresses endpoints declared in classified
30
- test/e2e/generated/mock/story/docs/benchmark/temp paths by default, with a
31
- count note and `include_classified` opt-in (auto-enabled on tests-only
32
- graphs). Opted-in rows carry `[classified:...]` tags.
33
- - `trace_endpoint` filters classified handler twins before its ambiguity
34
- check, ranks remaining same-named candidates by the import binding at the
35
- route file (below same-directory proximity — a file-level edge proves
36
- coupling, not identity), and reports `importBoundAtRoute`/`pathClasses` per
37
- candidate when it still fails closed.
38
- - New `handler_file` parameter resolves genuinely symmetric candidates: it
39
- narrows the full candidate pool before scoring, prefers exact repo-relative
40
- matches over path-suffix matches, and compares case-insensitively.
41
-
42
- ## Honest semantic-precision statuses
43
-
44
- `COMPLETE` previously meant only "the bounded request finished", producing
45
- `COMPLETE (0 EXACT_LSP edges)` on Rust repositories and `COMPLETE; exact
46
- absence was not proven` in `get_dependents`. Now:
47
-
48
- - A new `NONE` state covers the zero-eligible-targets outcome; `UNAVAILABLE`
49
- stays reserved for provider failure. `PRECISION_OVERLAY_V` 4 → 5 discards
50
- old-vocabulary sidecars.
51
- - `COMPLETE` requires every selected target actually probed.
52
- - `open_repo` and the build log print the `graph_stats`-style coverage
53
- fraction: `PARTIAL — 32/1373 bounded target(s) queried (truncated)`.
54
- - `get_dependents` never pairs a state word with a contradicting note, and
55
- keeps `NONE`/`UNAVAILABLE` truthful instead of collapsing them into
56
- `PARTIAL`.
57
-
58
- ## Output fidelity
59
-
60
- - `trace_api_contract` records per-endpoint method mismatches with sample
61
- callers and always shows a mismatch block, so `*_WITH_METHOD_MISMATCHES`
62
- verdicts stay backed by visible rows under any `top_n`.
63
- - Structure findings and hosted evidence snapshots stop reporting idiomatic
64
- Rust `mod.rs`/`lib.rs`/`main.rs` parent-child module-tree cycles as
65
- compile-time coupling (counted as `rustModuleTreeCouplings`; genuine
66
- cross-directory cycles still report).
67
- - `query_graph` edge lines and `shortest_path` hops widen repeated or generic
68
- file basenames (`mod.rs`, `index.*`, `__init__.py`) to their last two path
69
- segments.
70
-
71
- ## Documentation
72
-
73
- The always-fresh graph contract — debounced Git freshness probe plus bounded
74
- incremental refresh on every graph/health call, no watcher process required —
75
- is now documented in the README and the agent skill, together with the Rust
76
- test-surface classification rules.
@@ -1,55 +0,0 @@
1
- # Weavatrix 0.3.11
2
-
3
- 0.3.11 teaches the graph two new surfaces. SQL schemas become first-class graph
4
- citizens with honest, evidence-gated dead-code verdicts, and Solidity joins the
5
- parsed languages at zero dependency cost. The weavatrix.com site moved to its
6
- own repository, so the engine repo now ships engine only.
7
-
8
- ## SQL: the graph reaches the database schema
9
-
10
- No SQL grammar ships in the pinned tree-sitter-wasms, so `.sql` indexing runs
11
- on a dependency-free statement scanner (a new `textOnly` language-module class)
12
- built for the graph's needs — symbols and references, not SQL semantics.
13
- String literals and comments are blanked before structural scanning, so quoted
14
- text can never fabricate a reference.
15
-
16
- - `CREATE TABLE`/`VIEW`/`FUNCTION`/`PROCEDURE`/`INDEX`/`TRIGGER` become graph
17
- symbols; table columns (including `ALTER TABLE ADD COLUMN`) are member
18
- symbols with `member_of`, and tables carry their columns as `field_types`.
19
- - References resolve inside `.sql` files (a view's `SELECT`, an index's `ON`
20
- table, a trigger's `EXECUTE FUNCTION`, foreign-key `REFERENCES`) — and, the
21
- real point, from application code: literal SQL found in string literals of
22
- any indexed language links the enclosing function to the table it queries.
23
- `change_impact` and `get_dependents` on a table now answer "which code
24
- touches this?"
25
- - Dead-code verdicts stay honest. Schema objects are judged only when the
26
- repository demonstrably uses literal SQL the scanner can read — an
27
- ORM-driven repo produces silence, not guesses. Columns of a
28
- `SELECT *`-consumed table are never judged by name, and indexes/triggers
29
- (DB-engine surface) are never judged at all. A flagged column reports
30
- "no SQL statement in the indexed sources references it".
31
-
32
- ## Solidity
33
-
34
- The tree-sitter-solidity grammar already shipped inside the pinned
35
- tree-sitter-wasms package — 0.3.11 registers it (and pins its SHA-256 in the
36
- parser-artifact allowlist), so Solidity support adds zero new dependencies.
37
- Contracts, interfaces, libraries, functions, constructors, modifiers, events,
38
- errors, structs, enums and state variables are extracted with visibility and
39
- membership; `is` inheritance, modifier invocations, `emit`, `new Contract()`
40
- and `using X for Y` all feed the call/heritage resolvers. Imports resolve
41
- through relative paths, Foundry remappings (`remappings.txt` / `foundry.toml`)
42
- and root-anchored specs; npm-style specs (`@openzeppelin/...`) are recorded as
43
- external dependencies. `.sol` files share directory scope like Go/C#/Rust,
44
- which makes Solidity's plain `import "./Base.sol"` — a statement that names no
45
- symbols — resolvable for siblings without guessing.
46
-
47
- `extractorSchemaV` 6 → 7; cached graphs rebuild once, automatically.
48
-
49
- ## Repository
50
-
51
- The weavatrix.com landing site (pages, Cloudflare Worker config, deploy
52
- workflow and its asset checks) moved byte-identically to the separate
53
- `weavatrix-site` repository, removing ~1.2 MB of page assets from the engine
54
- repo. The MCPB icon the site used to own is vendored at `mcpb/icon.png`; the
55
- published npm package contents are unchanged.
@@ -1,44 +0,0 @@
1
- # Weavatrix 0.3.12
2
-
3
- 0.3.12 makes the read-only core the provably-pure base of a layered stack. The
4
- core stays exactly what it was for its users — the same 34 offline analysis tools
5
- — but it now exposes a small read-only analysis surface for the packages built on
6
- top of it, and machine gates prove it can neither modify code nor reach anything
7
- external. Rust cross-crate call resolution and a `query_graph` seeding fix round
8
- out the release.
9
-
10
- ## The read-only base of the stack
11
-
12
- Weavatrix now anchors a stack of growing responsibility:
13
- `weavatrix-online ⊃ weavatrix-refactor ⊃ weavatrix`. You install one package and
14
- get everything below it. This release adds only what the base owes the layers
15
- above; it registers no new tools and changes no existing tool.
16
-
17
- - New `weavatrix/analysis-kit` export: a narrow, read-only surface (graph
18
- identity, cycle detection, architecture verification, the bundled tree-sitter
19
- grammars, the read-only TypeScript language-server client, dead-code signals)
20
- that upper-layer packages compose. Nothing here writes, applies, or describes
21
- an edit.
22
- - Two release gates make the base's guarantees machine-checked, alongside the
23
- existing ADR 0001 no-network gate: the core source contains **no edit-plan,
24
- applier, or refactoring-builder marker**, and **no literal URL** at all. A
25
- vulnerability finding references the advisory id rather than an external link;
26
- the URL-matching malware heuristics are matchers over scanned code, not links
27
- the core follows. Installing the base alone can neither modify your code nor
28
- reach the network.
29
-
30
- ## Rust cross-crate call resolution
31
-
32
- Rust call edges now resolve across crates, inline-test coverage is reported
33
- honestly, and same-crate call noise is reduced — cross-crate `references` edges
34
- land where a caller reaches a definition in another crate.
35
-
36
- ## query_graph seeding
37
-
38
- A `query_graph` question that reduced entirely to stop words (a bare
39
- `architecture`), or inferred a language absent from the repository (`contract`
40
- inferring Solidity where there are no `.sol` files), previously returned a
41
- misleading "No nodes matched". Both now fall back only when they would otherwise
42
- return nothing: the stop filter relaxes when every token is a stop word, and a
43
- requested language that matches zero nodes is dropped. Queries that already
44
- worked are unchanged.
@@ -1,34 +0,0 @@
1
- # Weavatrix 0.3.13
2
-
3
- 0.3.13 fixes two misleading verification and graph-path signals found while
4
- dogfooding a real duplicate-removal refactor. It also bounds cross-repository
5
- contract responses with revision-bound pagination.
6
-
7
- ## Honest refactor verification
8
-
9
- - `verified_change` no longer reports an enabled duplicate ratchet as
10
- `SKIPPED: duplicate ratchet disabled` during the planning phase. An enabled
11
- plan now reports `PLANNED`, `enabled: true`, and states that the ratchet runs
12
- during `phase="verify"`. An explicit `duplicate_ratchet: false` remains the
13
- only disabled state.
14
- - `shortest_path` remains an undirected connectivity query, but every rendered
15
- hop now preserves the stored graph-edge direction. Reverse traversal renders
16
- `<--imports--` or `<--calls--` instead of inventing a forward dependency.
17
- Repeated and generic file names are widened in both the header and hop lines.
18
-
19
- ## Bounded cross-repository contract evidence
20
-
21
- - `trace_api_contract` response schema v4 returns compact, paginated evidence
22
- by default. `page_size`, `per_item_limit`, and a revision/filter-bound opaque
23
- `cursor` keep responses bounded; `response_detail="full"` remains an explicit
24
- opt-in and is still paginated.
25
- - Invalid, stale, or cross-query cursors fail closed with `INVALID_CURSOR`.
26
- - Repository graph reconciliation now reuses a persisted fresh graph before
27
- invoking a rebuild, while stale or failed refreshes retain their explicit
28
- completeness status.
29
-
30
- ## Layer compatibility
31
-
32
- The read-only core keeps its 34-tool surface and `weavatrix.edit-plan.v1`
33
- contract unchanged. `weavatrix-refactor` 0.1.1 and `weavatrix-online` 0.2.0
34
- are the paired upper-layer releases for this core version.
@@ -1,37 +0,0 @@
1
- # Weavatrix 0.3.14
2
-
3
- 0.3.14 is a Repo Lens dogfood hardening release. It keeps the 34-tool,
4
- network-free Core surface while making large JavaScript graphs practical for
5
- UI consumers and reducing production-analysis noise.
6
-
7
- ## Structured results and performance
8
-
9
- - `find_duplicates` and ordinary `run_audit` results now include bounded
10
- structured groups/findings alongside their existing text summaries, so MCP
11
- clients can render native views without parsing prose.
12
- - Local symbol references are indexed once per file and declaration ranges are
13
- subtracted with binary search instead of rescanning the whole file for every
14
- symbol. On the 8,117-node Repo Lens graph, aggregation fell from more than
15
- 64 seconds to about 0.93 seconds while preserving graph totals.
16
-
17
- ## Production-first precision
18
-
19
- - `vendor`, `vendored`, and `third-party` paths are classified explicitly and
20
- suppressed consistently across duplicates, audit, endpoints, context,
21
- architecture, dead-code, hot-path, and graph-query surfaces.
22
- - Electron preload files are treated as entry points only when another source
23
- contains a bounded `BrowserWindow` `preload:` option.
24
- - Endpoint extraction masks JavaScript regex literals and comments correctly
25
- and recognizes bounded `node:http` method plus `url.pathname` guards. Repo
26
- Lens now reports its four production control routes without comment/test
27
- false positives in the production view.
28
-
29
- ## Coverage interoperability
30
-
31
- - `coverage_map` reads Cargo Tarpaulin's official JSON report shape, including
32
- component paths and `traces[].stats.Line`, and advertises both Tarpaulin JSON
33
- and `cargo llvm-cov` LCOV workflows for Rust repositories.
34
-
35
- This Core release is paired with `weavatrix-refactor` 0.1.2 and
36
- `weavatrix-online` 0.2.0. Each layer keeps its own package, license, version,
37
- and release provenance.
@@ -1,15 +0,0 @@
1
- # Weavatrix 0.3.2
2
-
3
- 0.3.2 carries the bounded large-diff recovery introduced in 0.3.1 and makes
4
- its byte-limit detection consistent across supported Node.js platforms.
5
-
6
- Some `spawnSync` implementations can return a successful process status while
7
- the captured Git diff already exceeds the configured byte budget. Weavatrix now
8
- checks the measured output length before accepting the aggregate diff, rather
9
- than treating process status alone as proof that the evidence is complete.
10
-
11
- The same fail-closed behavior remains in force: per-file diffs that fit keep
12
- line/symbol classification, individually oversized files remain `unknown`, and
13
- the overall result stays `PARTIAL/HIGH` until every changed file has bounded
14
- textual evidence. Hosted dogfood continues to verify 16/16 selected changed
15
- JS/TS symbols with exact LSP direct-reference evidence.
@@ -1,25 +0,0 @@
1
- # Weavatrix 0.3.3
2
-
3
- 0.3.3 hardens the portable parser boundary after reviewing two conservative
4
- third-party supply-chain alerts.
5
-
6
- `web-tree-sitter@0.25.10` is MIT-licensed, but its generated Emscripten loader
7
- contains `eval` support for EM_ASM/EM_JS exports in dynamic side modules. The
8
- same generated path remains in `web-tree-sitter@0.26.11`; changing the version
9
- would not remove the signal. Weavatrix now verifies the exact SHA-256 of the
10
- package-owned runtime and every selected `tree-sitter-wasms@0.1.13` grammar
11
- before compilation. Parser artifacts must resolve inside their pinned package
12
- directories. Repository paths, URLs, symlink escapes and custom runtime or
13
- grammar locations are rejected, and an integrity mismatch fails closed.
14
-
15
- The release also documents a separate license-classification alert.
16
- `typescript@5.9.3` declares `Apache-2.0`. Its third-party notice reproduces the
17
- W3C Community Final Specification Agreement for the Web Background
18
- Synchronization specification; conservative scanners can identify that
19
- component notice as non-permissive even though it is not the package's declared
20
- license. Weavatrix keeps the notice visible and does not suppress the external
21
- scanner finding.
22
-
23
- The public site now presents the product boundary directly: the 34-tool MIT,
24
- network-free Core and the separately licensed 39-tool Online overlay, including
25
- managed Cloud and customer-hosted Enterprise availability.