Skip to content

Lots of fixes, big and small for processviewer (frontend and backend)#3224

Merged
sawka merged 8 commits intomainfrom
sawka/patch-fixes
Apr 16, 2026
Merged

Lots of fixes, big and small for processviewer (frontend and backend)#3224
sawka merged 8 commits intomainfrom
sawka/patch-fixes

Conversation

@sawka
Copy link
Copy Markdown
Member

@sawka sawka commented Apr 16, 2026

The big fix is not spawning a goroutine per process. other fixes are more minor, but improve the quality and clean up some edge cases.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 16, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 8683a9c6-771c-48a9-bdfb-f46193fa3a13

📥 Commits

Reviewing files that changed from the base of the PR and between 1dfa8a5 and 34ae4f6.

📒 Files selected for processing (2)
  • docs/docs/widgets.mdx
  • frontend/app/view/processviewer/processviewer.tsx

Walkthrough

This pull request introduces a Process Viewer feature for Wave. Changes include Taskfile updates to treat package.json as an input for several build tasks, new and updated documentation (widget docs, keybindings, and release notes) describing Process Viewer behavior and a changed global hotkey/quake-mode description, a new default widget entry for the Process Viewer, frontend updates to the Process Viewer component (polling cancel handling, platform-specific column visibility, and row rendering refactor), onboarding modal content edits, and backend refactors in the wshrpc process viewer (cache sleep/idling logic, sequential snapshot collection, memory snapshot handling, Windows UID lookup bypass, panic handling adjustments, and bounds clamping).

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately captures the main change (processviewer fixes) and indicates scope (frontend and backend), matching the primary objective of addressing concurrency and quality improvements.
Description check ✅ Passed The description identifies the key fix (stopping per-process goroutines) and mentions additional minor fixes, which aligns with the changeset that includes backend concurrency improvements and various frontend/documentation updates.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch sawka/patch-fixes

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
Taskfile.yml (1)

150-159: ⚠️ Potential issue | 🟠 Major

Add package.json to quickdev task sources to invalidate cached binaries on version changes.

The main build tasks now include package.json in sources, but build:server:quickdev and build:backend:quickdev:windows still define their own sources blocks without it. This causes quickdev binaries to be reused after package.json changes, leaving them with outdated embedded version information.

Required changes
     build:server:quickdev:
         desc: Build the wavesrv component for quickdev (arm64 macOS only, no generate).
         platforms: [darwin]
         cmds:
             - task: build:server:internal
               vars:
                   ARCHS: arm64
         deps:
             - go:mod:tidy
         sources:
             - "cmd/server/*.go"
             - "pkg/**/*.go"
             - "pkg/**/*.json"
             - "pkg/**/*.sh"
             - "tsunami/**/*.go"
+            - package.json
         generates:
             - dist/bin/wavesrv.*

     build:backend:quickdev:windows:
         desc: Build only the wavesrv component for quickdev (Windows amd64 only, no generate, no wsh).
         platforms: [windows]
         cmds:
             - task: build:server:internal
               vars:
                   ARCHS: amd64
                   GO_ENV_VARS: CC="zig cc -target x86_64-windows-gnu"
         deps:
             - go:mod:tidy
         sources:
             - "cmd/server/*.go"
             - "pkg/**/*.go"
             - "pkg/**/*.json"
             - "pkg/**/*.sh"
             - "tsunami/**/*.go"
