Skip to content

feat(web): fold plan mode and token-by-token output into Legacy features - #5664

Merged
t3dotgg merged 2 commits into
mainfrom
t3code/legacy-features-settings-section
Aug 8, 2026
Merged

feat(web): fold plan mode and token-by-token output into Legacy features#5664
t3dotgg merged 2 commits into
mainfrom
t3code/legacy-features-settings-section

Conversation

@t3dotgg

@t3dotgg t3dotgg commented Aug 7, 2026

Copy link
Copy Markdown
Member

Plan mode and token-by-token streaming are features we want to keep available but stop advertising. Plan mode sat in Beta looking like a new feature, and token-by-token output actively hurts the experience: it is much slower than buffered output.

Now there is a collapsed Legacy features section at the bottom of Settings → General. You have to unfold it to see either toggle, and a settings-search jump auto-unfolds it.

  • Plan mode (legacy) moved from the Beta panel (same planModeEnabled key, nobody's choice changes).
  • Stream token by token (legacy) moved from the General section and put under a new key (enableAssistantStreamingenableLegacyTokenStreaming), so everyone resets to buffered output, including previous opt-ins. The copy calls it out as not recommended, and turning it on requires a confirmation dialog.
Folded (default) Unfolded
folded unfolded

Verified: typecheck (contracts/web/server), settings + desktop + server ingestion tests, and clicked through both states in the running app.


Written by Claude Fable 5 running in Claude Code.

🤖 Generated with Claude Code


Note

Medium Risk
Renaming the server setting without migrating enableAssistantStreaming resets streaming behavior for all users; UI and search changes are low risk but touch primary settings paths.

Overview
Moves plan mode and token-by-token assistant output out of prominent settings into a collapsed Legacy features section at the bottom of Settings → General.

Plan mode (legacy) is removed from the Beta panel and lives under that fold with the same planModeEnabled client setting. Stream token by token (legacy) replaces the old General Assistant output toggle: the server/contracts setting is renamed from enableAssistantStreaming to enableLegacyTokenStreaming (including ingestion tests and ProviderRuntimeIngestion), and the new schema key intentionally does not migrate the old field—everyone defaults back to buffered output, including prior opt-ins. Enabling legacy streaming now requires a confirmation dialog; copy frames it as not recommended.

Settings search drops assistant-output and Beta restore-plan-mode, adds legacy-plan-mode and legacy-token-streaming, and auto-expands the legacy section when jumping to those targets.

Reviewed by Cursor Bugbot for commit d95757b. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Move plan mode and token-by-token streaming toggles into a Legacy features section

  • Renames enableAssistantStreaming to enableLegacyTokenStreaming in packages/contracts/src/settings.ts; the old key is no longer decoded, so all clients default to buffered output unless they opt in via the new key.
  • Removes the plan mode toggle from BetaSettingsPanel and the "Assistant output" switch from GeneralSettingsPanel, consolidating both into a new collapsible "Legacy features" section in SettingsPanels.tsx.
  • Enabling legacy token-by-token streaming now requires a confirmation dialog; the section auto-expands when targeted via settings search.
  • Updates settings search entries to point to the new legacy-plan-mode and legacy-token-streaming items.
  • Risk: existing clients with enableAssistantStreaming=true stored in settings will silently fall back to buffered output after this change.

Macroscope summarized d95757b.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: f1e2bcfd-9164-41e6-836f-1ce5a21a1d02

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Aug 7, 2026
Comment thread apps/web/src/components/settings/SettingsPanels.tsx
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 11.3 KiB 11.3 KiB −3 B (−0.0%) 15.1 KiB
Codex Thread snapshot wire 5.5 KiB 5.5 KiB +6 B (+0.1%) 7.3 KiB
Codex Live turn WebSocket wire 5.9 KiB 5.9 KiB −9 B (−0.1%) 7.8 KiB
Codex Live turn WebSocket decoded 49.7 KiB 49.7 KiB 0 B (0.0%) 66.4 KiB
Codex Live turn messages 16 16 0 (0.0%) 21
Claude Total thread wire 11.3 KiB 11.4 KiB +4 B (+0.0%) 15.1 KiB
Claude Thread snapshot wire 5.5 KiB 5.5 KiB +12 B (+0.2%) 7.3 KiB
Claude Live turn WebSocket wire 5.9 KiB 5.9 KiB −8 B (−0.1%) 7.8 KiB
Claude Live turn WebSocket decoded 50.6 KiB 50.6 KiB 0 B (0.0%) 66.4 KiB
Claude Live turn messages 16 16 0 (0.0%) 21

Baseline: 45d9aa9 · PR result: d95757b · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 94.6 KiB
  • Claude decoded thread snapshot: 95.4 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@macroscopeapp

macroscopeapp Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Needs human review

This PR intentionally resets all users who had token streaming enabled back to the buffered default by using a fresh settings key. While a deliberate product decision to deprecate these features into a 'Legacy' section, the user preference reset represents a significant behavior change warranting review.

You can customize Macroscope's approvability policy. Learn more.

@t3dotgg
t3dotgg merged commit 31891a1 into main Aug 8, 2026
17 checks passed
@t3dotgg
t3dotgg deleted the t3code/legacy-features-settings-section branch August 8, 2026 00:17
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Aug 8, 2026
## What's Changed
* chore(ci): vouch StiensWout by @t3-code[bot] in pingdotgg/t3code#5637
* feat(desktop): remember recently used sites in the Browser panel by @chrisdeeming in pingdotgg/t3code#5270
* chore: vouch chrisdeeming by @t3-code[bot] in pingdotgg/t3code#5641
* feat(web): make sidebar artwork theme-aware by @maria-rcks in pingdotgg/t3code#5636
* fix(web): reconnect the composer seam for remote non-Git projects by @caezium in pingdotgg/t3code#5633
* fix(web): show Stop button while input is pending by @ipanasenko in pingdotgg/t3code#5554
* feat(web): fold plan mode and token-by-token output into Legacy features by @t3dotgg in pingdotgg/t3code#5664

## New Contributors
* @chrisdeeming made their first contribution in pingdotgg/t3code#5270

**Full Changelog**: pingdotgg/t3code@v0.0.33-nightly.20260807.1026...v0.0.33-nightly.20260808.1029

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.33-nightly.20260808.1029
sandscooling pushed a commit to sandscooling/t3code that referenced this pull request Aug 8, 2026
Upstream 2c7267a, 14 commits past v0.0.32.

One conflict, all of it from pingdotgg#5672 promoting sidebar v2 to default. That
commit swaps two filenames: the old Sidebar.tsx becomes LegacySidebar.tsx
and SidebarV2.tsx becomes Sidebar.tsx. The local browser-activity indicator
(b0fd974, deda2f3) lives in SidebarV2.tsx, so git saw edits to a file
upstream deleted.

Resolved by adopting the rename wholesale — LegacySidebar.tsx and
Sidebar.tsx are taken verbatim from upstream, SidebarV2.tsx is dropped —
and re-applying the indicator onto the new Sidebar.tsx as if it had been
written against the default sidebar. All ten insertion points re-anchored:
SidebarV2ThreadTooltip, SidebarV2Row and SidebarV2SearchResultRow are now
SidebarThreadTooltip, SidebarThreadRow and SidebarSearchResultRow. The
diff is +41 lines, unchanged from the pre-merge branch.

One deliberate edit during the port: the test id was sidebar-v2-browser-
status-, and pingdotgg#5672 renamed the neighbouring terminal indicator's to
sidebar-terminal-status-, so this one becomes sidebar-browser-status- to
match. Nothing referenced the old id.

Not carried in this merge, but worth knowing: pingdotgg#5558 (already in v0.0.32)
deleted the plan sidebar outright, and pingdotgg#5664 folded plan mode and token
streaming into a Legacy features section, renaming enableAssistantStreaming
to enableLegacyTokenStreaming with no migration. pingdotgg#5672 likewise replaces
sidebarV2Enabled and sidebarV2ConfiguredByUser with legacySidebarEnabled
and deliberately drops the old keys on decode.

No dependency changes. One new server migration, 038_ProjectionThreadsPin-
OrderKey, from the pinned-thread reordering in pingdotgg#5581.

Verified: tsgo --noEmit on @t3tools/web is clean.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L 100-499 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant