Skip to content

Development#2

Merged
Vivallo04 merged 9 commits into
mainfrom
development
Feb 22, 2026
Merged

Development#2
Vivallo04 merged 9 commits into
mainfrom
development

Conversation

@Vivallo04

Copy link
Copy Markdown
Owner

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:

  • Implemented platform-specific logic for retrieving process group names, priorities, and I/O statistics for Linux (/proc parsing), macOS (using libproc and libc), and Windows (using windows-sys APIs) in the respective PlatformExtensions implementations. [1] [2] [3]
  • Added new dependencies for platform support: libproc and libc for macOS, windows-sys for Windows in Cargo.toml.

Process information improvements:

  • Introduced a new ProcessState enum 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]
  • Collector now includes per-core CPU usage and system load average in the SystemSnapshot.

Configuration enhancements:

  • Added a new KeybindsConfig section 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]
  • Introduced default_sort to GeneralConfig to specify the default sorting mode. [1] [2]
  • Added a parse_key utility for parsing key strings from config into KeyCode, with tests for both valid and invalid inputs. [1] [2]

Cross-platform build and CI/CD improvements:

  • Updated .github/workflows/ci.yml and .github/workflows/release.yml to add cross-compilation checks (e.g., x86_64-unknown-linux-musl, aarch64-unknown-linux-gnu, macOS, Windows) using cross, and to package binaries for multiple targets. [1] [2]

Miscellaneous and codebase cleanup:

  • Added new action variants (ToggleHelp, CycleSortMode, Refresh) to the Action enum for future UI/UX features. [1] [2]
  • Updated bench and test code to match new struct field names and types (e.g., pid instead of id, status as ProcessState). [1] [2] [3]

Let me know if you'd like a deeper dive into any of these areas!

- 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.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your free trial has ended. If you'd like to continue receiving code reviews, you can add a payment method here.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your free trial has ended. If you'd like to continue receiving code reviews, you can add a payment method here.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your free trial has ended. If you'd like to continue receiving code reviews, you can add a payment method here.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your free trial has ended. If you'd like to continue receiving code reviews, you can add a payment method here.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your free trial has ended. If you'd like to continue receiving code reviews, you can add a payment method here.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your free trial has ended. If you'd like to continue receiving code reviews, you can add a payment method here.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your free trial has ended. If you'd like to continue receiving code reviews, you can add a payment method here.

- "v*"
workflow_dispatch:
inputs:
tag:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread src/ui/treemap_widget.rs
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;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@kilo-code-bot

kilo-code-bot Bot commented Feb 22, 2026

Copy link
Copy Markdown

Code Review Summary

Status: 3 Issues Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 0
WARNING 3
SUGGESTION 0
Issue Details (click to expand)

WARNING

File Line Issue
.github/workflows/release.yml 9 tag input declared but never used — github.ref_name resolves to branch name on workflow_dispatch, not the tag
src/ui/treemap_widget.rs 92 _is_selected computed but never used in Pass 3 label rendering
src/ui/treemap_widget.rs 17 _border_style stored in TreemapWidget but never read during rendering (not in diff — see Other Observations)
Other Observations (not in diff)

Issues found in unchanged code that cannot receive inline comments:

File Line Issue
src/ui/treemap_widget.rs 17 WARNING: _border_style: BorderStyle is stored in TreemapWidget but never read during rendering. The new BorderStyle::None variant and has_border() method were added in this PR, but the treemap widget ignores the border style entirely. If BorderStyle::None is intended to suppress tile borders, the draw_seam_grid call (Pass 2) and the heavy border draw (Pass 4) should check self._border_style.has_border() before drawing.
Files Reviewed (9 files)
  • .github/workflows/ci.yml — no issues
  • .github/workflows/release.yml — 1 issue
  • Cargo.toml — no issues
  • src/system/process.rs — no issues
  • src/system/platform/macos.rs — no issues
  • src/system/platform/windows.rs — no issues
  • src/ui/treemap_widget.rs — 2 issues
  • src/ui/theme.rs — no issues
  • src/ui/selection_bar.rs — no issues

Fix these issues in Kilo Cloud

@Vivallo04
Vivallo04 merged commit ee52c3d into main Feb 22, 2026
13 of 14 checks passed
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