Skip to content

fix: replace non-ASCII symbols with ASCII in console output - #14

Merged
Kydoimos97 merged 3 commits into
mainfrom
fix/ascii-console-output
May 26, 2026
Merged

fix: replace non-ASCII symbols with ASCII in console output#14
Kydoimos97 merged 3 commits into
mainfrom
fix/ascii-console-output

Conversation

@Kydoimos97

Copy link
Copy Markdown

Summary

Replaces and (U+2713, U+2717) with OK and FAIL in all console.print() calls across config.py, monitor.py, and event.py.

What was broken

On Windows terminals using cp1252 encoding (the default), these characters are undefined and cause a UnicodeEncodeError crash. puppy config test was failing despite credentials being valid — the command would authenticate successfully then crash on the success print.

End-user impact

puppy config test and all monitor/event commands now work correctly on Windows without requiring PYTHONIOENCODING=utf-8 to be set.

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.
@Kydoimos97
Kydoimos97 requested review from a team and Wrench-Service-Bot May 26, 2026 18:29

@Wrench-Service-Bot Wrench-Service-Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.
@Kydoimos97
Kydoimos97 merged commit 5b6d413 into main May 26, 2026
10 checks passed
@Kydoimos97
Kydoimos97 deleted the fix/ascii-console-output branch May 26, 2026 19:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants