Repository navigation
feat(tui): 포크 TUI 수정 3개를 1.1.23 위에 다시 얹기 - #3
Merged
Merged
Conversation
* feat(tui): fold account rows below 70 columns so usage bars wrap On a narrow terminal (a phone over a remote session, say) an account row could not hold its name, status and quota bars on one line. The list dropped every bar past the first and shrank that one to a cell or two, so the weekly and family windows vanished below 70 columns and the session bar became unreadable near 40. Below LIST_MIN a full-width list now folds each account into a heading (marker, route cells, name, type, status) and one line per quota bar, with the trailing tags wrapped a whole tag at a time beneath them. Each folded bar takes the row less a 2-column right margin (COMPACT_BAR_RIGHT_MARGIN), so it never touches the screen edge. The heading gives the name every column the rest leaves, measured in display columns, so a CJK name is cut where it reaches the type column. The smallest drawable terminal drops from 40x8 to 30x8 so the folded layout is reachable at phone widths. This ports teamcodex KarpelesLab#21 (7296e40, compact layout below 70 columns) and KarpelesLab#23 (0a34280, compact bar right margin), adapted to teamclaude's budgeted _listLayout: the layout flags `narrow`, _renderRow passes the width, and _renderAcct returns lines instead of one string. Split panes are never narrow. teamcodex KarpelesLab#12/KarpelesLab#17/KarpelesLab#18/KarpelesLab#19 are already in 1.1.22 and were not needed. At 70 columns and wider the frame is byte-identical to 1.1.22: the trailing tags moved into a list but are appended in the same order with the same separator. test/fixtures/tui-wide-frames.json holds frames recorded from the unmodified renderer, and test/tui-narrow-bars.test.js pins both sides. docs/teamcodex-port-plan.md classifies all 34 teamcodex commits for later porting; docs/evidence/ holds the real TUI.start() paint at 30-80 columns. * test(tui): use a neutral double-width name in the narrow-layout fixtures The width tests need an account name of East Asian Wide characters, but the one they used read like a real person's name and address. It is now '가나다라마바사-wide@example.test': seven Hangul syllables (fourteen columns) then ASCII, which still exercises the cases the tests care about. - At 40 columns the name is cut exactly where it reaches the type column. - At 30 columns a fifth syllable would straddle the edge, so it is dropped whole and its leftover column padded (a case the old name did not hit). - At 69 columns the whole name fits. The wide-frame fixture was re-recorded from the unmodified 1.1.22 renderer with the new name. The pty capture in docs/evidence was regenerated from the real TUI.start() paint. The comments that named the data Korean now describe it by width. Mutating the folded heading to measure characters instead of display columns still fails "the folded heading spends what the type and status leave on the name, in display columns". Reapplied on 1.1.23: tui-wide-frames.json re-recorded from the unmodified 1.1.23 renderer (percentage off by default since KarpelesLab#514); renderFrame takes a config, and the folded-label test checks percentage on and off. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…bars Owner request 1: match teamcodex by changing usage-bar labels from "39% · 2h53m" to "39% 2h53m". A single space lowers the minimum bar width needed to show both values by two columns; narrower bars still show the whole countdown alone. Keep the separators in dashboard and status output unchanged. Update label assertions, exact width boundaries, folded-bar expectations, and recorded frames for this label change alone. Reapplied on 1.1.23: with the percentage opt-in (KarpelesLab#514) the default frames and fixture are unchanged; the on-state row test and folded labels use the single space, and docs/configuration.md quotes the new label.
Owner request 2: the weekly and Fable usage bars already show whether Fable is usable (either one at its limit blocks Fable), so the ⊘ Fable blocked tag is redundant while those bars are on the row. Draw the tag only when the Fable bar is omitted at narrow widths, where it is the only sign that Fable is blocked. The ⊘ Sonnet tag follows the same rule. Give the columns the tag no longer needs back to the bars, so the Fable bar stays on screen at narrower terminal widths. The tag's width is reserved only in the fallback layout that omits the Fable bar; the full layout is tried first without it. Pane stages use the same rule. Update visibility, routing, weekly-gate, row-width, folded-tag, and pane assertions plus recorded frames. Cover the actual render path across 40-160 columns and compare blocked and unblocked complete budgets and first split widths directly. Reapplied on 1.1.23: pane stage s3 uses BAR_MAX (KarpelesLab#490 removed barCap); tui-wide-frames.json re-recorded, differing from 1.1.23 only by the dropped tag and the columns it returns.
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.
포크
master를 원본KarpelesLab/teamclaude1.1.23(909d8b1)과 맞춘 뒤(옛 master 는backup/tui-tweaks-20261005에 보존), 포크 전용 TUI 수정 3개를 다시 얹는다.2a314fb70열 미만에서 계정 줄 접기(사용량 막대 줄바꿈)c265679사용량 막대의 퍼센트와 카운트다운 사이 구분자 제거 — 원본 feat(tui): the quota-bar percentage is opt-in KarpelesLab/teamclaude#514 로 퍼센트가 기본 꺼짐이 되어 켬 상태(31% 3d)에서만 보인다4919592사용량 막대가 Fable 을 보여 줄 때 ⊘ Fable 태그 제거원본 시험 기대값 변경은 원래 포크 커밋이 의도적으로 바꾸던 구분자·태그 기대값 범위만(바뀐 파일 목록이 옛 포크 커밋과 같음, 추가는
docs/configuration.md예시 1곳).검증(마스터 독립 실행):
npm test2661/2661,lint·typecheck통과. 구분자 수정 되돌림 변이에서test/tui-bar.test.js4개 실패 확인 후 원복. 워커 실측 변이: 접기 10·구분자 5·태그 13 실패. gitleaks 기본 규칙 0건(조직 규칙 0개 로드 — 한계).🤖 Generated with Claude Code