Commit Graph

71 Commits

Author SHA1 Message Date
fff386f9d5 fixing windows build problems. i hate windows !
Agent:
Added GET /healthz that returns 200 immediately.
File: main.rs (router now includes /healthz).
CI workflow:
Start agent from target/release on both OSes.
Set SOCKTOP_ENABLE_SSL=0 explicitly.
Ubuntu: wait on curl http://127.0.0.1:3000/healthz (60s), log tail and ss/netstat on failure.
Windows: wait on Invoke-WebRequest to /healthz (60s), capture stdout/stderr, print netstat on failure.
File: .github/workflows/ci.yml.
2025-08-20 11:26:09 -07:00
93f4e1feea fix windows build after ssl feature and optimize build 2025-08-20 10:24:24 -07:00
97255b42fb fix windows build 2025-08-20 00:14:21 -07:00
554a2c349f protobuff Process list
BREAKING: Process list over WS is now Protocol Buffers; client required.
Agent: returns all processes (no server-side top-k); large payloads gzip-compressed.
Client: decodes protobuf (gz/raw), moves sorting/pagination to TUI.
Build: add prost/prost-build with vendored protoc; enable thin LTO, panic=abort, strip symbols.
Cleanup: cfg-gate Linux-only code; fix Clippy across platforms; tests updated (ws probe TLS CA).
2025-08-19 23:24:36 -07:00
10501168c5 clippy fixes. 2025-08-19 15:52:30 -07:00
d346c61c28
Merge pull request #1 from jasonwitty/feature/wss-selfsigned
SSL Support
2025-08-19 15:33:50 -07:00
7652095109 cargo fmt 2025-08-19 15:33:11 -07:00
6b58ac67f6
Merge branch 'master' into feature/wss-selfsigned 2025-08-19 15:31:10 -07:00
3ad1d52fe2 fix windows build.
Some checks failed
CI / build (ubuntu-latest) (push) Has been cancelled
CI / build (windows-latest) (push) Has been cancelled
Gate Linux-specific imports and fields to avoid Windows dead-code/unused warnings.
Ensure Linux-only proc CPU tracker is not referenced on non-Linux builds.
2025-08-16 17:42:18 -07:00
2e8cc24e81 remove dead code and increment version 2025-08-16 17:31:32 -07:00
36e73fd9ed cargo fmt 2025-08-16 01:25:03 -07:00
3d14e4a370 SSL Support
Add WSS/TLS (self‑signed) with client cert pinning; auto ws→wss on --tls-ca/-t; add -p/-t flags; harden TLS test; fix clippy; update README.

feat: WSS/TLS support (self‑signed + pinning), auto ws→wss when CA provided, new -p/-t flags; tests + clippy cleanup; docs updated.

Add TLS: self‑signed certs on agent, client pin via --tls-ca/-t (auto‑upgrade to wss), CLI/tests/README updates, clippy fixes.

12 files changed
Cargo.toml
README.md
Cargo.tomlsocktop_agent
main.rssocktop_agent/src
tls.rssocktop_agent/src
cli_args.rssocktop_agent/tests
Add Context...
README.md
2025-08-16 01:23:20 -07:00
c6b8c9c905 patch for macbook compatibility issues. 2025-08-15 19:21:34 -07:00
f980b6ace9
Update README.md 2025-08-13 20:17:36 -07:00
6a27280f8d Merge branch 'master' of https://github.com/jasonwitty/socktop
Some checks failed
CI / build (ubuntu-latest) (push) Has been cancelled
CI / build (windows-latest) (push) Has been cancelled
2025-08-12 17:12:38 -07:00
38b0cdcf0e update screenshot 2025-08-12 17:12:27 -07:00
268627ed63
Update README.md 2025-08-12 17:10:12 -07:00
55a663cf7a
Update README.md 2025-08-12 17:09:31 -07:00
8b76ccb742 Merge branch 'master' of https://github.com/jasonwitty/socktop 2025-08-12 17:07:36 -07:00
d0f6cb0e70 fix screenshot 2025-08-12 17:07:25 -07:00
56ebe6bbab
Rename tmux_4_rpis_v2jpg to tmux_4_rpis_v2.jpg 2025-08-12 17:05:40 -07:00
dc90de7ff1 update readme and add new screenshots 2025-08-12 17:02:01 -07:00
319f47eb73 Update README.md 2025-08-12 16:48:35 -07:00
fd2889ccca Update cargo versions in prep for publish. 2025-08-12 16:12:08 -07:00
0859f50897 multiple feature and performance improvements (see description)
Here are concise release notes you can paste into your GitHub release.

Release notes — 2025-08-12

