Lucy-Annahme-Fixes: Start-Process-Quoting, Python-3.14-Parse, Executor ohne Fensterblitz

Der erste Live-Lauf der Lucy-Annahme (wartung/pc-annahme-und-turncheck-aus) fand
zwei Bugs im Box-Runner — der Build selbst war gruen, nur Start und Abschluss
mussten manuell nachgezogen werden:

1) Start-Process -ArgumentList quotet Elemente NICHT (PS 5.1): der Runner-Pfad
   'F:\Coding Stuff\lucy\...' zerbrach am Leerzeichen, die gespawnte powershell
   starb still (kein Status, kein Log). Fix: Anfuehrungszeichen ins -File-Element
   eingebettet. (Der Probe-Test lief ueber einen Pfad OHNE Leerzeichen — deshalb
   nicht gefangen.)

2) Poll-Parser: \" in f-String-Ausdruecken ist seit Python 3.12 ein SyntaxError
   (Box: 3.14) -> der Poll blieb blind und haette den GRUENEN Merge nach 25 min
   revertiert. Fix: keine f-String-Quote-Akrobatik mehr, Werte in Variablen.
   Neuer Parser 1:1 auf der Box getestet.

3) executor.py /shell: CREATE_NO_WINDOW — der Executor laeuft unter pythonw,
   jede gespawnte powershell bekam ein SICHTBARES Konsolenfenster (Polling
   blitzte im 10-s-Takt auf dem Desktop). Nach Annahme: PC-Checkout pullen +
   HermesPCExecutor-Task neu starten (mache ich, steht auch in FALLEN.md).

Beide Fallen + Fensterblitz in docs/wissen/FALLEN.md; OFFENE-FAEDEN: S3-Stand.
Geprueft: bash -n gruen, py_compile gruen, Parser auf Box-Python 3.14 verifiziert.
This commit is contained in:
Hitonabi
2026-07-12 15:18:20 +02:00
parent 3fa2fbb9d8
commit b4c405a127
4 changed files with 31 additions and 7 deletions
+4
View File
@@ -51,6 +51,10 @@ async def run_shell(req: dict):
["powershell", "-NoProfile", "-NonInteractive", "-Command", cmd],
capture_output=True, text=True, timeout=60,
encoding="utf-8", errors="replace",
# Der Executor läuft unter pythonw (kein eigenes Konsolenfenster) — ohne dieses
# Flag bekäme JEDE gespawnte powershell ein sichtbares Fenster (beim 10-s-Polling
# der Lucy-Annahme blitzte das im Sekundentakt auf dem Desktop, 12.07.).
creationflags=subprocess.CREATE_NO_WINDOW,
)
return {
"stdout": result.stdout.strip(),