Development#2
Conversation
- Implement selection bar rendering with memory display - Add tests for selection bar snapshots and functionality - Update theme colors for improved UI aesthetics - Refactor treemap widget rendering for better seam handling
- Introduced `ProcessState` enum to represent process statuses more clearly. - Updated `Collector` to map process statuses to `ProcessState`. - Enhanced Linux, macOS, and Windows platform implementations to retrieve process group names, priorities, and I/O statistics. - Modified the UI to display process IDs in the selection bar and detail panel. - Added a help overlay to the UI with keybind descriptions. - Improved treemap layout tests and adjusted related structures to use `pid` instead of `id`. - Updated theme handling to support thick and none border styles. - Added tests for new features and ensured existing tests pass with updated structures.
There was a problem hiding this comment.
Your free trial has ended. If you'd like to continue receiving code reviews, you can add a payment method here.
There was a problem hiding this comment.
Your free trial has ended. If you'd like to continue receiving code reviews, you can add a payment method here.
There was a problem hiding this comment.
Your free trial has ended. If you'd like to continue receiving code reviews, you can add a payment method here.
…essary cross-build steps
There was a problem hiding this comment.
Your free trial has ended. If you'd like to continue receiving code reviews, you can add a payment method here.
…nd organizing imports
There was a problem hiding this comment.
Your free trial has ended. If you'd like to continue receiving code reviews, you can add a payment method here.
There was a problem hiding this comment.
Your free trial has ended. If you'd like to continue receiving code reviews, you can add a payment method here.
There was a problem hiding this comment.
Your free trial has ended. If you'd like to continue receiving code reviews, you can add a payment method here.
…configuration options
| - "v*" | ||
| workflow_dispatch: | ||
| inputs: | ||
| tag: |
There was a problem hiding this comment.
WARNING: The tag input is declared here but never referenced anywhere in the workflow.
When triggered via workflow_dispatch, github.ref_name resolves to the branch name (e.g., main), not the tag. This means artifact filenames (using ${{ github.ref_name }}) and the GitHub release will be named after the branch, not the intended release tag.
To fix, use ${{ github.event_name == 'workflow_dispatch' && inputs.tag || github.ref_name }} wherever github.ref_name is used for artifact/release naming.
| let term_rect = Rect::new(x, y, w, h); | ||
| // Pass 3: render labels on top of fills and seams. | ||
| for (i, trect) in self.rects.iter().enumerate() { | ||
| let _is_selected = i == self.selected_index; |
There was a problem hiding this comment.
WARNING: _is_selected is computed but never used in Pass 3.
The selected tile's label is rendered identically to unselected tiles. If the intent is to visually distinguish the selected tile's label (e.g., bold text or different foreground color), this variable should be used. If not, the dead computation can be removed entirely to avoid confusion.
Code Review SummaryStatus: 3 Issues Found | Recommendation: Address before merge Overview
Issue Details (click to expand)WARNING
Other Observations (not in diff)Issues found in unchanged code that cannot receive inline comments:
Files Reviewed (9 files)
|
This pull request introduces several new features and improvements, primarily focused on enhanced platform support, process information, and configuration flexibility. The most significant changes include the addition of platform-specific process details for Linux, macOS, and Windows, a new structured process state representation, expanded configuration options (including customizable keybindings and default sorting), and updates to CI/CD workflows for broader cross-compilation and release target support.
Platform-specific process information:
/procparsing), macOS (usinglibprocandlibc), and Windows (usingwindows-sysAPIs) in the respectivePlatformExtensionsimplementations. [1] [2] [3]libprocandlibcfor macOS,windows-sysfor Windows inCargo.toml.Process information improvements:
ProcessStateenum to represent process status in a structured way, replacing the previous string-based status. Updated all usages and conversions from platform-specific status to this enum. [1] [2] [3] [4]SystemSnapshot.Configuration enhancements:
KeybindsConfigsection to the configuration, allowing users to customize keybindings for actions like quit, filter, kill, help, sort, etc., with sensible defaults and TOML deserialization. [1] [2]default_sorttoGeneralConfigto specify the default sorting mode. [1] [2]parse_keyutility for parsing key strings from config intoKeyCode, with tests for both valid and invalid inputs. [1] [2]Cross-platform build and CI/CD improvements:
.github/workflows/ci.ymland.github/workflows/release.ymlto add cross-compilation checks (e.g.,x86_64-unknown-linux-musl,aarch64-unknown-linux-gnu, macOS, Windows) usingcross, and to package binaries for multiple targets. [1] [2]Miscellaneous and codebase cleanup:
ToggleHelp,CycleSortMode,Refresh) to theActionenum for future UI/UX features. [1] [2]pidinstead ofid,statusasProcessState). [1] [2] [3]Let me know if you'd like a deeper dive into any of these areas!