-
Notifications
You must be signed in to change notification settings - Fork 0
Comparing changes
Open a pull request
base repository: larkly/lazystack
base: v0.3.2
head repository: larkly/lazystack
compare: v0.4.0
- 16 commits
- 39 files changed
- 1 contributor
Commits on Mar 25, 2026
-
Merge pull request #16 from larkly/fix/selfupdate-git-describe
fix: handle git-describe suffixes in version comparison
Configuration menu - View commit details
-
Copy full SHA for 2a676e7 - Browse repository at this point
Copy the full SHA 2a676e7View commit details
Commits on Mar 26, 2026
-
feat: complete Phase 3 backlog — CRUD forms, network browser, keypair…
… management Implement all deferred Phase 3 backlog items: Create Volume form (ctrl+n from volume list) - Name, size, type picker from volume types API, AZ, description - Validation, inline pickers with type-to-filter Volume Attach server picker (ctrl+a from volume detail) - Modal listing ACTIVE/SHUTOFF servers with type-to-filter - Accepts HTTP 200/201/202 for cross-cloud compatibility Create Security Group Rule (ctrl+n from sec groups) - Modal with cycle pickers for direction/ethertype/protocol - Port range and remote IP prefix inputs with validation Create/Import Key Pair (ctrl+n from keypair list) - RSA 2048, RSA 4096, ED25519 type picker - Keys generated locally using Go crypto, imported via Nova - File browser for ~/.ssh/*.pub files - Private key view with save-to-file (s key, default ~/.ssh/) Keypair detail view (enter from keypair list) - Shows name, type, and full public key with scroll Network/Subnet browser (new Networks tab) - Expandable network list with inline subnet details - CIDR, gateway, DHCP status, IP version Additional improvements: - Sticky status bar hints that survive background auto-refresh - Auto-refresh for keypair list (was missing tick pattern) - Keypair delete from detail view
Configuration menu - View commit details
-
Copy full SHA for fbea4ff - Browse repository at this point
Copy the full SHA fbea4ffView commit details -
Merge pull request #17 from larkly/feat/backlog-crud-and-networks
feat: complete Phase 3 backlog — CRUD forms, server picker, network browser
Configuration menu - View commit details
-
Copy full SHA for b71ff17 - Browse repository at this point
Copy the full SHA b71ff17View commit details -
feat: SG group CRUD, network/subnet CRUD, port listing, LB fix, PRD u…
…pdate Security Group CRUD: - Create security group (ctrl+n on group level): name + description modal - Delete security group (ctrl+d on group level): confirmation modal - Context-sensitive keybindings: group level = group CRUD, rules = rule CRUD - Backend: CreateSecurityGroup(), DeleteSecurityGroup() Network/Subnet CRUD: - Create network (ctrl+n on network level): name + admin state modal - Delete network (ctrl+d on network level): confirmation modal - Create subnet (ctrl+n in subnet navigation): CIDR, IP version, gateway, DHCP - Delete subnet (ctrl+d in subnet navigation): confirmation modal - Re-added subnet navigation with cursor highlighting - Backend: CreateNetwork(), DeleteNetwork(), CreateSubnet(), DeleteSubnet() Port Listing: - Read-only port display in expanded network view - Shows port name, MAC address, IPs, device owner - Backend: ListPorts() with network ID filter LB name fix: - Name column now uses remaining terminal width instead of fixed 28 chars - Fixed truncate function to properly handle ellipsis PRD update: - Updated backlog as complete, added new features to Phase 3 docs - Updated keybindings tables and project structure
Configuration menu - View commit details
-
Copy full SHA for 92e6e23 - Browse repository at this point
Copy the full SHA 92e6e23View commit details -
fix: track expanded groups by ID instead of index
After deleting a security group, the next group at the same index would inherit the expanded state because expansions were tracked by array index. Changed to track by group ID so expansions survive list reordering. Also clamps cursor when the list shrinks.
Configuration menu - View commit details
-
Copy full SHA for 6e075cd - Browse repository at this point
Copy the full SHA 6e075cdView commit details -
fix: prevent vim j/k keys from triggering navigation in text inputs
All form/modal text inputs were intercepting j/k as vim-style up/down navigation because Keys.Up/Down include "k"/"j" bindings. When a text input field has focus, only intercept Tab/ShiftTab/Enter/Esc/ctrl+s for navigation — route all other keys to the text input. Fixed in all 7 form/modal components: - servercreate, volumecreate, keypaircreate (full-view forms) - sgcreate, sgrulecreate, networkcreate, subnetcreate (modal overlays)
Configuration menu - View commit details
-
Copy full SHA for 5def2d1 - Browse repository at this point
Copy the full SHA 5def2d1View commit details -
fix: subnet navigation — enter subnets from any expanded network
Down arrow only entered subnet navigation from the last network because the condition checked cursor < len-1 first (always true except at the end). Reversed priority: check if current network is expanded with subnets first, then fall through to next network. Also switched expanded map from int index to network ID (matching the secgroupview fix) so expansions survive list reordering, and added cursor clamping on data refresh.
Configuration menu - View commit details
-
Copy full SHA for 3a3eb6b - Browse repository at this point
Copy the full SHA 3a3eb6bView commit details -
fix: allow subnet creation from expanded network without subnets
When a network is expanded but has no subnets, there was no way to enter subnet navigation to trigger ctrl+n for subnet create. Now ctrl+n creates a subnet when the network is expanded (regardless of whether you're in subnet navigation), and creates a network only when collapsed. Status bar hints update to reflect context.
Configuration menu - View commit details
-
Copy full SHA for 156a2f1 - Browse repository at this point
Copy the full SHA 156a2f1View commit details -
Merge pull request #18 from larkly/feat/sg-network-crud
feat: SG group CRUD, network/subnet CRUD, port listing, LB fix
Configuration menu - View commit details
-
Copy full SHA for 618a8f7 - Browse repository at this point
Copy the full SHA 618a8f7View commit details -
feat: add server stop/start and lock/unlock actions
Stop/Start (o key): - ACTIVE server → stop (SHUTOFF), SHUTOFF server → start (ACTIVE) - Toggle pattern matching pause/unpause and suspend/resume - Bulk support via space-select Lock/Unlock (ctrl+l): - Lock prevents modifications, unlock removes protection - Auto-detects lock status from server object - Locked servers already show 🔒 icon in server list - Bulk support via space-select Both actions work from server list and detail views with confirmation modals. Help overlay updated.
Configuration menu - View commit details
-
Copy full SHA for 37c558c - Browse repository at this point
Copy the full SHA 37c558cView commit details -
feat: add Routers tab with full CRUD and interface management
Router list view: - Columns: Name (flex), Status, External Gateway, Routes count - Auto-refresh, sorting with s/S - Enter opens detail, ctrl+n creates, ctrl+d deletes Router detail view: - Properties: Name, ID, Status, Admin State, External Gateway - Interfaces section with navigable list (subnet + IP + port) - Static routes section - ctrl+a opens subnet picker to add interface - ctrl+t removes selected interface (confirmation) - ctrl+d deletes router (confirmation) Router create modal: - Name (text), External Network (inline picker from external networks), Admin State (cycle Up/Down) - Text input guard for vim j/k keys Subnet picker modal: - Lists all subnets with name + CIDR - On select, adds as router interface Backend (network/routers.go): - ListRouters, GetRouter, CreateRouter, DeleteRouter - AddRouterInterface, RemoveRouterInterface, ListRouterInterfacesConfiguration menu - View commit details
-
Copy full SHA for faabfd1 - Browse repository at this point
Copy the full SHA faabfd1View commit details -
docs: add server action gaps roadmap to PRD
Document missing Nova server actions prioritized by usefulness: - High-value: rename, rebuild, create snapshot - Medium: rescue/unrescue, get password - Admin-only: migrate, evacuate, force delete, reset state, metadata Cross-referenced from Phase 5 and Phase 6 sections.
Configuration menu - View commit details
-
Copy full SHA for 4a37c0b - Browse repository at this point
Copy the full SHA 4a37c0bView commit details -
fix: stop mutating shared compute client microversion
ImportKeyPair was setting client.Microversion to "2.2" then resetting to "" after the call. This wiped the "2.100" microversion set at connection time, causing subsequent server list requests to fail with 503 because the cloud requires the microversion header. Since we removed the Type field from CreateOpts (keys are generated locally now), the microversion override is no longer needed.
Configuration menu - View commit details
-
Copy full SHA for 6aea6cc - Browse repository at this point
Copy the full SHA 6aea6ccView commit details -
Configuration menu - View commit details
-
Copy full SHA for f408ed8 - Browse repository at this point
Copy the full SHA f408ed8View commit details -
Merge pull request #20 from larkly/feat/homebrew-tap-dispatch
Notify homebrew-tap on release
Configuration menu - View commit details
-
Copy full SHA for dcfc473 - Browse repository at this point
Copy the full SHA dcfc473View commit details -
Merge pull request #19 from larkly/feat/routers-stop-lock
feat: routers tab, server stop/start, lock/unlock, PRD gaps
Configuration menu - View commit details
-
Copy full SHA for 6ff0d9a - Browse repository at this point
Copy the full SHA 6ff0d9aView commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff v0.3.2...v0.4.0