Installation neu schneiden und Windows nativ unterstützen – Analyse des Weg-D-Laufs, Entscheidungen, Pakete #140

Open
opened 2026-09-25 12:17:04 +00:00 by torben · 17 comments
Owner

Stand

Die Analyse ist abgeschlossen (2026-09-26/27, Claude Code, Opus 5.5). D1–D42 sind entschieden (Betreiber, 2026-09-27 bis 2026-10-02); D40 wurde am 2026-10-01 durch #153 E6 geändert. Die Prüfpunkte T1–T12 sind beantwortet (Betreiber, 2026-09-30) und in #151, #152, #153 und #163 eingearbeitet.

Stand 2026-10-02, abends (Kandidat 8.0.0-beta.22): Die Freigabebedingung ist erfüllt. Alle Pakete außer #151 sind geschlossen, und #151 schließt planmäßig erst im Nachlauf. 8.0.0 kann der Betreiber freigeben.

  • Erledigt: #152, #153, #154, #155, #156, #157, #158, #159, #161, #163, #164 und #166.
  • #164 ist erledigt (geschlossen 2026-10-02). Die Handprüfung des Betreibers auf beta.22 zeigt in Copilot CLI und in Copilot in VS Code keinen Hook-Dialog mehr, und die Traces sind vollständig. Dass unter Claude Code tool.pre/tool.post fehlen, ist erwartet (#82).
  • #166 ist erledigt (5d93723, beta.22, dazu c65d559; CI 494/495/496 grün). Der Sammler startet über tools/bugreport / tools/bugreport.ps1. Auf dem Zielsystem hat der Betreiber ihn unter Copilot CLI und Claude Code laufen lassen.
  • #156 ist erledigt (geschlossen 2026-10-02). Die Läufe nach Zeitplan sind grün: sp-live-image 471 und 490, tracker-live 472 und 491.
  • #154 ist erledigt (c77bda2, beta.21, CI 492/493 grün). Die Voraussetzungen in INSTALL.md sind generiert, die Setup-Fragen markiert und von docs verify geprüft. doc-pull-through.md und stack-close koppeln die menschliche Anleitung an die Instruktionen (D12).
  • #153 ist erledigt (a6d07f9, beta.20, CI 486/487 grün). Installiert wird nur noch aus einem Release, direkt in ein leeres Verzeichnis. upstream merge/verify und private-instance.md sind entfernt. Neu sind dist adopt und shell-neutrale Instruktionen, die ein Test prüft. Die Paketentscheidungen E1–E6 stehen in #153; E6 ändert D40.
  • #152 ist erledigt (d0f08d1, beta.19, CI 484/485 grün): Pfadtrenner, LF per .gitattributes, UTF-8 beim Dekodieren und für die eigene Ausgabe, Lock-Fallback über msvcrt, Guard-Tests. Die gepipte Ausgabe im nativen pwsh-Fenster (ibm850) bleibt laut Betreiber vorerst so.
  • #151 ist fertig bis auf den Nachlauf. Code und Handprüfung sind erledigt (A e4b2b6d, B 210e0c8, C c33e8cd/d6e973c). Offen bleibt der Asset-Weg aus einem echten Release; der geht erst nach der Freigabe.
  • Nebenbefunde, nicht Teil der Freigabebedingung:
    • #165: Copilot CLI führt die Claude-Hooks aus .claude/settings.json mit aus (unbestätigt).
    • #167: Unter Copilot CLI öffnete tools/wikitool doctor in der Handprüfung die App-Auswahl für den sh-Starter. Der Betreiber vermutet eine lokale Konfiguration des Klons und testet später (prio/waiting, unbestätigt). Bestätigt sich ein echter Defekt am Launcher, wird er ein Patch auf 8.0.0.
    • #149: publish hängt „Files changed:“ hinter die Trailer, sodass git Co-Authored-By: nicht mehr erkennt. Belegt an 8f61209 und c77bda2.
  • Zurückgestellt: #160.

Dieses Issue ist das Dach über den Paketen. Es hält die Analyse, die Entscheidungen und die Prüfpunkte fest. Entscheidungen fallen im Chat mit dem Betreiber und werden hier nachgetragen. Es schließt, wenn der Nachlauf durch ist.

Anlass

