Skip to content

feat: multi-server, list view, tags, activity log + UX polish (v2.2) - #2

Merged
Kofysh merged 1 commit into
masterfrom
claude/gifted-einstein-h0enx4
Jun 14, 2026
Merged

feat: multi-server, list view, tags, activity log + UX polish (v2.2)#2
Kofysh merged 1 commit into
masterfrom
claude/gifted-einstein-h0enx4

Conversation

@Kofysh

@Kofysh Kofysh commented Jun 14, 2026

Copy link
Copy Markdown
Owner

Overview

Implements the four open roadmap items and a round of UX polish, bumping the app to v2.2.

⚠️ Needs a Windows build to verify. These changes were authored in a Linux environment where WPF cannot be compiled. They were reviewed by inspection and all XAML was validated as well-formed XML, but the real verification is the Windows CI build triggered by this PR.

Roadmap features

  • 🌐 Multi-server — connect to several Proxmox clusters at once; VMs/LXC are aggregated across them. The sidebar now lists servers (live machine count + per-server disconnect), and Add server reuses the login window as a dialog. Each MachineData carries its ServerName; power/console/SPICE actions are routed to the matching cluster. State-change tracking and notifications are keyed per server:vmid to avoid collisions across clusters.
  • 📋 List view — a DataGrid alternative to the card grid, toggled from the top bar (status, type, VMID, name, status, CPU, RAM, uptime, server, node, tags + inline actions).
  • 🏷️ Proxmox tags — shown as chips on each card; click a tag to filter.
  • 🕑 Activity log — collapsible side panel recording power actions, state changes, connections and errors (bounded to 200 entries, newest first).

Polish

  • Sorting by name / VMID / CPU / RAM / status / uptime
  • Active-filter chips (server / node / tag) and an empty-state placeholder
  • Keyboard shortcuts: F5 refresh, Ctrl+F focus search, Esc clear search
  • StatusMessage surfaced via the snackbar
  • Theme and refresh interval now persisted in config and applied at startup
  • Bug fix: the card Start button visibility was inverted — BooleanToVisibilityConverter ignores ConverterParameter=inverse, so it now uses InverseBoolToVisibilityConverter

Files

  • New: Services/ActivityLogService.cs
  • New converters: BoolToGridLengthConverter, CollectionToVisibilityConverter
  • Rewritten: ViewModels/MainViewModel.cs, Views/MainWindow.xaml(.cs)
  • Touched: ApiClient (Host), MachineData (ServerName), LoginWindow (add-connection mode), App.xaml.cs (apply saved theme), MachineCard, README, version → 2.2.0

Testing

  • ✅ All 6 XAML files validated as well-formed XML
  • ✅ All command/binding references cross-checked against the view models
  • ⬜ Windows compile + runtime smoke test (this PR's CI / manual)

https://claude.ai/code/session_01FhKJ3kR6pgaR4N3sWSfbFX


Generated by Claude Code

Roadmap features
- Multi-server: connect several Proxmox clusters at once; aggregate VMs/LXC
  across them. Sidebar lists servers with live machine counts and a per-server
  disconnect; "Add server" reuses the login window as a dialog. Each machine
  carries its ServerName; power/console actions route to the right cluster.
- List view: DataGrid alternative to the card grid, toggled from the top bar.
- Proxmox tags: shown as chips on each card; click a tag to filter.
- Activity log: collapsible side panel recording power actions, state changes,
  connections and errors (bounded, newest first).

Polish
- Sorting by name / VMID / CPU / RAM / status / uptime.
- Keyboard shortcuts: F5 refresh, Ctrl+F focus search, Esc clear search.
- Empty-state placeholder and active-filter chips (server / node / tag).
- StatusMessage surfaced via the snackbar.
- Theme and refresh interval now persisted in config and applied at startup.
- Fix: card Start button visibility was inverted (BooleanToVisibilityConverter
  ignores ConverterParameter) — now uses InverseBoolToVisibilityConverter.

https://claude.ai/code/session_01FhKJ3kR6pgaR4N3sWSfbFX
@Kofysh
Kofysh merged commit d838600 into master Jun 14, 2026
1 check failed
@Kofysh
Kofysh deleted the claude/gifted-einstein-h0enx4 branch June 14, 2026 06:43
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.

2 participants