hmgr 0.0.48 → 0.0.49
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/dist/adapter/claude-code.js +19 -5
- package/dist/aenderungen.json +3 -0
- package/package.json +1 -1
|
@@ -54,12 +54,15 @@ export const claudeAusfuehrer = (args, cwd) => new Promise((aufloesen) => {
|
|
|
54
54
|
});
|
|
55
55
|
/**
|
|
56
56
|
* Pfadvergleich für E102: abschließende Trenner zählen nicht; bei Windows-Pfaden (Laufwerk oder
|
|
57
|
-
* UNC) sind außerdem `\\` und `/` sowie Groß-/Kleinschreibung gleich.
|
|
57
|
+
* UNC) sind außerdem `\\` und `/` sowie Groß-/Kleinschreibung gleich. Beide Seiten werden in NFC
|
|
58
|
+
* verglichen (E117), weil Claude Code Pfade zusammengesetzt führt, hmgr sie aber oft zerlegt (NFD) merkt.
|
|
58
59
|
*/
|
|
59
60
|
export function pfadGleich(a, b) {
|
|
60
61
|
const windows = (p) => /^[a-zA-Z]:[\\/]/.test(p) || p.startsWith('\\\\');
|
|
61
62
|
const norm = (p, win) => {
|
|
62
|
-
let t =
|
|
63
|
+
let t = p.normalize('NFC');
|
|
64
|
+
if (win)
|
|
65
|
+
t = t.replaceAll('\\', '/').toLowerCase();
|
|
63
66
|
while (t.length > 1 && t.endsWith('/'))
|
|
64
67
|
t = t.slice(0, -1);
|
|
65
68
|
return t;
|
|
@@ -467,6 +470,9 @@ class ClaudeMcp {
|
|
|
467
470
|
*
|
|
468
471
|
* In WSL (E100) ist es die `~/.claude.json` der Distro, über die Bridge gelesen; der Schlüssel ist
|
|
469
472
|
* der Linux-Pfad, zusätzlich in der Distro aufgelöst (`realpath`).
|
|
473
|
+
*
|
|
474
|
+
* Claude Code führt den Schlüssel immer in NFC, hmgr merkt Pfade oft in NFD: Probiert werden
|
|
475
|
+
* Pfad, aufgelöster Pfad und beide in NFC (E117).
|
|
470
476
|
*/
|
|
471
477
|
async mcpServersAm(ort) {
|
|
472
478
|
const distro = wslDistroVonOrt(ort);
|
|
@@ -476,13 +482,21 @@ class ClaudeMcp {
|
|
|
476
482
|
if (ort.art === 'arbeitsverzeichnis') {
|
|
477
483
|
const projects = objektFeld(daten, 'projects');
|
|
478
484
|
const pfad = this.cliPfad(ort.pfad);
|
|
479
|
-
const
|
|
485
|
+
const gesehen = new Set();
|
|
486
|
+
const versuchen = (schluessel) => {
|
|
487
|
+
if (schluessel === undefined || gesehen.has(schluessel))
|
|
488
|
+
return undefined;
|
|
489
|
+
gesehen.add(schluessel);
|
|
490
|
+
const treffer = objektFeld(projects, schluessel);
|
|
491
|
+
return treffer === undefined ? undefined : mcpServersVon(treffer);
|
|
492
|
+
};
|
|
493
|
+
const direkt = versuchen(pfad) ?? versuchen(pfad.normalize('NFC'));
|
|
480
494
|
if (direkt !== undefined)
|
|
481
|
-
return
|
|
495
|
+
return direkt;
|
|
482
496
|
const echt = distro === undefined
|
|
483
497
|
? aufgeloest(pfad)
|
|
484
498
|
: await this.harness.bruecke(distro).aufgeloest(pfad).catch(() => undefined);
|
|
485
|
-
return
|
|
499
|
+
return versuchen(echt) ?? versuchen(echt?.normalize('NFC')) ?? {};
|
|
486
500
|
}
|
|
487
501
|
throw new OrtNichtUnterstuetzt(this.harness.name, ort.art);
|
|
488
502
|
}
|
package/dist/aenderungen.json
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"fassung": 1,
|
|
3
3
|
"versionen": {
|
|
4
|
+
"0.0.49": [
|
|
5
|
+
"MCP-Server in Projektordnern mit Umlauten im Namen (etwa „Döring“) erscheinen jetzt in hmgr. Bisher fehlten sie dort, obwohl Claude Code sie benutzte. Dasselbe gilt für Plugins in solchen Ordnern."
|
|
6
|
+
],
|
|
4
7
|
"0.0.48": [
|
|
5
8
|
"Die Meldung „Unexpected end of JSON input“ taucht nicht mehr auf, wenn hmgr an mehreren Stellen gleichzeitig läuft, etwa die Oberfläche und die Kommandozeile: hmgr schreibt seinen Zustand und den Verlauf jetzt so, dass nie eine halb geschriebene Datei gelesen wird."
|
|
6
9
|
],
|