Terminal auf iPhone/iPad: Vollbild-Fenster für Claude-Sessions und Shell (Gegenstück iris/Iris) #77
Labels
No labels
herkunft/alpha-feedback
status
blockiert
status
zu-testen
typ
bug
typ
docs
typ
enhancement
typ
feature
typ
idea
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
iris/2ndbrain-ios#77
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Gegenstück zu iris/Iris (Terminal im Mac-Server, Entscheidungen und Etappen dort). Hier: Vollbild-Fenster für das Terminal (WebView auf die vom Server ausgelieferte Seite, Tastenleiste), Öffnen per Link aus der Claude-Sessions-Seite (Navigation abfangen, keine Skript-Brücke), Einstieg „Terminal“ für die freie Shell im „…“-Menü (nur sichtbar, wenn das Gerät freigegeben ist). Der Schalter Gerät/Mac (
openLocallyOnTap) bestimmt, ob „Fortsetzen“ in der App oder auf dem Mac läuft.PR #78 gemergt: feat(terminal): Vollbild-Terminal, Link aus dem Plugin-Panel, Theme-Brücke im Panel (#77)
http://docker:3000/iris/2ndbrain-ios/pulls/78
Commits:
Stand: Terminal im Vollbild auf dem iPhone/iPad, Link aus dem Plugin-Panel (E2, iOS)
Geändert:
TerminalSupport.swift:TerminalClient(GET /terminal/access,POST /terminal/open; Fehler 403/429 mit lesbarem Text),TerminalScreen(Vollbild mit der vom Server ausgelieferten Terminal-Seite; Sitzung, Token und Geräte-ID im Fragment der Adresse), eigeneWKWebViewohne die Leiste über der Tastatur (inputAccessoryView = nil, die Seite bringt ihre Tastenleiste mit), Zertifikat gegen den beim Koppeln gemerkten Fingerabdruck (PinnedRemoteHTMLView.respondToServerTrustChallenge), „Trennen“ (iris-terminal://detach) schließt das Fenster, die Sitzung läuft auf dem Mac weiter.PinnedRemoteHTMLView(gemeinsame WebView für Anhänge und das Plugin-Panel): bekommt die Theme-Brücke (irisFollowTheme()): Lücke aus der WebView-Umstellung geschlossen, das Plugin-Panel nutzt diese Klasse und nichtPluginCanvasWebView; neue optionale ParameterhostCapabilities(window.irisHost.terminal = {available, target}, live bei Änderung und nach jedem Seitenladen) undonTerminalOpen. Das Abfangen voniris-terminal://openwirkt nur mit gesetztem Handler (nur das Plugin-Panel), andere Aufrufer, auch vom Agenten erzeugte HTML-Seiten, bleiben wirkungslos; über die Adresse öffnet sich nur Claude Code (UUID-Prüfung dersession_id), nie eine freie Shell.ChatPluginPanelPageView: fragt die Freigabe ab (beim Laden, beim Sichtbarwerden und beim Zurückkehren in den Vordergrund), gibt der Seite den Schalter Gerät/Mac (openLocallyOnTap) und öffnet bei der Anfrage der Seite das Terminal; Fehler als Hinweis.Geprüft:
xcodebuildfür den iOS-Simulator: BUILD SUCCEEDED. Die Gegenseite ist am echten Server geprüft (iris/Iris#274: 19/19) und die Plugin-Seite im Browser (iris/iris-plugins#328: 9 neue Prüfungen, 201 Unit-Tests); die Terminal-Seite im Headless-Chrome gegen einen Nachbau der Routen.Nicht geprüft: Alles in der App selbst: das Abfangen der Adresse, die Vollbild-WebView mit Zertifikat-Pinning, die Tastenleiste und Bildschirmtastatur auf dem iPhone, Trennen, das Verhalten beim Verbindungsverlust. Nicht auf dem Gerät installiert (nur Simulator-Build).
Bekannte Lücke: Eine getrennte Sitzung läuft weiter; die Sessions-Seite zeigt sie dann als „läuft“ und sperrt „Fortsetzen“. Zurück in die Sitzung führt erst die Liste offener Sitzungen (E4, „Terminal“ im „…“-Menü), die in einem eigenen Schritt folgt.
PR #79 gemergt: feat(terminal): Terminal-Eintrag im Menü, Liste offener Sitzungen, neue Shell (iris/2ndbrain-ios#77)
http://docker:3000/iris/2ndbrain-ios/pulls/79
Commits:
Stand: Etappe 4 (iOS) – Terminal-Eintrag im „…“-Menü und Liste offener Sitzungen
Geändert
TerminalAccess, aktualisiert bei Verbindungswechsel und beim Zurückkehren in den Vordergrund).TerminalListSheet: offene und kürzlich beendete Sitzungen dieses Geräts (GET /terminal/list), Tippen hängt wieder an (Scrollback), Wischen „Beenden“ (POST /terminal/<id>/close), „Neue Shell“ öffnet eine freie Shell.Geprüft
Nicht geprüft
Offen
PR #80 gemergt: chore(i18n): Localizable.xcstrings um Terminal-Texte ergänzt (iris/2ndbrain-ios#77)
http://docker:3000/iris/2ndbrain-ios/pulls/80
Commits: