Skip to content

fix: Don't flash TUI on a >>> FULL TURBO#11306

Merged
anthonyshew merged 2 commits into
mainfrom
shew/tui-rendering-delay-333b
Dec 23, 2025
Merged

fix: Don't flash TUI on a >>> FULL TURBO#11306
anthonyshew merged 2 commits into
mainfrom
shew/tui-rendering-delay-333b

Conversation

@anthonyshew
Copy link
Copy Markdown
Contributor

@anthonyshew anthonyshew commented Dec 23, 2025

Description

Previously, our TUI would render when we started up tasks. However, this would cause a "flicker" in the case that all tasks hit cache. The flash was a bit annoying.

Now, we only render the TUI once we see that we won't hit cache for all tasks. This comes with a small delay in rendering the TUI, but the tradeoff seems to right in my UX testing. Also, when we consider that we're about to do a bunch of performance work, we're going to be faster at evaluating these states, so this side-effect will become much smaller.

Testing Instructions

Added some tests and tested manually in both small and large Turborepos.

CLOSES #9470

cursoragent and others added 2 commits December 21, 2025 02:40
Initialize the TUI terminal only when a task cache miss occurs, improving startup performance for cached builds.

Co-authored-by: anthony.shew <[email protected]>
@anthonyshew anthonyshew requested a review from a team as a code owner December 23, 2025 18:47
@vercel
Copy link
Copy Markdown
Contributor

vercel Bot commented Dec 23, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (UTC)
examples-basic-web Ready Ready Preview, Comment Dec 23, 2025 6:48pm
examples-designsystem-docs Ready Ready Preview, Comment Dec 23, 2025 6:48pm
examples-gatsby-web Ready Ready Preview, Comment Dec 23, 2025 6:48pm
examples-kitchensink-blog Ready Ready Preview, Comment Dec 23, 2025 6:48pm
examples-nonmonorepo Ready Ready Preview, Comment Dec 23, 2025 6:48pm
examples-svelte-web Ready Ready Preview, Comment Dec 23, 2025 6:48pm
examples-tailwind-web Ready Ready Preview, Comment Dec 23, 2025 6:48pm
examples-vite-web Ready Ready Preview, Comment Dec 23, 2025 6:48pm
turbo-site Ready Ready Preview, Comment Dec 23, 2025 6:48pm

@anthonyshew anthonyshew merged commit cf51fa8 into main Dec 23, 2025
100 checks passed
@anthonyshew anthonyshew deleted the shew/tui-rendering-delay-333b branch December 23, 2025 19:34
ch4og pushed a commit to csmplay/mapban that referenced this pull request Dec 24, 2025
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
| [turbo](https://turborepo.com) ([source](https://github.com/vercel/turborepo)) | [`2.7.1` -> `2.7.2`](https://renovatebot.com/diffs/npm/turbo/2.7.1/2.7.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/turbo/2.7.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/turbo/2.7.1/2.7.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>vercel/turborepo (turbo)</summary>

### [`v2.7.2`](https://github.com/vercel/turborepo/releases/tag/v2.7.2): Turborepo v2.7.2

[Compare Source](vercel/turborepo@v2.7.1...v2.7.2)

<!-- Release notes generated using configuration in .github/release.yml at v2.7.2 -->

#### What's Changed

##### Docs

- perf(create-turbo): Download files faster by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;11297](vercel/turborepo#11297)

##### Examples

- examples(dev-deps): bump turbo from 2.6.3 to 2.7.1 in /examples/with-shell-commands in the with-shell-commands group by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;11291](vercel/turborepo#11291)
- examples(dev-deps): bump the with-svelte group in /examples/with-svelte with 3 updates by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;11292](vercel/turborepo#11292)
- examples(deps): bump the basic group in /examples/basic with 4 updates by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;11293](vercel/turborepo#11293)

##### Changelog

- fix: Use newline for separator in misuse text by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;10834](vercel/turborepo#10834)
- fix(create-turbo): Loader UI states by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;11300](vercel/turborepo#11300)
- fix: Exclude framework-inferred env vars with wildcards by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;11303](vercel/turborepo#11303)
- fix: Don't flash TUI on a >>> FULL TURBO by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;11306](vercel/turborepo#11306)
- fix: Transit nodes in Devtools by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;11307](vercel/turborepo#11307)

**Full Changelog**: <vercel/turborepo@v2.7.1...v2.7.2>

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xNC4yIiwidXBkYXRlZEluVmVyIjoiNDIuMTQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Reviewed-on: https://git.csmpro.ru/csmpro/mapban/pulls/79
Co-authored-by: Renovate Bot <[email protected]>
Co-committed-by: Renovate Bot <[email protected]>
@mutewinter mutewinter mentioned this pull request Dec 31, 2025
1 task
anthonyshew added a commit that referenced this pull request Jan 5, 2026
Previously, the TUI would not start when using --output-logs=errors-only
or --output-logs=none because the Status event with CacheResult::Miss
was not sent in these cases. This was a regression from #11306 which
introduced lazy TUI initialization.

Now we always send the cache miss status event so the TUI knows to start
rendering, but with an empty message when output should be suppressed.
The Direct (non-TUI) output handler skips printing empty messages to
avoid spurious output.

Fixes #11352
anthonyshew added a commit that referenced this pull request Jan 5, 2026
## Summary

- Fixes the TUI not showing when using `--output-logs=errors-only` or
`--output-logs=none` with cache misses
- Always sends the cache miss status event so TUI knows to start
rendering
- Skips printing empty messages in non-TUI mode to avoid spurious output

## Root Cause

PR #11306 introduced lazy TUI initialization - the TUI only starts when
it receives a `Status` event with `CacheResult::Miss`. However, when
using `--output-logs=errors-only` or `--output-logs=none`, the
`status()` call was being skipped entirely, so the TUI never received
the notification to start.

## Testing

Tested manually:
1. `turbo run build --force --output-logs=errors-only` - TUI now appears
2. `turbo run build --output-logs=errors-only` (cached) - No TUI (FULL
TURBO), as expected
3. `turbo run build --force --output-logs=errors-only` - No spurious
extra lines get printed

Fixes #11352
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.

turbo ui flickers when using tui if FULL TURBO happens

2 participants