Add Remote session foundations and feasibility checks

Add opt-in Tentacle protocol 1.1, explicit remote grants, lifecycle IPC and expiring core leases in both SDKs. Revoke access before update preparation, including failed updates.

Add transient secret entries, shared Braille cell export and isolated Xorg recovery experiments with focused tests and documented limitations. Production consent, desktop services and live interoperability remain pending.
This commit is contained in:
ak47 committed 2026-11-03 22:33:26 -05:00
1 parent a47253d697
commit 573d15d7b4
45 files changed
+3634 -80

No files matched your search

+50
View File
@@ -165,6 +165,56 @@ copied:
if clicks != 1 || text != "" {
t.Fatalf("UI keys reached GTK: clicks=%d text=%q", clicks, text)
}
// The same real X11 capture must protect a secret entry. The existing
// clipboard remains available for explicit paste, but copy/cut cannot replace it.
result, err = ui.Open(ctx, interaction.Form{Title: "Secret fixture", Elements: []interaction.Element{
{ID: "key", Label: "Channel key", Kind: interaction.Entry, Secret: true},
{ID: "submit", Label: "Connect", Kind: interaction.Button},
}})
if err != nil {
t.Fatal(err)
}
for {
select {
case message := <-output.speech:
if message.Text == "Secret fixture. Channel key, password edit, 0 characters" {
goto secretOpened
}
case <-ctx.Done():
t.Fatal("secret form did not open")
}
}
secretOpened:
key("s", "e", "c", "r", "e", "t", "Home", "Right", "Delete", "BackSpace", "ctrl+a", "ctrl+c", "ctrl+x", "ctrl+v", "Tab", "shift+Tab", "Return")
select {
case submitted := <-result:
if submitted.Err != nil || submitted.Cancelled || submitted.Values["key"].Text != "aB!" {
t.Fatal("secret submission failed")
}
case <-ctx.Done():
t.Fatal("secret form did not submit")
}
if clipboard, err := read_internal_clipboard(ctx); err != nil || clipboard != "aB!" {
t.Fatal("secret copy/cut changed the clipboard")
}
allowedSecretSpeech := map[string]bool{
"Inserted 1 character": true, "Inserted 3 characters": true,
"Hidden character": true, "Deleted 1 character": true,
"Selected all": true, "Copy and cut are unavailable for password fields": true,
"Connect, button": true, "Channel key, password edit, 3 characters": true,
}
for len(output.speech) > 0 {
if !allowedSecretSpeech[(<-output.speech).Text] {
t.Fatal("unexpected secret field speech")
}
}
if clicks, text := read(); clicks != 1 || text != "" {
t.Fatal("secret form keys reached the background application")
}
current, _ = exec.CommandContext(ctx, "xdotool", "getwindowfocus").Output()
if string(current) != string(original) {
t.Fatal("secret form changed application focus")
}
key("Tab", "q")
for {
_, text = read()