Bug Description
The t key (edit tags) does not work on SSH entries that have never been edited via the e key first. If you:
- Open a server entry from
~/.ssh/config that has never been edited via e
- Press
t to add tags directly
- Enter tags and save
- The UI says "Tags updated" but tags are not persisted
Additionally, it is impossible to remove the last tag from an entry — clearing all tags and saving does nothing.
Root Cause
Two bugs in the code:
-
handlers.go:411: The showEditTagsForm save callback silently discards errors with _ = t.serverService.UpdateServer(...). If the SSH config write fails, tags are never saved but the UI says "Tags updated."
-
server_list.go:85: After refreshing the server list, UpdateServers resets selection to index 0, making it appear tags were not saved on the edited server.
Note: The nil-guard issue in metadata_manager.go (preventing tag clearing) was already fixed — the remaining bugs are in handlers.go and server_list.go.
Fix Available
PR #115 contains the complete fix: #115
The changes are minimal (+25/-3 lines across two files):
handlers.go: Replace _ = t.serverService.UpdateServer(...) with proper error handling
server_list.go: Track selected server alias and restore selection after refresh
All existing tests pass with these changes applied.
Bug Description
The
tkey (edit tags) does not work on SSH entries that have never been edited via theekey first. If you:~/.ssh/configthat has never been edited viaetto add tags directlyAdditionally, it is impossible to remove the last tag from an entry — clearing all tags and saving does nothing.
Root Cause
Two bugs in the code:
handlers.go:411: TheshowEditTagsFormsave callback silently discards errors with_ = t.serverService.UpdateServer(...). If the SSH config write fails, tags are never saved but the UI says "Tags updated."server_list.go:85: After refreshing the server list,UpdateServersresets selection to index 0, making it appear tags were not saved on the edited server.Note: The nil-guard issue in
metadata_manager.go(preventing tag clearing) was already fixed — the remaining bugs are inhandlers.goandserver_list.go.Fix Available
PR #115 contains the complete fix: #115
The changes are minimal (+25/-3 lines across two files):
handlers.go: Replace_ = t.serverService.UpdateServer(...)with proper error handlingserver_list.go: Track selected server alias and restore selection after refreshAll existing tests pass with these changes applied.