Ausgewertet wurde eine Installation nach dem damaligen Weg D (private Instanz mit diesem Repo als Upstream, instructions/private-instance.md, seit #153 entfernt). Die Eckdaten:

  • Rechner: ein Windows-Arbeitsplatz mit administrativ verwalteten Richtlinien; Chocolatey als Paketmanager.
  • Harness: GitHub Copilot in VS Code, mit einem Mix aus Sonnet 5, GPT-5.3 Codex und GPT-5.6 Luna; rund 250–300 Credits.
  • Verlauf: Der Agent wich nach WSL aus, patchte lokal, reparierte die Git-Konfiguration von Hand und pushte am Ende an publish vorbei.

Ein Tatsachenbericht liegt als Anhang bei; er enthält private Daten (T11, darum kümmert sich der Betreiber separat).

Befunde

# Stolperpunkt im Bericht Ursache Ebene Paket
1 python zunächst nicht gefunden PATH der Harness-Sitzung nach der Chocolatey-Installation veraltet (vermutet; T5 hat es nicht nachgestellt) Umgebung #151 (PATH aus der Registry)
2 pip.exe: Zugriff verweigert Defender, Regel zur Verringerung der Angriffsfläche (ASR) gegen den unsignierten Launcher-Stub (T2 bestätigt); bootstrap.md ruft pip direkt auf Umgebung, Anleitung #151 (-m pip)
3 tools/wikitool hängt in PowerShell Launcher ist reines Bash; eine Datei ohne Endung ist in pwsh ein stiller No-Op – keine Ausgabe, kein Fehler (T10 nachgestellt mit tools/wikitool doctor) Stack #151 (wikitool.ps1) ✔ auf dem Zielsystem bestätigt; Auffälligkeit unter Copilot CLI: #167
4 Type-Resolver scheitert str(relative_to()) liefert Backslashes (12 Stellen) Stack #152 ✔
5 rg fehlt in WSL, Mirror-404 Paketstand der Distro Umgebung – (WSL fällt weg, D8)
6 CRLF in tools/wikitool keine .gitattributes Stack #152 ✔
7 Git-Identität fehlt in WSL Mischbetrieb: zwei Git-Konfigurationen Umgebung – (doctor meldete korrekt)
8 Quoting-Fehler bei wsl -- bash -lc wsl ohne -e läuft über die Default-Shell, die $x schon vorher expandiert (wahrscheinlich); dazu schreibt Copilots Terminal-Tool Befehle um Harness –
9 /tmp zwischen wsl-Aufrufen weg Distro zwischen den Aufrufen beendet, /tmp als tmpfs (vermutet) Umgebung –
10 Terminal-Ausgabe veraltet Copilots Terminal-Tool Harness –
11 Löschlauf stockt Weg-D-Schritt 3 verlangt rund 180 rm-Aufrufe, das Budget-Gate erlaubt 60 Anleitung, Agent #153 ✔ (Weg D entfallen)
12 raw/CONTRACT.md gelöscht Die Anleitung nennt weder Ausnahmen noch einen Weg für raw/ Anleitung #153 ✔
13 Push scheitert (cannot run ssh) Unter WSL liest git den Windows-Pfad als Remote in scp-Syntax (Host C); publish committete trotz unerreichbarem Remote Umgebung, Stack #159 ✔
14 Zahlen 213/217/219 Das Gate zählt D und ?? desselben Pfads doppelt Stack #159 ✔

Was der Bericht selbst nicht wusste:

  • Der Patch aus Punkt 4 kam nie in den Commit. Der CRLF-Fix (Punkt 6) hat ihn mit git reset --hard verworfen; direkt danach war git status --short leer. (T10: git diff HEAD -- tools/ ist leer.)

  • Die „1 hinzugefügte Datei“ des Gates war raw/CONTRACT.md (siehe #159). Dem Nutzer wurde sie als Gate-Konfiguration erklärt – die ist aber gitignored.

  • Fehler in der Weg-D-Anleitung selbst:

    • Schritt 3 braucht wikitool, das venv entsteht erst in Schritt 6.
    • Wie ein leeres privates Repo befüllt wird, steht nirgends.
    • Dev-Material kommt mit (instructions/dev/, commonplace/, .gitea/workflows/release.yml); stack-dev und stack-close wurden in der privaten Instanz aktiv („8 skills“, T10 bestätigt: beide liegen unter .claude/skills).
    • USER.md und SOUL.md werden vom Upstream geerbt, und doctor meldet sie als „present and filled“.
    • INSTALL.md nennt für Weg D Telemetrie „aus“; laut Code ist sie „an“, weil keine .wikitool-release.json existiert.

    All das ist mit #153 entfallen.

  • Der Agent hat die Lücken der Anleitung selbst gefüllt:

    • das Budget-Gate umgangen, mit einer neuen WIKITOOL_SESSION_ID pro Aufruf (Invariante 6)
    • git reset --hard ohne Rückfrage ausgeführt
    • an publish vorbei gepusht (Invariante 5)
    • git rm -r raw von Hand ausgeführt
    • Hilfsskripte unter tools/ abgelegt
    • „Installation abgeschlossen“ gemeldet, obwohl die Personalisierung fehlte

    Dagegen helfen #151 (anhalten statt ausweichen) und #153. In der Handprüfung von #151 (2026-10-01) hat Copilot bei jedem Exit 42 angehalten und nichts selbst installiert.

  • Nebenbefunde:

    • Das Budget-Gate lässt sich per WIKITOOL_SESSION_ID-Rotation umgehen – eine Beobachtung, die zu #52 gehört.
    • Zum Zeitpunkt des Laufs (7.0.0) druckte eine Gate-Ablehnung noch einen Traceback und sah aus wie ein Absturz. Das ist mit #147 behoben.

Entscheidungen

2026-09-27

  • D1 Harnesses. Pflicht unter Windows: GitHub Copilot in VS Code, GitHub Copilot CLI, Claude Code. Wünschenswert: Mistral Vibe, Codex CLI.
  • D2 Installationsweg. Installiert wird nur noch Weg A (Release). dist export wird zum Build-Werkzeug, das Klonen dieses Repos ist Entwicklung. Weg B/C und der Abschnitt zu privaten Forks wandern nach DEVELOPMENT.md. → #153 ✔
  • D3 Weg D. Weg D fällt sofort weg, samt upstream merge/verify. Die Wege sind nicht im Einsatz. Deshalb gibt es einen Major-Bump ohne Migrationsskript und ohne Migrationsanweisung – einen Breaking Change, mit dem man leben muss. → #153 ✔
  • D4 Titelregel. Die Dateinamensregel wird hart durchgesetzt.
  • D5 Einstieg. Installationsanweisung und Preflight-Skripte liegen als Release-Assets neben dem Tarball. INSTALL.md nennt nur den Satz, den man dem Agenten gibt. Die Preflight-Skripte hängt release.yml seit #151 Abschnitt C an (D38); setup-instance.md und preflight.md als Assets seit #153 (E1). → #153 ✔
  • D6 Kein Selbst-Installieren. Der Agent installiert nie selbst, auch nicht mit Zustimmung – die Zielgruppe verwaltet ihre Systeme zu individuell.
  • D7 Gitea-Kopplung. Echte Installationen hängen für Releases und Updates an gitea.nehmer.net/torben/chemenu. Die Repos der Instanzen liegen nicht dort.
  • D8 Windows.
    • Nativ, mit PowerShell 7 (pwsh). Windows PowerShell 5.1 wird nicht unterstützt, eine Kompatibilitätsschicht gibt es nicht.
    • Execution Policy RemoteSigned ist Voraussetzung.
    • WSL ist kein Installationsweg (Zielgruppe ohne IT-Hintergrund).
  • D9 MCP. Der MCP-Server unter Windows ist zurückgestellt (#160).
  • D10 Bugreport. Der Sammler ist Pflicht (#157), die Pseudonymisierung optional (#158). Ohne Pseudonymisierung geht der Bericht über einen sicheren Kanal direkt in die Analyse, nicht über den Tracker.

2026-09-28 – Empfehlung übernommen, wo nicht anders vermerkt

  • D11 bootstrap.md bleibt ausgeliefert, für den Klon einer eigenen Instanz auf einem Zweitrechner. → #153 ✔
  • D12 Zwei Dateien für Mensch und Maschine.
    • INSTALL.md wird dünn und enthält keine Schrittfolge mehr. → #153 ✔
    • Aufzählbare Überschneidungen werden mechanisch geprüft: generierte Voraussetzungs-Region, Fragenliste per docs verify. → #154 ✔ (Fragen als setup-question-Marker statt Frontmatter)
    • Prosa gleicht doc-pull-through.md vor dem Publish ab; stack-close prüft nach. → #154 ✔
  • D13 Preflight-Regel ohne neue Invariante. Die Regel steht in instructions/preflight.md, AGENTS.md § Bootstrap verweist darauf; der Launcher erzwingt sie im Code. → #151 ✔
  • D14 .wikitool-tools.json auf allen Plattformen. → #151 ✔, #152 ✔
  • D15 Launcher. Der Befehlsstring tools/wikitool bleibt überall gleich. Dahinter stehen wikitool (sh, auch für Git Bash) und wikitool.ps1 (#Requires -Version 7). Kein .cmd – T1 hat gezeigt, dass keine Pflicht-Harness es braucht (2026-09-30). → #151 ✔; dasselbe Muster für den Sammler tools/bugreport → #166 ✔; Auffälligkeit unter Copilot CLI → #167 (unbestätigt)
  • D16 Mark of the Web.
    • Der Preflight startet mit prozessweitem -ExecutionPolicy Bypass und prüft von dort die übrigen Skripte.
    • Bei einer Markierung hält er mit Exit 42 an; den Befehl führt der Nutzer aus.
    • Zusatz Betreiber: Der Nutzer wird dabei angeleitet. Jede Exit-42-Ausgabe des Preflights enthält einen Anleitungsblock – was, warum, Befehl, wie weiter –, und INSTALL.md beschreibt jeden Stoppfall. → #151 ✔, #153 ✔
    • Nach T7 (2026-09-30): Beim Weg nach D27 entsteht keine Markierung, weil Invoke-WebRequest keine setzt und tar keine weitergibt. Die Prüfung bleibt als Schutz für den Handweg (Browser plus Entpacken im Explorer).
  • D17 Update in einem Befehl: ja, als dist upgrade --latest. → #161 ✔
  • D18 Titelregel.
    • new und rename verweigern verbotene Zeichen, reservierte Namen, Punkt oder Leerzeichen am Ende und Kollisionen in der Groß-/Kleinschreibung.
    • lint meldet Verstöße im Bestand als ERROR.
    • Es wird nicht automatisch umbenannt. → #155 ✔
  • D19 Versionierung – abweichend von der Empfehlung. Es gibt kein separates 7.1.0-Release; der laufende Kandidat (7.1.0-beta.31) geht im Major-Kandidaten auf, und alles erscheint in einem großen Release 8.0.0.
    • --breaking nennt: die entfernten Installationswege samt upstream merge/verify (#153 ✔), die Titelregel mit rename als Abhilfe und die neue publish-Ablehnung bei unerreichbarem Remote (D25). Dazu kommen mit #163 das Pfadbudget (D32) und mit #151 der einmalige Preflight nach dem Update (D35).
    • --no-migration.
    • Die Freigabe macht der Betreiber.
  • D20 Tracker-Konfiguration: über WIKITOOL_TASKS_CONFIG=<pfad>. → #156 ✔
  • D21 Tracker-Tests.
    • Eine Live-Suite mit eigenem Marker.
    • Im CI: CalDAV gegen Radicale, Super Productivity über ein Snapshot-Fixture.
    • Demo-Projekte unter kb/gtd. → #156 ✔
  • D22 Sammler als Python-Skript nur mit der Standardbibliothek, ohne venv. → #157 ✔; Aufruf unter Windows über den Starter tools/bugreport → #166 ✔
  • D23 Inhalt des Bugreports.
    • Geheimnisse werden immer entfernt.
    • Von kb/ und raw/ nur die Struktur; Seitentitel standardmäßig nicht.
    • Die Chronologie schreibt der Agent nach einer Vorlage.
    • Transkripte nur auf Wunsch.
    • Der Agent lädt nichts hoch. → #157 ✔
  • D24 Pseudonymisierung – weiterentwickelt auf Frage des Betreibers. Zwei Stufen, niemand pflegt eine Tabelle:
    • Stufe 1 ersetzt mechanisch bekannte Identitäten.
    • Stufe 2 lässt ein LLM Kandidaten liefern, die mechanisch angewendet werden.
    • Die Zuordnung entsteht automatisch, bleibt lokal und darf gelöscht werden.
    • Die kleine Restunsicherheit ist akzeptiert; der Mensch wird ausdrücklich darauf hingewiesen. → #158 ✔
  • D25 publish bricht bei konfiguriertem, unerreichbarem Remote ohne --no-push vor dem Commit ab. → #159 ✔
  • D26 Session-ID. session-setup.md behält als einzige Shell-Stelle zwei Zeilen, eine für bash und eine für pwsh. → #153 ✔ (dort auch die Warnung unter Copilot, E5)
  • D27 Erstinstall. Das Preflight-Skript lädt das Release, prüft die sha256 und entpackt es. → #151 ✔, #153 ✔ (Reihenfolge präzisiert durch D33, Einzelheiten D38–D41, Ziel geändert durch E6)

2026-09-29 – Präzisierungen zu D18, Empfehlung übernommen

  • D28 Stack-eigene Namen. INDEX und COLLECTION sind reserviert, genauso wie CON. Dazu kommt eine Verzeichnisprüfung für jede Wurzel: Kein vorhandener Eintrag im Zielverzeichnis darf nach Groß-/Kleinschreibung und Normalisierung denselben Namen haben. Sie behebt auch einen Nebenbefund: new überschreibt bei root: repo heute eine bestehende Datei. Die Bestandsaufnahme steht in #155. → #155 ✔
  • D29 Normalisierung. Kollisionsschlüssel ist casefold(NFC(titel)), weil APFS NFC und NFD gleich behandelt. → #155 ✔
  • D30 Reservierte Namen vollständig. Aufgenommen sind zusätzlich COM0/LPT0 und COM¹²³/LPT¹²³, dazu wird ein leerer Titel verweigert. → #155 ✔
  • D31 #114 geht in #155 auf und ist geschlossen.

2026-09-30 – aus T8, Empfehlung übernommen

  • D32 Lange Pfade: eine feste Grenze statt der Voraussetzung, dass lange Pfade eingeschaltet sind. Auf dem Zielsystem sind lange Pfade aus (LongPathsEnabled = 0, core.longpaths nicht gesetzt). Damit gilt MAX_PATH: 259 Zeichen inklusive Installationsordner. Einschalten braucht Adminrechte, und das kann die Zielgruppe nicht selbst (D6).

    Gemessen im Repo: längster Pfad in kb/ 133 Zeichen, im venv 156 Zeichen ab Checkout-Wurzel.

    1. Budget für Seitenpfade: 160 Zeichen (UTF-16-Einheiten, relativ zur Instanzwurzel). new, rename, move und raw accept verweigern längere Pfade. lint meldet Bestehendes als WARN, nicht als ERROR – kein neuer Bruch im Bestand. → #163 ✔
    2. Preflight (vor dem Entpacken) und doctor (unter Windows mit LongPathsEnabled = 0): Ist der Installationsordner länger als 95 Zeichen, gibt es Exit 42 bzw. FAIL mit Anleitung („Wähle einen kürzeren Ordner, z. B. C:\Chemenu“). → #151 ✔ (im Asset-Modus am endgültigen Ziel, vor dem Entpacken; auf dem Zielsystem bestätigt)
    3. Einschalten von LongPathsEnabled wird nicht verlangt; INSTALL.md erwähnt es nur als Alternative für Nutzer mit Adminrechten. → #153 ✔

    Beide Zahlen gehören zusammen (95 + 160 + Reserve ≤ 259): Wer eine ändert, prüft die andere.

2026-09-30 – aus der Vorbereitung von #151, Empfehlung übernommen

Die Befunde und die verworfenen Wege stehen in #151.

  • D33 Preflight in zwei Modi. Asset-Modus: Ordnerlänge prüfen, Release laden, sha256 prüfen, entpacken, dann die Kopie im Baum aufrufen. Baum-Modus: Markierung, Tools nach Manifest, .wikitool-tools.json, venv. Das Manifest steht nur im Baum. Geladen wird also vor der Tool-Prüfung (Präzisierung von D27). → #151 ✔
  • D34 venv durch den Preflight. Er legt tools/.venv per -m venv und -m pip an, idempotent bei jedem Lauf. Das bleibt im Installationsordner und ist keine Installation im Sinn von D6. → #151 ✔
  • D35 Bruch angenommen. Ohne .wikitool-tools.json endet tools/wikitool mit Exit 42. Bestehende Instanzen führen nach dem Update auf 8.0.0 einmal den Preflight aus; das kommt in den --breaking-Text (D19). Workflows und upgrade-instance.md stellen im selben Paket um. → #151 ✔
  • D36 Hooks über die venv-Python. Claude Code, Vibe und Copilots bash-Zweig rufen tools/trace-hook auf, Copilots powershell-Zweig ruft tools\.venv\Scripts\python.exe direkt auf. → #151 ✔, #82. Nachtrag 2026-10-01: Unter Windows fragte Windows bei Copilot-Hooks nach einer App für trace-hook. Ursache: Copilot CLI liest auch .claude/settings.json und führt dessen command in pwsh aus. Behoben mit dem PowerShell-Zwilling tools/trace-hook.ps1 nach dem Muster von D15, auf dem Zielsystem bestätigt (2026-10-02) → #164 ✔, Nebenbefund #165.
  • D37 pwsh im CI über ein vorgebautes Image chemenu-ci-pwsh (Muster wie #156). Das Paket verknüpft der Betreiber nach dem ersten Push von Hand. → #151 ✔ (verknüpft 2026-10-01)

2026-10-01 – für #151 Abschnitt C, Empfehlung übernommen

Die Befunde und die verworfenen Wege stehen in #151.

  • D38 Preflight-Skripte als Release-Assets. release.yml hängt preflight.sh und preflight.ps1 unter genau diesen Namen an. → #151 ✔; die Installationsanweisung als Asset → #153 ✔ (E1)
  • D39 Das Asset-Skript kennt sein Release. release.yml trägt die URLs von Tarball und .sha256 desselben Releases in Platzhalter der Asset-Kopie ein. Die Kopie im Baum hat leere Platzhalter; ohne URL und ohne --archive endet der Asset-Modus mit Exit 1. Welches Release das neueste ist, klärt der Agent beim Laden des Skripts über den Installationssatz (…/releases/latest und browser_download_url). → #151 ✔, #153 ✔
  • D40 Zielordner – geändert am 2026-10-01 durch #153 E6. Ursprünglich: <Ordner des Skripts>/chemenu, Entpacken in einen temporären Nachbarordner, ein vorhandenes Ziel wird verweigert. Jetzt: Ziel ist der Ordner des Skripts selbst (überschreibbar mit --into <pfad>). Er darf nichts enthalten außer dem Skript und einem .git (leerer Klon des eigenen Instanz-Repos), sonst Exit 1 ohne Änderung. Entpackt wird in einen temporären Ordner im Ziel, das Archiv muss genau einen obersten Ordner haben, sein Inhalt wird ins Ziel verschoben, und das Asset löscht sich danach selbst. Die Ordnerlänge wird weiter am endgültigen Ziel geprüft. → #151 ✔, #153 ✔
  • D41 --archive <pfad>. Ein lokaler Tarball mit <pfad>.sha256 daneben ersetzt den Download. Das ist ein echter Weg für Rechner ohne direkten Download und zugleich der Test-Einstieg (CI-Replay seit #153). → #151 ✔, #153 ✔

2026-10-02

  • D42 #166 wird Freigabebedingung (Betreiber). Der Nachlauf soll im Fehlerfall ein Bündel über #157 erzeugen, und unter Claude Code (Git Bash) startete python3 tools/bugreport.py nur den Store-Alias. Umgesetzt mit dem Starter tools/bugreport nach D15, statt eines Aufrufs je Plattform oder der Python aus .wikitool-tools.json (Begründung in #166). → #166 ✔
  • #167 ist keine Freigabebedingung (Betreiber): Die Ursache wird in der lokalen Konfiguration von Copilot CLI vermutet, der Test folgt später.

Arbeitspakete

Alles erscheint gemeinsam in 8.0.0 (D19). Die Spalte „Bump“ nennt den Teil, den das jeweilige Paket im Kandidaten auslöst.

Paket Inhalt Hängt ab von Bump Stand
#152 Portabilität: Pfadtrenner, Zeilenenden, Encoding (auch der eigenen Ausgabe), Locks, Guard-Tests – minor ✔ erledigt: d0f08d1 (beta.19). Handprüfung der Ausgabe im Nachlauf
#151 Preflight, Anleitung bei jedem Stopp, Launcher, .wikitool-tools.json, venv, Hooks, Release-Download, Ordnerlänge – im --breaking-Text (D35) Code und Handprüfung fertig: A e4b2b6d (beta.14), B 210e0c8 (beta.15), C c33e8cd/d6e973c (beta.16/17). Offen: Asset-Weg am echten Release (Nachlauf)
#164 Copilot-Hooks unter Windows öffnen „App auswählen“ (D36) – patch ✔ erledigt: 9d06050 (beta.18), Handprüfung 2026-10-02
#161 dist upgrade --latest – minor ✔ erledigt
#153 Installation neu schneiden: nur Release ins leere Verzeichnis; B/C/D und upstream entfallen; dist adopt; shell-neutrale Instruktionen #151 major ✔ erledigt: a6d07f9 (beta.20)
#154 Installationsanleitung für Menschen an die Instruktionen koppeln #151, #153 minor ✔ erledigt: c77bda2 (beta.21)
#155 Dateinamensregel für Titel – major ✔ erledigt (8.0.0-beta.1)
#156 Tracker-Anbindungen parallel testbar – minor ✔ erledigt: b0c6477, 40413f9 (beta.3/4); Läufe nach Zeitplan 471/472/490/491 grün
#157 Bugreport-Sammler und manuelle Instruktion – minor ✔ erledigt
#158 Pseudonymisierung für Bugreports #157 minor ✔ erledigt
#159 publish: Doppelzählung im Gate, Remote-Meldung, Abbruch vor Commit – im --breaking-Text ✔ erledigt
#163 Pfadbudget 160 für Seiten- und raw-Pfade (D32) – im --breaking-Text ✔ erledigt
#166 Starter tools/bugreport: der Sammler findet seine Python selbst, ohne Store-Alias (D42) #157 patch ✔ erledigt: 5d93723 (beta.22), c65d559; auf dem Zielsystem geprüft
#160 MCP-Server unter Windows #151, #153 – zurückgestellt

Reihenfolge:

  • Als Nächstes, durch den Betreiber: 8.0.0 freigeben. Die Bedingung (#152–#159, #161, #163, #164, #166 geschlossen) ist erfüllt.
  • Danach: der Nachlauf (Dachkriterium unten). Mit ihm schließen #151 und dieses Issue.
  • Unabhängig davon: #167 testet der Betreiber, wenn es passt. #149 kann vor oder nach der Freigabe gebaut werden (patch).

Prüfpunkte auf dem Windows-Zielsystem (Ergebnisse 2026-09-30)

Die Rohausgaben stehen im Kommentar vom 2026-09-30. Hier steht, was daraus folgt.

  • T1 Launcher-Auflösung. In pwsh 7 greift tools/probe wie tools\probe zuerst auf .ps1, ohne .ps1 auf .cmd, erst danach auf die Datei ohne Endung. In cmd greift .cmd. In Git Bash läuft die Datei ohne Endung. Folge: D15 bestätigt; wikitool.ps1 reicht für pwsh, wikitool (sh) für Git Bash. Ein .cmd braucht keine Pflicht-Harness, weil keine von ihnen cmd nutzt (T4). → #151
  • T2 pip.exe-Blockade. Es ist Defender ASR („Verringerung der Angriffsfläche“). Der Betreiber lässt es von den Admins freischalten; gearbeitet wird unter dieser Annahme. Folge: keine ASR-Erkennung im Preflight. -m pip statt pip.exe bleibt, weil es die Freischaltung für den Stack überflüssig macht. Ob python.exe im venv dauerhaft erlaubt bleibt, zeigt der Nachlauf. → #151
  • T3 Pfadtrenner bei rg. --path-separator / wirkt nicht auf --json; die Pfade kommen mit \. Folge: #152 normalisiert in Python beim Parsen. → #152 ✔
  • T4 Shell je Harness. Copilot in VS Code und Copilot CLI: pwsh 7.6.6. Claude Code: Git Bash (MINGW64, MSYS 3.6.10) unter Windows 11. Dort löst python auf C:\Python314 auf, python3 aber auf den Store-Alias. Folge: Der sh-Preflight darf python3 unter Windows nicht blind nehmen; der Claude-Code-Hook mit python3-Shebang lief dort ins Leere (behoben mit D36). Derselbe Alias traf den Aufruf des Bugreport-Sammlers (behoben mit #166 ✔). → Preflight, Launcher und Tool-Pfade: Voraussetzungen früh prüfen, anhalten statt ausweichen – auf allen Plattformen (#151)
  • T5 Python. Vorhanden sind C:\Python314\python.exe, die Store-Aliase python.exe/python3.exe unter WindowsApps und C:\Windows\py.exe. Punkt 1 (veralteter PATH nach choco) wurde nicht nachgestellt. Folge: Der Registry-PATH bleibt als billige Absicherung im Entwurf. Auch die Handprüfung von #151 hat ihn nicht wirklich gebraucht, weil der choco-Shim-Ordner schon im PATH stand. → #151
  • T6 Execution Policy. LocalMachine = RemoteSigned, keine Gruppenrichtlinie (MachinePolicy/UserPolicy Undefined). Folge: D8 und D16 tragen auf dem Zielsystem. Eine Gruppenrichtlinie bleibt ein Stoppfall mit Anleitung („Admin fragen“). → #151
  • T7 Mark of the Web. Invoke-WebRequest setzt keine Markierung, der Browser schon. tar -xf gibt die Markierung nicht an die entpackten Dateien weiter. Folge: siehe Nachtrag zu D16. Nicht geprüft: das Entpacken per Explorer (dort wird die Markierung nach Windows-Standard weitergegeben).
  • T8 Lange Pfade. core.longpaths ist nicht gesetzt, LongPathsEnabled = 0. Folge: D32 → #151, #153, #163.
  • T9 Ursprünglicher Hänger. Nicht mehr nachvollziehbar; erklärt durch T10: tools/wikitool doctor in pwsh ohne .ps1 gibt nichts aus und endet still. Dazu kommt T1: Eine .ps1 hat Vorrang. Behoben mit #151.
  • T10 Befunde auf der Weg-D-Instanz. git diff HEAD -- tools/ ist leer, der Patch kam also nie in den Commit. .claude/skills enthält stack-dev und stack-close. doctor lief nicht (siehe T9), die Zeilen telemetry und personalization fehlen deshalb. Die git show --stat-Ausgabe ist abgeschnitten und darum ohne Aussage. Weil Weg D entfällt, braucht es keine Nachprüfung.
  • T11 Datenschutz. Kümmert sich der Betreiber separat; nicht mehr Teil dieses Issues.
  • T12 Windows-Runner für CI. Kümmert sich der Betreiber separat; nicht mehr Teil dieses Issues.

Akzeptanzkriterien (Dach)

  • D1–D31 sind entschieden und in diesem Body sowie im jeweiligen Paket nachgezogen (D1–D27 am 2026-09-28, D28–D31 am 2026-09-29).
  • D32 ist entschieden (2026-09-30) und in #151, #153 und #163 nachgezogen.
  • D33–D37 sind entschieden (2026-09-30) und in #151 nachgezogen.
  • D38–D41 sind entschieden (2026-10-01) und in #151 und #153 nachgezogen; D40 ist durch #153 E6 geändert und hier nachgetragen.
  • D42 ist entschieden (2026-10-02) und in #166 umgesetzt.
  • T1–T9 sind beantwortet und in #151/#152 eingearbeitet (2026-09-30).
  • #151–#159, #161, #163, #164 und #166 sind geschlossen; #160 darf zurückgestellt offen bleiben. (Alle geschlossen außer #151, das planmäßig erst mit dem Asset-Weg im Nachlauf schließt.)
  • Nachlauf (nach der Freigabe von 8.0.0): Auf dem Windows-Zielsystem ist eine Installation aus dem Release mit jedem Pflicht-Harness aus D1 ohne Ausweichen durchgelaufen, über den Installationssatz aus INSTALL.md und das Preflight-Asset aus D38, in ein leeres Verzeichnis (E6). Tritt dabei ein Fehler auf, entsteht ein Bündel über tools/bugreport. Dabei wird auch geprüft:
    • Registry-PATH an einem Tool mit neuem PATH-Eintrag, Store-Alias, python.exe im venv unter ASR
    • Ausgabe ohne Kodierungsfehler (#152: doctor zeigt Fußnoten unter Copilot, Claude Code und direkt in beiden Konsolen)
    • aus #153: das Release trägt setup-instance.md und preflight.md als Assets, und doctor meldet unter Copilot nach Schritt 10 von setup-instance.md keine session-id-Warnung
    • tools/wikitool startet in Copilot CLI in einer frischen Instanz (#167)
    • Vorgezogen bestätigt (2026-10-02, Checkout auf beta.22): Hooks ohne Dialog in Copilot CLI und VS Code (#164) und tools/bugreport unter Copilot CLI und Claude Code (#166)
  • Ein Windows-Runner existiert, oder sein Fehlen ist hier bewusst als offen festgehalten. Festgehalten: Der Runner ist offen, der Betreiber kümmert sich außerhalb dieses Issues darum (T12, 2026-09-30).

chemenu-weg-d-postmortem.md

## Stand Die Analyse ist abgeschlossen (2026-09-26/27, Claude Code, Opus 5.5). **D1–D42 sind entschieden** (Betreiber, 2026-09-27 bis 2026-10-02); D40 wurde am 2026-10-01 durch #153 E6 geändert. **Die Prüfpunkte T1–T12 sind beantwortet** (Betreiber, 2026-09-30) und in #151, #152, #153 und #163 eingearbeitet. **Stand 2026-10-02, abends** (Kandidat 8.0.0-beta.22): **Die Freigabebedingung ist erfüllt.** Alle Pakete außer #151 sind geschlossen, und #151 schließt planmäßig erst im Nachlauf. 8.0.0 kann der Betreiber freigeben. - **Erledigt:** #152, #153, #154, #155, #156, #157, #158, #159, #161, #163, #164 und #166. - **#164 ist erledigt** (geschlossen 2026-10-02). Die Handprüfung des Betreibers auf beta.22 zeigt in Copilot CLI und in Copilot in VS Code keinen Hook-Dialog mehr, und die Traces sind vollständig. Dass unter Claude Code `tool.pre`/`tool.post` fehlen, ist erwartet (#82). - **#166 ist erledigt** (`5d93723`, beta.22, dazu `c65d559`; CI 494/495/496 grün). Der Sammler startet über `tools/bugreport` / `tools/bugreport.ps1`. Auf dem Zielsystem hat der Betreiber ihn unter Copilot CLI und Claude Code laufen lassen. - **#156 ist erledigt** (geschlossen 2026-10-02). Die Läufe nach Zeitplan sind grün: `sp-live-image` 471 und 490, `tracker-live` 472 und 491. - **#154 ist erledigt** (`c77bda2`, beta.21, CI 492/493 grün). Die Voraussetzungen in `INSTALL.md` sind generiert, die Setup-Fragen markiert und von `docs verify` geprüft. `doc-pull-through.md` und `stack-close` koppeln die menschliche Anleitung an die Instruktionen (D12). - **#153 ist erledigt** (`a6d07f9`, beta.20, CI 486/487 grün). Installiert wird nur noch aus einem Release, direkt in ein leeres Verzeichnis. `upstream merge/verify` und `private-instance.md` sind entfernt. Neu sind `dist adopt` und shell-neutrale Instruktionen, die ein Test prüft. Die Paketentscheidungen E1–E6 stehen in #153; E6 ändert D40. - **#152 ist erledigt** (`d0f08d1`, beta.19, CI 484/485 grün): Pfadtrenner, LF per `.gitattributes`, UTF-8 beim Dekodieren und für die eigene Ausgabe, Lock-Fallback über `msvcrt`, Guard-Tests. Die gepipte Ausgabe im nativen pwsh-Fenster (`ibm850`) bleibt laut Betreiber vorerst so. - **#151 ist fertig bis auf den Nachlauf.** Code und Handprüfung sind erledigt (A `e4b2b6d`, B `210e0c8`, C `c33e8cd`/`d6e973c`). Offen bleibt der Asset-Weg aus einem echten Release; der geht erst nach der Freigabe. - **Nebenbefunde, nicht Teil der Freigabebedingung:** - #165: Copilot CLI führt die Claude-Hooks aus `.claude/settings.json` mit aus (unbestätigt). - #167: Unter Copilot CLI öffnete `tools/wikitool doctor` in der Handprüfung die App-Auswahl für den sh-Starter. Der Betreiber vermutet eine lokale Konfiguration des Klons und testet später (`prio/waiting`, unbestätigt). Bestätigt sich ein echter Defekt am Launcher, wird er ein Patch auf 8.0.0. - #149: `publish` hängt „Files changed:“ hinter die Trailer, sodass git `Co-Authored-By:` nicht mehr erkennt. Belegt an `8f61209` und `c77bda2`. - **Zurückgestellt:** #160. Dieses Issue ist das Dach über den Paketen. Es hält die Analyse, die Entscheidungen und die Prüfpunkte fest. Entscheidungen fallen im Chat mit dem Betreiber und werden hier nachgetragen. Es schließt, wenn der Nachlauf durch ist. ## Anlass Ausgewertet wurde eine Installation nach dem damaligen Weg D (private Instanz mit diesem Repo als Upstream, `instructions/private-instance.md`, seit #153 entfernt). Die Eckdaten: - **Rechner:** ein Windows-Arbeitsplatz mit administrativ verwalteten Richtlinien; Chocolatey als Paketmanager. - **Harness:** GitHub Copilot in VS Code, mit einem Mix aus Sonnet 5, GPT-5.3 Codex und GPT-5.6 Luna; rund 250–300 Credits. - **Verlauf:** Der Agent wich nach WSL aus, patchte lokal, reparierte die Git-Konfiguration von Hand und pushte am Ende an `publish` vorbei. Ein Tatsachenbericht liegt als Anhang bei; er enthält private Daten (T11, darum kümmert sich der Betreiber separat). ## Befunde | # | Stolperpunkt im Bericht | Ursache | Ebene | Paket | |---|---|---|---|---| | 1 | `python` zunächst nicht gefunden | PATH der Harness-Sitzung nach der Chocolatey-Installation veraltet (vermutet; T5 hat es nicht nachgestellt) | Umgebung | #151 (PATH aus der Registry) | | 2 | `pip.exe`: Zugriff verweigert | **Defender, Regel zur Verringerung der Angriffsfläche (ASR)** gegen den unsignierten Launcher-Stub (T2 bestätigt); `bootstrap.md` ruft pip direkt auf | Umgebung, Anleitung | #151 (`-m pip`) | | 3 | `tools/wikitool` hängt in PowerShell | Launcher ist reines Bash; eine Datei ohne Endung ist in pwsh ein **stiller No-Op** – keine Ausgabe, kein Fehler (T10 nachgestellt mit `tools/wikitool doctor`) | Stack | #151 (`wikitool.ps1`) ✔ auf dem Zielsystem bestätigt; Auffälligkeit unter Copilot CLI: #167 | | 4 | Type-Resolver scheitert | `str(relative_to())` liefert Backslashes (12 Stellen) | Stack | #152 ✔ | | 5 | `rg` fehlt in WSL, Mirror-404 | Paketstand der Distro | Umgebung | – (WSL fällt weg, D8) | | 6 | CRLF in `tools/wikitool` | keine `.gitattributes` | Stack | #152 ✔ | | 7 | Git-Identität fehlt in WSL | Mischbetrieb: zwei Git-Konfigurationen | Umgebung | – (`doctor` meldete korrekt) | | 8 | Quoting-Fehler bei `wsl -- bash -lc` | `wsl` ohne `-e` läuft über die Default-Shell, die `$x` schon vorher expandiert (wahrscheinlich); dazu schreibt Copilots Terminal-Tool Befehle um | Harness | – | | 9 | `/tmp` zwischen `wsl`-Aufrufen weg | Distro zwischen den Aufrufen beendet, `/tmp` als tmpfs (vermutet) | Umgebung | – | | 10 | Terminal-Ausgabe veraltet | Copilots Terminal-Tool | Harness | – | | 11 | Löschlauf stockt | Weg-D-Schritt 3 verlangt rund 180 `rm`-Aufrufe, das Budget-Gate erlaubt 60 | Anleitung, Agent | #153 ✔ (Weg D entfallen) | | 12 | `raw/CONTRACT.md` gelöscht | Die Anleitung nennt weder Ausnahmen noch einen Weg für `raw/` | Anleitung | #153 ✔ | | 13 | Push scheitert (`cannot run ssh`) | Unter WSL liest git den Windows-Pfad als Remote in scp-Syntax (Host `C`); `publish` committete trotz unerreichbarem Remote | Umgebung, Stack | #159 ✔ | | 14 | Zahlen 213/217/219 | Das Gate zählt `D ` und `??` desselben Pfads doppelt | Stack | #159 ✔ | **Was der Bericht selbst nicht wusste:** - **Der Patch aus Punkt 4 kam nie in den Commit.** Der CRLF-Fix (Punkt 6) hat ihn mit `git reset --hard` verworfen; direkt danach war `git status --short` leer. (T10: `git diff HEAD -- tools/` ist leer.) - **Die „1 hinzugefügte Datei“ des Gates war `raw/CONTRACT.md`** (siehe #159). Dem Nutzer wurde sie als Gate-Konfiguration erklärt – die ist aber gitignored. - **Fehler in der Weg-D-Anleitung selbst:** - Schritt 3 braucht `wikitool`, das venv entsteht erst in Schritt 6. - Wie ein leeres privates Repo befüllt wird, steht nirgends. - Dev-Material kommt mit (`instructions/dev/`, `commonplace/`, `.gitea/workflows/release.yml`); `stack-dev` und `stack-close` wurden in der privaten Instanz aktiv („8 skills“, T10 bestätigt: beide liegen unter `.claude/skills`). - `USER.md` und `SOUL.md` werden vom Upstream geerbt, und `doctor` meldet sie als „present and filled“. - `INSTALL.md` nennt für Weg D Telemetrie „aus“; laut Code ist sie „an“, weil keine `.wikitool-release.json` existiert. All das ist mit #153 entfallen. - **Der Agent hat die Lücken der Anleitung selbst gefüllt:** - das Budget-Gate umgangen, mit einer neuen `WIKITOOL_SESSION_ID` pro Aufruf (Invariante 6) - `git reset --hard` ohne Rückfrage ausgeführt - an `publish` vorbei gepusht (Invariante 5) - `git rm -r raw` von Hand ausgeführt - Hilfsskripte unter `tools/` abgelegt - „Installation abgeschlossen“ gemeldet, obwohl die Personalisierung fehlte Dagegen helfen #151 (anhalten statt ausweichen) und #153. In der Handprüfung von #151 (2026-10-01) hat Copilot bei jedem Exit 42 angehalten und nichts selbst installiert. - **Nebenbefunde:** - Das Budget-Gate lässt sich per `WIKITOOL_SESSION_ID`-Rotation umgehen – eine Beobachtung, die zu #52 gehört. - Zum Zeitpunkt des Laufs (7.0.0) druckte eine Gate-Ablehnung noch einen Traceback und sah aus wie ein Absturz. Das ist mit #147 behoben. ## Entscheidungen ### 2026-09-27 - **D1 Harnesses.** Pflicht unter Windows: GitHub Copilot in VS Code, GitHub Copilot CLI, Claude Code. Wünschenswert: Mistral Vibe, Codex CLI. - **D2 Installationsweg.** Installiert wird nur noch Weg A (Release). `dist export` wird zum Build-Werkzeug, das Klonen dieses Repos ist Entwicklung. Weg B/C und der Abschnitt zu privaten Forks wandern nach `DEVELOPMENT.md`. → #153 ✔ - **D3 Weg D.** Weg D fällt sofort weg, samt `upstream merge/verify`. Die Wege sind nicht im Einsatz. Deshalb gibt es einen Major-Bump ohne Migrationsskript und ohne Migrationsanweisung – einen Breaking Change, mit dem man leben muss. → #153 ✔ - **D4 Titelregel.** Die Dateinamensregel wird hart durchgesetzt. - **D5 Einstieg.** Installationsanweisung und Preflight-Skripte liegen als Release-Assets neben dem Tarball. `INSTALL.md` nennt nur den Satz, den man dem Agenten gibt. Die Preflight-Skripte hängt `release.yml` seit #151 Abschnitt C an (D38); `setup-instance.md` und `preflight.md` als Assets seit #153 (E1). → #153 ✔ - **D6 Kein Selbst-Installieren.** Der Agent installiert nie selbst, auch nicht mit Zustimmung – die Zielgruppe verwaltet ihre Systeme zu individuell. - **D7 Gitea-Kopplung.** Echte Installationen hängen für Releases und Updates an gitea.nehmer.net/torben/chemenu. Die Repos der Instanzen liegen nicht dort. - **D8 Windows.** - Nativ, mit PowerShell 7 (pwsh). Windows PowerShell 5.1 wird nicht unterstützt, eine Kompatibilitätsschicht gibt es nicht. - Execution Policy `RemoteSigned` ist Voraussetzung. - WSL ist kein Installationsweg (Zielgruppe ohne IT-Hintergrund). - **D9 MCP.** Der MCP-Server unter Windows ist zurückgestellt (#160). - **D10 Bugreport.** Der Sammler ist Pflicht (#157), die Pseudonymisierung optional (#158). Ohne Pseudonymisierung geht der Bericht über einen sicheren Kanal direkt in die Analyse, nicht über den Tracker. ### 2026-09-28 – Empfehlung übernommen, wo nicht anders vermerkt - **D11 `bootstrap.md` bleibt ausgeliefert,** für den Klon einer *eigenen* Instanz auf einem Zweitrechner. → #153 ✔ - **D12 Zwei Dateien für Mensch und Maschine.** - `INSTALL.md` wird dünn und enthält keine Schrittfolge mehr. → #153 ✔ - Aufzählbare Überschneidungen werden mechanisch geprüft: generierte Voraussetzungs-Region, Fragenliste per `docs verify`. → #154 ✔ (Fragen als `setup-question`-Marker statt Frontmatter) - Prosa gleicht `doc-pull-through.md` vor dem Publish ab; `stack-close` prüft nach. → #154 ✔ - **D13 Preflight-Regel ohne neue Invariante.** Die Regel steht in `instructions/preflight.md`, AGENTS.md § Bootstrap verweist darauf; der Launcher erzwingt sie im Code. → #151 ✔ - **D14 `.wikitool-tools.json` auf allen Plattformen.** → #151 ✔, #152 ✔ - **D15 Launcher.** Der Befehlsstring `tools/wikitool` bleibt überall gleich. Dahinter stehen `wikitool` (sh, auch für Git Bash) und `wikitool.ps1` (`#Requires -Version 7`). **Kein `.cmd`** – T1 hat gezeigt, dass keine Pflicht-Harness es braucht (2026-09-30). → #151 ✔; dasselbe Muster für den Sammler `tools/bugreport` → #166 ✔; Auffälligkeit unter Copilot CLI → #167 (unbestätigt) - **D16 Mark of the Web.** - Der Preflight startet mit prozessweitem `-ExecutionPolicy Bypass` und prüft von dort die übrigen Skripte. - Bei einer Markierung hält er mit Exit 42 an; den Befehl führt der Nutzer aus. - **Zusatz Betreiber:** Der Nutzer wird dabei angeleitet. Jede Exit-42-Ausgabe des Preflights enthält einen Anleitungsblock – was, warum, Befehl, wie weiter –, und `INSTALL.md` beschreibt jeden Stoppfall. → #151 ✔, #153 ✔ - **Nach T7 (2026-09-30):** Beim Weg nach D27 entsteht keine Markierung, weil `Invoke-WebRequest` keine setzt und `tar` keine weitergibt. Die Prüfung bleibt als Schutz für den Handweg (Browser plus Entpacken im Explorer). - **D17 Update in einem Befehl:** ja, als `dist upgrade --latest`. → #161 ✔ - **D18 Titelregel.** - `new` und `rename` verweigern verbotene Zeichen, reservierte Namen, Punkt oder Leerzeichen am Ende und Kollisionen in der Groß-/Kleinschreibung. - `lint` meldet Verstöße im Bestand als ERROR. - Es wird nicht automatisch umbenannt. → #155 ✔ - **D19 Versionierung – abweichend von der Empfehlung.** Es gibt kein separates 7.1.0-Release; der laufende Kandidat (7.1.0-beta.31) geht im Major-Kandidaten auf, und alles erscheint in einem großen Release **8.0.0**. - `--breaking` nennt: die entfernten Installationswege samt `upstream merge/verify` (#153 ✔), die Titelregel mit `rename` als Abhilfe und die neue `publish`-Ablehnung bei unerreichbarem Remote (D25). Dazu kommen mit #163 das Pfadbudget (D32) und mit #151 der einmalige Preflight nach dem Update (D35). - `--no-migration`. - Die Freigabe macht der Betreiber. - **D20 Tracker-Konfiguration:** über `WIKITOOL_TASKS_CONFIG=<pfad>`. → #156 ✔ - **D21 Tracker-Tests.** - Eine Live-Suite mit eigenem Marker. - Im CI: CalDAV gegen Radicale, Super Productivity über ein Snapshot-Fixture. - Demo-Projekte unter `kb/gtd`. → #156 ✔ - **D22 Sammler** als Python-Skript nur mit der Standardbibliothek, ohne venv. → #157 ✔; Aufruf unter Windows über den Starter `tools/bugreport` → #166 ✔ - **D23 Inhalt des Bugreports.** - Geheimnisse werden immer entfernt. - Von `kb/` und `raw/` nur die Struktur; Seitentitel standardmäßig nicht. - Die Chronologie schreibt der Agent nach einer Vorlage. - Transkripte nur auf Wunsch. - Der Agent lädt nichts hoch. → #157 ✔ - **D24 Pseudonymisierung – weiterentwickelt auf Frage des Betreibers.** Zwei Stufen, niemand pflegt eine Tabelle: - Stufe 1 ersetzt mechanisch bekannte Identitäten. - Stufe 2 lässt ein LLM Kandidaten liefern, die mechanisch angewendet werden. - Die Zuordnung entsteht automatisch, bleibt lokal und darf gelöscht werden. - Die kleine Restunsicherheit ist akzeptiert; der Mensch wird ausdrücklich darauf hingewiesen. → #158 ✔ - **D25 `publish`** bricht bei konfiguriertem, unerreichbarem Remote ohne `--no-push` vor dem Commit ab. → #159 ✔ - **D26 Session-ID.** `session-setup.md` behält als einzige Shell-Stelle zwei Zeilen, eine für bash und eine für pwsh. → #153 ✔ (dort auch die Warnung unter Copilot, E5) - **D27 Erstinstall.** Das Preflight-Skript lädt das Release, prüft die sha256 und entpackt es. → #151 ✔, #153 ✔ (Reihenfolge präzisiert durch D33, Einzelheiten D38–D41, Ziel geändert durch E6) ### 2026-09-29 – Präzisierungen zu D18, Empfehlung übernommen - **D28 Stack-eigene Namen.** `INDEX` und `COLLECTION` sind reserviert, genauso wie `CON`. Dazu kommt eine Verzeichnisprüfung für jede Wurzel: Kein vorhandener Eintrag im Zielverzeichnis darf nach Groß-/Kleinschreibung und Normalisierung denselben Namen haben. Sie behebt auch einen Nebenbefund: `new` überschreibt bei `root: repo` heute eine bestehende Datei. Die Bestandsaufnahme steht in #155. → #155 ✔ - **D29 Normalisierung.** Kollisionsschlüssel ist `casefold(NFC(titel))`, weil APFS NFC und NFD gleich behandelt. → #155 ✔ - **D30 Reservierte Namen vollständig.** Aufgenommen sind zusätzlich `COM0`/`LPT0` und `COM¹²³`/`LPT¹²³`, dazu wird ein leerer Titel verweigert. → #155 ✔ - **D31 #114** geht in #155 auf und ist geschlossen. ### 2026-09-30 – aus T8, Empfehlung übernommen - **D32 Lange Pfade: eine feste Grenze statt der Voraussetzung, dass lange Pfade eingeschaltet sind.** Auf dem Zielsystem sind lange Pfade aus (`LongPathsEnabled = 0`, `core.longpaths` nicht gesetzt). Damit gilt MAX_PATH: 259 Zeichen inklusive Installationsordner. Einschalten braucht Adminrechte, und das kann die Zielgruppe nicht selbst (D6). Gemessen im Repo: längster Pfad in `kb/` 133 Zeichen, im venv 156 Zeichen ab Checkout-Wurzel. 1. **Budget für Seitenpfade: 160 Zeichen** (UTF-16-Einheiten, relativ zur Instanzwurzel). `new`, `rename`, `move` und `raw accept` verweigern längere Pfade. `lint` meldet Bestehendes als WARN, nicht als ERROR – kein neuer Bruch im Bestand. → #163 ✔ 2. **Preflight** (vor dem Entpacken) **und `doctor`** (unter Windows mit `LongPathsEnabled = 0`): Ist der Installationsordner länger als 95 Zeichen, gibt es Exit 42 bzw. FAIL mit Anleitung („Wähle einen kürzeren Ordner, z. B. `C:\Chemenu`“). → #151 ✔ (im Asset-Modus am endgültigen Ziel, vor dem Entpacken; auf dem Zielsystem bestätigt) 3. Einschalten von `LongPathsEnabled` wird nicht verlangt; `INSTALL.md` erwähnt es nur als Alternative für Nutzer mit Adminrechten. → #153 ✔ Beide Zahlen gehören zusammen (95 + 160 + Reserve ≤ 259): Wer eine ändert, prüft die andere. ### 2026-09-30 – aus der Vorbereitung von #151, Empfehlung übernommen Die Befunde und die verworfenen Wege stehen in #151. - **D33 Preflight in zwei Modi.** Asset-Modus: Ordnerlänge prüfen, Release laden, sha256 prüfen, entpacken, dann die Kopie im Baum aufrufen. Baum-Modus: Markierung, Tools nach Manifest, `.wikitool-tools.json`, venv. Das Manifest steht nur im Baum. Geladen wird also **vor** der Tool-Prüfung (Präzisierung von D27). → #151 ✔ - **D34 venv durch den Preflight.** Er legt `tools/.venv` per `-m venv` und `-m pip` an, idempotent bei jedem Lauf. Das bleibt im Installationsordner und ist keine Installation im Sinn von D6. → #151 ✔ - **D35 Bruch angenommen.** Ohne `.wikitool-tools.json` endet `tools/wikitool` mit Exit 42. Bestehende Instanzen führen nach dem Update auf 8.0.0 einmal den Preflight aus; das kommt in den `--breaking`-Text (D19). Workflows und `upgrade-instance.md` stellen im selben Paket um. → #151 ✔ - **D36 Hooks über die venv-Python.** Claude Code, Vibe und Copilots `bash`-Zweig rufen `tools/trace-hook` auf, Copilots `powershell`-Zweig ruft `tools\.venv\Scripts\python.exe` direkt auf. → #151 ✔, #82. **Nachtrag 2026-10-01:** Unter Windows fragte Windows bei Copilot-Hooks nach einer App für `trace-hook`. Ursache: Copilot CLI liest auch `.claude/settings.json` und führt dessen `command` in pwsh aus. Behoben mit dem PowerShell-Zwilling `tools/trace-hook.ps1` nach dem Muster von D15, auf dem Zielsystem bestätigt (2026-10-02) → #164 ✔, Nebenbefund #165. - **D37 pwsh im CI** über ein vorgebautes Image `chemenu-ci-pwsh` (Muster wie #156). Das Paket verknüpft der Betreiber nach dem ersten Push von Hand. → #151 ✔ (verknüpft 2026-10-01) ### 2026-10-01 – für #151 Abschnitt C, Empfehlung übernommen Die Befunde und die verworfenen Wege stehen in #151. - **D38 Preflight-Skripte als Release-Assets.** `release.yml` hängt `preflight.sh` und `preflight.ps1` unter genau diesen Namen an. → #151 ✔; die Installationsanweisung als Asset → #153 ✔ (E1) - **D39 Das Asset-Skript kennt sein Release.** `release.yml` trägt die URLs von Tarball und `.sha256` desselben Releases in Platzhalter der Asset-Kopie ein. Die Kopie im Baum hat leere Platzhalter; ohne URL und ohne `--archive` endet der Asset-Modus mit Exit 1. Welches Release das neueste ist, klärt der Agent beim Laden des Skripts über den Installationssatz (`…/releases/latest` und `browser_download_url`). → #151 ✔, #153 ✔ - **D40 Zielordner – geändert am 2026-10-01 durch #153 E6.** Ursprünglich: `<Ordner des Skripts>/chemenu`, Entpacken in einen temporären Nachbarordner, ein vorhandenes Ziel wird verweigert. **Jetzt:** Ziel ist der Ordner des Skripts selbst (überschreibbar mit `--into <pfad>`). Er darf nichts enthalten außer dem Skript und einem `.git` (leerer Klon des eigenen Instanz-Repos), sonst Exit 1 ohne Änderung. Entpackt wird in einen temporären Ordner im Ziel, das Archiv muss genau einen obersten Ordner haben, sein Inhalt wird ins Ziel verschoben, und das Asset löscht sich danach selbst. Die Ordnerlänge wird weiter am endgültigen Ziel geprüft. → #151 ✔, #153 ✔ - **D41 `--archive <pfad>`.** Ein lokaler Tarball mit `<pfad>.sha256` daneben ersetzt den Download. Das ist ein echter Weg für Rechner ohne direkten Download und zugleich der Test-Einstieg (CI-Replay seit #153). → #151 ✔, #153 ✔ ### 2026-10-02 - **D42 #166 wird Freigabebedingung** (Betreiber). Der Nachlauf soll im Fehlerfall ein Bündel über #157 erzeugen, und unter Claude Code (Git Bash) startete `python3 tools/bugreport.py` nur den Store-Alias. Umgesetzt mit dem Starter `tools/bugreport` nach D15, statt eines Aufrufs je Plattform oder der Python aus `.wikitool-tools.json` (Begründung in #166). → #166 ✔ - **#167 ist keine Freigabebedingung** (Betreiber): Die Ursache wird in der lokalen Konfiguration von Copilot CLI vermutet, der Test folgt später. ## Arbeitspakete Alles erscheint gemeinsam in 8.0.0 (D19). Die Spalte „Bump“ nennt den Teil, den das jeweilige Paket im Kandidaten auslöst. | Paket | Inhalt | Hängt ab von | Bump | Stand | |---|---|---|---|---| | #152 | Portabilität: Pfadtrenner, Zeilenenden, Encoding (auch der eigenen Ausgabe), Locks, Guard-Tests | – | minor | ✔ erledigt: `d0f08d1` (beta.19). Handprüfung der Ausgabe im Nachlauf | | #151 | Preflight, Anleitung bei jedem Stopp, Launcher, `.wikitool-tools.json`, venv, Hooks, Release-Download, Ordnerlänge | – | im `--breaking`-Text (D35) | Code und Handprüfung fertig: A `e4b2b6d` (beta.14), B `210e0c8` (beta.15), C `c33e8cd`/`d6e973c` (beta.16/17). Offen: Asset-Weg am echten Release (Nachlauf) | | #164 | Copilot-Hooks unter Windows öffnen „App auswählen“ (D36) | – | patch | ✔ erledigt: `9d06050` (beta.18), Handprüfung 2026-10-02 | | #161 | `dist upgrade --latest` | – | minor | ✔ erledigt | | #153 | Installation neu schneiden: nur Release ins leere Verzeichnis; B/C/D und `upstream` entfallen; `dist adopt`; shell-neutrale Instruktionen | #151 | **major** | ✔ erledigt: `a6d07f9` (beta.20) | | #154 | Installationsanleitung für Menschen an die Instruktionen koppeln | #151, #153 | minor | ✔ erledigt: `c77bda2` (beta.21) | | #155 | Dateinamensregel für Titel | – | **major** | ✔ erledigt (8.0.0-beta.1) | | #156 | Tracker-Anbindungen parallel testbar | – | minor | ✔ erledigt: `b0c6477`, `40413f9` (beta.3/4); Läufe nach Zeitplan 471/472/490/491 grün | | #157 | Bugreport-Sammler und manuelle Instruktion | – | minor | ✔ erledigt | | #158 | Pseudonymisierung für Bugreports | #157 | minor | ✔ erledigt | | #159 | `publish`: Doppelzählung im Gate, Remote-Meldung, Abbruch vor Commit | – | im `--breaking`-Text | ✔ erledigt | | #163 | Pfadbudget 160 für Seiten- und raw-Pfade (D32) | – | im `--breaking`-Text | ✔ erledigt | | #166 | Starter `tools/bugreport`: der Sammler findet seine Python selbst, ohne Store-Alias (D42) | #157 | patch | ✔ erledigt: `5d93723` (beta.22), `c65d559`; auf dem Zielsystem geprüft | | #160 | MCP-Server unter Windows | #151, #153 | – | zurückgestellt | **Reihenfolge:** - **Als Nächstes, durch den Betreiber:** 8.0.0 freigeben. Die Bedingung (#152–#159, #161, #163, #164, #166 geschlossen) ist erfüllt. - **Danach: der Nachlauf** (Dachkriterium unten). Mit ihm schließen #151 und dieses Issue. - **Unabhängig davon:** #167 testet der Betreiber, wenn es passt. #149 kann vor oder nach der Freigabe gebaut werden (patch). ## Prüfpunkte auf dem Windows-Zielsystem (Ergebnisse 2026-09-30) Die Rohausgaben stehen im Kommentar vom 2026-09-30. Hier steht, was daraus folgt. - [x] **T1 Launcher-Auflösung.** In pwsh 7 greift `tools/probe` wie `tools\probe` zuerst auf `.ps1`, ohne `.ps1` auf `.cmd`, erst danach auf die Datei ohne Endung. In cmd greift `.cmd`. In Git Bash läuft die Datei ohne Endung. **Folge:** D15 bestätigt; `wikitool.ps1` reicht für pwsh, `wikitool` (sh) für Git Bash. Ein `.cmd` braucht keine Pflicht-Harness, weil keine von ihnen cmd nutzt (T4). → #151 - [x] **T2 pip.exe-Blockade.** Es ist Defender ASR („Verringerung der Angriffsfläche“). Der Betreiber lässt es von den Admins freischalten; gearbeitet wird unter dieser Annahme. **Folge:** keine ASR-Erkennung im Preflight. `-m pip` statt `pip.exe` bleibt, weil es die Freischaltung für den Stack überflüssig macht. Ob `python.exe` im venv dauerhaft erlaubt bleibt, zeigt der Nachlauf. → #151 - [x] **T3 Pfadtrenner bei `rg`.** `--path-separator /` wirkt **nicht** auf `--json`; die Pfade kommen mit `\`. **Folge:** #152 normalisiert in Python beim Parsen. → #152 ✔ - [x] **T4 Shell je Harness.** Copilot in VS Code und Copilot CLI: pwsh 7.6.6. Claude Code: Git Bash (MINGW64, MSYS 3.6.10) unter Windows 11. Dort löst `python` auf `C:\Python314` auf, **`python3` aber auf den Store-Alias.** **Folge:** Der sh-Preflight darf `python3` unter Windows nicht blind nehmen; der Claude-Code-Hook mit `python3`-Shebang lief dort ins Leere (behoben mit D36). Derselbe Alias traf den Aufruf des Bugreport-Sammlers (behoben mit #166 ✔). → #151 - [x] **T5 Python.** Vorhanden sind `C:\Python314\python.exe`, die Store-Aliase `python.exe`/`python3.exe` unter `WindowsApps` und `C:\Windows\py.exe`. Punkt 1 (veralteter PATH nach choco) wurde nicht nachgestellt. **Folge:** Der Registry-PATH bleibt als billige Absicherung im Entwurf. Auch die Handprüfung von #151 hat ihn nicht wirklich gebraucht, weil der choco-Shim-Ordner schon im PATH stand. → #151 - [x] **T6 Execution Policy.** `LocalMachine = RemoteSigned`, keine Gruppenrichtlinie (MachinePolicy/UserPolicy `Undefined`). **Folge:** D8 und D16 tragen auf dem Zielsystem. Eine Gruppenrichtlinie bleibt ein Stoppfall mit Anleitung („Admin fragen“). → #151 - [x] **T7 Mark of the Web.** `Invoke-WebRequest` setzt keine Markierung, der Browser schon. `tar -xf` gibt die Markierung nicht an die entpackten Dateien weiter. **Folge:** siehe Nachtrag zu D16. Nicht geprüft: das Entpacken per Explorer (dort wird die Markierung nach Windows-Standard weitergegeben). - [x] **T8 Lange Pfade.** `core.longpaths` ist nicht gesetzt, `LongPathsEnabled = 0`. **Folge:** D32 → #151, #153, #163. - [x] **T9 Ursprünglicher Hänger.** Nicht mehr nachvollziehbar; erklärt durch T10: `tools/wikitool doctor` in pwsh ohne `.ps1` gibt nichts aus und endet still. Dazu kommt T1: Eine `.ps1` hat Vorrang. Behoben mit #151. - [x] **T10 Befunde auf der Weg-D-Instanz.** `git diff HEAD -- tools/` ist leer, der Patch kam also nie in den Commit. `.claude/skills` enthält `stack-dev` und `stack-close`. `doctor` lief nicht (siehe T9), die Zeilen `telemetry` und `personalization` fehlen deshalb. Die `git show --stat`-Ausgabe ist abgeschnitten und darum ohne Aussage. Weil Weg D entfällt, braucht es keine Nachprüfung. - [x] **T11 Datenschutz.** Kümmert sich der Betreiber separat; nicht mehr Teil dieses Issues. - [x] **T12 Windows-Runner für CI.** Kümmert sich der Betreiber separat; nicht mehr Teil dieses Issues. ## Akzeptanzkriterien (Dach) - [x] D1–D31 sind entschieden und in diesem Body sowie im jeweiligen Paket nachgezogen (D1–D27 am 2026-09-28, D28–D31 am 2026-09-29). - [x] D32 ist entschieden (2026-09-30) und in #151, #153 und #163 nachgezogen. - [x] D33–D37 sind entschieden (2026-09-30) und in #151 nachgezogen. - [x] D38–D41 sind entschieden (2026-10-01) und in #151 und #153 nachgezogen; D40 ist durch #153 E6 geändert und hier nachgetragen. - [x] D42 ist entschieden (2026-10-02) und in #166 umgesetzt. - [x] T1–T9 sind beantwortet und in #151/#152 eingearbeitet (2026-09-30). - [ ] #151–#159, #161, #163, #164 und #166 sind geschlossen; #160 darf zurückgestellt offen bleiben. (Alle geschlossen außer #151, das planmäßig erst mit dem Asset-Weg im Nachlauf schließt.) - [ ] **Nachlauf (nach der Freigabe von 8.0.0):** Auf dem Windows-Zielsystem ist eine Installation aus dem Release mit jedem Pflicht-Harness aus D1 ohne Ausweichen durchgelaufen, über den Installationssatz aus `INSTALL.md` und das Preflight-Asset aus D38, in ein leeres Verzeichnis (E6). Tritt dabei ein Fehler auf, entsteht ein Bündel über `tools/bugreport`. Dabei wird auch geprüft: - Registry-PATH an einem Tool mit neuem PATH-Eintrag, Store-Alias, `python.exe` im venv unter ASR - Ausgabe ohne Kodierungsfehler (#152: `doctor` zeigt `Fußnoten` unter Copilot, Claude Code und direkt in beiden Konsolen) - aus #153: das Release trägt `setup-instance.md` und `preflight.md` als Assets, und `doctor` meldet unter Copilot nach Schritt 10 von `setup-instance.md` keine `session-id`-Warnung - `tools/wikitool` startet in Copilot CLI in einer frischen Instanz (#167) - Vorgezogen bestätigt (2026-10-02, Checkout auf beta.22): Hooks ohne Dialog in Copilot CLI und VS Code (#164) und `tools/bugreport` unter Copilot CLI und Claude Code (#166) - [x] ~~Ein Windows-Runner existiert, oder sein Fehlen ist hier bewusst als offen festgehalten.~~ Festgehalten: Der Runner ist offen, der Betreiber kümmert sich außerhalb dieses Issues darum (T12, 2026-09-30). [chemenu-weg-d-postmortem.md](https://gitea.nehmer.net/attachments/79b6b435-2bea-4a34-9ac3-2f85defcd9d1)
torben added the status/incoming label 2026-09-25 12:17:04 +00:00
Author
Owner

Changelog: Den Stub ausgearbeitet (2026-09-26/27). Was sich geändert hat:

  • Body neu geschrieben. Er enthält jetzt:
    • die Analyse des Weg-D-Laufs
    • die Entscheidungen des Betreibers (D1–D10)
    • offene Entscheidungen mit Empfehlung (D11–D26)
    • die Paketliste #151–#160
    • die Prüfpunkte auf dem Windows-Zielsystem
  • Titel angepasst.
  • Labels gesetzt, status/incoming entfernt.

Ursprünglicher Stub, wörtlich. Das angehängte Copilot-Transkript fehlt hier: Es enthält private Pfade und bleibt im Bearbeitungsverlauf des Bodys und im Anhang erhalten.

Der Ablauf war ungewöhnlich. Es ging ewig mit vielen Schritten und einem Ausweichen in das WSL inklusive eines Patches.
Wir haben hier einen Mix aus für Windows unvollständige Funktionalitäten und allgemein wohl unvollständigen Installationsanleitungen.
Github Copilot hat das Ganze mit einem Mix aus Sonnet 5, GPT-5.3 Codex und GPT-5.6 Luna gemacht und rund 250-300 Credits verbraten.

Im Anhang des Issues ist ein umfangreiches Post-Mortem chemenu-weg-d-postmortem.md, wenn Du dies per MCP nicht lesen kannst, bescheid geben, dann übernehme ich es hier in den Body.

Aufgabe ist die tiefe Analyse des Ablaufs und das Erarbeiten von Verbesserungsvorschlägen/Fixes, dass die Installation insbesondere unter Windows runder läuft.

Hier ist noch das Rohtranskript aus dem Githuz Copilot Fenster (es listet leider den Denkprozess nicht, ich habe dies Session aber noch im Zugriff:

**Changelog:** Den Stub ausgearbeitet (2026-09-26/27). Was sich geändert hat: - **Body neu geschrieben.** Er enthält jetzt: - die Analyse des Weg-D-Laufs - die Entscheidungen des Betreibers (D1–D10) - offene Entscheidungen mit Empfehlung (D11–D26) - die Paketliste #151–#160 - die Prüfpunkte auf dem Windows-Zielsystem - **Titel angepasst.** - **Labels gesetzt,** `status/incoming` entfernt. Ursprünglicher Stub, wörtlich. Das angehängte Copilot-Transkript fehlt hier: Es enthält private Pfade und bleibt im Bearbeitungsverlauf des Bodys und im Anhang erhalten. > Der Ablauf war ungewöhnlich. Es ging ewig mit vielen Schritten und einem Ausweichen in das WSL inklusive eines Patches. > Wir haben hier einen Mix aus für Windows unvollständige Funktionalitäten und allgemein wohl unvollständigen Installationsanleitungen. > Github Copilot hat das Ganze mit einem Mix aus Sonnet 5, GPT-5.3 Codex und GPT-5.6 Luna gemacht und rund 250-300 Credits verbraten. > > Im Anhang des Issues ist ein umfangreiches Post-Mortem chemenu-weg-d-postmortem.md, wenn Du dies per MCP nicht lesen kannst, bescheid geben, dann übernehme ich es hier in den Body. > > Aufgabe ist die tiefe Analyse des Ablaufs und das Erarbeiten von Verbesserungsvorschlägen/Fixes, dass die Installation insbesondere unter Windows runder läuft. > > Hier ist noch das Rohtranskript aus dem Githuz Copilot Fenster (es listet leider den Denkprozess nicht, ich habe dies Session aber noch im Zugriff:
torben changed title from Installation via Methode D in einem Windowssystem auffällig to Installation neu schneiden und Windows nativ unterstützen – Analyse des Weg-D-Laufs, Entscheidungen, Pakete 2026-09-27 08:49:43 +00:00
torben added prio/plannedsize/Larea/distributionkind/decision and removed status/incoming labels 2026-09-27 08:49:48 +00:00
Author
Owner

Changelog:

  • D16 korrigiert. Unter RemoteSigned blockiert pwsh auch einen markierten Preflight. Der Preflight kann seine eigene Markierung also nicht melden. Er startet deshalb mit -ExecutionPolicy Bypass, das nur für diesen einen Prozess gilt, und prüft von dort die übrigen Skripte.
  • D27 neu: Wer lädt das Release beim Erstinstall? Die Empfehlung ist das Preflight-Skript.
  • T6 nennt jetzt, dass eine Gruppenrichtlinie auch den prozessweiten Bypass aufhebt.
  • Stand hält fest, dass Entscheidungen im Chat fallen und hier nachgetragen werden.
**Changelog:** - **D16 korrigiert.** Unter `RemoteSigned` blockiert pwsh auch einen markierten Preflight. Der Preflight kann seine eigene Markierung also nicht melden. Er startet deshalb mit `-ExecutionPolicy Bypass`, das nur für diesen einen Prozess gilt, und prüft von dort die übrigen Skripte. - **D27 neu:** Wer lädt das Release beim Erstinstall? Die Empfehlung ist das Preflight-Skript. - **T6** nennt jetzt, dass eine Gruppenrichtlinie auch den prozessweiten Bypass aufhebt. - **Stand** hält fest, dass Entscheidungen im Chat fallen und hier nachgetragen werden.
torben added kind/build and removed kind/decision labels 2026-09-28 16:56:18 +00:00
Author
Owner

Changelog:

  • D11–D27 entschieden (Betreiber im Chat, 2026-09-28). Abweichungen von der Empfehlung:
    • D16: Der Nutzer wird bei jedem Stopp angeleitet.
    • D19: Kein separates 7.1.0, alles erscheint in einem Release 8.0.0.
    • D24: Neu gefasst als zweistufige, LLM-gestützte Pseudonymisierung ohne Tabellenpflege, mit ausdrücklich akzeptierter Restunsicherheit.
  • Neues Paket #161 (dist upgrade --latest, D17).
  • Pakete #151 und #153–#158: kind/decision → kind/build.
  • Dieses Issue: ebenfalls kind/build, weil nur noch Umsetzung und die Prüfpunkte T1–T12 offen sind.
**Changelog:** - **D11–D27 entschieden** (Betreiber im Chat, 2026-09-28). Abweichungen von der Empfehlung: - **D16:** Der Nutzer wird bei jedem Stopp angeleitet. - **D19:** Kein separates 7.1.0, alles erscheint in einem Release 8.0.0. - **D24:** Neu gefasst als zweistufige, LLM-gestützte Pseudonymisierung ohne Tabellenpflege, mit ausdrücklich akzeptierter Restunsicherheit. - **Neues Paket #161** (`dist upgrade --latest`, D17). - **Pakete #151 und #153–#158:** `kind/decision` → `kind/build`. - **Dieses Issue:** ebenfalls `kind/build`, weil nur noch Umsetzung und die Prüfpunkte T1–T12 offen sind.
Author
Owner

Changelog: D28–D31 nachgetragen (2026-09-29), Präzisierungen der Titelregel aus #155: stack-eigene Namen samt Verzeichnisprüfung, NFC-Normalisierung, vollständige Liste reservierter Namen, #114 in #155 aufgegangen. Der Stand und das erste Dach-Kriterium nennen jetzt D1–D31.

**Changelog:** D28–D31 nachgetragen (2026-09-29), Präzisierungen der Titelregel aus #155: stack-eigene Namen samt Verzeichnisprüfung, NFC-Normalisierung, vollständige Liste reservierter Namen, #114 in #155 aufgegangen. Der Stand und das erste Dach-Kriterium nennen jetzt D1–D31.
Author
Owner

Antworten auf die Tests

T1 Launcher-Auflösung

PS C:\Users\Torben.Nehmer> $d="$env:TEMP\wt-probe"; New-Item -ItemType Directory -Force "$d\tools" | Out-Null; Set-Location $d
PS C:\Users\Torben.Nehmer\AppData\Local\Temp\wt-probe> Set-Content tools\probe "#!/bin/sh`necho sh"; Set-Content tools\probe.ps1 'Write-Output ps1'; Set-Content tools\probe.cmd '@echo cmd'
PS C:\Users\Torben.Nehmer\AppData\Local\Temp\wt-probe> tools/probe; tools\probe
ps1
ps1
PS C:\Users\Torben.Nehmer\AppData\Local\Temp\wt-probe> Remove-Item tools\probe.ps1; tools/probe # greift jetzt .cmd oder die extensionslose Datei?
cmd


C:\Users\Torben.Nehmer>tools\probe
Das System kann den angegebenen Pfad nicht finden.

C:\Users\Torben.Nehmer>cd AppData\Local\Temp\wt-probe

C:\Users\Torben.Nehmer\AppData\Local\Temp\wt-probe>tools\probe
cmd


INVONIC+Torben.Nehmer@NB-INW-PF62S01Q MINGW64 ~
$ tools/probe
bash: tools/probe: No such file or directory

INVONIC+Torben.Nehmer@NB-INW-PF62S01Q MINGW64 ~
$ cd AppData/Local/

INVONIC+Torben.Nehmer@NB-INW-PF62S01Q MINGW64 ~/AppData/Local
$ cd Temp

INVONIC+Torben.Nehmer@NB-INW-PF62S01Q MINGW64 ~/AppData/Local/Temp
$ cd wt-probe/

INVONIC+Torben.Nehmer@NB-INW-PF62S01Q MINGW64 ~/AppData/Local/Temp/wt-probe
$ tools/probe
sh

T2 pip.exe-Blockade

pip wurde vom Defender blockiert, "Verringerung der Angriffsfläche", das kann ich mir von den Admins freischalten lassen, arbeite unter dieser annahme.

T3 Pfadtrenner bei rg

PS C:\Repositories\Chemenu> rg --json --path-separator / Contract kb | Select-Object -First 2
{"type":"begin","data":{"path":{"text":"kb\comparisons\COLLECTION.md"}}}
{"type":"match","data":{"path":{"text":"kb\comparisons\COLLECTION.md"},"lines":{"text":"# kb/comparisons/ - Collection Contract\n"},"line_number":8,"absolute_offset":109,"submatches":[{"match":{"text":"Contract"},"start":31,"end":39}]}}

T4 Shell je Harness

Copilot in VS Code: $PSVersionTable.PSVersion ergibt 7.6.6.
Copilot CLI: 7.6.6
Claude Code:

  • Shell: /bin/bash.exe, das Git Bash unter MSYS2 (MINGW64) ist.
  • System: Windows 11 (Build 26200), x86_64, MSYS-Laufzeit 3.6.10.
  • python: /c/Python314/python, also Python 3.14.
  • python3: /c/Users/Torben.Nehmer/AppData/Local/Microsoft/WindowsApps/python3.

T5 Python

PS C:\Repositories\Chemenu> Get-Command python,python3,py -All | Format-Table Source

Source

C:\Python314\python.exe
C:\Users\Torben.Nehmer\AppData\Local\Microsoft\WindowsApps\python.exe
C:\Users\Torben.Nehmer\AppData\Local\Microsoft\WindowsApps\python3.exe
C:\Windows\py.exe

T6 Execution Policy

PS C:\Repositories\Chemenu> Get-ExecutionPolicy -List

    Scope ExecutionPolicy
    ----- ---------------

MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser Undefined
LocalMachine RemoteSigned

T7 Mark of the Web

PS C:\Users\Torben.Nehmer> Invoke-WebRequest -Uri https://gitea.nehmer.net/torben/chemenu/archive/v7.0.0.zip -OutFile test.zip
PS C:\Users\Torben.Nehmer> Get-Item .\test.zip -Stream Zone.Identifier
Get-Item: Der alternative Datenstrom „Zone.Identifier“ der Datei „C:\Users\Torben.Nehmer\test.zip“ konnte nicht geöffnet werden.
PS C:\Users\Torben.Nehmer> Get-Item .\test-from-browser.zip -Stream Zone.Identifier

PSPath : Microsoft.PowerShell.Core\FileSystem::C:\Users\Torben.Nehmer\test-from-browser.zip:Zone.Identifier
PSParentPath : Microsoft.PowerShell.Core\FileSystem::C:\Users\Torben.Nehmer
PSChildName : test-from-browser.zip:Zone.Identifier
PSDrive : C
PSProvider : Microsoft.PowerShell.Core\FileSystem
PSIsContainer : False
FileName : C:\Users\Torben.Nehmer\test-from-browser.zip
Stream : Zone.Identifier
Length : 167

PS C:\Users\Torben.Nehmer> tar -xf .\test-from-browser.zip
...
Verzeichnis: C:\Users\Torben.Nehmer\chemenu\tools

Mode LastWriteTime Length Name


d---- 22.09.2026 22:51 chemenu
-a--- 22.09.2026 22:51 2207 .coveragerc
-a--- 22.09.2026 22:51 97209 CONTRACT.md
-a--- 22.09.2026 22:51 8468 import_chronicle.py
-a--- 22.09.2026 22:51 50 pytest.ini
-a--- 22.09.2026 22:51 11572 README.md
-a--- 22.09.2026 22:51 614 requirements-mcp.txt
-a--- 22.09.2026 22:51 70 requirements.txt
-a--- 22.09.2026 22:51 10128 trace_ingest.py
-a--- 22.09.2026 22:51 951 wikitool

PS C:\Users\Torben.Nehmer\chemenu\tools> Get-Item .\trace_ingest.py -Stream Zone.Identifier
Get-Item: Der alternative Datenstrom „Zone.Identifier“ der Datei „C:\Users\Torben.Nehmer\chemenu\tools\trace_ingest.py“ konnte nicht geöffnet werden.

T8 Lange Pfade

PS C:\Users\Torben.Nehmer> git config --get core.longpaths
PS C:\Users\Torben.Nehmer> (Get-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem).LongPathsEnabled
0

T9 Ursprünglicher Hänger

nicht mehr nachvollziehbar

T10 (optional) Befunde auf der Weg-D-Instanz bestätigen

S C:\Repositories\Chemenu> git show --stat 795767e -- raw/CONTRACT.md .wikitool-remotes.json
commit 795767e25c6594f2c637435d7a028472657ef4c7 (HEAD -> main, origin/main)
Author: Torben Nehmer torben.nehmer@agenic.com
Date: Fri Sep 25 13:25:48 2026 +0200

setup: initialize private instance from upstream

Files changed:
- kb/comparisons/INDEX.md
- kb/comparisons/amd-pstate vs acpi-cpufreq.md
- kb/concepts/INDEX.md
- kb/concepts/architectures/Consolidation Tiers.md
- kb/concepts/architectures/Context Isolation.md
- kb/concepts/architectures/Cross-platform Agent Skills.md
- kb/concepts/architectures/Episodic Memory.md
- kb/concepts/architectures/Hybrid Search.md
- kb/concepts/architectures/Implementation Spectrum.md
- kb/concepts/architectures/Knowledge Graph.md
- kb/concepts/architectures/LLM Wiki Pattern.md
- kb/concepts/architectures/MCP-Leseserver.md
- kb/concepts/architectures/Memory Lifecycle.md
- kb/concepts/architectures/OKF Compatibility.md
- kb/concepts/architectures/Optional Instance Context File.md
- kb/concepts/architectures/Personalization Plane.md
- kb/concepts/architectures/Procedural Memory.md
- kb/concepts/architectures/RAG.md
- kb/concepts/architectures/Scale Ceiling.md
- kb/concepts/architectures/Semantic Memory.md
- kb/concepts/architectures/Three-Layer Architecture.md
- kb/concepts/architectures/Token Economics.md

… truncated …

PS C:\Repositories\Chemenu> git diff HEAD -- tools/
PS C:\Repositories\Chemenu> tools/wikitool doctor
PS C:\Repositories\Chemenu> ls .claude/skills

Verzeichnis: C:\Repositories\Chemenu\.claude\skills

Mode LastWriteTime Length Name


d---- 25.09.2026 11:19 gtd-weekly-review
d---- 25.09.2026 11:19 stack-close
d---- 25.09.2026 11:19 stack-dev
d---- 25.09.2026 11:19 wiki-ingest
d---- 25.09.2026 11:19 wiki-lint
d---- 25.09.2026 11:19 wiki-manage
d---- 25.09.2026 11:19 wiki-query
d---- 25.09.2026 11:19 wiki-status

T11 Datenschutz

nicht relevant, ich kümmere mich separat darum

T12 Windows-Runner für CI

nicht relevant, ich kümmere mich separat darum

# Antworten auf die Tests ## T1 Launcher-Auflösung PS C:\Users\Torben.Nehmer> $d="$env:TEMP\wt-probe"; New-Item -ItemType Directory -Force "$d\tools" | Out-Null; Set-Location $d PS C:\Users\Torben.Nehmer\AppData\Local\Temp\wt-probe> Set-Content tools\probe "#!/bin/sh`necho sh"; Set-Content tools\probe.ps1 'Write-Output ps1'; Set-Content tools\probe.cmd '@echo cmd' PS C:\Users\Torben.Nehmer\AppData\Local\Temp\wt-probe> tools/probe; tools\probe ps1 ps1 PS C:\Users\Torben.Nehmer\AppData\Local\Temp\wt-probe> Remove-Item tools\probe.ps1; tools/probe # greift jetzt .cmd oder die extensionslose Datei? cmd --- C:\Users\Torben.Nehmer>tools\probe Das System kann den angegebenen Pfad nicht finden. C:\Users\Torben.Nehmer>cd AppData\Local\Temp\wt-probe C:\Users\Torben.Nehmer\AppData\Local\Temp\wt-probe>tools\probe cmd --- INVONIC+Torben.Nehmer@NB-INW-PF62S01Q MINGW64 ~ $ tools/probe bash: tools/probe: No such file or directory INVONIC+Torben.Nehmer@NB-INW-PF62S01Q MINGW64 ~ $ cd AppData/Local/ INVONIC+Torben.Nehmer@NB-INW-PF62S01Q MINGW64 ~/AppData/Local $ cd Temp INVONIC+Torben.Nehmer@NB-INW-PF62S01Q MINGW64 ~/AppData/Local/Temp $ cd wt-probe/ INVONIC+Torben.Nehmer@NB-INW-PF62S01Q MINGW64 ~/AppData/Local/Temp/wt-probe $ tools/probe sh ## T2 pip.exe-Blockade pip wurde vom Defender blockiert, "Verringerung der Angriffsfläche", das kann ich mir von den Admins freischalten lassen, arbeite unter dieser annahme. ## T3 Pfadtrenner bei rg PS C:\Repositories\Chemenu> rg --json --path-separator / Contract kb | Select-Object -First 2 {"type":"begin","data":{"path":{"text":"kb\\comparisons\\COLLECTION.md"}}} {"type":"match","data":{"path":{"text":"kb\\comparisons\\COLLECTION.md"},"lines":{"text":"# kb/comparisons/ - Collection Contract\n"},"line_number":8,"absolute_offset":109,"submatches":[{"match":{"text":"Contract"},"start":31,"end":39}]}} ## T4 Shell je Harness Copilot in VS Code: $PSVersionTable.PSVersion ergibt 7.6.6. Copilot CLI: 7.6.6 Claude Code: - **Shell:** `/bin/bash.exe`, das Git Bash unter MSYS2 (MINGW64) ist. - **System:** Windows 11 (Build 26200), x86_64, MSYS-Laufzeit 3.6.10. - **`python`:** `/c/Python314/python`, also Python 3.14. - **`python3`:** `/c/Users/Torben.Nehmer/AppData/Local/Microsoft/WindowsApps/python3`. ## T5 Python PS C:\Repositories\Chemenu> Get-Command python,python3,py -All | Format-Table Source Source ------ C:\Python314\python.exe C:\Users\Torben.Nehmer\AppData\Local\Microsoft\WindowsApps\python.exe C:\Users\Torben.Nehmer\AppData\Local\Microsoft\WindowsApps\python3.exe C:\Windows\py.exe ## T6 Execution Policy PS C:\Repositories\Chemenu> Get-ExecutionPolicy -List Scope ExecutionPolicy ----- --------------- MachinePolicy Undefined UserPolicy Undefined Process Undefined CurrentUser Undefined LocalMachine RemoteSigned ## T7 Mark of the Web PS C:\Users\Torben.Nehmer> Invoke-WebRequest -Uri https://gitea.nehmer.net/torben/chemenu/archive/v7.0.0.zip -OutFile test.zip PS C:\Users\Torben.Nehmer> Get-Item .\test.zip -Stream Zone.Identifier Get-Item: Der alternative Datenstrom „Zone.Identifier“ der Datei „C:\Users\Torben.Nehmer\test.zip“ konnte nicht geöffnet werden. PS C:\Users\Torben.Nehmer> Get-Item .\test-from-browser.zip -Stream Zone.Identifier PSPath : Microsoft.PowerShell.Core\FileSystem::C:\Users\Torben.Nehmer\test-from-browser.zip:Zone.Identifier PSParentPath : Microsoft.PowerShell.Core\FileSystem::C:\Users\Torben.Nehmer PSChildName : test-from-browser.zip:Zone.Identifier PSDrive : C PSProvider : Microsoft.PowerShell.Core\FileSystem PSIsContainer : False FileName : C:\Users\Torben.Nehmer\test-from-browser.zip Stream : Zone.Identifier Length : 167 PS C:\Users\Torben.Nehmer> tar -xf .\test-from-browser.zip ... Verzeichnis: C:\Users\Torben.Nehmer\chemenu\tools Mode LastWriteTime Length Name ---- ------------- ------ ---- d---- 22.09.2026 22:51 chemenu -a--- 22.09.2026 22:51 2207 .coveragerc -a--- 22.09.2026 22:51 97209 CONTRACT.md -a--- 22.09.2026 22:51 8468 import_chronicle.py -a--- 22.09.2026 22:51 50 pytest.ini -a--- 22.09.2026 22:51 11572 README.md -a--- 22.09.2026 22:51 614 requirements-mcp.txt -a--- 22.09.2026 22:51 70 requirements.txt -a--- 22.09.2026 22:51 10128 trace_ingest.py -a--- 22.09.2026 22:51 951 wikitool PS C:\Users\Torben.Nehmer\chemenu\tools> Get-Item .\trace_ingest.py -Stream Zone.Identifier Get-Item: Der alternative Datenstrom „Zone.Identifier“ der Datei „C:\Users\Torben.Nehmer\chemenu\tools\trace_ingest.py“ konnte nicht geöffnet werden. ## T8 Lange Pfade PS C:\Users\Torben.Nehmer> git config --get core.longpaths PS C:\Users\Torben.Nehmer> (Get-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem).LongPathsEnabled 0 ## T9 Ursprünglicher Hänger nicht mehr nachvollziehbar ## T10 (optional) Befunde auf der Weg-D-Instanz bestätigen S C:\Repositories\Chemenu> git show --stat 795767e -- raw/CONTRACT.md .wikitool-remotes.json commit 795767e25c6594f2c637435d7a028472657ef4c7 (HEAD -> main, origin/main) Author: Torben Nehmer <torben.nehmer@agenic.com> Date: Fri Sep 25 13:25:48 2026 +0200 setup: initialize private instance from upstream Files changed: - kb/comparisons/INDEX.md - kb/comparisons/amd-pstate vs acpi-cpufreq.md - kb/concepts/INDEX.md - kb/concepts/architectures/Consolidation Tiers.md - kb/concepts/architectures/Context Isolation.md - kb/concepts/architectures/Cross-platform Agent Skills.md - kb/concepts/architectures/Episodic Memory.md - kb/concepts/architectures/Hybrid Search.md - kb/concepts/architectures/Implementation Spectrum.md - kb/concepts/architectures/Knowledge Graph.md - kb/concepts/architectures/LLM Wiki Pattern.md - kb/concepts/architectures/MCP-Leseserver.md - kb/concepts/architectures/Memory Lifecycle.md - kb/concepts/architectures/OKF Compatibility.md - kb/concepts/architectures/Optional Instance Context File.md - kb/concepts/architectures/Personalization Plane.md - kb/concepts/architectures/Procedural Memory.md - kb/concepts/architectures/RAG.md - kb/concepts/architectures/Scale Ceiling.md - kb/concepts/architectures/Semantic Memory.md - kb/concepts/architectures/Three-Layer Architecture.md - kb/concepts/architectures/Token Economics.md … truncated … PS C:\Repositories\Chemenu> git diff HEAD -- tools/ PS C:\Repositories\Chemenu> tools/wikitool doctor PS C:\Repositories\Chemenu> ls .claude/skills Verzeichnis: C:\Repositories\Chemenu\.claude\skills Mode LastWriteTime Length Name ---- ------------- ------ ---- d---- 25.09.2026 11:19 gtd-weekly-review d---- 25.09.2026 11:19 stack-close d---- 25.09.2026 11:19 stack-dev d---- 25.09.2026 11:19 wiki-ingest d---- 25.09.2026 11:19 wiki-lint d---- 25.09.2026 11:19 wiki-manage d---- 25.09.2026 11:19 wiki-query d---- 25.09.2026 11:19 wiki-status ## T11 Datenschutz nicht relevant, ich kümmere mich separat darum ## T12 Windows-Runner für CI nicht relevant, ich kümmere mich separat darum
Author
Owner

Changelog: T1–T12 ausgewertet (Betreiber-Ergebnisse vom 2026-09-30) und in den Body übernommen.

  • Prüfpunkte: Alle abgehakt, jeweils mit Folge.
    • D15 ist bestätigt: kein .cmd.
    • rg --path-separator wirkt nicht im JSON-Modus (→ #152).
    • python3 ist in Git Bash der Store-Alias (→ #151).
    • Nach D27 entsteht keine MotW-Markierung.
    • Befund 2 = Defender ASR.
    • Befund 3 = stiller No-Op in pwsh, nachgestellt über T10.
    • T11 und T12 übernimmt der Betreiber außerhalb dieses Issues.
  • Neu, offen: D32 (lange Pfade, aus T8) – mit Messung und Empfehlung.
  • Stand und Pakettabelle zeigen jetzt, was erledigt ist (#155, #157, #158, #159, #161); vorher stand dort noch „Gebaut ist noch nichts“.
  • Dach-Kriterien: T-Kriterium und Runner-Kriterium erledigt, D32-Kriterium neu.
  • Den doppelten Anhang-Link entfernt.
**Changelog:** T1–T12 ausgewertet (Betreiber-Ergebnisse vom 2026-09-30) und in den Body übernommen. - **Prüfpunkte:** Alle abgehakt, jeweils mit Folge. - D15 ist bestätigt: kein `.cmd`. - `rg --path-separator` wirkt nicht im JSON-Modus (→ #152). - `python3` ist in Git Bash der Store-Alias (→ #151). - Nach D27 entsteht keine MotW-Markierung. - Befund 2 = Defender ASR. - Befund 3 = stiller No-Op in pwsh, nachgestellt über T10. - T11 und T12 übernimmt der Betreiber außerhalb dieses Issues. - **Neu, offen: D32 (lange Pfade, aus T8)** – mit Messung und Empfehlung. - **Stand und Pakettabelle** zeigen jetzt, was erledigt ist (#155, #157, #158, #159, #161); vorher stand dort noch „Gebaut ist noch nichts“. - **Dach-Kriterien:** T-Kriterium und Runner-Kriterium erledigt, D32-Kriterium neu. - Den doppelten Anhang-Link entfernt.
Author
Owner

Changelog:

  • D32 entschieden (Betreiber, 2026-09-30, Empfehlung übernommen): Budget von 160 Zeichen für Seiten- und raw-Pfade, Installationsordner höchstens 95 Zeichen, LongPathsEnabled wird nicht verlangt.
  • Neues Paket #163 (Pfadbudget) in Tabelle, Reihenfolge und Freigabekriterium.
  • D19: Der --breaking-Text nennt auch das Pfadbudget.
  • Dach-Kriterium zu D32 erledigt; offen ist nur noch Umsetzung.
**Changelog:** - **D32 entschieden** (Betreiber, 2026-09-30, Empfehlung übernommen): Budget von 160 Zeichen für Seiten- und raw-Pfade, Installationsordner höchstens 95 Zeichen, `LongPathsEnabled` wird nicht verlangt. - **Neues Paket #163** (Pfadbudget) in Tabelle, Reihenfolge und Freigabekriterium. - **D19:** Der `--breaking`-Text nennt auch das Pfadbudget. - **Dach-Kriterium zu D32** erledigt; offen ist nur noch Umsetzung.
Author
Owner

Changelog: D33–D37 aus der Vorbereitung von #151 eingetragen (Betreiber, 2026-09-30, alle wie empfohlen). Es sind Preflight in zwei Modi, venv durch den Preflight, angenommener Bruch (einmaliger Preflight nach dem Update), Hooks über tools/trace-hook und ein pwsh-CI-Image.

  • D19 nennt den Preflight-Bruch jetzt im --breaking-Text, und D27 verweist auf die Präzisierung in D33.
  • In der Pakettabelle steht #151 jetzt auf „im --breaking-Text (D35)“ statt „minor“, Stand „in Arbeit (Abschnitt A)“.
  • Neu ist ein Dach-Kriterium für D33–D37.
**Changelog:** D33–D37 aus der Vorbereitung von #151 eingetragen (Betreiber, 2026-09-30, alle wie empfohlen). Es sind Preflight in zwei Modi, venv durch den Preflight, angenommener Bruch (einmaliger Preflight nach dem Update), Hooks über `tools/trace-hook` und ein pwsh-CI-Image. - D19 nennt den Preflight-Bruch jetzt im `--breaking`-Text, und D27 verweist auf die Präzisierung in D33. - In der Pakettabelle steht #151 jetzt auf „im `--breaking`-Text (D35)“ statt „minor“, Stand „in Arbeit (Abschnitt A)“. - Neu ist ein Dach-Kriterium für D33–D37.
Author
Owner

Changelog: Stand auf 2026-10-01 nachgezogen (Kandidat 8.0.0-beta.17).

  • Neu: D38–D41 (für #151 Abschnitt C) als eigener Entscheidungsblock, dazu ein Dachkriterium, das sie abhakt. D5 und D27 verweisen darauf.
  • Pakettabelle:
    • #151 ist im Code fertig (A/B/C), offen sind nur die Handprüfungen auf Windows.
    • #163 ist erledigt.
    • #156 ist gebaut und wartet auf die ersten Läufe nach Zeitplan.
  • Reihenfolge: #153 ist jetzt vollständig startbar, #154 folgt danach. Den Asset-Weg kann man auf Windows erst an einem Release ohne Suffix prüfen.
  • Nachlauf: Er nennt jetzt das Preflight-Asset sowie tar.exe/cygpath im Asset-Modus.
  • D-Verweise: Bei den D-Einträgen, die #151 umsetzt, steht jetzt ✔.
  • Aufgeräumt: Der Anhang-Link stand dreimal am Ende und steht jetzt nur noch einmal da.
**Changelog:** Stand auf 2026-10-01 nachgezogen (Kandidat 8.0.0-beta.17). - **Neu:** D38–D41 (für #151 Abschnitt C) als eigener Entscheidungsblock, dazu ein Dachkriterium, das sie abhakt. D5 und D27 verweisen darauf. - **Pakettabelle:** - #151 ist im Code fertig (A/B/C), offen sind nur die Handprüfungen auf Windows. - #163 ist erledigt. - #156 ist gebaut und wartet auf die ersten Läufe nach Zeitplan. - **Reihenfolge:** #153 ist jetzt vollständig startbar, #154 folgt danach. Den Asset-Weg kann man auf Windows erst an einem Release ohne Suffix prüfen. - **Nachlauf:** Er nennt jetzt das Preflight-Asset sowie `tar.exe`/`cygpath` im Asset-Modus. - **D-Verweise:** Bei den D-Einträgen, die #151 umsetzt, steht jetzt ✔. - **Aufgeräumt:** Der Anhang-Link stand dreimal am Ende und steht jetzt nur noch einmal da.
Author
Owner

Changelog: Ergebnis der Handprüfung von #151 (2026-10-01) nachgezogen.

  • Neu: #164 (Copilot-Hooks öffnen unter Windows „App auswählen“, prio/blocking). Es steht in der Pakettabelle, in der Reihenfolge an erster Stelle und im Dachkriterium. D36 trägt einen Nachtrag.
  • #151: Code und Handprüfung sind fertig. Offen ist nur der Asset-Weg am echten Release. Der geht erst nach der Freigabe von 8.0.0 und steht deshalb in der Freigabe-Zeile als Nachlauf.
  • #152 umfasst jetzt auch die Kodierung der eigenen Ausgabe in den Harnesses.
  • D26 verweist auf die session-id-Warnung unter Copilot in #153.
  • Nachlauf: Er prüft jetzt auch den Registry-PATH an einem Tool mit neuem PATH-Eintrag, Hooks ohne Dialog und die Ausgabe ohne Kodierungsfehler.
**Changelog:** Ergebnis der Handprüfung von #151 (2026-10-01) nachgezogen. - **Neu:** #164 (Copilot-Hooks öffnen unter Windows „App auswählen“, `prio/blocking`). Es steht in der Pakettabelle, in der Reihenfolge an erster Stelle und im Dachkriterium. D36 trägt einen Nachtrag. - **#151:** Code und Handprüfung sind fertig. Offen ist nur der Asset-Weg am echten Release. Der geht erst nach der Freigabe von 8.0.0 und steht deshalb in der Freigabe-Zeile als Nachlauf. - **#152** umfasst jetzt auch die Kodierung der eigenen Ausgabe in den Harnesses. - **D26** verweist auf die `session-id`-Warnung unter Copilot in #153. - **Nachlauf:** Er prüft jetzt auch den Registry-PATH an einem Tool mit neuem PATH-Eintrag, Hooks ohne Dialog und die Ausgabe ohne Kodierungsfehler.
Author
Owner

Changelog: Der D36-Nachtrag ist korrigiert: Die Ursache ist nicht der bash-Zweig, sondern .claude/settings.json unter Copilot CLI. #164 ist gebaut (9d06050, beta.18) und bleibt bis zur Handprüfung offen (Betreiber, 2026-10-01). Stand, Paketzeile, Reihenfolge und Dachkriterium sind entsprechend nachgezogen. Neu ist der Nebenbefund #165, er gehört nicht zur Freigabebedingung.

**Changelog:** Der D36-Nachtrag ist korrigiert: Die Ursache ist nicht der `bash`-Zweig, sondern `.claude/settings.json` unter Copilot CLI. #164 ist gebaut (`9d06050`, beta.18) und bleibt bis zur Handprüfung offen (Betreiber, 2026-10-01). Stand, Paketzeile, Reihenfolge und Dachkriterium sind entsprechend nachgezogen. Neu ist der Nebenbefund #165, er gehört nicht zur Freigabebedingung.
Author
Owner

Changelog (2026-10-01): #152 ist erledigt (d0f08d1, beta.19, CI 484/485 grün).

  • Der Stand ist auf Kandidat beta.19 nachgezogen.
  • In der Paket-Tabelle, bei den Befunden 4 und 6 sowie bei T3 und D14 ist #152 jetzt erledigt.
  • Startbar ist nur noch #153.
  • Den Fußnoten-Check auf dem Zielsystem führt jetzt ausdrücklich der Nachlauf.
  • Ein doppelter Anhang-Link ist entfernt.
**Changelog (2026-10-01):** #152 ist erledigt (`d0f08d1`, beta.19, CI 484/485 grün). - Der Stand ist auf Kandidat beta.19 nachgezogen. - In der Paket-Tabelle, bei den Befunden 4 und 6 sowie bei T3 und D14 ist #152 jetzt erledigt. - Startbar ist nur noch #153. - Den `Fußnoten`-Check auf dem Zielsystem führt jetzt ausdrücklich der Nachlauf. - Ein doppelter Anhang-Link ist entfernt.
Author
Owner

Changelog: #153 ist erledigt (2026-10-01, a6d07f9, beta.20).

  • D40 geändert durch #153 E6: Installiert wird direkt in den Ordner des Skripts, ohne chemenu/. Erlaubt ist dort nur das Skript und ein .git, und das Asset löscht sich nach dem Entpacken.
  • Stand, Tabelle und Reihenfolge: #153 ist abgehakt, #154 jetzt startbar. Die Hinweise zu D2, D3, D5, D11, D12, D16, D19, D26, D27, D32, D38, D39 und D41 sind nachgezogen.
  • Nachlauf: zwei Punkte aus #153 kommen dazu, die Release-Assets und die Copilot-session-id.
  • Neu: #166 (Nebenbefund python3 beim Bugreport-Sammler, bei D22 und T4 verlinkt).
  • Der doppelt angehängte Postmortem-Link ist auf einen reduziert.
**Changelog:** #153 ist erledigt (2026-10-01, `a6d07f9`, beta.20). - **D40 geändert durch #153 E6:** Installiert wird direkt in den Ordner des Skripts, ohne `chemenu/`. Erlaubt ist dort nur das Skript und ein `.git`, und das Asset löscht sich nach dem Entpacken. - **Stand, Tabelle und Reihenfolge:** #153 ist abgehakt, #154 jetzt startbar. Die Hinweise zu D2, D3, D5, D11, D12, D16, D19, D26, D27, D32, D38, D39 und D41 sind nachgezogen. - **Nachlauf:** zwei Punkte aus #153 kommen dazu, die Release-Assets und die Copilot-`session-id`. - **Neu:** #166 (Nebenbefund `python3` beim Bugreport-Sammler, bei D22 und T4 verlinkt). - Der doppelt angehängte Postmortem-Link ist auf einen reduziert.
Author
Owner

Changelog (2026-10-02):

  • #164: Die Handprüfung hat der Betreiber zurückgestellt. Das Issue steht jetzt auf prio/waiting und bleibt Freigabebedingung. Stand, Paketzeile, D36 und Dachkriterium sind nachgezogen.
  • #156 ist abschlussreif: Die ersten Läufe nach Zeitplan vom 2026-10-01 sind grün (471 sp-live-image mit monatlichem Neubau, 472 tracker-live mit SP und CalDAV). Es fehlt nur noch das Schließen.
  • Reihenfolge: #154 ist jetzt das nächste Paket. Davor stand an erster Stelle die Handprüfung von #164.
**Changelog (2026-10-02):** - **#164:** Die Handprüfung hat der Betreiber zurückgestellt. Das Issue steht jetzt auf `prio/waiting` und bleibt Freigabebedingung. Stand, Paketzeile, D36 und Dachkriterium sind nachgezogen. - **#156 ist abschlussreif:** Die ersten Läufe nach Zeitplan vom 2026-10-01 sind grün (471 `sp-live-image` mit monatlichem Neubau, 472 `tracker-live` mit SP und CalDAV). Es fehlt nur noch das Schließen. - **Reihenfolge:** #154 ist jetzt das nächste Paket. Davor stand an erster Stelle die Handprüfung von #164.
Author
Owner

Changelog (2026-10-02): #154 ist erledigt (c77bda2, beta.21, CI 492/493 grün).

  • Stand, Paketzeile, D12 und Dachkriterium sind nachgezogen. Damit sind alle Bau-Pakete der Freigabebedingung fertig; offen sind nur #156 (schließen) und #164 (Handprüfung).
  • Reihenfolge: Als Nächstes kommt #156. Danach ist #166 empfohlen, vor der Freigabe, weil der Nachlauf den Sammler unter Claude Code braucht. Ob #166 in die Freigabebedingung kommt, entscheidet der Betreiber.
  • Den doppelten Anhang-Link entfernt.
**Changelog (2026-10-02):** #154 ist erledigt (`c77bda2`, beta.21, CI 492/493 grün). - **Stand, Paketzeile, D12 und Dachkriterium** sind nachgezogen. Damit sind alle Bau-Pakete der Freigabebedingung fertig; offen sind nur #156 (schließen) und #164 (Handprüfung). - **Reihenfolge:** Als Nächstes kommt #156. Danach ist #166 empfohlen, vor der Freigabe, weil der Nachlauf den Sammler unter Claude Code braucht. Ob #166 in die Freigabebedingung kommt, entscheidet der Betreiber. - Den doppelten Anhang-Link entfernt.
Author
Owner

Changelog (2026-10-02, Kandidat beta.22):

  • Neu: D42 – #166 ist Freigabebedingung (Betreiber), umgesetzt als Starter tools/bugreport nach D15. #166 ist erledigt (5d93723, c65d559, CI 494–496 grün) und hat eine Zeile in der Pakettabelle. Hinweise bei D15, D22 und T4 sind nachgezogen, und der Nachlauf hat einen Prüfpunkt dafür.
  • #156 ist geschlossen (Läufe nach Zeitplan 471/472/490/491 grün). Hinweise bei D20 und D21 sind nachgezogen.
  • Stand, Reihenfolge und Dachkriterium: Offen ist nur noch die Handprüfung von #164, danach folgt die Freigabe.
**Changelog (2026-10-02, Kandidat beta.22):** - **Neu: D42** – #166 ist Freigabebedingung (Betreiber), umgesetzt als Starter `tools/bugreport` nach D15. #166 ist erledigt (`5d93723`, `c65d559`, CI 494–496 grün) und hat eine Zeile in der Pakettabelle. Hinweise bei D15, D22 und T4 sind nachgezogen, und der Nachlauf hat einen Prüfpunkt dafür. - **#156 ist geschlossen** (Läufe nach Zeitplan 471/472/490/491 grün). Hinweise bei D20 und D21 sind nachgezogen. - **Stand, Reihenfolge und Dachkriterium:** Offen ist nur noch die Handprüfung von #164, danach folgt die Freigabe.
Author
Owner

Changelog (2026-10-02, abends): #164 ist nach der Handprüfung des Betreibers geschlossen (Copilot CLI und VS Code ohne Hook-Dialog, Traces vollständig). Die Freigabebedingung für 8.0.0 ist damit erfüllt. Als Nächstes gibt der Betreiber frei, danach folgt der Nachlauf.

  • Neu: #167 (unbestätigt, prio/waiting): tools/wikitool unter Copilot CLI öffnete die App-Auswahl. Laut Betreiber keine Freigabebedingung; ein entsprechender Punkt steht bei D42, und der Nachlauf hat einen Prüfpunkt dafür.
  • Nachlauf: Hooks (#164) und tools/bugreport (#166) sind auf beta.22 vorgezogen bestätigt.
  • Stand, D36, Pakettabelle, Reihenfolge und Dachkriterium sind nachgezogen. #149 steht als Nebenbefund im Stand.
**Changelog (2026-10-02, abends):** #164 ist nach der Handprüfung des Betreibers geschlossen (Copilot CLI und VS Code ohne Hook-Dialog, Traces vollständig). **Die Freigabebedingung für 8.0.0 ist damit erfüllt.** Als Nächstes gibt der Betreiber frei, danach folgt der Nachlauf. - **Neu: #167** (unbestätigt, `prio/waiting`): `tools/wikitool` unter Copilot CLI öffnete die App-Auswahl. Laut Betreiber keine Freigabebedingung; ein entsprechender Punkt steht bei D42, und der Nachlauf hat einen Prüfpunkt dafür. - **Nachlauf:** Hooks (#164) und `tools/bugreport` (#166) sind auf beta.22 vorgezogen bestätigt. - **Stand, D36, Pakettabelle, Reihenfolge und Dachkriterium** sind nachgezogen. #149 steht als Nebenbefund im Stand.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: torben/chemenu#140