fix(planning): write share.py output as UTF-8 so Windows pipes don't crash on non-cp1252 text
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 78/100
Rechercherichtung
Beginne mit plugins/planning/shared/share.py und den zugehörigen Subprocess-Tests; das Issue weist auf die Kodierung von stdout und stderr sowie auf die locale-abhängigen Lesevorgänge in den Tests hin. Reproduziere das Problem mit PYTHONIOENCODING=cp1252 und einer Logzeile mit einem Zeichen wie →, und prüfe dann die Ausgabe von logs und logs --summary. Fertig ist die Arbeit, wenn beide Befehle erfolgreich beendet werden und das Zeichen als UTF-8 erhalten bleibt; überprüfe dies auf dem pr-test-windows-Lane.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Refs: #7670
Summary
On Windows, share.sh output crashes on a character cp1252 cannot encode, such as an emoji in a name or chat-derived log line, or →. It happens when stdout is a pipe (a terminal pipe, the interview skill reading the output, a test).
Cause
plugins/planning/shared/share.py prints its JSON with ensure_ascii=False, and the logs --summary text as-is. When stdout is a pipe on Windows, Python encodes it in the ANSI code page (cp1252), and an unencodable character raises UnicodeEncodeError. share.sh runs Python with -I, which ignores PYTHONUTF8. Reproduced on Linux with PYTHONIOENCODING=cp1252 and a → in a log line.
Fix
Make share.py write UTF-8 on stdout and stderr explicitly (sys.stdout.reconfigure(encoding="utf-8")), and have the tests and the skill read share.py's output as UTF-8 rather than with the locale default. Verify on the pr-test-windows lane.
Verification
A subprocess test that sets PYTHONIOENCODING=cp1252, logs a line with a non-cp1252 character, and gets exit 0 from share.py logs and logs --summary, with the character intact in UTF-8.
- Vorherrschende Sprache
- Shell
- Sterne
- 22
- Forks
- 2
- Ø Merge
- 7 Std. 57 Min.
- Gemergte PRs (30 T.)
- 938
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus melodic-software/claude-code-plugins
-
priority: low
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
melodic-software/claude-code-plugins#8831 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
priority: medium status: confirmed
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
melodic-software/claude-code-plugins#8801 ·
Maintainer antworten meist innerhalb von 1 Tag
-
priority: low status: confirmed
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
melodic-software/claude-code-plugins#8799 ·
Maintainer antworten meist innerhalb von 1 Tag
-
priority: medium
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
melodic-software/claude-code-plugins#8730 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
priority: low
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
melodic-software/claude-code-plugins#8709 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in melodic-software/claude-code-plugins
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
Maintainer antworten meist innerhalb von 1 Tag
-
package-update
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
jangala-dev/devicecode-lua#344 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
cov-lineages/pangolin#583 · 1 Kommentar ·