+            - package.json
         generates:
             - dist/bin/wavesrv.x64.exe
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Taskfile.yml` around lines 150 - 159, The quickdev tasks reuse cached
binaries because their local sources blocks omit package.json; update the
sources arrays in the build:server:quickdev and build:backend:quickdev:windows
Task definitions to include "package.json" alongside the existing entries (e.g.,
keep go.mod, go.sum, pkg/**/*.go, etc.), so changes to package.json invalidate
the cache and rebuild binaries with correct embedded version info.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/docs/widgets.mdx`:
- Around line 137-141: The new "### Process Viewer" heading breaks the Codeedit
section hierarchy by becoming a parent of the subsequent "#### Exit Edit Mode
Without Saving" subsection; to fix, relocate the "### Process Viewer" block so
it appears after all Codeedit-related subsections, or alternatively move the
"#### Exit Edit Mode Without Saving" block so it comes before "### Process
Viewer", ensuring the "Codeedit" section and its "####" subsections remain
siblings (search for the literal heading text "### Process Viewer" and "####
Exit Edit Mode Without Saving" to make the change).

In `@frontend/app/view/processviewer/processviewer.tsx`:
- Line 477: The "User" column is removed from the Windows grid template but
ProcessRow still always renders the user cell, causing misaligned cells; update
ProcessRow to skip rendering the cell for the column with key "user" when its
corresponding column config has hideOnPlatform including "windows" (or when
current platform === "windows"), i.e., read the columns config (or platform
flag) used to build the header and conditionally omit the user cell rendering in
ProcessRow so row grid items match the header.

---

Outside diff comments:
In `@Taskfile.yml`:
- Around line 150-159: The quickdev tasks reuse cached binaries because their
local sources blocks omit package.json; update the sources arrays in the
build:server:quickdev and build:backend:quickdev:windows Task definitions to
include "package.json" alongside the existing entries (e.g., keep go.mod,
go.sum, pkg/**/*.go, etc.), so changes to package.json invalidate the cache and
rebuild binaries with correct embedded version info.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 7c5c7f12-7b58-497e-82a2-b48822020949

📥 Commits

Reviewing files that changed from the base of the PR and between 4a55b7e and 1dfa8a5.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (8)
  • Taskfile.yml
  • docs/docs/keybindings.mdx
  • docs/docs/releasenotes.mdx
  • docs/docs/widgets.mdx
  • frontend/app/onboarding/onboarding-upgrade-v0145.tsx
  • frontend/app/view/processviewer/processviewer.tsx
  • pkg/wconfig/defaultconfig/widgets.json
  • pkg/wshrpc/wshremote/processviewer.go

Comment thread docs/docs/widgets.mdx
Comment on lines +137 to +141
### Process Viewer <VersionBadge version="v0.14.5" />

The Process Viewer shows a live list of running processes on any connected host. It is similar to `top` or `htop`, displaying PID, command, CPU%, and memory usage. On Linux it also shows process status and thread count.

Columns are sortable by clicking their headers. Right-clicking a row lets you send Unix signals (SIGTERM, SIGKILL, etc.) or copy the PID. You can filter the list by pressing <Kbd k="Cmd:f"/> and typing a search term. Press <Kbd k="Space"/> to pause live updates (useful when inspecting a specific process); press it again to resume.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

This heading breaks the Codeedit section hierarchy.

Adding ### Process Viewer here makes the following #### Exit Edit Mode Without Saving subsection a child of Process Viewer instead of Codeedit. Move this new section below the remaining Codeedit subsection, or move that #### block above it.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/docs/widgets.mdx` around lines 137 - 141, The new "### Process Viewer"
heading breaks the Codeedit section hierarchy by becoming a parent of the
subsequent "#### Exit Edit Mode Without Saving" subsection; to fix, relocate the
"### Process Viewer" block so it appears after all Codeedit-related subsections,
or alternatively move the "#### Exit Edit Mode Without Saving" block so it comes
before "### Process Viewer", ensuring the "Codeedit" section and its "####"
subsections remain siblings (search for the literal heading text "### Process
Viewer" and "#### Exit Edit Mode Without Saving" to make the change).

Comment thread frontend/app/view/processviewer/processviewer.tsx
@cloudflare-workers-and-pages
Copy link
Copy Markdown

Deploying waveterm with  Cloudflare Pages  Cloudflare Pages

Latest commit: 34ae4f6
Status:⚡️  Build in progress...

View logs

@sawka sawka merged commit 158e404 into main Apr 16, 2026
7 of 9 checks passed
@sawka sawka deleted the sawka/patch-fixes branch April 16, 2026 05:36
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