Remote-Desktop: /screen/resize, Seitenverhältnis, Fensterauswahl #291
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/Iris#291
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?
Warum: Remote-Desktop weiterentwickeln: Drehen des Clients, Fenstergröße wählbar, Zoom auf den Cursor.
PR #292 gemergt: feat(remote): /screen/resize, Seitenverhältnis, richtiges Fenster aufnehmen (#291)
http://docker:3000/iris/Iris/pulls/292
Commits:
Stand (Mac-Server)
Befund: Nach dem Drehen des Clients blieb die Mac-Fenstergröße fest; bei Apps mit mehreren Fenstern (Finder) nahm der Stream ein anderes Fenster auf als das per Accessibility angepasste (Log: Stream 982×2129, aufgenommenes Fenster 932×430).
Geändert:
POST /screen/resize?pid&w&h(Fenster per AX anpassen, Session beenden, bestätigte Größe zurück)./screen/launchund/screen/resizemit gemeinsamem Faktor (Seitenverhältnis bleibt).AXWindowController.windowID(pid:)über_AXUIElementGetWindow;beginCapturenimmt dieses Fenster auf, Rückfall auf die alte Auswahl.Geprüft: Auf dem Gerät von Hand ausprobiert (Finder): Drehen passt das Fenster an, Größenstufen funktionieren, Bild stimmt. Log-Beleg für die Fensterverwechslung vorher/nachher. Syntax per
swiftc -parse; Build durch den Nutzer in Xcode.Nicht geprüft: Apps ohne fokussiertes AX-Fenster, mehrere gleichzeitige Sessions mit verschiedenen Größen, Desktop-Modus (
pid == -1, unverändert).Grenzen: Obergrenze bleibt die sichtbare Fläche des echten Displays;
_AXUIElementGetWindowist eine private API. Linux-Server antwortet auf/screen/*weiterhin mit 403.Offen:
/screen/resizeist noch nicht im Wire-Protokoll-Dokument; Verschieben des gezoomten Bildes; virtuelles Display; Zoom im Desktop-Modus.PR #144 gemergt: docs(wire): Remote Desktop /screen/* inkl. /screen/resize (iris/Iris#291)
http://docker:3000/alf/2ndbrain/pulls/144
Commits:
Stand (Dokumentation)
Geändert:
Entwicklerdokumentation/02-Wire-Protokoll.mdhat jetzt einen Abschnitt „Remote Desktop“: Freigabe pro Gerät, alle/screen/*-Routen (neuPOST /screen/resize), Koordinaten, Ablauf bei Größenänderung, Stream-Paketformat (FORMAT/FRAME). Die Route-Klassifizierung zählt 6 statt 5 bewusst nicht portierte Routen.Geprüft: Gegen den Code gelesen (
handleScreenApps/Launch/Stream/Input/Resize/Stop, Freigabe-Prüfung,RemoteAppSession.swift-Kopf, iOS-Paketparser). Nicht gebaut oder ausgeführt, reine Textänderung.Nicht geprüft: Fehlerfälle jenseits der im Code sichtbaren (z. B. App ohne Fenster); Stream-Format nicht mit einem Mitschnitt verglichen.
Grenzen: Nur Mac-Server. Der Linux-Server hat keinen Desktop und antwortet über seinen Catch-all (
linux-server/ROUTES.md) auf jeden/screen/*-Pfad mit403, auch auf/screen/resize.PR #293 gemergt: feat(remote): Desktop-Modus ohne Server-Zeiger (cursor=0) (#291)
http://docker:3000/iris/Iris/pulls/293
Commits:
Stand (Mac-Server, Desktop-Modus)
Befund: Im Desktop-Modus malte der Server den Mauszeiger (Pfeil in Punktgröße ~17×23) ins Bild. Auf einem 7680×2160-Display wird er bei 3840 Pixel Strombreite ~8×11 px groß, auf dem iPhone ~3×4 px und vom Encoder verschmiert: Der Zeiger „verschwand“.
Geändert:
GET /screen/streamakzeptiert optionalcursor=0; dann zeichnet der Server keinen Zeiger ins Bild (RemoteAppSession.drawsCursorOverlay). Ohne Parameter unverändert (Mac-Client).Geprüft: Auf dem iPhone mit dem Ultrawide ausprobiert: Zeiger bleibt sichtbar, nur ein Zeiger, „gut benutzbar“. Mac-Teil per
swiftc -parse, Build durch den Nutzer in Xcode.Nicht geprüft: Mac-Client (
RemoteDesktopSessionView) mit dem Parameter nicht ausprobiert (er sendet ihn nicht). Der serverseitigeviewport-Zuschnitt bleibt im Code, wird vom iOS-Client aber nicht mehr benutzt.Offen: Verschieben des gezoomten Bildes über den Cursor hinaus, Display-Auswahl, virtuelles Display.
PR #145 gemergt: docs(wire): cursor=0 am Stream, viewport nur noch Mac-Client (iris/Iris#291)
http://docker:3000/alf/2ndbrain/pulls/145
Commits:
Stand (Dokumentation)
Geändert:
02-Wire-Protokoll.md, Abschnitt „Remote Desktop“: optionaler Parametercursor=0anGET /screen/stream; Hinweis, dass der iOS-Clientviewportnicht mehr sendet (Zoom im Client, am Cursor verankert).Geprüft: Gegen den gemergten Code gelesen (PR iris/Iris#293, iris/2ndbrain-ios#87). Reine Textänderung.
Nicht geprüft: nichts Weiteres.
PR #294 gemergt: feat(remote): virtuelles Display für App-Sessions, Datei in Standard-App öffnen (#291)
http://docker:3000/iris/Iris/pulls/294
Commits:
Stand (Mac-Server: virtuelles Display, Datei öffnen)
Befund: Apps, die als Remote-Session auf dem iPhone laufen, erschienen auf dem Mac-Bildschirm, und die Fenstergröße war durch das echte Display begrenzt. Dateien (
.solidcraft,.step) ließen sich nicht in ihrer App öffnen und streamen.Geändert:
RemoteVirtualDisplay.swift(neu): virtuelles Display über die privateCGVirtualDisplay-Klasse (zur Laufzeit gesucht, ohne Bridging-Header; Rückfall auf den Hauptschirm, wenn sie fehlt). Je App-Session ein Display in Fenstergröße;/screen/resizeändert dasselbe Display;/screen/stopoder 60 s ohne Stream entfernen es.RemoteCursorGuard: Der echte Mac-Zeiger springt für Remote-Eingaben aufs Display und nach 1 s Ruhe (ohne gedrückte Taste) zurück.RemoteAppSession.swift: Fenster wird erst positioniert, dann in der Größe gesetzt, dann erneut positioniert (macOS begrenzt die Größe sonst auf den aktuellen Bildschirm)./screen/launchakzeptiertfilePath(Standard-App der Datei, wie Doppelklick im Finder; wartet bis 15 s auf das Fenster).RemoteFileApplicationLookup.swift(neu): Rückfall, wenn LaunchServices keine App kennt (.scist dort dem RetroArch-Typcom.retroarch.sczugeordnet): sucht Apps, die die Endung inCFBundleDocumentTypesmelden. Gilt auch für/file/launch.Geprüft: Von Hand mit dem iPhone: Datei im Smartphone-Modus tippen, SolidCraft öffnet, wird gestreamt, auf dem Mac nichts zu sehen. Klasse
RemoteVirtualDisplayeinzeln: Anlegen (1600×3467), Größenänderung, Begrenzung auf 8192. Lookup einzeln:.sc/.solidcraft→ SolidCraft,.step→ Plasticity. Dateitypen/Standard-Apps am Mac per UTType-Abfrage.Nicht geprüft: Zeiger-Rücksprung im Alltagsbetrieb neben der Arbeit am Mac, Verhalten bei App ohne AX-Fenster, mehrere gleichzeitige Sessions, Display-Anordnung (macOS legt es links neben das Hauptdisplay; Zeiger kann hineinlaufen, Verschieben in den Systemeinstellungen), Fenstergröße nach Session-Ende (bleibt groß, wie vorher). Der Build lief durch den Nutzer in Xcode.
Grenzen: Private API (
CGVirtualDisplay,_AXUIElementGetWindow), kann ein macOS-Update ändern. STL öffnet auf diesem Mac in Xcode (Standard-App), nicht in Plasticity.Offen: Agent-Weg (Chat-Befehl „Öffne … mit dem aktuellen Design“ → Session auf dem iPhone: festes Skript oder automatische Fenstererkennung), Display-Auswahl, Verschieben des gezoomten Bildes.
PR #146 gemergt: docs(wire): virtuelles Display, filePath, Zeiger-Rücksprung (iris/Iris#291)
http://docker:3000/alf/2ndbrain/pulls/146
Commits:
Stand (Dokumentation)
Geändert:
02-Wire-Protokoll.md, Abschnitt „Remote Desktop“:filePathan/screen/launch(Standard-App, Rückfall überCFBundleDocumentTypes), virtuelles Display (Anlegen, Größenänderung, Entfernen, 60-s-Ablauf, Rückfall auf den Hauptschirm), Zeiger-Rücksprung.Geprüft: Gegen den Code und die Tests von Hand gelesen. Reine Textänderung.
Nicht geprüft: nichts Weiteres.
PR #295 gemergt: docs(handbuch): Remote Desktop auf iPhone und iPad (iris/Iris#291)
http://docker:3000/iris/Iris/pulls/295
Commits:
Stand (Benutzerhandbuch)
Befund: Das Handbuch kannte den Remote Desktop auf dem iPhone nicht; nur der Mac-Client-Teil stand kurz im Remote-Panel-Kapitel.
Geändert: Neues Kapitel „Remote Desktop auf iPhone und iPad“ (Freigabe, App oder ganzer Bildschirm, virtuelles Display, Dateien in der Mac-App öffnen, Gesten, Zoom, Drehen, Fenstergröße, Grenzen). Verweise in „iOS Remote App“, „Iris Remote Panel“ und „Remote-Server und Geräteverwaltung“ (neuer Abschnitt „Bildschirmfreigabe erlauben“). In diesem Repo geändert ist die generierte
Iris/Resources/BENUTZERHANDBUCH.md(LLM-Kontext für „Iris-Hilfe“); die Kapitel liegen im Vault, die HTML-Site (Handbuch/) ist per.gitignoreausgeschlossen und wird beim Deploy neu erzeugt.Geprüft: Der Handbuch-Build lief durch (31 Kapitel); der Diff der generierten Datei enthält nur diese Änderungen. Inhalte gegen den Code und die Beobachtungen vom Gerät abgeglichen.
Nicht geprüft: Darstellung der Site in der In-App-Hilfe; das Kapitel nennt nur Gebautes, nicht den Agent-Weg (Chat-Befehl).
Offen: Gesamtüberarbeitung des Handbuchs (Remote-Panel- und Companion-Panel-Text sind weiter veraltet); Kapitel nachziehen, wenn der Agent-Weg gebaut ist.
PR #296 gemergt: docs(handbuch): Was ist Iris — Abschnitt „In einem Absatz“ (iris/Iris#291)
http://docker:3000/iris/Iris/pulls/296
Commits:
Stand (Benutzerhandbuch, „Was ist Iris?“)
Geändert: Neuer Abschnitt „In einem Absatz“ am Anfang des Kapitels „Was ist Iris?“ (Iris als persönliche Assistentin, weiblich, auf eigener Hardware, vom Mac, iPhone und iPad aus, mit dem Beispiel „Konstruktionsdatei von unterwegs öffnen, Mac bleibt unberührt“). Der bisherige Text steht unter der neuen Überschrift „Das Grundproblem“. Geändert in diesem Repo ist die generierte
Iris/Resources/BENUTZERHANDBUCH.md; die Kapitelquelle liegt im Vault.Geprüft: Handbuch-Build lief durch (31 Kapitel); der Diff der generierten Datei sind genau diese sechs Zeilen. Wortlaut von Alf gelesen und auf „sie“ korrigiert.
Nicht geprüft: Darstellung in der In-App-Hilfe.
Offen: Im Abschnitt „Technisch gesehen“ steht noch „Es hört zu, sieht deinen Bildschirm …“; weitere „es“-Stellen im Handbuch und in der App nicht gesucht. Ein Satz zum Namen (Iris vermittelt zwischen Mensch und Systemen) als Einstieg wurde angeboten, nicht gebaut.
PR #297 gemergt: docs(handbuch): Iris durchgehend als „sie“ (iris/Iris#291)
http://docker:3000/iris/Iris/pulls/297
Commits:
Stand (Benutzerhandbuch: Iris als „sie“)
Befund: Iris ist weiblich (die Göttin, die zwischen Göttern und Menschen vermittelt). Das Handbuch nannte sie an einigen Stellen „es/er“ oder „Assistent“.
Geändert (sechs Zeilen der generierten
Iris/Resources/BENUTZERHANDBUCH.md, Quellen im Vault): „Sie hört zu …“ (Was ist Iris), „startet sie ihn“ (Hintergrund-Jobs), „wo sie aufgehört hat“ (Vault-Synchronisation), „Iris links grau“ und „jede Antwort von Iris“ (Chat mit Iris), „Jede Antwort von Iris“ (Eigene TTS-Stimme). Zusätzlich im Vault_Index.md: „eine persönliche Assistentin“.Geprüft: Handbuch-Build lief durch; der Diff besteht aus genau diesen sechs Zeilen. Alle Kapitel per Skript nach Sätzen mit „Iris“ und einem Pronomen durchsucht, jeden Treffer einzeln gelesen.
Nicht geprüft: Ein Satz, in dem Iris nur aus dem Zusammenhang gemeint ist, kann übersehen sein. App-Texte, Systemprompts und der „Iris-Hilfe“-Prompt wurden nicht durchgesehen.
Bewusst unverändert: „Assistent“ als Name des Tabs (Beschriftung in Mac- und iOS-App; eine Änderung bräuchte die App), „KI-Assistent (Hermes)“ (meint Hermes), alle „es/er“, die sich auf Flows, Server, Git usw. beziehen.
Offen: App-Oberflächentexte und Systemprompts auf „es/er“ durchsehen, falls gewünscht.