Chatverlauf: Routen für Zeitleiste, Stand und Klon (Gegenstück zu iris/Iris#338) #147
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-linux-server#147
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#338 (Chatverlauf: Zeitleiste, Detailstand, Klon zum Zeitpunkt). Dort stehen Warum, Wunsch und offene Fragen.
Hier
Routen im Linux-Server (
app/chat_share.pyund Vault-Routen): Git-Historie des Chat-Ordners lesen, Stand rekonstruieren, Klon als neuen Job anlegen.Das Wire-Protokoll (Routen für Zeitleiste, Stand zu einem Commit, Klon aus Commit) wird zuerst in
Entwicklerdokumentation/02-Wire-Protokoll.mdspezifiziert; diese Seite setzt es byte-genau wie der Mac-Server um.PR #148 gemergt: feat(history): Chatverlauf – Routen für Zeitleiste, Stand und Klon (#147)
http://docker:3000/iris/iris-linux-server/pulls/148
Commits:
Stand: Linux-Server-Routen (Gegenstück zu iris/Iris#338, Spec: Wire-Protokoll, Abschnitt „Chatverlauf“)
Geändert:
iris-server/app/chat_history.py(neu, Git-Kern: Zeitleiste, Stand, LFS-Zeiger, Workspace-Stand, Klon, Wire-Form), drei Routen inmain.py,ROUTES.md,tests/test_chat_history.py. Klon nutztjobs_store.import_jobmit dem Manifest des Standes (Titel „ (Stand TT.MM.JJJJ HH:mm)“, frische ID,vote: none, kein_share_id). Fehler durchgehend als{"error": ...}.Geprüft: 10 Tests grün gegen echte Temp-Git-Repos: Reihenfolge,
limit/truncated, Nachrichtenzahl,workspace_changed, Status added/modified/deleted/unchanged, LFS-Zeiger (Größe, Verfügbarkeit, Inhalt), Browser-Tabs, ungültige/fremde/unbekannte Commits, Klon mit und ohne Workspace, nicht geteilt/entteilt, Routen per TestClient (200/404,skippednur wenn nötig).tests/test_chat_share.pyweiter grün.Nicht geprüft: Nicht auf iris-server deployt; kein Aufruf gegen den laufenden Server mit echtem Vault.
git lfs fetchvom Forgejo nicht ausprobiert (nur lokale LFS-Objekte). Byte-Gleichheit mit dem Mac-Server nicht gegen eine echte Antwort des Mac-Servers verglichen, nur gegen die Spec.Offen: Sheet in Iris.app/IrisClient.app, iOS (iris/2ndbrain-ios#107), Linux-Client.
PR #149 gemergt: feat(history): Zeitleiste liefert messages_changed und reason (#147)
http://docker:3000/iris/iris-linux-server/pulls/149
Commits:
Stand:
messages_changedundreasonje Stand der Zeitleiste (Gegenstück zu iris/Iris#338)Geändert:
app/chat_history.py: Fakten je Commit um Prüfsumme vonmessages.json, Zahl und Text des letzten Nutzer-Prompts erweitert (zwischengespeichert);reasonundmessages_changedin der Zeitleiste, Regeln wie in der Spec.tests/test_chat_history.pyum drei Tests ergänzt (Grund bei neuem Prompt, Betreff als Fallback, Wächter-Betreff ohne Grund, Kürzung).Geprüft:
tests/test_chat_history.pyundtests/test_chat_share.py: 31 grün (echte Temp-Repos).Nicht geprüft: Nicht auf iris-server deployt; nicht mit echtem Vault.
PR #150 gemergt: feat(history): Route für eine Datei im Stand eines Commits (#147)
http://docker:3000/iris/iris-linux-server/pulls/150
Commits:
Stand:
GET /agent/{id}/history/{commit}/file(Gegenstück zu iris/Iris#338)Geändert:
app/chat_history.py(is_safe_relative_path,known_commit), Route inmain.py(Datei im Stand des Commits,Content-Typenach Endung, 400/404/413 wie in der Spec), Tests intests/test_chat_history.py(Datei im ersten und im dritten Stand, fehlende Datei,..-Pfad, unbekannter Commit).Geprüft:
tests/test_chat_history.py: 13 grün.Nicht geprüft: Nicht deployt, nicht gegen einen echten Vault und nicht mit einem LFS-Objekt, das vom Forgejo nachgeladen werden muss.