Output left + right with a single space separator instead of trying
to right-align to a detected terminal width. Terminal detection is
unreliable when all fds are piped by Claude Code, and hardcoding a
width defeats the purpose. Also removes the x/term dependency.
term.GetSize returns unreliable values when running inside Claude Code
over SSH. Replace the hardcoded statuslineWidthOffset with STATUSLINE_WIDTH
env var (set in Claude Code settings), falling back to terminal detection,
then 80 columns.
- Extract TokenUsage as named type (eliminates inline struct repetition)
- Refactor main() into testable functions:
- readInputFromStdin: Read JSON from stdin
- parseStatusInput: Validate and parse JSON
- buildStatusLine: Construct left and right statusline parts
- calculatePadding: Compute padding for alignment
- formatOutput: Combine components into final output
- Add comprehensive tests for extracted functions
- Improve coverage from 45% to 71% (+26 percentage points)
- All new functions have 100% test coverage
- Clean linting with zero issues