bc-atlas 0.13.0 → 0.14.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/CHANGELOG.md CHANGED
@@ -4,6 +4,19 @@ All notable changes to BC Atlas will be documented here. The format is based on
4
4
  [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and the project
5
5
  follows [Semantic Versioning](https://semver.org/).
6
6
 
7
+ ## 0.14.0 - 2026-11-05
8
+
9
+ ### Added
10
+
11
+ - A root `.mcp.json` starts BC Atlas from the local checkout for direct MCP
12
+ tool calls in Copilot-compatible hosts. The MCP integration test uses the
13
+ same configuration, and the agent guide explains setup and server approval.
14
+
15
+ ### Fixed
16
+
17
+ - Git-history analysis waits for its `git cat-file` reader to exit before
18
+ removing temporary snapshots, avoiding file-lock failures on Windows.
19
+
7
20
  ## 0.13.0 - 2026-11-04
8
21
 
9
22
  ### Added
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bc-atlas",
3
- "version": "0.13.0",
3
+ "version": "0.14.0",
4
4
  "description": "BC Atlas maps Microsoft Dynamics 365 Business Central AL projects: architecture diagrams, health checks, reports, and documentation generated from source.",
5
5
  "homepage": "https://github.com/SchulzOli/BC-Atlas#readme",
6
6
  "bugs": {
@@ -76,7 +76,14 @@ function blobReader(cwd) {
76
76
  });
77
77
  },
78
78
  close() {
79
- child.stdin.end();
79
+ return new Promise((resolve, reject) => {
80
+ child.once("error", reject);
81
+ child.once("close", (code) => {
82
+ if (code === 0) resolve();
83
+ else reject(new Error(`git cat-file --batch exited with code ${code}`));
84
+ });
85
+ child.stdin.end();
86
+ });
80
87
  }
81
88
  };
82
89
  }
@@ -273,8 +280,11 @@ export async function replayHistory(projectRoot, { by = "commits", maxCommits =
273
280
  previous = commit;
274
281
  }
275
282
  } finally {
276
- reader.close();
277
- await fs.rm(directory, { recursive: true, force: true });
283
+ try {
284
+ await reader.close();
285
+ } finally {
286
+ await fs.rm(directory, { recursive: true, force: true });
287
+ }
278
288
  }
279
289
 
280
290
  const dirty = git(repository, ["status", "--porcelain", "-z", "--untracked-files=all"])