fix: replace non-ASCII symbols with ASCII in console output - #14
Merged
Conversation
Checkmark and cross characters (U+2713, U+2717) crash on Windows terminals using cp1252 encoding. Replaced with OK/FAIL plain text so output works on all platforms without requiring UTF-8 console setup.
Wrench-Service-Bot
approved these changes
May 26, 2026
Wrench-Service-Bot
left a comment
There was a problem hiding this comment.
PR Review
Verdict: APPROVED
Description
Replaces non-ASCII Unicode symbols (✓ U+2713, ✗ U+2717) with plain ASCII tokens (OK / FAIL) in all console.print() calls across config.py, monitor.py, and event.py, fixing a UnicodeEncodeError crash on Windows cp1252 terminals.
Highlights
- Fix is correct and well-scoped — 11 string substitutions, no logic changes, no risk of regression
- PR description accurately matches the diff
- Covers every
console.print()call that used the affected characters across all three files
Style Notes
config.py:302—"[green]OK Auth OK[/green]"renders as "OK Auth OK" (doubly redundant); original was "✓ Auth OK". Same pattern:"[red]FAIL Auth FAILED[/red]"→ "FAIL Auth FAILED". Advisory only — these still communicate clearly, the color carries the primary signal.
Overall Assessment
Narrow, safe bugfix. The change unblocks Windows users without requiring any environment variable workaround. No logic, no schema, no API contract touched. Ready to merge.
Sources
- Diff: 3 files, +11/-11
- Prior reviews: none
- Related PRs/issues: N/A
— Claude
Adds a dedicated puppy-mcp script so the MCP server can be invoked
directly without running as a module. Claude Code MCP config becomes:
{"command": "uvx", "args": ["--from", "puppy-kit[mcp]", "puppy-mcp"]}
Previously the only option was python -m puppy_kit.mcp.server, which
caused users to accidentally pick up the unrelated puppy-mcp-server
package on PyPI.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Replaces
✓and✗(U+2713, U+2717) withOKandFAILin allconsole.print()calls acrossconfig.py,monitor.py, andevent.py.What was broken
On Windows terminals using cp1252 encoding (the default), these characters are undefined and cause a
UnicodeEncodeErrorcrash.puppy config testwas failing despite credentials being valid — the command would authenticate successfully then crash on the success print.End-user impact
puppy config testand all monitor/event commands now work correctly on Windows without requiringPYTHONIOENCODING=utf-8to be set.