mirror of
https://github.com/microsoft/BCQuality.git
synced 2026-10-05 22:56:55 +01:00
AL MCP cwd-agnostisk: walk-up + auto-projektopdagelse (setup v18)
Efter genstart var al stadig Failed. MCP-loggen gav beviskaeden:
cwd = .apps\PrebenZ (app-mappen - one-workspace-standarden binder
sessionen dertil), og CLAUDE_PROJECT_DIR er IKKE sat for MCP-launches,
saa ${CLAUDE_PROJECT_DIR:-.} faldt tilbage til app-mappen hvor .vscode
ikke findes. Workspace-standarden og .mcp.json-antagelsen var i
konflikt.
Fix - og en forbedring af standarden:
- find-altool.ps1 v3: cwd-agnostisk anker ($PSScriptRoot), og nyt
auto-argument der selv opdager alle AL-projektmapper (app.json under
.apps/Apps/apps) og substituerer dem i launchmcpserver-kaldet
- Setup v18, 4b: al-entryen er nu BYTE-IDENTISK paa tvaers af alle
repos - -Command med walk-up fra cwd til .vscode\find-altool.ps1 +
launchmcpserver auto. Ingen {APP_FOLDER}-substitution.
- Mode B check 4: aeldre former erstattes stille med den universelle
Live-testet fra praecis den cwd der fejlede (.apps\PrebenZ): serveren
overlever. PrebenZ + JP haandrettet paa Michaels maskine.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
bd2b12887d
commit
e6c362e560
2 changed files with 56 additions and 27 deletions
|
|
@ -1,11 +1,16 @@
|
|||
# find-altool.ps1 - CURABIS-artefakt (deployes fra BCQuality, ikke genereret
|
||||
# af AL-extensionen - der findes ingen VS Code-kommando til dette).
|
||||
#
|
||||
# Finder altool.exe dynamisk i den NYESTE installerede AL Language extension,
|
||||
# uanset version, og videresender alle argumenter. Bruges af .mcp.json til at
|
||||
# starte AL MCP-serveren - BEMÆRK: launchmcpserver KRÆVER projektstierne som
|
||||
# argumenter, ellers dør serveren straks:
|
||||
# powershell -ExecutionPolicy Bypass -File .vscode/find-altool.ps1 launchmcpserver .apps/MinApp .apps/MinApp.Test --transport stdio
|
||||
# Finder altool.exe dynamisk i den NYESTE installerede AL Language extension
|
||||
# og videresender alle argumenter. Scriptet er cwd-agnostisk: det ligger i
|
||||
# <repo>\.vscode\ og kan derfor selv udlede repo-roden ($PSScriptRoot\..).
|
||||
#
|
||||
# Specialargument 'auto': erstattes med alle AL-projektmapper fundet under
|
||||
# repoets apps-mappe (.apps/Apps/apps - mapper med app.json). Dermed er
|
||||
# .mcp.json-entryen identisk paa tvaers af alle repos:
|
||||
# ... find-altool.ps1 launchmcpserver auto --transport stdio
|
||||
#
|
||||
# BEMAERK: altool launchmcpserver KRAEVER projektstier - uden doer serveren.
|
||||
|
||||
$ext = Get-ChildItem "$env:USERPROFILE\.vscode\extensions" -Filter "ms-dynamics-smb.al-*" -Directory |
|
||||
Sort-Object { [version]($_.Name -replace '^ms-dynamics-smb\.al-', '' -replace '-.*$', '') } -Descending |
|
||||
|
|
@ -23,4 +28,26 @@ if (-not (Test-Path $altool)) {
|
|||
exit 1
|
||||
}
|
||||
|
||||
& $altool @args
|
||||
if ($args -contains 'auto') {
|
||||
$repo = Split-Path $PSScriptRoot
|
||||
$projects = @()
|
||||
foreach ($appsName in @('.apps', 'Apps', 'apps')) {
|
||||
$appsDir = Join-Path $repo $appsName
|
||||
if (Test-Path $appsDir) {
|
||||
$projects += Get-ChildItem $appsDir -Directory |
|
||||
Where-Object { Test-Path (Join-Path $_.FullName 'app.json') } |
|
||||
ForEach-Object { $_.FullName }
|
||||
}
|
||||
}
|
||||
if (-not $projects) {
|
||||
Write-Error "Ingen AL-projektmapper (med app.json) fundet under $repo\.apps|Apps|apps."
|
||||
exit 1
|
||||
}
|
||||
$resolved = @()
|
||||
foreach ($a in $args) {
|
||||
if ($a -eq 'auto') { $resolved += $projects } else { $resolved += $a }
|
||||
}
|
||||
& $altool @resolved
|
||||
} else {
|
||||
& $altool @args
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue