feat(hud): rate limit format with severity icons (Wave 1-C)#1471
Closed
JeremyDev87 wants to merge 2 commits into
Closed
feat(hud): rate limit format with severity icons (Wave 1-C)#1471JeremyDev87 wants to merge 2 commits into
JeremyDev87 wants to merge 2 commits into
Conversation
Replaces `RL:5h:13%,7d:96%` with `RL:5h░13% 7d▓96%`: - Severity icons (░ ▒ ▓) visually distinguish low/medium/high usage - Space separator replaces comma - `RL:` prefix preserved for downstream anchors Also adds defensive float coercion to _coerce_percentage() so a non-numeric used_percentage (None, "N/A") is silently treated as 0.0 instead of crashing the statusLine hot path — addresses Wave 1-A security reviewer's A03 low-severity finding. 19 new tests in test_hud_rate_limits.py cover all 3 severity buckets, boundary values (60, 85, 85.01), both-tier mixed severity, defensive coercion (None, string, numeric string, empty tier), and re-export identity from codingbuddy-hud. 3 test_hud.py tests updated to new visual format. 162/162 tests pass. Part of #1464 (Wave 0 statusbar refactor)
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
b0a8b1f to
ac871e9
Compare
7b89e0b to
11c38dd
Compare
Combined Wave 0 polish items from the #1465/#1485 review cycle: 1. Narrow `except Exception` to `except ImportError` in the 3 lib fallback import blocks (qual-1465 HIGH-1). Real logic bugs (SyntaxError, NameError, AttributeError) inside lib modules now surface immediately instead of being silently swallowed by a catch-all. 2. Drop inline stub functions for format_rate_limits and _get_fresh_version (qual-1465 HIGH-2). Eliminates the signature drift between canonical lib definitions and in-file fallback stubs observed on the integrator branch (Wave 1-A plugin_json_file kwarg drift). The outer main() try/except still catches any runtime failure and emits the minimal safe output via the BUDDY_FACE constant. 3. Hoist hud_velocity and hud_cache_savings imports to module top as _format_velocity_segment and _format_cache_savings (perf-1485 H1). Eliminates ~0.47us sys.modules lookup per render. Integrator branch only - no-op on refactor/wave branches where the inline imports don't exist yet. 4. Bump next to 16.2.3 for GHSA-q4gf-8mx6-v5v3 (landing-security-check). Aligns eslint-config-next and updates setup.test.ts assertion. Refs: qual-1465 HIGH-1/2, perf-1485 H1, GHSA-q4gf-8mx6-v5v3
ac871e9 to
edaaf5c
Compare
Owner
Author
Superseded by #1485This PR was part of a stacked PR structure ( All of this PR's commits have been consolidated into #1485 (now with
EVAL review results from this PR (all reviewers, iter1 converged → Critical=0, High=0) already applied in #1485. Closing as superseded. Use #1485 with GitHub's Rebase and merge button to land all 12 commits linearly on master. |
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.
Closes #1470
Stacked on #1465 (Wave 0 refactor — must merge first)
Summary
Replaces the cramped
RL:5h:13%,7d:96%badge with a visually-scannable severity-icon rendering:Design
░light (U+2591): pct ≤ 60 (healthy / green intent)▒medium (U+2592): 60 < pct ≤ 85 (warning / yellow intent)▓dark (U+2593): pct > 85 (critical / red intent)RL:prefix preserved so downstream surfaces keep a stable anchorDefensive coercion
New
_coerce_percentage()helper silently turnsNone, non-numeric strings, and unexpected types into0.0. Prevents the TypeError footgun identified by Wave 1-A security review (A03 low finding: if Claude Code stdin ever sends{"used_percentage": "N/A"}, the hot-path f-string formatting would crash the entire statusLine).Tests
162/162 pass
19 new tests in
test_hud_rate_limits.py:assert "," not in result)codingbuddy-hud_severity_iconhelper exposure3
test_hud.pytests updated to new visual format (scoped minimal edit of Wave 3's normally-owned file — justified by Wave 1-C's inherent visual format change).