Skip to content

refactor(stdlib): hand-rolled counters → Counter, base64 padding → urlsafe_b64decode (#1132 safe)#1198

Merged
axisrow merged 1 commit into
mainfrom
fix/1132-safe-counter-base64
Jun 29, 2026
Merged

refactor(stdlib): hand-rolled counters → Counter, base64 padding → urlsafe_b64decode (#1132 safe)#1198
axisrow merged 1 commit into
mainfrom
fix/1132-safe-counter-base64

Conversation

@axisrow

@axisrow axisrow commented Jun 29, 2026

Copy link
Copy Markdown
Owner

What

#1132 safe subset (axis 2/7 of the #1130 tech-debt epic). The zero-behaviour-risk findings only — 4 hand-rolled frequency counters → collections.Counter and 1 manual base64 padding → base64.urlsafe_b64decode. Each swap has a characterising equivalence test.

Retry/backoff findings are explicitly NOT touched — they need per-case owner review (#954 aiolimiter sliding-window, #958 SDK retry double-billing) and go in a separate batch.

Changes

  • Counter: cli/graph_viz.py (render_ascii), services/error_recovery_service.py (get_error_stats), telegram/collector.py (collect_all_channels — hot path, counter-only change), web/settings/handlers.py (_run_bulk_test_job)
  • base64.urlsafe_b64decode: web/session.py — HMAC session tokens; round-trip + legacy-token tests added.

Baseline

detect_reinvented 17 → 13:

Tests

Equivalence tests for each swap + session round-trip/legacy. 354 passed isolated (incl. test_collector); ruff clean; detector 13/0-new.

Part of #1132

🤖 Generated with Claude Code

https://claude.ai/code/session_01TShpckA1DoLNezbD3txTL1

…stdlib

#1132 safe subset (axis 2/7 of #1130). Behaviour-preserving swaps to stdlib,
each guarded by a characterising equivalence test. Retry/backoff findings are
NOT touched (deferred for per-case owner review — #954/#958 traps).

- collections.Counter: cli/graph_viz.py (render_ascii),
  services/error_recovery_service.py (get_error_stats),
  telegram/collector.py (collect_all_channels — hot path, counter-only change),
  web/settings/handlers.py (_run_bulk_test_job)
- base64.urlsafe_b64decode: web/session.py (manual '=' padding) — HMAC session
  tokens; round-trip + legacy-token tests added.

detect_reinvented baseline 17 → 13: −5 safe replaced; +1 pre-existing retry
pool_dialogs.py:1353 (delete_dialogs, introduced in #1171 after the 2026-06-25
baseline) is now recorded in the baseline as a known retry finding, to be
addressed in the #1132 retry batch. --fail-on-new green (0 new).

Part of #1132

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TShpckA1DoLNezbD3txTL1
@axisrow axisrow merged commit 1b6a920 into main Jun 29, 2026
4 checks passed
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.

1 participant