iOS: "…"-Menü flackert und lässt sich nicht scrollen #70

Closed
opened 2026-10-31 12:14:44 +00:00 by alf · 1 comment
Owner

Problem

Auf dem iPhone flackert das "…"-Menü (Toolbar im Chat) beim Aufklappen manchmal und lässt sich nicht scrollen. Gemeldet mit Screenshot am 2026-10-31: Das Menü steht offen, die Einträge sind nach „Prompt-Templates“ abgeschnitten (darunter folgen Qwen TTS, Hilfe, Über Iris, Workspace, Einstellungen), im Hintergrund läuft der Chat.

Vermutete Ursache (aus dem Code gelesen, nicht reproduziert)

AgentChatView beobachtet jobManager und server; sein body läuft bei jedem gestreamten Token und bei jedem Health-Poll (~10 s). Die Toolbar und damit das Menu mit AppMenuItems (liest server.isConnected über ein @EnvironmentObject) werden dabei neu aufgebaut, auch während das Systemmenü offen ist. Ein während des Öffnens neu aufgebautes Menü flackert und nimmt keine Scroll-Gesten an. Das erklärt „ab und zu“ (nur wenn gerade gestreamt oder gepollt wird).

Plan

Das Menü als eigene, vergleichbare View (AppMoreMenu, .equatable()), die nur bei echter Änderung von Verbindungsstatus, Plattform, Workspace oder Listenzustand neu gezeichnet wird. Gleiches für die Haupt-Toolbar.

## Problem Auf dem iPhone flackert das "…"-Menü (Toolbar im Chat) beim Aufklappen manchmal und lässt sich nicht scrollen. Gemeldet mit Screenshot am 2026-10-31: Das Menü steht offen, die Einträge sind nach „Prompt-Templates“ abgeschnitten (darunter folgen Qwen TTS, Hilfe, Über Iris, Workspace, Einstellungen), im Hintergrund läuft der Chat. ## Vermutete Ursache (aus dem Code gelesen, nicht reproduziert) `AgentChatView` beobachtet `jobManager` und `server`; sein `body` läuft bei jedem gestreamten Token und bei jedem Health-Poll (~10 s). Die Toolbar und damit das `Menu` mit `AppMenuItems` (liest `server.isConnected` über ein `@EnvironmentObject`) werden dabei neu aufgebaut, auch während das Systemmenü offen ist. Ein während des Öffnens neu aufgebautes Menü flackert und nimmt keine Scroll-Gesten an. Das erklärt „ab und zu“ (nur wenn gerade gestreamt oder gepollt wird). ## Plan Das Menü als eigene, vergleichbare View (`AppMoreMenu`, `.equatable()`), die nur bei echter Änderung von Verbindungsstatus, Plattform, Workspace oder Listenzustand neu gezeichnet wird. Gleiches für die Haupt-Toolbar.
Author
Owner

PR #71 gemergt: fix(menu): "…"-Menü als vergleichbare View, damit es beim Streamen nicht neu aufgebaut wird (#70)
http://docker:3000/iris/2ndbrain-ios/pulls/71

Commits:

  • fix(menu): "…"-Menü als vergleichbare View, damit es beim Streamen nicht neu aufgebaut wird (#70)

Stand: Menü in eigener, vergleichbarer View (Fix-Versuch)

Befund: Siehe Issue: Das „…“-Menü flackert und scrollt nicht, wenn es aufgeklappt wird, während der Chat streamt oder der Health-Poll läuft. Die Ursache ist aus dem Code gelesen, nicht reproduziert: AgentChatView beobachtet jobManager und server und rendert bei jedem gestreamten Token und alle ~10 s neu; dabei wird auch das offene Menü neu aufgebaut.

Geändert: Neue View AppMoreMenu (Equatable, .equatable() an beiden Aufrufstellen: Chat-Toolbar und Haupt-Toolbar). Ihr body läuft nur neu, wenn sich Verbindungsstatus, Plattform (Linux ja/nein), Vorhandensein des Workspace-Eintrags oder (Haupt-Toolbar) Listenzustand ändern. AppMenuItems bekommt diese Werte als Parameter statt über @EnvironmentObject var server. Die Menüpunkte sind unverändert.

Geprüft: xcodebuild für den iOS-Simulator: BUILD SUCCEEDED.

Nicht geprüft: Dass das Flackern damit verschwindet. Es ließ sich weder reproduzieren noch im Simulator beobachten (kein gekoppelter Server, kein laufender Job). Nicht auf einem Gerät. Falls es weiter auftritt, spricht das gegen die Vermutung; dann braucht es eine Messung (Anzahl der body-Auswertungen und Zeitpunkt beim Öffnen).

Offen: Alf probiert es auf dem iPhone während ein Job streamt; das Issue bleibt bis dahin offen (status/zu-testen).

PR #71 gemergt: fix(menu): "…"-Menü als vergleichbare View, damit es beim Streamen nicht neu aufgebaut wird (#70) http://docker:3000/iris/2ndbrain-ios/pulls/71 Commits: - fix(menu): "…"-Menü als vergleichbare View, damit es beim Streamen nicht neu aufgebaut wird (#70) --- **Stand: Menü in eigener, vergleichbarer View (Fix-Versuch)** **Befund:** Siehe Issue: Das „…“-Menü flackert und scrollt nicht, wenn es aufgeklappt wird, während der Chat streamt oder der Health-Poll läuft. Die Ursache ist **aus dem Code gelesen, nicht reproduziert**: `AgentChatView` beobachtet `jobManager` und `server` und rendert bei jedem gestreamten Token und alle ~10 s neu; dabei wird auch das offene Menü neu aufgebaut. **Geändert:** Neue View `AppMoreMenu` (`Equatable`, `.equatable()` an beiden Aufrufstellen: Chat-Toolbar und Haupt-Toolbar). Ihr `body` läuft nur neu, wenn sich Verbindungsstatus, Plattform (Linux ja/nein), Vorhandensein des Workspace-Eintrags oder (Haupt-Toolbar) Listenzustand ändern. `AppMenuItems` bekommt diese Werte als Parameter statt über `@EnvironmentObject var server`. Die Menüpunkte sind unverändert. **Geprüft:** `xcodebuild` für den iOS-Simulator: BUILD SUCCEEDED. **Nicht geprüft:** Dass das Flackern damit verschwindet. Es ließ sich weder reproduzieren noch im Simulator beobachten (kein gekoppelter Server, kein laufender Job). Nicht auf einem Gerät. Falls es weiter auftritt, spricht das gegen die Vermutung; dann braucht es eine Messung (Anzahl der `body`-Auswertungen und Zeitpunkt beim Öffnen). **Offen:** Alf probiert es auf dem iPhone während ein Job streamt; das Issue bleibt bis dahin offen (`status/zu-testen`).
alf 2026-10-31 15:39:36 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
iris/2ndbrain-ios#70
No description provided.