Skip to content

fix: use env override and settings for usable context ratio calculation - #407

Merged
sirmalloc merged 4 commits into
sirmalloc:mainfrom
ErnestHysa:main
Oct 31, 2026
Merged

sirmalloc merged 4 commits into
sirmalloc:mainfrom
ErnestHysa:main

Conversation

@ErnestHysa

@ErnestHysa ErnestHysa commented May 30, 2026 •

Copy link
Copy Markdown
Contributor

Fixes #389

Fixes #393

@ErnestHysa ErnestHysa changed the title fix: validate settings schema before saving fix: use env override and settings for usable context ratio calculation May 30, 2026
@eric-engberg

Copy link
Copy Markdown
Contributor

Quick heads-up: #390 and #319 are also working on the hard-coded 0.8 ratio, and both read CLAUDE_AUTOCOMPACT_PCT_OVERRIDE like this PR does (#390 also reads CLAUDE_CODE_AUTO_COMPACT_WINDOW, DISABLE_AUTO_COMPACT and Claude Code's own autoCompactWindow setting). One small thing I noticed: the new ccstatusline setting here is also named autoCompactWindow but holds a percentage (1 to 99, default 80), while Claude Code's autoCompactWindow is a token count, so the shared name could be a little confusing. Also, #393 was closed in June when #447 landed, so the saveSettings change for it might be worth a look against current main. Comparing notes with #390 and #319 could help get to one version to review.

Read token-based compaction windows from layered Claude settings, honor environment overrides and disabled compaction, and retain the documented 80% estimate. Remove the superseded settings-save change and add regression coverage.
@sirmalloc
sirmalloc merged commit 71e8b42 into sirmalloc:main Oct 31, 2026
3 checks passed
pcvelz added a commit to pcvelz/ccstatusline-usage that referenced this pull request Nov 2, 2026
Upstream: weekly limit timers (sirmalloc#768), prompt cache miss widgets (sirmalloc#770), context window size env override (sirmalloc#352, sirmalloc#407), windowed speed fixes (sirmalloc#769, sirmalloc#771), separator/renderer fixes (sirmalloc#773), custom-command styling (sirmalloc#775), clickable cwd links (sirmalloc#744), account email from live credentials (sirmalloc#724), cache timer reported expiry + short toggle (sirmalloc#576, sirmalloc#592), claude-status lock (sirmalloc#635, sirmalloc#772), dedup token metrics (sirmalloc#622, sirmalloc#725, sirmalloc#735).
Not adopted: sirmalloc#765 terminal width from COLUMNS with fixed reserve - the fork keeps flexMode/compactThreshold and tmux pane priority.

Hand edits outside conflicts:
- README.md: kept fork Configure flex separator behavior bullet and older-updates details wrapper; dropped upstream Related Projects additions (claude-eta)
- AGENTS.md: kept fork terminal width wording (sirmalloc#765 not adopted)
- src/types/FlexMode.ts, src/tui/components/TerminalWidthMenu.tsx, src/tui/components/__tests__/TerminalWidthMenu.test.ts, src/tui/components/TerminalOptionsMenu.tsx, src/tui/components/__tests__/TerminalOptionsMenu.test.ts: restored, fork keeps terminal width settings
- src/tui/App.tsx, src/tui/components/index.ts, src/types/index.ts: re-wired terminal width menu and FlexMode export
- src/types/StatusJSON.ts: dropped fork duplicate prompt_cache key, upstream schema is a superset
- src/utils/terminal.ts: COLUMNS source gated on non-tmux so tmux pane width keeps priority
- src/widgets/WeeklyLimitTimer.ts, src/utils/usage-prefetch.ts, src/widgets/__tests__/WeeklyLimitTimer.test.ts: compat fix - fableUsage/fableResetAt -> weeklyFableUsage/weeklyFableResetAt
- src/widgets/ApiUsage.tsx: compat fix - Context Bar honors effective context window (override, clamp, 1.0M format); Weekly renders a valid value despite a session error
- src/widgets/__tests__/ApiUsage.localModelFallback.test.ts: output tokens no longer counted in context (upstream sirmalloc#730)
- src/utils/__tests__/renderer-flex-width.test.ts, src/utils/__tests__/renderer-ansi.test.ts, src/utils/__tests__/gradient.test.ts, src/utils/__tests__/renderer-separator-collapse.test.ts, src/utils/__tests__/config.test.ts, src/tui/__tests__/App.test.ts: fork deviation - fork width model (flexMode, 6-column full reserve, kept settings, Terminal Width menu entry)
- src/utils/__tests__/default-colors.test.ts: fork deviation - accept ansi256:/hex: defaults
- src/utils/__tests__/usage-prefetch.test.ts: fork deviation - weekly usage comes from the API, fork widget imports from ApiUsage
- src/widgets/__tests__/CurrentWorkingDir.test.ts, src/widgets/__tests__/CustomCommand.test.ts: Settings literal gains flexMode/compactThreshold
- src/utils/__tests__/context-window.test.ts, src/utils/__tests__/jsonl-metrics.test.ts: restored fork tests upstream dropped
- docs/test-retirements.md: ledger for the dev-reload snapshot-path and RemoteControlStatus glyph (sirmalloc#605) tests upstream replaced
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.

Configuration settings reset on invalid JSON Context % (usable) ignores autoCompactWindow and compaction env overrides

3 participants