Skip to content

fix: Show run summary after TUI exits#12471

Merged
anthonyshew merged 1 commit intomainfrom
shew/bring-back-summary
Mar 28, 2026
Merged

fix: Show run summary after TUI exits#12471
anthonyshew merged 1 commit intomainfrom
shew/bring-back-summary

Conversation

@anthonyshew
Copy link
Copy Markdown
Contributor

Summary

  • The run summary (Tasks/Cached/Time) was never printed when using the TUI because visitor.visit() sent Event::Stop to the TUI before visitor.finish() had a chance to emit the summary log events via ExecutionSummary::print(). By the time the summary was emitted, the TUI event loop had already exited and the events were dropped.
  • Removes the early Stop from visitor.visit()commands/run.rs already sends Stop after run.run() returns, which is after the summary is emitted.
  • Adds persist_summary() to replay Subsystem::Summary log events to stdout during TUI cleanup (both the terminal-started and all-cache-hits paths).

How to test

  1. Run turbo run build (or any task) with the TUI enabled
  2. After the TUI exits, the summary should now appear below the task output:
     Tasks:    3 successful, 3 total
    Cached:    2 cached, 3 total
      Time:    1.5s
    
  3. Verify it works for both cache-miss runs (TUI renders) and fully-cached runs (TUI never starts the alternate screen)

The run summary (Tasks/Cached/Time) was never printed when using the
TUI because visitor.visit() sent Event::Stop before visitor.finish()
had a chance to emit the summary log events. By the time
ExecutionSummary::print() fired, the TUI event loop had already exited
and the events were dropped.

Remove the early Stop from visitor.visit() — commands/run.rs already
sends Stop after run.run() returns, which is after the summary is
emitted. Add persist_summary() to replay Subsystem::Summary events to
stdout during TUI cleanup.
@anthonyshew anthonyshew requested a review from a team as a code owner March 28, 2026 04:45
@anthonyshew anthonyshew requested review from tknickman and removed request for a team March 28, 2026 04:45
@vercel
Copy link
Copy Markdown
Contributor

vercel bot commented Mar 28, 2026

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

Project Deployment Actions Updated (UTC)
examples-basic-web Ready Ready Preview, Comment, Open in v0 Mar 28, 2026 4:45am
examples-designsystem-docs Ready Ready Preview, Comment, Open in v0 Mar 28, 2026 4:45am
examples-gatsby-web Ready Ready Preview, Comment, Open in v0 Mar 28, 2026 4:45am
examples-kitchensink-blog Ready Ready Preview, Comment, Open in v0 Mar 28, 2026 4:45am
examples-nonmonorepo Ready Ready Preview, Comment, Open in v0 Mar 28, 2026 4:45am
examples-svelte-web Ready Ready Preview, Comment, Open in v0 Mar 28, 2026 4:45am
examples-tailwind-web Ready Ready Preview, Comment, Open in v0 Mar 28, 2026 4:45am
examples-vite-web Ready Ready Preview, Comment, Open in v0 Mar 28, 2026 4:45am
turbo-site Ready Ready Preview, Comment, Open in v0 Mar 28, 2026 4:45am
turborepo-agents Ready Ready Preview, Comment, Open in v0 Mar 28, 2026 4:45am

@anthonyshew anthonyshew enabled auto-merge (squash) March 28, 2026 04:46
@anthonyshew anthonyshew merged commit ffa47d1 into main Mar 28, 2026
57 checks passed
@anthonyshew anthonyshew deleted the shew/bring-back-summary branch March 28, 2026 04:55
github-actions bot added a commit that referenced this pull request Mar 28, 2026
## Release v2.8.21

Versioned docs: https://v2-8-21.turborepo.dev

### Changes

