Searching does not work with TUI if text is not in the terminal window
Verify canary release
- [x] I verified that the issue exists in the latest Turborepo canary release.
Link to code that reproduces this issue
pnpm dlx create-turbo@latest --example kitchen-sink
Which canary version will you have in your reproduction?
2.4.4
Enviroment information
CLI:
Version: 2.4.4
Daemon status: Running
Package manager: pnpm
Platform:
Architecture: aarch64
Operating system: macos
WSL: false
Available memory (MB): 12802
Available CPU cores: 10
Environment:
CI: None
Terminal (TERM): xterm-256color
Terminal program (TERM_PROGRAM): vscode
Terminal program version (TERM_PROGRAM_VERSION): 0.46.10
Shell (SHELL): /bin/zsh
stdin: false
Expected behavior
When searching inside terminal window via ( command + F for mac ) it normally scrolls up to mark the searched text. This also works as expected with 'stream' ui.
Actual behavior
While using tui ui, it can only find if text is visible inside the terminal window.
It finds the remix vite:dev text as expected
But when i scroll down and search again, it can not find. ( It should've scroll up )
To Reproduce
You can use any application which has a longer terminal output than terminal size:
Setup kitchen-sink example using Turborepo cli
pnpm dlx create-turbo@latest --example kitchen-sink
Make sure "ui": "tui" in turbo.json ( which is default )
Run blog application ( which has longer terminal output )
npx turbo dev -F blog
Scroll down inside terminal and search for content above.
Additional context
I often need to search for log patterns to check the application's state, but when using TUI, I can't be certain whether the log exists.
I tested this behavior against the latest canary release, but the issue still persists.
Due to how task logs are rendered we won't be able to make native search functionality provided by your terminal emulator work.
Implementing our own log searching functionality in the TUI is probably the only way.
I understand. Should we create a feature request issue so anyone interested can take it on?
+1 would love this feature as well