fix(chat-share): Workspace-Änderungen geteilter Chats gelangen nicht auf den anderen Rechner #141

Open
opened 2026-11-05 11:23:43 +00:00 by alf · 1 comment
Owner

Gegenstück zu iris/Iris (Workspace-Änderungen geteilter Chats werden nicht übertragen).

Befund

app/chat_share.py::_digest bildet die Prüfsumme nur aus chat-manifest.json und messages.json. Eine reine Änderung im Workspace (neue/geänderte Notiz) wird beim Import nicht erkannt (_share_revision gleich → übersprungen). Exportiert wird nur nach Jobende und Umbenennen, nicht nach Datei-Routen.

Fix

  • _digest umfasst die Workspace-Dateiliste (Pfad, Größe, Inhalts-Hash bei kleinen Dateien).
  • Datei-Routen, die den Workspace eines geteilten Chats ändern, stoßen entprellt export_if_shared an.

Wire-Protokoll: Format der Ablage bleibt gleich, nur die Berechnung der lokalen Prüfsumme ändert sich (jede Seite vergleicht nur mit ihrer eigenen gespeicherten).

Gegenstück zu iris/Iris (Workspace-Änderungen geteilter Chats werden nicht übertragen). ## Befund `app/chat_share.py::_digest` bildet die Prüfsumme nur aus `chat-manifest.json` und `messages.json`. Eine reine Änderung im Workspace (neue/geänderte Notiz) wird beim Import nicht erkannt (`_share_revision` gleich → übersprungen). Exportiert wird nur nach Jobende und Umbenennen, nicht nach Datei-Routen. ## Fix - `_digest` umfasst die Workspace-Dateiliste (Pfad, Größe, Inhalts-Hash bei kleinen Dateien). - Datei-Routen, die den Workspace eines geteilten Chats ändern, stoßen entprellt `export_if_shared` an. Wire-Protokoll: Format der Ablage bleibt gleich, nur die Berechnung der lokalen Prüfsumme ändert sich (jede Seite vergleicht nur mit ihrer eigenen gespeicherten).
Author
Owner

PR #142 gemergt: fix(chat-share): Workspace-Änderungen geteilter Chats exportieren und importieren (iris/iris-linux-server#141)
http://docker:3000/iris/iris-linux-server/pulls/142

Commits:


Stand

Gegenstück zu iris/Iris#326.

Geändert: chat_share._digest enthält die Workspace-Dateiliste (Pfad, Größe, SHA-1 bei Dateien ≤ 256 KiB, UTF-8-sortiert, keine Änderungszeiten). Eine HTTP-Middleware in main.py ruft nach erfolgreichen POST /file/{copy,delete,rename,mkdir,move,upload} und POST /vault/file chat_share.workspace_may_have_changed() auf (5 s entprellt); export_shared_with_changed_workspace exportiert geteilte Chats mit abweichendem Workspace, nicht bei laufendem Job.

Geprüft: .venv/bin/pytest tests/test_chat_share.py: 18 grün (neu: reine Workspace-Änderung wird importiert, Prüfsumme sieht neue/geänderte/gelöschte Datei, Auslöser exportiert nur bei Abweichung und nicht bei laufendem Job).

Nicht geprüft: Nicht auf dem laufenden Server (kein rsync-Deploy), Middleware nur per Syntaxprüfung und Import in den Tests, nicht per HTTP-Aufruf.

Offen: Deploy auf iris-server; gelöschte Dateien löscht der Import nicht; einmalige Neu-Einlesung von Chats mit Workspace nach dem Update.

PR #142 gemergt: fix(chat-share): Workspace-Änderungen geteilter Chats exportieren und importieren (iris/iris-linux-server#141) http://docker:3000/iris/iris-linux-server/pulls/142 Commits: - fix(chat-share): Workspace-Änderungen geteilter Chats exportieren und importieren (iris/iris-linux-server#141) --- ## Stand Gegenstück zu iris/Iris#326. **Geändert:** `chat_share._digest` enthält die Workspace-Dateiliste (Pfad, Größe, SHA-1 bei Dateien ≤ 256 KiB, UTF-8-sortiert, keine Änderungszeiten). Eine HTTP-Middleware in `main.py` ruft nach erfolgreichen `POST /file/{copy,delete,rename,mkdir,move,upload}` und `POST /vault/file` `chat_share.workspace_may_have_changed()` auf (5 s entprellt); `export_shared_with_changed_workspace` exportiert geteilte Chats mit abweichendem Workspace, nicht bei laufendem Job. **Geprüft:** `.venv/bin/pytest tests/test_chat_share.py`: 18 grün (neu: reine Workspace-Änderung wird importiert, Prüfsumme sieht neue/geänderte/gelöschte Datei, Auslöser exportiert nur bei Abweichung und nicht bei laufendem Job). **Nicht geprüft:** Nicht auf dem laufenden Server (kein rsync-Deploy), Middleware nur per Syntaxprüfung und Import in den Tests, nicht per HTTP-Aufruf. **Offen:** Deploy auf iris-server; gelöschte Dateien löscht der Import nicht; einmalige Neu-Einlesung von Chats mit Workspace nach dem Update.
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/iris-linux-server#141
No description provided.