Console messages cannot be filtered by type
- Dominant language
- Scala
- Stars
- 314
- Forks
- 187
- Avg merge
- 1d 21h
- Merged PRs (30d)
- 214
Description
### Feature Summary
The console in the result panel tags every message with a coloured badge for its type — PRINT, COMMAND, DEBUGGER, ERROR — but there is no way to act on that tag. Every message is always rendered.
This bites hardest in the case the console exists for: debugging a Python UDF. A UDF that prints per tuple floods the console, and `displayConsoleMessages` scrolls to the bottom on every new message, so a single ERROR ends up buried among the PRINT lines.
Reproduced with a `1-out Python UDF` that prints twice per row over 12 rows and then divides by zero — 23 PRINT messages and 1 ERROR. Finding the error means scrolling by hand, and there is no way to hide the noise.
The settings gear today holds display options only.
### Proposed Solution or Design
Add a filter control beside the gear. Filtering is a different concern from display options, so it gets its own icon rather than more switches in the settings menu.
| Icon | Purpose | Contents |
| --- | --- | --- |
| gear | display options | Show Timestamp, Show Source (unchanged) |
| funnel | type filter | Select all, then one checkbox per message type |
Each option carries the same badge colour as the rows it controls, so a filter row and the console rows it governs read as the same thing.
Unticking a type hides its rows, and a count line above the list says how many are hidden so that filtering is never silent.
Behaviour worth pinning down:
| Case | Expected |
| --- | --- |
| default | every type visible — unchanged from today |
| an unrecognised message type | stays visible rather than being hidden by an unknown-type default |
| some types hidden | "Select all" renders indeterminate |
| all types hidden | "Select all" renders unchecked, not indeterminate |
| ticking several boxes | menu stays open; closes on the icon or a click outside |
### Affected Area
Workflow UI
Contributor guide
Assessment
This issue has not been assessed yet.