Shortcuts you invent, rules you write, gestures you own - all still just data

Claude-Session: https://claude.ai/code/session_01Ms2FbjQy31TVf3CEvQhGM8
This commit is contained in:
Gabriel Brown
2026-08-25 01:51:59 -04:00
parent f9e5d3f470
commit 06c53d6c21
48 changed files with 4749 additions and 140 deletions
@@ -50,6 +50,19 @@ SettingsPage {
readonly property var heldKeys: SshKeys.keys.filter(key => key.loaded === true)
// Known hosts, folded at the house cap. A machine that has been used for a
// year has dozens of these, and an unbounded list turns the card below the
// keys into most of the page -- the same reason the Wi-Fi list folds.
property bool showAllHosts: false
readonly property int hostCap: 6
readonly property var shownHosts: {
const list = SshKeys.hosts;
if (root.showAllHosts || list.length <= root.hostCap)
return list;
return list.slice(0, root.hostCap);
}
readonly property int hiddenHostCount: SshKeys.hosts.length - root.shownHosts.length
function resetForm(): void {
root.showingGenerator = false;
root.newName = "";
@@ -395,7 +408,7 @@ SettingsPage {
: "Machines this one has connected to. Forget an entry when a server legitimately changed — ssh-keygen keeps a .old copy."
Repeater {
model: SshKeys.hosts
model: root.shownHosts
delegate: SettingRow {
id: hostRow
@@ -445,6 +458,19 @@ SettingsPage {
}
}
SettingRow {
visible: root.hiddenHostCount > 0
|| (root.showAllHosts && SshKeys.hosts.length > root.hostCap)
label: root.showAllHosts
? "Show fewer hosts"
: root.hiddenHostCount + (root.hiddenHostCount === 1 ? " more host" : " more hosts")
detail: root.showAllHosts
? ""
: "Folded to keep the list short — every one of them is still in known_hosts"
activatable: true
onActivated: root.showAllHosts = !root.showAllHosts
}
ActionRow {
label: "Check again"
detail: "Re-reads ~/.ssh and asks the agent what it is holding"