humhub: mail-send loest Empfaenger zu GUIDs auf #10

Merged
sko merged 3 commits from fix/humhub-mail-guid into main 2026-09-25 11:07:45 +02:00
Owner

POST /mail nimmt als recipient ausschließlich GUIDs an. Mit numerischen
User-IDs — so wie mail-send es bisher tut — antwortet die API
400 Validation failed und „Du kannst keine Nachricht ohne Empfänger
senden!". Die Meldung klingt nach einem leeren Feld, obwohl das Feld gefüllt
ist, und weist bei der Suche in die falsche Richtung.

Änderung: resolve_user gibt die GUID zurück statt der ID, neu ist
user_guid, das die GUID über /user/<id> nachlädt, wenn die Benutzerliste
sie nicht mitliefert. Alle drei Eingabeformen (Benutzername, Profil-URL,
numerische ID) bleiben erhalten.

Geprüft gegen humhub.inmedias.it: alle drei Formen lösen zur GUID auf, und
der Versand über diesen Weg ist belegt.

Der Fall war am 16.09. schon einmal aufgetreten; die Erkenntnis blieb damals
in einem lokalen Memory und nicht im Plugin — deshalb jetzt hier.

Analyse und Umsetzung mit Claude Code, Inhalt von mir geprüft und
freigegeben.

`POST /mail` nimmt als `recipient` ausschließlich GUIDs an. Mit numerischen User-IDs — so wie `mail-send` es bisher tut — antwortet die API `400 Validation failed` und „Du kannst keine Nachricht ohne Empfänger senden!". Die Meldung klingt nach einem leeren Feld, obwohl das Feld gefüllt ist, und weist bei der Suche in die falsche Richtung. Änderung: `resolve_user` gibt die GUID zurück statt der ID, neu ist `user_guid`, das die GUID über `/user/<id>` nachlädt, wenn die Benutzerliste sie nicht mitliefert. Alle drei Eingabeformen (Benutzername, Profil-URL, numerische ID) bleiben erhalten. Geprüft gegen humhub.inmedias.it: alle drei Formen lösen zur GUID auf, und der Versand über diesen Weg ist belegt. Der Fall war am 16.09. schon einmal aufgetreten; die Erkenntnis blieb damals in einem lokalen Memory und nicht im Plugin — deshalb jetzt hier. Analyse und Umsetzung mit Claude Code, Inhalt von mir geprüft und freigegeben.
jhs added 1 commit 2026-09-24 18:59:42 +02:00
POST /mail nimmt als recipient ausschliesslich GUIDs an. Mit numerischen
User-IDs antwortet die API "400 Validation failed" und "Du kannst keine
Nachricht ohne Empfaenger senden!" - eine Meldung, die nach einem leeren
Feld klingt, obwohl das Feld gefuellt ist.

resolve_user gibt deshalb die GUID zurueck statt der ID; user_guid holt
sie ueber /user/<id> nach, wenn die Benutzerliste sie nicht mitliefert.
Geprueft gegen humhub.inmedias.it mit Benutzername, Profil-URL und
numerischer ID; der Versand mit GUID ist belegt.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
jhs added 1 commit 2026-09-24 19:08:59 +02:00
Ohne Versionssprung zieht 'claude plugin marketplace update' den Fix
nicht als neue Fassung.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
jhs added 1 commit 2026-09-25 08:31:49 +02:00
Die API hat eine Direktnachricht an einen anderen als den in `recipient`
genannten Benutzer zugestellt, obwohl die ID über /user verifiziert war.
Welche Kennung sie wirklich erwartet, ist ungeklärt — und löschen lässt
sich eine Fehlzustellung nicht: DELETE /mail/<id> gibt es in dieser
Version nicht, über die Oberfläche kommt man auch nicht dran.

Deshalb drei Änderungen:

- mail-send sendet nur noch mit --send; ohne das Flag löst es den
  Empfänger auf und zeigt Namen und ID.
- Nach dem Versand wird die Teilnehmerliste gelesen und gemeldet, wer die
  Konversation tatsächlich bekommen hat.
- mail-user-remove nimmt einen Teilnehmer wieder heraus
  (DELETE /mail/<id>/user/<userid>) — das einzige Gegenmittel.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
sko merged commit 847f8ab3f4 into main 2026-09-25 11:07:45 +02:00
Sign in to join this conversation.