weavatrix 0.3.1 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -413,7 +413,7 @@ metrics are not persisted or transmitted by Weavatrix. If a source checkout's pa
413
413
  while an old daemon remains alive, `initialize`, `tools/list`, and tool calls fail loudly with
414
414
  `STALE_RUNTIME` until the client reconnects; the opt-out is reserved for deliberate development.
415
415
 
416
- ### 0.3.1 exact impact over oversized diffs
416
+ ### 0.3.2 exact impact over oversized diffs
417
417
 
418
418
  - `change_impact` now recovers a bounded per-file unified diff when one large asset exceeds the
419
419
  aggregate diff budget. Normal source files retain line/symbol classification; only the files that
@@ -424,7 +424,7 @@ while an old daemon remains alive, `initialize`, `tools/list`, and tool calls fa
424
424
  - The global LSP overlay remains a bounded prewarm and can honestly be `PARTIAL`; `get_dependents`,
425
425
  `inspect_symbol`, and `change_impact` run revision-bound exact point/batch queries beyond that cap.
426
426
 
427
- Full patch notes: [docs/releases/v0.3.1.md](docs/releases/v0.3.1.md).
427
+ Full patch notes: [docs/releases/v0.3.2.md](docs/releases/v0.3.2.md).
428
428
 
429
429
  ### 0.3.0 network-free core and exact dependency evidence
430
430
 
@@ -0,0 +1,15 @@
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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "weavatrix",
3
- "version": "0.3.1",
3
+ "version": "0.3.2",
4
4
  "type": "module",
5
5
  "description": "Local repository intelligence MCP for AI coding agents: reusable architecture graph for fast application understanding, Health, dead code, clones, history, blast radius and architecture safeguards.",
6
6
  "author": "Sergii Ziborov <sergii.ziborov@gmail.com>",
@@ -35,6 +35,7 @@
35
35
  "docs/adr/0001-v0.3-offline-online-split.md",
36
36
  "docs/releases/v0.3.0.md",
37
37
  "docs/releases/v0.3.1.md",
38
+ "docs/releases/v0.3.2.md",
38
39
  "docs/releases/v0.2.19.md",
39
40
  "README.md",
40
41
  "SECURITY.md",
@@ -56,8 +56,9 @@ function runGitDiff(repoRoot, base, limits) {
56
56
  encoding: 'utf8', windowsHide: true, timeout: 12_000,
57
57
  maxBuffer: limits.maxDiffBytes + 1, env: childProcessEnv(),
58
58
  })
59
- if (result.status === 0) return {available: true, text: String(result.stdout || ''), error: null}
60
- const oversized = result.error?.code === 'ENOBUFS' || Buffer.byteLength(String(result.stdout || '')) > limits.maxDiffBytes
59
+ const output = String(result.stdout || '')
60
+ const oversized = result.error?.code === 'ENOBUFS' || Buffer.byteLength(output) > limits.maxDiffBytes
61
+ if (result.status === 0 && !oversized) return {available: true, text: output, error: null}
61
62
  let fallbackFiles = []
62
63
  let fallbackTruncated = false
63
64
  let recoveredText = ''