- release(turborepo): 2.8.20 (#12396) (`45230ec`)
- fix: Disable husky hooks in `update-examples` workflow (#12397)
(`56b79ff`)
- docs: Add link to Docker guide in prune --docker flag section (#12401)
(`e7f0db7`)
- feat: Add `global` configuration key behind
`futureFlags.globalConfiguration` (#12399) (`5f190cf`)
- chore: Update CODEOWNERS to remove /docs owner (#12402) (`3233d3a`)
- fix: Strip JSX components from heading anchors and TOC entries
(#12404) (`3abe553`)
- fix: Move docs app icons into app/ directory (#12403) (`ddf3918`)
- feat: Add experimental structured logging with `--json` and
`--log-file` flags (#12405) (`7ca0601`)
- release(turborepo): 2.8.21-canary.1 (#12407) (`adebb95`)
- docs: Downgrade Next.js (#12408) (`281e89b`)
- chore: Deprecate the `turbo scan` command (#12406) (`4a12c26`)
- release(turborepo): 2.8.21-canary.2 (#12409) (`b9ef212`)
- fix(eslint-plugin-turbo): Guard against missing tasks/pipeline in
forEachTaskDef (#12411) (`6c107c2`)
- release(turborepo): 2.8.21-canary.3 (#12413) (`a2e6635`)
- chore: Upgrade Next.js (#12415) (`b9e6174`)
- Revert "fix: Flush stale mouse tracking events from stdin during TUI
cleanup" (#12416) (`646b06e`)
- fix: Add NixOS environment variables to default passthroughs (#12417)
(`4f12c69`)
- release(turborepo): 2.8.21-canary.4 (#12419) (`19cb539`)
- fix: Resolve security vulnerabilities in `tar` and `rustls-webpki`
(#12418) (`f09b138`)
- release(turborepo): 2.8.21-canary.5 (#12420) (`8aca047`)
- docs: Promote `turbo query` from experimental to stable (#12421)
(`0692aba`)
- docs: Clarify `turbo-ignore`'s future (#12422) (`c5a8235`)
- release(turborepo): 2.8.21-canary.6 (#12423) (`3ebf536`)
- feat: Rework turbo ls to use query internals and add turbo query ls
shorthand (#12424) (`84fd6e3`)
- docs: Clarify environment variables across packages dependency
behavior (#12390) (`e44b0d8`)
- docs: Expand subpath imports example (#12412) (`a7fec57`)
- fix(examples): Update of `with-svelte` example (#11952) (`41d1b2e`)
- release(turborepo): 2.8.21-canary.7 (#12425) (`7155a67`)
- fix: Preserve source dependencies when adding workspace deps in
`turbo-gen` (#11935) (`01c56cc`)
- docs: Add Git history requirements to `turbo query affected` docs
(#12426) (`edc16d5`)
- fix: Prevent horizontal overflow from long inline code on narrow
viewports (#12428) (`a5d641b`)
- release(turborepo): 2.8.21-canary.8 (#12429) (`46814d0`)
- feat: Send git SHA and dirty hash to remote cache (#12427) (`192034a`)
- fix: Upgrade tokio to 1.47.1+ to fix pidfd_reaper panic (#12431)
(`8c25d47`)
- release(turborepo): 2.8.21-canary.9 (#12432) (`2e2f8c3`)
- fix: Use script-shell=bash for cross-platform with-shell-commands
example (#12436) (`d5c2192`)
- docs: Add AI guide to sidebar navigation (#12438) (`021d288`)
- docs: Move `experimentalObservability` into `futureFlags` section
(#12439) (`85812cc`)
- fix: Skip Unix domain sockets and other special files during file
hashing (#12445) (`eb8f75e`)
- fix: Preserve dedupePeers and unknown pnpm lockfile settings (#12443)
(`1529b92`)
- release(turborepo): 2.8.21-canary.10 (#12446) (`014111c`)
- fix: Align dry run cache status with normal run by checking caching
guards (#12448) (`48aa171`)
- release(turborepo): 2.8.21-canary.11 (#12450) (`b14aa0b`)
- fix: Resolve turbo watch hang with mixed interruptible persistent
tasks (#12449) (`326532d`)
- release(turborepo): 2.8.21-canary.12 (#12451) (`379d47b`)
- fix: Avoid `setsid()` in PTY spawn to prevent macOS Gatekeeper CPU
spikes (#12452) (`dcc9f6a`)
- release(turborepo): 2.8.21-canary.13 (#12453) (`19f46e6`)
- feat: Add `packagesFromLockfile()` NAPI binding to `@turbo/repository`
(#12454) (`c58ee79`)
- release(library): 0.0.1-canary.21 (#12455) (`3637185`)
- release(turborepo): 2.8.21-canary.14 (#12456) (`3f87769`)
- refactor: Move cache hit SHA context to verbose logging (#12435)
(`23c15b4`)
- release(turborepo): 2.8.21-canary.15 (#12457) (`6353482`)
- docs: Add missing --force flag documentation (#12440) (`e3b89b0`)
- fix: Prevent panic in turbo watch with persistent tasks (#12459)
(`337b2e8`)
- release(turborepo): 2.8.21-canary.16 (#12461) (`e79a56b`)
- fix: Support `turbo watch` in single-package workspaces (#12460)
(`ae78ce1`)
- release(turborepo): 2.8.21-canary.17 (#12463) (`0bafae2`)
- fix: Missing deps after npm lockfile parsing (#12464) (`fe5a86e`)
- release(turborepo): 2.8.21-canary.18 (#12465) (`c014134`)
- docs: Add AI agent detection and automatic markdown rewrites (#12462)
(`50bd872`)
- fix: Resolve generator name conflicts across workspaces (#12467)
(`d5d37a8`)
- release(turborepo): 2.8.21-canary.19 (#12468) (`7552e93`)
- fix: Remove root package.json from `--affected` global triggers
(#12469) (`91ebb97`)
- release(turborepo): 2.8.21-canary.20 (#12470) (`c5a4690`)
- fix: Show run summary after TUI exits (#12471) (`ffa47d1`)

---------

Co-authored-by: Turbobot <turbobot@vercel.com>
github-actions bot added a commit that referenced this pull request Mar 28, 2026
## Release v2.8.22-canary.1

Versioned docs: https://v2-8-22-canary-1.turborepo.dev

### Changes

- release(turborepo): 2.8.21-canary.20 (#12470) (`c5a4690`)
- fix: Show run summary after TUI exits (#12471) (`ffa47d1`)
- release(turborepo): 2.8.21 (#12472) (`be8dc50`)
- fix: Avoid panic for unanchorable/non-UTF8 git paths (#11106)
(`5f45fdb`)

Co-authored-by: Turbobot <turbobot@vercel.com>
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.

1 participant