Show every answer the portal remembers, and give SSH keys their missing half

Claude-Session: https://claude.ai/code/session_01Ms2FbjQy31TVf3CEvQhGM8
This commit is contained in:
Gabriel Brown
2026-08-24 19:26:56 -04:00
parent 4ec8bd94d9
commit 6f0ce639d9
25 changed files with 3622 additions and 408 deletions
+18
View File
@@ -47,6 +47,14 @@ fail() {
# "online-accounts" is listed because Panama has an Online Accounts page -- but
# adding an account still has to go through GOA's own dialog, so that one
# exception is named explicitly below.
# "privacy" joined the list when Privacy & Security stopped being a page that
# read the portal and pointed at GNOME for everything else. It now clears the
# recent-files list and the thumbnail cache itself, empties the trash through
# Storage's own cleanable, and revokes portal grants for six tables rather than
# three devices. The card that used to carry the door -- headed "Owned by
# Fedora", explaining that GNOME's file-history switches would not take effect
# in a Hyprland session anyway -- is gone, because the switches it was
# apologizing for are now buttons that work.
declare -A OWNED=(
[network]=connectivity
[wifi]=connectivity
@@ -55,6 +63,7 @@ declare -A OWNED=(
[sharing]=sharing
[users]=users
[system\ users]=users
[privacy]=privacy
)
# Handoffs that are correct despite naming an owned panel, with the reason.
@@ -109,6 +118,15 @@ done < <(grep -rno --include='*.qml' -E 'openGnomePanel\("[^"]*"(, *"[^"]*")?\)'
(( checked > 0 )) || fail 'no handoffs were examined, so this proves nothing'
# The inverse, for the page that just stopped handing anything over. The loop
# above can only fail on a door that exists; said this way it also fails if the
# door comes back under a panel name nobody thought to list.
if grep -q 'openGnomePanel' "$settings_dir/PrivacyPage.qml"; then
printf 'gnome handoff contract: PrivacyPage still opens a GNOME panel:\n' >&2
grep -n 'openGnomePanel' "$settings_dir/PrivacyPage.qml" >&2
violations=$((violations + 1))
fi
if (( violations > 0 )); then
printf 'Each of these sends someone to GNOME for a page this app already has.\n' >&2
exit 1