feat(hud): adaptive layout engine (Wave 1-D)#1473
Closed
JeremyDev87 wants to merge 2 commits into
Closed
Conversation
Introduces width-aware segment rendering primitives so the status bar never spills out of narrow terminals. Wave 1-D ships the layout helpers; Wave 3 integrator wires them into format_status_line. New lib/hud_layout.py: - SEGMENT_PRIORITY canonical drop-order list (9 slots) - SACRED_PRIORITY=1 threshold (face_version, mode_health never dropped) - visible_len(s): East-Asian-aware column count - terminal_width(*, fallback): shutil-backed detection with fallback - shorten_model_label: "Opus 4.6 (1M context)" -> "Opus 4.6" / "Opus(1M)" - fit_segments: drop-until-fit with hard-truncate fallback (U+2026) 33 new tests in test_hud_layout.py cover all helpers, edge cases (empty, zero-width, sacred overflow, custom separator, CJK/emoji width), and SEGMENT_PRIORITY ordering invariants. 188/188 tests pass (Golden 133 + Wave 0 22 + Wave 1-D 33). Part of #1464 (Wave 0 statusbar refactor)
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
8a8307e to
e8e68f8
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
e8e68f8 to
72ddb34
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 #1472
Stacked on #1465 (Wave 0 refactor — must merge first)
Summary
Introduces width-aware segment rendering primitives so the status bar never spills out of narrow terminals. Wave 1-D ships the
hud_layouthelpers; Wave 3 integrator will wire them intoformat_status_line.New Module:
lib/hud_layout.pySEGMENT_PRIORITYSACRED_PRIORITY = 1visible_len(s)terminal_width(*, fallback)shorten_model_label(name, *, compact)fit_segments(segments, width, *, separator)Tests
33 new tests in
test_hud_layout.py. 188/188 total pass.Wave 3 integration preview
Once merged, Wave 3 integrator will replace the inline
segments = [...]; " | ".join(segments)informat_status_linewith a call tofit_segments, passingterminal_width()as the budget.