Highlights

Agent back to near-zero CPU when idle (request-driven, no background samplers).
Accurate per-process CPU% via /proc deltas; only top-level processes (threads hidden).
TUI: processes pane gets scrollbar, click-to-sort (CPU% or Mem) with indicator, stable total count.
Network panes made taller; disks slightly reduced.
README revamped: rustup prereqs, crates.io install, update/systemd instructions.
Clippy cleanups across agent and client.
Agent

Reverted precompressed caches and background samplers; WebSocket path is request-driven again.
Ensured on-demand gzip for larger replies; no per-request overhead when small.
Processes: switched to refresh_processes_specifics with ProcessRefreshKind::everything().without_tasks() to exclude threads.
Per-process CPU% now computed from /proc jiffies deltas using a small ProcCpuTracker (fixes “always 0%”/scaling issues).
Optional metrics and light caching:
CPU temp and GPU metrics gated by env (SOCKTOP_AGENT_TEMP=0, SOCKTOP_AGENT_GPU=0).
Tiny TTL caches via once_cell to avoid rescanning sensors every tick.
Dependencies: added once_cell = "1.19".
No API changes to WS endpoints.
Client (TUI)

Processes pane:
Scrollbar (mouse wheel, drag; keyboard arrows/PageUp/PageDown/Home/End).
Click header to sort by CPU% or Mem; dot indicator on active column.
Preserves process_count across fast metrics updates to avoid flicker.
UI/theme:
Shared scrollbar colors moved to ui/theme.rs; both CPU and Processes reuse them.
Cached pane rect to fix input handling; removed unused vars.
Layout: network download/upload get more vertical space; disks shrink slightly.
Clippy fixes: derive Default for ProcSortBy; style/import cleanups.
Docs

README: added rustup install steps (with proper shell reload), install via cargo install socktop and cargo install socktop_agent, and a clear Updating section (systemd service steps included).
Features list updated; roadmap marks independent cadences as done.
Upgrade notes

Agent: cargo install socktop_agent --force, then restart your systemd service; if unit changed, systemctl daemon-reload.
TUI: cargo install socktop --force.
Optional envs to trim overhead: SOCKTOP_AGENT_GPU=0, SOCKTOP_AGENT_TEMP=0.
No config or API breaking changes.
2025-08-12 15:52:46 -07:00
5c002f0b2b Update README.md 2025-08-12 00:01:21 -07:00
5a824c2098 only run apt command if build box is linux 2025-08-11 23:49:45 -07:00
ffb381e40e install deps libdrm-dev libdrm-amdgpu1 on build box 2025-08-11 23:46:08 -07:00
0a70d7fd39 rustfmt 2025-08-11 23:41:23 -07:00
8d81ee1f7e clippy clean ups 2025-08-11 23:37:50 -07:00
1e248306a6 clippy clean up multiple files 2025-08-11 23:27:18 -07:00
7cd6a6e0a1 gpu clippy cleanup 2025-08-11 23:08:35 -07:00
8f58feffbe clippy clean up app.rs 2025-08-11 22:59:36 -07:00
5790ef753b clippy cleanup 2025-08-11 22:56:35 -07:00
9a49fd6b24 clippy cleanup main 2025-08-11 22:50:15 -07:00
b35e431200 clippy clean up 2025-08-11 22:46:58 -07:00
4b52382326 another clippy cleanup 2025-08-11 22:45:24 -07:00
11506699e3 clippy clean up 2025-08-11 22:44:43 -07:00
4c6c707dd0 struct cleanup 2025-08-11 22:41:12 -07:00
d69a4104fc performance improvements and formatting cleanup 2025-08-11 22:37:46 -07:00
c3f81eef25 clippy code clean up
clippy code clean up
2025-08-11 20:47:21 -07:00
05276f9eea fix clippy issues causing workflow failure. 2025-08-11 14:39:19 -07:00
0105b29bfc fix additional clippy warnings. 2025-08-11 14:34:45 -07:00
0cbba6b290 fix clippy format warnings 2025-08-11 14:30:41 -07:00
250f7bf93a remove unused vendor field. 2025-08-11 14:25:58 -07:00
4efeb3b60f update screenshots 2025-08-11 14:17:04 -07:00
d20061614c update default screenshot 2025-08-11 13:47:23 -07:00
289c9f7ebe add cargo install documentation and enable release artifacts in actions
add cargo install documentation and enable release artifacts in actions
2025-08-11 13:38:26 -07:00
bdfa74be54 add license for socktop_agent 2025-08-11 12:10:40 -07:00
6efdc35b19 add license so we can publish to cargo 2025-08-11 12:09:14 -07:00