Uh oh!
There was an error while loading. Please reload this page.
feat(web): make context window indicator opt-in - #9190
Conversation
ApprovabilityVerdict: Not approved Macroscope's review found this PR not approvable — This PR changes the persisted default behavior of the web composer by hiding the existing context-window indicator unless users opt in through a legacy settings control. The implementation is otherwise contained and additive, but the default change warrants review of the intended product experience. Notes:
You can add or adjust custom eligibility rules. Learn more. |
Uh oh!
There was an error while loading. Please reload this page.
jwilmsnallian
commented
Sep 2, 2026
@maria-rcks Could you share why this is marked as legacy? I found it very useful |
…continuation, provider editor redesign, context meter opt-in, linked-PR summaries) Brings the fork up to origin/main e0da6c6..b57726c. Highlights: continue active threads across server self-updates (pingdotgg#9167), provider editor and models list redesign (pingdotgg#8508), opt-in context window meter (pingdotgg#9190), linked-PR summary RPC with last-good caching (pingdotgg#9176), relay credential refresh before expiry (pingdotgg#9178), composer draft preserved through worktree setup (pingdotgg#9197), project skill discovery for Claude (pingdotgg#9210), copy-path on diff headers (pingdotgg#2403), mobile long-press file references (pingdotgg#9258). Conflict resolutions (14 files), keep-both unless noted: - RpcAuthorization / contracts rpc / ws.ts: fork's PR rank, cherry-pick and upstream-release RPCs sit beside upstream's new pullRequestsSummary. - ws.ts route layer: fork's computer task/view brokers plus upstream's serverSelfUpdate wrapped in withRunningThreadContinuation. - PullRequestService: fork's upstream-project reads and scoped diff epochs kept; upstream's summary read, refCacheKey and viewer-flight invalidation added. invalidate() now scopes diff-only invalidation AND clears viewer flights on a whole-workspace refresh. Test file keeps both new suites. - client-runtime pullRequests: fork's PR stack atoms kept, TTL constant takes upstream's new name. - ChatMarkdown: upstream's one-character gutter rule replaces the fork's equivalent digitWidth fix. - ChatComposer: fork's voice-session button kept; context meter now honours settings.contextWindowMeterEnabled. - ConnectionsSettings: fork's EnvironmentLabelControl kept with upstream's min-w-0 truncate. - mobile ThreadFeed: upstream's markdownLinkHandlers plus the fork's onCancelQueuedMessage. - ClaudeDriver imports: fork's superset. build-desktop-artifact: distro and arch both threaded through. Integration: upstream's restart continuation and the fork's resume-on-restart both ran at boot on the same orphans. The continuation-marker helpers move to provider/serverUpdateContinuation.ts and SessionStartupReconciler now defers any binding carrying the marker to upstream's pass (logged as deferred), so a thread is never continued twice. Test added. Dependencies reinstalled for the expo-sharing pin; the stale pnpm copy of @t3tools/mobile-markdown-text was what broke the mobile typecheck. Typecheck clean: contracts, shared, client-runtime, server, web, mobile (desktop exits 1 on a pre-existing warning-level diagnostic). Startup and self-update suites 36 passing; web sidebar/composer/settings suites 419 passing; fork guard script OK. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
bman654
commented
Sep 3, 2026
came to ask the same question. I'm worried if there isn't a replacement planned. Managing context is key part of getting good model results. |
maxredundancy
commented
Sep 3, 2026
I'd also be super interested in why this was disabled by default and hidden in legacy? |
The circular context window indicator is now a legacy feature that defaults off for existing and new client settings. Users can restore it from Settings → General → Legacy features, and settings search plus restore-default behavior include the new toggle. Verified with contracts and web typechecks, focused settings and meter tests, targeted lint, and a direct schema decode check. Built by
gpt-5.6-solin T3 Code through the Codex harness.Note
Low Risk
Client-local UI preference with a default-off legacy toggle; no auth, data, or server behavior changes beyond settings persistence.
Overview
The composer’s circular context window usage indicator is hidden by default. A new client setting,
contextWindowMeterEnabled(defaultfalse), gates whetherChatComposerpasses context-window data to the footer primary actions.Users who want the old behavior can turn it on under Settings → General → Legacy features (“Context window indicator”). Settings search, restore-defaults tracking, and patch/schema decoding in contracts cover the new flag; tests assert default-off and explicit opt-in.
Reviewed by Cursor Bugbot for commit 5523463. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Add opt-in
contextWindowMeterEnabledsetting toClientSettingscontextWindowMeterEnabledfield toClientSettingsSchemaandClientSettingsPatch, defaulting to false when absent so the context window meter is off by default.activeContextWindowtoComposerFooterPrimaryActionsonly when the setting is true; otherwise passes null so the meter is hidden.LegacyFeaturesSection, with searchable terms registered insettingsSearch.ts.useSettingsRestoreto detect and resetcontextWindowMeterEnabled, and adjusts the desktop test fixture to set it explicitly false.contextWindowMeterEnabledvalue now decode as false; verify any out-of-tree consumers ofClientSettingsexpecting the meter to show by default.Macroscope summarized 5523463.