Geteilte Chats: Importierter Chat wird beim Umbenennen unter seiner lokalen Job-ID exportiert, auf dem anderen Rechner entsteht ein zweiter Chat #249
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#249
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?
Befund
Ein geteilter Chat, der von einem anderen Rechner importiert wurde, wird beim Umbenennen (oder nach jedem Jobende) nicht unter seiner Repo-ID erneut exportiert, sondern unter seiner lokalen Job-ID. Auf allen anderen Rechnern entsteht dadurch ein zweiter Chat, der Original-Chat behält den alten Namen.
Beobachtet (2026-10-31, Mac Studio + Mac-VM)
B8D1C189„Im Anhang ist eine Step Datei mit dem Raspber… (Klon)“ ist geteilt (OrdnerIris-Internal/Geteilte-Chats/B8D1C189…).D07A68B3mitshareID = B8D1C189(so ist es vorgesehen).Geteilte-Chats/D07A68B3…(neuer Ordner,chat.mdmitjob_id: d07a68b3…) statt nachB8D1C189.D07A68B3als neuen Job289AFE5F(„Raspberry Pi 4 Gehäuse“),B8D1C189behält den alten Titel. Der Vault ist auf beiden Seiten synchron, das Repo-BundleB8D1C189hat weiter den alten Titel.Ursache
ChatShareManager.exportbaut das Manifest überChatExportManager.chatFilesmitjobID: job.idund ruftChatShareFiles.writeauf, das den Ordner ausmanifest.jobIDbildet;job.shareID(die Repo-ID) wird nur beim Import und im Abgleich benutzt, nie beim Schreiben.unsharenimmt ebenfallsjob.id.chat_share._export_syncnutztjob["id"]für Ordner, Manifest undchat.md,_unshare_syncebenfalls;_share_idwird nur gesetzt/verglichen.Plan
shareID/_share_id, sonst die Job-ID) für Ordner, Manifest undchat.md— auf beiden Servern.Nicht Teil der Korrektur
Der schon entstandene doppelte Chat
289AFE5Fauf dem Mac Studio bleibt als lokale Kopie, sobald der Alt-Ordner verschwindet; löscht Alf von Hand.PR #250 gemergt: fix(chats-teilen): Importierter Chat wird unter seiner Repo-ID exportiert, Umbenennen erzeugt keinen zweiten Chat (iris/Iris#249)
http://docker:3000/iris/Iris/pulls/250
Commits:
Stand Mac: geteilte Chats unter der Repo-ID exportieren
Befund: siehe Beschreibung. Ein importierter Chat (lokale Job-ID ≠
shareID) wurde beim Export unter seiner lokalen ID abgelegt, nicht unter der Repo-ID; ein Umbenennen auf der VM erzeugte auf dem Mac Studio einen zweiten Chat (D07A68B3→289AFE5F),B8D1C189behielt den Titel.Geändert:
ChatShareFiles:repositoryID(jobID:shareID:),manifest(_:withJobID:),isLegacyDuplicate,removeLegacyFolder.ChatShareManager.export: Manifest, Ordner undchat.md(job_id) mit der Repo-ID; danach wird ein Alt-Ordner unter der eigenen Job-ID abgeräumt.unshareentfernt den Ordner der Repo-ID (und den Alt-Ordner).importAllübernimmt einen Alt-Ordner nicht (weder als neuen Chat noch als Überschreibung des eigenen Jobs).Geprüft:
scripts/test-vault-sync-core.sh: 291 Prüfungen, 0 Fehler (vorher 280). Der neue Block exportiert „Original“ vom Ursprung und „Umbenannt“ von einem Import: ein Ordner, Titel „Umbenannt“,chat.mdmit Repo-ID; Alt-Ordner wird erkannt und abgeräumt. Ohne die Korrektur schlägt der Block an 5 Stellen fehl.swiftc -parsefürChatShareManager.swiftundChatShareFiles.swiftohne Fehler.Nicht geprüft: Kein Xcode-Build,
ChatShareManagerwurde nicht kompiliert (nur geparst); nicht auf VM und Mac Studio probiert; kein Sync über Forgejo.Offen / von Hand:
289AFE5F) auf dem Mac Studio: Sobald die VM mit dem neuen Stand exportiert, verschwindet der Alt-OrdnerD07A68B3, der Chat bleibt als lokale Kopie ohne Daumen und kann gelöscht werden.B8D1C189den neuen Titel bekommt, muss die VM einmal neu exportieren (Umbenennen oder Jobende).iris-linux-server), gleiche Regel.PR #131 gemergt: fix(chats-teilen): Importierter Chat wird unter seiner Repo-ID exportiert, Umbenennen erzeugt keinen zweiten Chat (iris/Iris#249)
http://docker:3000/iris/iris-linux-server/pulls/131
Commits:
Stand Linux-Server: geteilte Chats unter der Repo-ID exportieren
Gegenstück zum Mac-PR (#249).
chat_share.repository_id(job)(_share_id, sonst Job-ID) bestimmt Ordner, Manifest (jobID) undchat.md(job_id) beim Export;_unshare_syncentfernt den Ordner der Repo-ID. Alt-Ordner unter der eigenen Job-ID eines importierten Chats werden beim Export abgeräumt und beim Import übersprungen (_is_legacy_duplicate).Geprüft:
tests/test_chat_share.py: 15 grün, davon 2 neu (Umbenennen auf Iris B aktualisiert den Chat auf Iris A; Alt-Ordner wird abgeräumt und nicht erneut importiert); ohne die Korrektur schlagen beide fehl.Nicht geprüft: nicht auf iris-server deployt, kein Sync über Forgejo.
Hinweis: In einem breiteren Lauf war
tests/test_vault_git.py::test_vault_git_init_creates_repo_and_bundled_hookeinmal rot (parallele Last); einzeln besteht er mit und ohne diese Änderung. Die volle Suite brach beitest_backup_create_returns_metadatamit Timeout ab (Backup-Test, nicht Teil dieser Änderung).PR #136 gemergt: docs(wire): Geteilte Chats liegen unter der Repo-ID des Ursprungs (iris/Iris#249)
http://docker:3000/alf/2ndbrain/pulls/136
Commits:
Stand Wire-Doku zu #249
02-Wire-Protokoll.md, Absatz „Ablage im Vault“:<ID>ist die Repo-ID des Ursprungs-Chats (nicht die lokale Job-ID eines importierten Chats), Manifest-jobIDundchat.md-job_idtragen dieselbe ID; Alt-Ordner aus dem Export vor #249 werden beim Export abgeräumt und beim Import übersprungen. Entspricht dem Code in Mac-PR #250 und Linux-PR #131. Reine Doku, nur mit dem Code abgeglichen. Daily-Log-Einträge vom 31.10. liegen im Vault.