Menu

#347 fix(auth): make challenge prompt pure ASCII for cp1252 compatibility

closed
nobody
None
2026-08-18
2026-08-11
Anonymous
No

Originally created by: atiqur-rahman-pro

Replace non-ASCII arrow (→) with -> and em-dash (—) with - in _challenge_message to prevent UnicodeEncodeError on legacy Windows consoles.

Pull Request

Slice

  • Repo: doberman-core | doberman-enterprise
  • Feature / Slice: <id> — <title></li> <li>Plan reference: doberman_implementation_plan.md</li> </ul> <h2 id="h-what-this-pr-does">What this PR does</h2> <h2 id="h-tests-added-run-in-ci">Tests added (run in CI)</h2> <p>-</p> <h2 id="h-public-release-safety-doberman-core-only">Public-release safety (doberman-core only)</h2> <ul> <li><span>[ ]</span> Contains nothing from the "not allowed" list: no enterprise/hosted code, no proprietary detection, no customer data, no secrets, no commercial-license code</li> <li><span>[ ]</span> Core still builds/tests/runs with NO enterprise package installed</li> </ul> <h2 id="h-security-checklist">Security checklist</h2> <ul> <li><span>[ ]</span> Fails closed on error / uncertainty</li> <li><span>[ ]</span> No secret, full file, or unredacted prompt logged or committed</li> <li><span>[ ]</span> Any guardrail/learning change is raise-only (no silent loosening)</li> <li><span>[ ]</span> Every BLOCK/AUTH carries reason codes + a human explanation</li> <li><span>[ ]</span> doberman-core does not import doberman_enterprise</li> </ul> <h2 id="h-edge-cases-covered-deviations-from-plan-risks-introduced">Edge cases covered / Deviations from plan / Risks introduced</h2> <p>-<br> fix(auth): make challenge prompt pure ASCII for cp1252 compatibility</p> <p>Fixes <a class="alink strikethrough" href="/p/doberman-core/tickets/341/">[#341]</a></p> <h2 id="h-summary">Summary</h2> <ul> <li>Replaced non-ASCII arrow (<code>→</code> -> <code>-></code>) and em-dash (<code>—</code> -> <code>-</code>) in <code>_challenge_message</code> inside <code>src/doberman/auth/provider.py</code>.</li> <li>Added unit test <code>test_challenge_message_is_ascii_and_cp1252_safe</code> in <code>tests/unit/test_auth_provider.py</code> asserting <code>.isascii()</code> and <code>.encode("ascii")</code>.</li> <li>Prevents <code>UnicodeEncodeError</code> crashes on legacy Windows consoles (cp1252).</li> <li>Added DCO <code>Signed-off-by</code> header to commit.</li> </ul> <p>thank you. </p></title></id>

Related

Tickets: #341

Discussion

  • Anonymous

    Anonymous - 2026-08-11

    Originally posted by: fu351

    @atiqur-rahman-pro, welcome to Doberman. Moving the approval prompt back to pure ASCII protects the highest-stakes text in the application on legacy Windows consoles, and the regression test genuinely fails when the em dash is restored. Small diff, important boundary.

    This is your first merged contribution here. If Doberman feels useful, please consider starring the repo so more people can find it. You are also warmly invited to the Discord: https://discord.gg/Sfy5XGNqty

    A strong follow-up is [#331] (level-3), which proves action-bound approvals through the Codex host path. It stays close to the auth code and testing pattern you just handled. Thank you for joining the project.

     

    Related

    Tickets: #331

  • Anonymous

    Anonymous - 2026-08-11

    Ticket changed by: fu351

    • status: open --> closed
     
  • Anonymous

    Anonymous - 2026-08-11

    Originally posted by: atiqur-rahman-pro

    Thank you @fu351! I'm really excited to see my first contribution merged into Doberman-Core.

    During my coffee break, I love building small technical side projects. I recently built:

    I'll check out issue [#331] next! You can assign me.

     

    Related

    Tickets: #331

  • Anonymous

    Anonymous - 2026-08-18

    Originally posted by: fu351

    @atiqur-rahman-pro The pure-ASCII challenge prompt keeps earning its keep; cp1252 consoles are alive and well, as my own tooling reminded me this very week.

    Quick community roll-call: are you in the Doberman Discord? If yes, drop your handle here (or DM me there) so I can match the GitHub side of your work to your Discord name. If not, you're warmly invited: https://discord.gg/Sfy5XGNqty

     
  • Anonymous

    Anonymous - 2026-08-18

    Originally posted by: atiqur-rahman-pro

    Hi @fu351! Thanks a lot, it's good to hear that the pure-ASCII fix is ​​working well on cp1252 consoles.

    I've joined the Doberman Discord server — my Discord handle is digital_tech_07 (display name: atiqur-rahman-pro). Looking forward to connecting with you there!

     

Log in to post a comment.