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>
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:
#331Ticket changed by: fu351
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:
#331Originally 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
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!