Chatverlauf: Zeitleiste mit Playhead und Klon (Gegenstück zu iris/Iris#338) #107

Open
opened 2026-11-08 19:18:35 +00:00 by alf · 3 comments
Owner

Gegenstück zu iris/Iris#338 (Chatverlauf: Zeitleiste, Detailstand, Klon zum Zeitpunkt). Dort stehen Warum, Wunsch und offene Fragen.

Hier

Sheet in IrisRemote: Kontextmenü „Chatverlauf“, Zeitleiste mit Playhead, Detailansicht, „Als Klon anlegen“. Erst nach Protokoll und Server-Routen.

Das Wire-Protokoll (Routen für Zeitleiste, Stand zu einem Commit, Klon aus Commit) wird zuerst in Entwicklerdokumentation/02-Wire-Protokoll.md spezifiziert; diese Seite setzt es byte-genau wie der Mac-Server um.

Gegenstück zu iris/Iris#338 (Chatverlauf: Zeitleiste, Detailstand, Klon zum Zeitpunkt). Dort stehen Warum, Wunsch und offene Fragen. ## Hier Sheet in IrisRemote: Kontextmenü „Chatverlauf“, Zeitleiste mit Playhead, Detailansicht, „Als Klon anlegen“. Erst nach Protokoll und Server-Routen. Das Wire-Protokoll (Routen für Zeitleiste, Stand zu einem Commit, Klon aus Commit) wird zuerst in `Entwicklerdokumentation/02-Wire-Protokoll.md` spezifiziert; diese Seite setzt es byte-genau wie der Mac-Server um.
Author
Owner

PR #108 gemergt: feat(history): Chatverlauf – Sheet mit Zeitleiste, Playhead, Detailstand und Klon (#107)
http://docker:3000/iris/2ndbrain-ios/pulls/108

Commits:

  • feat(history): Chatverlauf – Sheet mit Zeitleiste, Playhead, Detailstand und Klon (#107)

Stand: iOS-Sheet (Gegenstück zu iris/Iris#338, Spec: Wire-Protokoll, Abschnitt „Chatverlauf“)

Geändert: ChatHistory.swift (neu: Modelle und die drei Routen als Erweiterung von AgentJobManager), ChatHistorySheet.swift (neu: Sheet und ChatHistoryTimelineBar), MainView.swift (Menüeintrag „Chatverlauf…“ nur bei vote == "up", Sheet; nach dem Klon wird der neue Chat ausgewählt), AgentChatView.swift (AgentMessageBubble nicht mehr private), AgentJob.swift (parseMessages nicht mehr private). Aufbau wie das Mac-Sheet: Zeitleiste mit Playhead (rastet auf dem nächsten Stand ein, Pfeil-Schaltflächen, VoiceOver-Aktion), Reiter Nachrichten/Dateien/Seitenpanel, Schalter „Workspace-Dateien mitnehmen“, „Als Klon anlegen“. Laden des Standes beim Ziehen um 150 ms entprellt.

Geprüft: xcodebuild -scheme IrisRemote -destination 'generic/platform=iOS Simulator' erfolgreich, keine Warnungen in den neuen Dateien.

Nicht geprüft: Nicht auf einem Gerät oder im Simulator bedient: Ziehen des Playheads mit dem Finger, Layout auf iPhone und iPad, Klon aus dem Sheet gegen einen echten Server mit echtem Verlauf, Meldung bei übersprungenen Dateien.

Offen: Der Linux-Client (PyQt6) ist veraltet und bekommt es nicht; das Gegenstück für das neue Frontend iris-web (Rust, Leptos+Tauri) folgt dort.

PR #108 gemergt: feat(history): Chatverlauf – Sheet mit Zeitleiste, Playhead, Detailstand und Klon (#107) http://docker:3000/iris/2ndbrain-ios/pulls/108 Commits: - feat(history): Chatverlauf – Sheet mit Zeitleiste, Playhead, Detailstand und Klon (#107) --- **Stand: iOS-Sheet (Gegenstück zu iris/Iris#338, Spec: Wire-Protokoll, Abschnitt „Chatverlauf“)** **Geändert:** `ChatHistory.swift` (neu: Modelle und die drei Routen als Erweiterung von `AgentJobManager`), `ChatHistorySheet.swift` (neu: Sheet und `ChatHistoryTimelineBar`), `MainView.swift` (Menüeintrag „Chatverlauf…“ nur bei `vote == "up"`, Sheet; nach dem Klon wird der neue Chat ausgewählt), `AgentChatView.swift` (`AgentMessageBubble` nicht mehr `private`), `AgentJob.swift` (`parseMessages` nicht mehr `private`). Aufbau wie das Mac-Sheet: Zeitleiste mit Playhead (rastet auf dem nächsten Stand ein, Pfeil-Schaltflächen, VoiceOver-Aktion), Reiter Nachrichten/Dateien/Seitenpanel, Schalter „Workspace-Dateien mitnehmen“, „Als Klon anlegen“. Laden des Standes beim Ziehen um 150 ms entprellt. **Geprüft:** `xcodebuild -scheme IrisRemote -destination 'generic/platform=iOS Simulator'` erfolgreich, keine Warnungen in den neuen Dateien. **Nicht geprüft:** Nicht auf einem Gerät oder im Simulator bedient: Ziehen des Playheads mit dem Finger, Layout auf iPhone und iPad, Klon aus dem Sheet gegen einen echten Server mit echtem Verlauf, Meldung bei übersprungenen Dateien. **Offen:** Der Linux-Client (PyQt6) ist veraltet und bekommt es nicht; das Gegenstück für das neue Frontend iris-web (Rust, Leptos+Tauri) folgt dort.
Author
Owner

PR #109 gemergt: feat(history): Nachrichten-Reiter springt beim Verschieben des Playheads ans Ende (#107)
http://docker:3000/iris/2ndbrain-ios/pulls/109

Commits:

  • feat(history): Nachrichten-Reiter springt beim Verschieben des Playheads ans Ende (#107)

Stand: Nachrichten-Reiter springt ans Ende (Gegenstück zu iris/Iris#338, Nutzerwunsch)

Geändert: ChatHistorySheet.swift, messagesView: ScrollViewReader mit Anker am Ende; bei jedem Wechsel des Standes springt die Ansicht nach unten (zweimal mit 200 ms Abstand wegen geschätzter Zeilenhöhen der LazyVStack).

Geprüft: Simulator-Build (generic/platform=iOS Simulator) erfolgreich.

Nicht geprüft: Nicht bedient, nicht auf einem Gerät; Verhalten bei sehr langen Chats offen.

PR #109 gemergt: feat(history): Nachrichten-Reiter springt beim Verschieben des Playheads ans Ende (#107) http://docker:3000/iris/2ndbrain-ios/pulls/109 Commits: - feat(history): Nachrichten-Reiter springt beim Verschieben des Playheads ans Ende (#107) --- **Stand: Nachrichten-Reiter springt ans Ende (Gegenstück zu iris/Iris#338, Nutzerwunsch)** **Geändert:** `ChatHistorySheet.swift`, `messagesView`: `ScrollViewReader` mit Anker am Ende; bei jedem Wechsel des Standes springt die Ansicht nach unten (zweimal mit 200 ms Abstand wegen geschätzter Zeilenhöhen der `LazyVStack`). **Geprüft:** Simulator-Build (`generic/platform=iOS Simulator`) erfolgreich. **Nicht geprüft:** Nicht bedient, nicht auf einem Gerät; Verhalten bei sehr langen Chats offen.
Author
Owner

PR #110 gemergt: feat(history): Zeitleiste zeigt Verlauf und Workspace getrennt und den Grund (#107)
http://docker:3000/iris/2ndbrain-ios/pulls/110

Commits:

  • feat(history): Zeitleiste zeigt Verlauf und Workspace getrennt und den Grund (#107)

Stand: Zeitleiste zeigt Verlauf und Workspace getrennt und den Grund der Änderung (Gegenstück zu iris/Iris#338, Nutzerwunsch)

Geändert: ChatHistory.swift: neue Felder messagesChanged, reason (ältere Server: true und leer). ChatHistorySheet.swift: Striche mit zwei Hälften (oben Verlauf, unten Workspace), Grund unter dem Datum (bis zu drei Zeilen), Legende.

Geprüft: Simulator-Build erfolgreich.

Nicht geprüft: Nicht bedient, Aussehen auf iPhone/iPad nicht gesehen.

PR #110 gemergt: feat(history): Zeitleiste zeigt Verlauf und Workspace getrennt und den Grund (#107) http://docker:3000/iris/2ndbrain-ios/pulls/110 Commits: - feat(history): Zeitleiste zeigt Verlauf und Workspace getrennt und den Grund (#107) --- **Stand: Zeitleiste zeigt Verlauf und Workspace getrennt und den Grund der Änderung** (Gegenstück zu iris/Iris#338, Nutzerwunsch) **Geändert:** `ChatHistory.swift`: neue Felder `messagesChanged`, `reason` (ältere Server: `true` und leer). `ChatHistorySheet.swift`: Striche mit zwei Hälften (oben Verlauf, unten Workspace), Grund unter dem Datum (bis zu drei Zeilen), Legende. **Geprüft:** Simulator-Build erfolgreich. **Nicht geprüft:** Nicht bedient, Aussehen auf iPhone/iPad nicht gesehen.
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#107
No description provided.