weavatrix 0.3.13 → 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.
- package/LICENSE +1 -0
- package/README.md +231 -199
- package/bin/native/darwin-arm64/weavatrix +0 -0
- package/bin/native/darwin-x64/weavatrix +0 -0
- package/bin/native/linux-arm64/weavatrix +0 -0
- package/bin/native/linux-x64/weavatrix +0 -0
- package/bin/native/win32-arm64/weavatrix.exe +0 -0
- package/bin/native/win32-x64/weavatrix.exe +0 -0
- package/bin/resolve-binary.mjs +73 -0
- package/bin/run-native.mjs +26 -0
- package/bin/weavatrix-mcp.mjs +7 -6
- package/bin/weavatrix.mjs +5 -0
- package/package.json +8 -65
- package/skill/SKILL.md +62 -374
- package/skill/agents/openai.yaml +4 -0
- package/skill/references/tool-routing.md +45 -0
- package/SECURITY.md +0 -101
- package/docs/adr/0001-v0.3-offline-online-split.md +0 -60
- package/docs/agent-task-benchmark.md +0 -58
- package/docs/releases/v0.2.19.md +0 -33
- package/docs/releases/v0.3.0.md +0 -43
- package/docs/releases/v0.3.1.md +0 -30
- package/docs/releases/v0.3.10.md +0 -76
- package/docs/releases/v0.3.11.md +0 -55
- package/docs/releases/v0.3.12.md +0 -44
- package/docs/releases/v0.3.13.md +0 -34
- package/docs/releases/v0.3.2.md +0 -15
- package/docs/releases/v0.3.3.md +0 -25
- package/docs/releases/v0.3.4.md +0 -40
- package/docs/releases/v0.3.5.md +0 -50
- package/docs/releases/v0.3.6.md +0 -44
- package/docs/releases/v0.3.7.md +0 -37
- package/docs/releases/v0.3.8.md +0 -21
- package/docs/releases/v0.3.9.md +0 -36
- package/scripts/run-agent-task-benchmark.mjs +0 -118
- package/src/analysis/allowed-test-runner.js +0 -70
- package/src/analysis/architecture/contract-graph.js +0 -119
- package/src/analysis/architecture/contract-schema.js +0 -110
- package/src/analysis/architecture/contract-storage.js +0 -35
- package/src/analysis/architecture/contract-verification.js +0 -168
- package/src/analysis/architecture-contract.js +0 -16
- package/src/analysis/audit-debt.js +0 -94
- package/src/analysis/audit-extensions.js +0 -60
- package/src/analysis/cargo-dependency-evidence.js +0 -108
- package/src/analysis/cargo-manifests.js +0 -81
- package/src/analysis/change-classification/diff-parser.js +0 -103
- package/src/analysis/change-classification/options.js +0 -40
- package/src/analysis/change-classification/symbol-classifier.js +0 -177
- package/src/analysis/change-classification.js +0 -188
- package/src/analysis/coverage-reports.js +0 -235
- package/src/analysis/cycle-route.js +0 -14
- package/src/analysis/data-flow-evidence.js +0 -114
- package/src/analysis/dead-check.js +0 -300
- package/src/analysis/dead-code-review/candidates.js +0 -194
- package/src/analysis/dead-code-review/policy.js +0 -23
- package/src/analysis/dead-code-review.js +0 -119
- package/src/analysis/dep-check-ecosystems.js +0 -205
- package/src/analysis/dep-check.js +0 -290
- package/src/analysis/dep-rules.js +0 -10
- package/src/analysis/dependency/conventions.js +0 -16
- package/src/analysis/dependency/scoped-dependencies.js +0 -51
- package/src/analysis/dependency/source-references.js +0 -21
- package/src/analysis/duplicate-groups.js +0 -104
- package/src/analysis/duplicates-worker.js +0 -11
- package/src/analysis/duplicates.compute.js +0 -269
- package/src/analysis/duplicates.js +0 -15
- package/src/analysis/duplicates.run.js +0 -52
- package/src/analysis/duplicates.tokenize.js +0 -199
- package/src/analysis/endpoints/common.js +0 -62
- package/src/analysis/endpoints/extract.js +0 -107
- package/src/analysis/endpoints/inventory.js +0 -84
- package/src/analysis/endpoints/mounts.js +0 -129
- package/src/analysis/endpoints-java.js +0 -260
- package/src/analysis/endpoints-rust.js +0 -124
- package/src/analysis/endpoints.js +0 -3
- package/src/analysis/findings.js +0 -70
- package/src/analysis/git-history/analytics.js +0 -177
- package/src/analysis/git-history/collector.js +0 -67
- package/src/analysis/git-history/options.js +0 -66
- package/src/analysis/git-history.js +0 -143
- package/src/analysis/git-ref-graph.js +0 -76
- package/src/analysis/go-dependency-evidence.js +0 -62
- package/src/analysis/graph-analysis.aggregate.js +0 -295
- package/src/analysis/graph-analysis.edges.js +0 -24
- package/src/analysis/graph-analysis.js +0 -7
- package/src/analysis/graph-analysis.refs.js +0 -154
- package/src/analysis/graph-analysis.summaries.js +0 -65
- package/src/analysis/health-capabilities.js +0 -83
- package/src/analysis/hot-path-review.js +0 -266
- package/src/analysis/http-contract-wrappers.js +0 -241
- package/src/analysis/http-contracts/analysis.js +0 -179
- package/src/analysis/http-contracts/client-call-detection.js +0 -82
- package/src/analysis/http-contracts/client-call-parser.js +0 -273
- package/src/analysis/http-contracts/graph-context.js +0 -143
- package/src/analysis/http-contracts/matching.js +0 -61
- package/src/analysis/http-contracts/shared.js +0 -85
- package/src/analysis/http-contracts.js +0 -6
- package/src/analysis/internal-audit/dependency-health.js +0 -113
- package/src/analysis/internal-audit/python-manifests.js +0 -78
- package/src/analysis/internal-audit/repo-files.js +0 -50
- package/src/analysis/internal-audit/supply-chain.js +0 -149
- package/src/analysis/internal-audit.collect.js +0 -213
- package/src/analysis/internal-audit.js +0 -9
- package/src/analysis/internal-audit.reach.js +0 -173
- package/src/analysis/internal-audit.run.js +0 -256
- package/src/analysis/java-source.js +0 -36
- package/src/analysis/jvm-artifact-index.js +0 -87
- package/src/analysis/jvm-dependency-evidence.js +0 -138
- package/src/analysis/jvm-manifests.js +0 -114
- package/src/analysis/manifests.js +0 -123
- package/src/analysis/package-reachability.js +0 -39
- package/src/analysis/source-complexity.ast.js +0 -97
- package/src/analysis/source-complexity.constants.js +0 -55
- package/src/analysis/source-complexity.js +0 -14
- package/src/analysis/source-complexity.report.js +0 -81
- package/src/analysis/source-complexity.walk.js +0 -228
- package/src/analysis/source-correctness/retry-patterns.js +0 -93
- package/src/analysis/source-correctness.js +0 -222
- package/src/analysis/static-test-reachability.js +0 -150
- package/src/analysis/structure/dependency-graph.js +0 -151
- package/src/analysis/structure/findings.js +0 -162
- package/src/analysis/task-retrieval.js +0 -107
- package/src/analysis/transport-contracts.js +0 -224
- package/src/analysis/transport-runtime-evidence.js +0 -155
- package/src/analysis-kit.mjs +0 -17
- package/src/bounds.js +0 -4
- package/src/build-graph.js +0 -209
- package/src/child-env.js +0 -7
- package/src/config.js +0 -5
- package/src/extension/local-services.mjs +0 -75
- package/src/git-exec.js +0 -67
- package/src/graph/build-worker.js +0 -49
- package/src/graph/builder/go-receiver-resolution.js +0 -112
- package/src/graph/builder/js/dynamic-import.js +0 -26
- package/src/graph/builder/js/queries.js +0 -48
- package/src/graph/builder/lang-csharp.js +0 -40
- package/src/graph/builder/lang-css.js +0 -29
- package/src/graph/builder/lang-go.js +0 -140
- package/src/graph/builder/lang-html.js +0 -29
- package/src/graph/builder/lang-java-calls.js +0 -142
- package/src/graph/builder/lang-java.js +0 -215
- package/src/graph/builder/lang-js.js +0 -291
- package/src/graph/builder/lang-python.js +0 -235
- package/src/graph/builder/lang-rust-calls.js +0 -63
- package/src/graph/builder/lang-rust.js +0 -299
- package/src/graph/builder/lang-solidity.js +0 -126
- package/src/graph/builder/lang-sql.js +0 -263
- package/src/graph/builder/pass2-resolution.js +0 -81
- package/src/graph/builder/spec-pkg.js +0 -87
- package/src/graph/community.js +0 -27
- package/src/graph/edge-provenance.js +0 -31
- package/src/graph/file-lock.js +0 -69
- package/src/graph/freshness-probe.js +0 -142
- package/src/graph/graph-filter.js +0 -63
- package/src/graph/incremental-refresh.js +0 -235
- package/src/graph/internal-builder.barrels.js +0 -235
- package/src/graph/internal-builder.build.js +0 -300
- package/src/graph/internal-builder.java.js +0 -33
- package/src/graph/internal-builder.js +0 -12
- package/src/graph/internal-builder.langs.js +0 -157
- package/src/graph/internal-builder.pass2.js +0 -163
- package/src/graph/internal-builder.resolvers.js +0 -286
- package/src/graph/layout.js +0 -51
- package/src/graph/node-id.js +0 -7
- package/src/graph/parser-artifact-boundary.js +0 -55
- package/src/graph/relations.js +0 -4
- package/src/graph/repo-registry.js +0 -124
- package/src/graph/resolvers/rust.js +0 -117
- package/src/infra/infra-items.js +0 -255
- package/src/infra/infra-registry.js +0 -184
- package/src/infra/infra.detect.js +0 -119
- package/src/infra/infra.js +0 -38
- package/src/infra/infra.match.js +0 -102
- package/src/infra/infra.scan.js +0 -93
- package/src/mcp/actions/graph-lifecycle.mjs +0 -148
- package/src/mcp/architecture-bootstrap.mjs +0 -168
- package/src/mcp/architecture-starter.mjs +0 -234
- package/src/mcp/catalog.mjs +0 -233
- package/src/mcp/company-contract-page.mjs +0 -142
- package/src/mcp/company-contract-reconcile.mjs +0 -87
- package/src/mcp/company-contract-verdict.mjs +0 -42
- package/src/mcp/evidence/bun-lock-graph.mjs +0 -209
- package/src/mcp/evidence/duplicate-member-order.mjs +0 -8
- package/src/mcp/evidence/package-graph-common.mjs +0 -115
- package/src/mcp/evidence/package-lock-graph.mjs +0 -92
- package/src/mcp/evidence-snapshot.architecture.mjs +0 -80
- package/src/mcp/evidence-snapshot.common.mjs +0 -158
- package/src/mcp/evidence-snapshot.duplicates.mjs +0 -213
- package/src/mcp/evidence-snapshot.health.mjs +0 -102
- package/src/mcp/evidence-snapshot.inventory.mjs +0 -148
- package/src/mcp/evidence-snapshot.mjs +0 -50
- package/src/mcp/evidence-snapshot.package-graph.mjs +0 -34
- package/src/mcp/evidence-snapshot.structure.mjs +0 -84
- package/src/mcp/extension-api.mjs +0 -77
- package/src/mcp/git-output.mjs +0 -7
- package/src/mcp/graph/context-core.mjs +0 -111
- package/src/mcp/graph/context-seeds.mjs +0 -207
- package/src/mcp/graph/context-state.mjs +0 -85
- package/src/mcp/graph/reverse-reach.mjs +0 -42
- package/src/mcp/graph/tools-core.mjs +0 -143
- package/src/mcp/graph/tools-query.mjs +0 -276
- package/src/mcp/graph-context.mjs +0 -5
- package/src/mcp/graph-diff.mjs +0 -218
- package/src/mcp/health/audit-format.mjs +0 -199
- package/src/mcp/health/audit.mjs +0 -174
- package/src/mcp/health/dead-code.mjs +0 -110
- package/src/mcp/health/duplicates.mjs +0 -85
- package/src/mcp/health/endpoints.mjs +0 -71
- package/src/mcp/health/structure.mjs +0 -219
- package/src/mcp/runtime-version.mjs +0 -31
- package/src/mcp/server/auto-refresh.mjs +0 -66
- package/src/mcp/server/runtime-config.mjs +0 -43
- package/src/mcp/server/shutdown.mjs +0 -40
- package/src/mcp/staleness-notice.mjs +0 -20
- package/src/mcp/sync/evidence-architecture.mjs +0 -54
- package/src/mcp/sync/evidence-common.mjs +0 -88
- package/src/mcp/sync/evidence-duplicates.mjs +0 -97
- package/src/mcp/sync/evidence-health.mjs +0 -56
- package/src/mcp/sync/evidence-packages.mjs +0 -95
- package/src/mcp/sync/payload-common.mjs +0 -97
- package/src/mcp/sync/payload-v2.mjs +0 -54
- package/src/mcp/sync/payload-v3.mjs +0 -79
- package/src/mcp/sync-evidence.mjs +0 -23
- package/src/mcp/sync-payload.mjs +0 -70
- package/src/mcp/tool-result.mjs +0 -54
- package/src/mcp/tools-actions.mjs +0 -11
- package/src/mcp/tools-architecture.mjs +0 -177
- package/src/mcp/tools-company.mjs +0 -251
- package/src/mcp/tools-context.mjs +0 -222
- package/src/mcp/tools-endpoints.mjs +0 -207
- package/src/mcp/tools-graph-hubs.mjs +0 -78
- package/src/mcp/tools-graph.mjs +0 -17
- package/src/mcp/tools-health.mjs +0 -24
- package/src/mcp/tools-history.mjs +0 -28
- package/src/mcp/tools-impact-change.mjs +0 -220
- package/src/mcp/tools-impact-precision.mjs +0 -89
- package/src/mcp/tools-impact.mjs +0 -169
- package/src/mcp/tools-source.mjs +0 -238
- package/src/mcp/tools-verified-change.mjs +0 -200
- package/src/mcp-rg.mjs +0 -50
- package/src/mcp-runtime.mjs +0 -2
- package/src/mcp-server.mjs +0 -298
- package/src/mcp-source-tools.mjs +0 -163
- package/src/path-classification.js +0 -220
- package/src/path-ignore.js +0 -69
- package/src/precision/lsp-client/constants.js +0 -12
- package/src/precision/lsp-client/environment.js +0 -20
- package/src/precision/lsp-client/errors.js +0 -15
- package/src/precision/lsp-client/lifecycle.js +0 -114
- package/src/precision/lsp-client/message-parser.js +0 -81
- package/src/precision/lsp-client/protocol.js +0 -212
- package/src/precision/lsp-client/registry.js +0 -59
- package/src/precision/lsp-client/repo-uri.js +0 -60
- package/src/precision/lsp-client/stdio-client.js +0 -140
- package/src/precision/lsp-client.js +0 -10
- package/src/precision/lsp-overlay/budget-policy.js +0 -78
- package/src/precision/lsp-overlay/build.js +0 -261
- package/src/precision/lsp-overlay/contract.js +0 -61
- package/src/precision/lsp-overlay/reference-results.js +0 -108
- package/src/precision/lsp-overlay/semantic-inputs.js +0 -62
- package/src/precision/lsp-overlay/source-session.js +0 -142
- package/src/precision/lsp-overlay/store.js +0 -150
- package/src/precision/lsp-overlay/target-index.js +0 -152
- package/src/precision/lsp-overlay/target-query.js +0 -55
- package/src/precision/lsp-overlay.js +0 -11
- package/src/precision/symbol-query.js +0 -224
- package/src/precision/typescript-lsp-provider.js +0 -12
- package/src/precision/typescript-provider/client.js +0 -89
- package/src/precision/typescript-provider/discovery.js +0 -124
- package/src/precision/typescript-provider/isolated-runtime.js +0 -39
- package/src/precision/typescript-provider/project-host.js +0 -254
- package/src/precision/typescript-provider/project-safety.js +0 -166
- package/src/precision/typescript-provider/reference-usage.js +0 -53
- package/src/process.js +0 -95
- package/src/repo-path.js +0 -53
- package/src/scan/discover.inventory.js +0 -78
- package/src/scan/discover.js +0 -5
- package/src/scan/discover.list.js +0 -79
- package/src/scan/discover.stack.js +0 -227
- package/src/scan/search.core.js +0 -24
- package/src/scan/search.git.js +0 -102
- package/src/scan/search.js +0 -9
- package/src/scan/search.node.js +0 -83
- package/src/scan/search.preview.js +0 -49
- package/src/scan/search.rg.js +0 -145
- package/src/security/advisory-store.js +0 -172
- package/src/security/installed-jvm-rust.js +0 -46
- package/src/security/installed.js +0 -280
- package/src/security/malware-file-heuristics.js +0 -121
- package/src/security/malware-heuristics.exclusions.js +0 -134
- package/src/security/malware-heuristics.js +0 -15
- package/src/security/malware-heuristics.roots.js +0 -145
- package/src/security/malware-heuristics.scan.js +0 -89
- package/src/security/malware-heuristics.sweep.js +0 -122
- package/src/security/malware-scoring.js +0 -105
- package/src/security/match.js +0 -85
- package/src/security/registry-sig.classify.js +0 -137
- package/src/security/registry-sig.js +0 -18
- package/src/security/registry-sig.rules.js +0 -192
- package/src/security/rust-advisory-report.js +0 -60
- package/src/security/typosquat.js +0 -81
- package/src/util.js +0 -40
- 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.
|
package/docs/releases/v0.2.19.md
DELETED
|
@@ -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.
|
package/docs/releases/v0.3.0.md
DELETED
|
@@ -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.
|
package/docs/releases/v0.3.1.md
DELETED
|
@@ -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.
|
package/docs/releases/v0.3.10.md
DELETED
|
@@ -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.
|
package/docs/releases/v0.3.11.md
DELETED
|
@@ -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.
|
package/docs/releases/v0.3.12.md
DELETED
|
@@ -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.
|
package/docs/releases/v0.3.13.md
DELETED
|
@@ -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.
|
package/docs/releases/v0.3.2.md
DELETED
|
@@ -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.
|
package/docs/releases/v0.3.3.md
DELETED
|
@@ -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.
|
package/docs/releases/v0.3.4.md
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
# Weavatrix 0.3.4
|
|
2
|
-
|
|
3
|
-
0.3.4 is a focused self-audit precision release. It removes false Health and
|
|
4
|
-
dead-code noise found while dogfooding Core against its own current source,
|
|
5
|
-
without widening the 34-tool offline boundary.
|
|
6
|
-
|
|
7
|
-
## Bounded dynamic-import evidence
|
|
8
|
-
|
|
9
|
-
JS/TS graph construction now recognizes the statically named local module in
|
|
10
|
-
URL-based imports such as
|
|
11
|
-
``import(new URL(`./tools-health.mjs${cacheBust}`, import.meta.url).href)``.
|
|
12
|
-
The resolved local candidate participates in reachability, while the edge keeps
|
|
13
|
-
its `dynamic` marker. Variable-first templates, remote URLs, non-`import.meta.url`
|
|
14
|
-
bases and other runtime-only expressions remain unresolved rather than being
|
|
15
|
-
guessed.
|
|
16
|
-
|
|
17
|
-
## Health and dead-code precision
|
|
18
|
-
|
|
19
|
-
- The dependency summary uses the same production-first path scope as the
|
|
20
|
-
findings shown below it. Findings isolated to fixtures/tests are reported as a
|
|
21
|
-
separate suppressed count instead of leaking into the production headline.
|
|
22
|
-
- Comment-only lexical mentions no longer prove symbol liveness. String-based
|
|
23
|
-
registries and reflective dispatch stay conservative because they may be real
|
|
24
|
-
runtime entry points.
|
|
25
|
-
- Dogfood removed unnecessary internal exports, obsolete declarations and
|
|
26
|
-
uncalled LSP wrapper methods. Supported Online extension exports and
|
|
27
|
-
TypeScript host callbacks remain intact.
|
|
28
|
-
|
|
29
|
-
Current-source dogfood reports zero Health findings in both full and no-tests
|
|
30
|
-
graphs. The remaining low-confidence dead-code queue contains only the five
|
|
31
|
-
supported Online extension exports and two TypeScript host callbacks. Classified
|
|
32
|
-
benchmark dependency findings remain available through `include_classified`.
|
|
33
|
-
|
|
34
|
-
The release remains gated by the full Node suite, release metadata validation,
|
|
35
|
-
portable MCPB/npm runtime smoke, dependency audit and self-dogfood.
|
|
36
|
-
|
|
37
|
-
The strict source-free real-repository benchmark was refreshed from clean,
|
|
38
|
-
revision-bound checkouts and passes all six language repositories (TypeScript,
|
|
39
|
-
JavaScript, Python, Go, Java and Rust) with complete provenance, expected-signal
|
|
40
|
-
and relation-regression gates.
|