spinuptui 0.22.0 → 0.22.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -1
- package/package.json +1 -1
- package/src/ui/Details.tsx +1 -1
- package/src/ui/components.tsx +1 -0
- package/src/ui/views/Browser.tsx +10 -5
package/CHANGELOG.md
CHANGED
|
@@ -11,6 +11,16 @@ versions; such changes are called out here.
|
|
|
11
11
|
|
|
12
12
|
## [Unreleased]
|
|
13
13
|
|
|
14
|
+
## [0.22.1] - 2026-07-13
|
|
15
|
+
|
|
16
|
+
### Fixed
|
|
17
|
+
- **`K` (grant/revoke SSH key) is discoverable again.** The v0.22.0 Control-strip
|
|
18
|
+
rebuild dropped it from both Site Control and Server Control's action lists —
|
|
19
|
+
the keybinding itself kept working, but you had to already know it existed.
|
|
20
|
+
It's back in Site Control's Remote group and Server Control's Access group,
|
|
21
|
+
and now also works from the Servers pane (falling back to the server's first
|
|
22
|
+
key-eligible site), matching how `S`/`h` already work from either pane.
|
|
23
|
+
|
|
14
24
|
## [0.22.0] - 2026-07-13
|
|
15
25
|
|
|
16
26
|
### Added
|
|
@@ -1166,7 +1176,8 @@ Initial tagged release.
|
|
|
1166
1176
|
### Notes
|
|
1167
1177
|
- Read-only release: works with a SpinupWP **Read Only** API token.
|
|
1168
1178
|
|
|
1169
|
-
[Unreleased]: https://github.com/mwender/spinupwp-tui/compare/v0.22.
|
|
1179
|
+
[Unreleased]: https://github.com/mwender/spinupwp-tui/compare/v0.22.1...HEAD
|
|
1180
|
+
[0.22.1]: https://github.com/mwender/spinupwp-tui/compare/v0.22.0...v0.22.1
|
|
1170
1181
|
[0.22.0]: https://github.com/mwender/spinupwp-tui/compare/v0.21.2...v0.22.0
|
|
1171
1182
|
[0.21.2]: https://github.com/mwender/spinupwp-tui/compare/v0.21.1...v0.21.2
|
|
1172
1183
|
[0.21.1]: https://github.com/mwender/spinupwp-tui/compare/v0.21.0...v0.21.1
|
package/package.json
CHANGED
package/src/ui/Details.tsx
CHANGED
|
@@ -106,7 +106,7 @@ function serverControlGroups(
|
|
|
106
106
|
// Labels stay terse and avoid repeating their group's title — see siteGroups().
|
|
107
107
|
export const SERVER_CONTROL: ActionGroup[] = [
|
|
108
108
|
{ title: "Clone", items: [["C", "Clone →"]] },
|
|
109
|
-
{ title: "Access", items: [["S", "Sudo"]] },
|
|
109
|
+
{ title: "Access", items: [["S", "Sudo"], ["K", "Grant SSH key"]] },
|
|
110
110
|
{
|
|
111
111
|
title: "Manage",
|
|
112
112
|
items: [
|
package/src/ui/components.tsx
CHANGED
|
@@ -436,6 +436,7 @@ export function ControlPanel({ heading, groups, layout = "list" }: { heading: st
|
|
|
436
436
|
export function siteGroups(isWordpress: boolean, localSync: boolean, isVanity: boolean): ActionGroup[] {
|
|
437
437
|
const remote: [string, string][] = [
|
|
438
438
|
["s", "SSH"],
|
|
439
|
+
["K", "Grant SSH key"],
|
|
439
440
|
["n", "DNS"],
|
|
440
441
|
]
|
|
441
442
|
if (isWordpress) {
|
package/src/ui/views/Browser.tsx
CHANGED
|
@@ -128,12 +128,17 @@ export function Browser({ rows }: { rows: number }) {
|
|
|
128
128
|
}
|
|
129
129
|
return
|
|
130
130
|
}
|
|
131
|
-
case "K":
|
|
132
|
-
// Grant Spinup's machine key to
|
|
133
|
-
//
|
|
134
|
-
//
|
|
135
|
-
|
|
131
|
+
case "K": {
|
|
132
|
+
// Grant Spinup's machine key to a site over SSH (privileged write via the
|
|
133
|
+
// server's sudo user — the API can't do this). Capital K (like L/V/N)
|
|
134
|
+
// since lowercase k is the vim "move up" binding. Site-anchored (the
|
|
135
|
+
// overlay itself picks the scope: just this site, or every site on the
|
|
136
|
+
// server) but works from either pane like S/h — the Servers pane falls
|
|
137
|
+
// back to the server's first key-eligible site as the anchor.
|
|
138
|
+
const anchor = focus === "sites" ? sites[siteIndex] : server ? sitesForServer(server.id).find((s) => s.site_user) : undefined
|
|
139
|
+
if (anchor) setGrantKeySite(anchor)
|
|
136
140
|
return
|
|
141
|
+
}
|
|
137
142
|
case "L":
|
|
138
143
|
// Link / view the selected site's local working copy (Phase 1).
|
|
139
144
|
if (focus === "sites" && sites[siteIndex]) setLocalLinkSite(sites[siteIndex])
|