Conversation
…target framework Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The DevTools nupkg ships almcp.dll + almcp.exe but no extension-less launcher, so Linux and macOS from the tool store had no way to start the child process. BcToolsLocator now resolves the launch shape at construction: native almcp.exe/almcp when present, else `dotnet almcp.dll` via DotnetHost, else null. AlMcpProxy consumes the new AlMcpLaunch record (FileName + LeadingArgs) instead of a raw path, prepending the DLL argument when running through the dotnet host. DotnetHost.Resolve is pure and testable: DOTNET_HOST_PATH > process path > DOTNET_ROOT/DOTNET_ROOT_X64 > PATH scan > bare "dotnet". Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…AL VS Code extension probe BREAKING CHANGE: The AL VS Code extension is no longer probed for BC DevTools. Users who relied on the extension as their only DevTools source must install the dotnet tool or point --devtools-path / BCDEVELOPMENTTOOLSPATH at the extension's bin/<platform> folder. The dotnet tool store is the primary and recommended delivery channel on every OS. With the ALCops analyzer provisioner (PR #25) handling ALCops' own analyzer DLLs, the extension probe served only as a fallback for the DevTools themselves — one that broke on AL 17's nested bin layout and added three OS-specific probing roots. The error message now lists every probe and its outcome, the exact install command, and the manual --devtools-path / BCDEVELOPMENTTOOLSPATH alternative. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
AlMcpFixture now falls back to BcToolsLocator.ResolveToolsDirectory() when the baked BcToolsPath (from compile-time assembly metadata) is absent, so CI can point BCDEVELOPMENTTOOLSPATH at the extracted nupkg payload and have almcp discovered there. ALCOPS_TESTS_REQUIRE_ALMCP=1 turns the AlMcpFactAttribute skip into a hard fixture-init failure, so the tests never silently disappear when the tools are supposed to be available. The workflow extracts the full tools/net10.0/any/ payload (with runtimeconfig, deps.json and almcp.dll) alongside the existing flat DLL extraction, sets BCDEVELOPMENTTOOLSPATH when the directory exists, and enables the require flag. Versions without a net10.0 payload gracefully skip the almcp tests as before. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
README: requirements name the dotnet tool as the primary channel with --devtools-path / BCDEVELOPMENTTOOLSPATH as the manual alternative. New "Platform support" table: Windows (native almcp.exe), Linux/macOS (dotnet almcp.dll). Resolution list now three steps, noting the AL VS Code extension is no longer probed. AGENTS.md: BcToolsLocator bullet describes the AlMcpLaunch shapes and the no-auto-install design. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Arthurvdv
changed the base branch from
feat/alcops-analyzer-provisioning
to
main
September 13, 2026 18:33
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
almcpthroughdotnet almcp.dllon Linux and macOS where the nupkg ships no native launcher, making the proxy functional on every OS.BcToolsLocator— the dotnet tool store is now the only automatic probe (after--devtools-pathandBCDEVELOPMENTTOOLSPATH).almcp-backed integration tests on the Ubuntu CI matrix and addALCOPS_TESTS_REQUIRE_ALMCPto fail loudly instead of silently skipping.What changed
BcToolsLocatorAlMcpLaunchrecord (FileName,LeadingArgs,Description) replaces the rawAlMcpPath-based availability check. Constructor resolution: nativealmcp.exe/almcp→dotnet almcp.dllviaDotnetHost→null.TryAlExtensionremoved; error message now enumerates every probe with its outcome and gives the exact install command.DotnetHost(new)DOTNET_HOST_PATH→ process path →DOTNET_ROOT/DOTNET_ROOT_X64→PATHscan → bare"dotnet".AlMcpProxyAlMcpLaunchinstead of a path string;LaunchChildprependsLeadingArgsto the argument list.AlMcpFixture(tests)BcToolsLocator.ResolveToolsDirectory()when the bakedBcToolsPathis absent, so CI'sBCDEVELOPMENTTOOLSPATHis honoured.ALCOPS_TESTS_REQUIRE_ALMCP=1turns skips into hard failures.CI workflow
tools/net10.0/any/payload (with runtimeconfig, deps.json) alongside the flat DLL extraction.BCDEVELOPMENTTOOLSPATHandALCOPS_TESTS_REQUIRE_ALMCP=1on the test step when the full payload exists.Docs
src/ALCops.Mcp/README.md: extension reference removed.AGENTS.md:BcToolsLocatorbullet updated with launch shapes and no-auto-install note..github/ISSUE_TEMPLATE/bug_report.yml: "AL Language extension version" field replaced with "BC Development Tools version".Corrects PR #20's known-issue note
PR #20 noted that the nupkg ships only
almcp.exe/almcp.dllwith no extension-less launcher, making the proxy unavailable from the tool store on Linux/macOS. This PR resolves that by falling back todotnet almcp.dllwhen no native launcher exists.Breaking changes
The AL VS Code extension is no longer probed for BC DevTools. Users who relied on the extension as their sole DevTools source must either:
dotnet tool install -g Microsoft.Dynamics.BusinessCentral.Development.Tools--devtools-path/BCDEVELOPMENTTOOLSPATHat the extension'sbin/<platform>folder.Test plan
dotnet build --configuration Release— 0 warnings, 0 errorsdotnet test --configuration Release— 111 tests pass (including 4 almcp-backed tests on Windows)DotnetHostTests(6 tests): precedence order, bare fallbackBcToolsLocatorTests:AlMcp_PrefersNativeLauncher,AlMcp_FallsBackToDotnetWhenOnlyDllShips,AlMcp_AbsentWhenNeitherShips,Resolve_NothingInstalled_ErrorNamesEveryProbeAndTheInstallCommandalmcp.exe)dotnet almcp.dll(run 34774977712: all nineAlMcpProxyTests/AlMcpProxyStartupTestsexecuted and passed, no platform load error)Note: Built on top of
feat/alcops-analyzer-provisioning(PR #25); merge #25 first, after which this PR shows only its own four commits.🤖 Generated with Claude Code