Added
- Messaggi (
/messaggi): chat 1:1 con UX dedicata (lista conversazioni,
thread, composer). I messaggi restano Note ActivityPub direct verso
destinatari menzionati, compatibili con Mastodon e il resto del fediverso.
- Conversazioni stabili per coppia di Actor (locale/remoto); badge non letti
in sidebar; notifica direct_message con link al thread.
- Pulsante Messaggio sui profili locali e remoti; i post DM aprono il
thread anziche' la pagina post.
- Impostazione Chi puo scriverti in privato: chiunque, solo follower,
nessuno (user_settings.direct_message_policy).
- Comando
openbook:repair-dm-commentsper spostare in/messaggii reply
DM gia' salvati per errore come commenti (--dry-run per anteprima).
Changed
- Ricezione DM federati: visibilita' corretta quando
to/cccontengono
solo destinatari specifici; inbox accetta Note indirizzate a un actor
locale anche senza tag Mention.
- Profili: azioni Segui/Smetti di seguire e messaggio (icona) sulla
stessa riga dei contatori follower/seguiti.
- Thread messaggi: invio Ajax e aggiornamento automatico (polling ogni 5s)
senza ricaricare la pagina.
- Nuova conversazione in
/messaggi: campo destinatario con
autocompletamento (persone locali e remoti in cache) senza passare dal profilo.
- Feed, profili, ricerca locale e media: i post collegati a conversazioni
private (conversation_id) non compaiono piu' nelle timeline pubbliche,
solo in /messaggi.
- Pagina Notifiche (
/notifiche): scorrimento infinito al posto della
paginazione a numeri (fallback <noscript> invariato).
Fixed
- Invio messaggio: errore SQL su
conversation_reads(chiave composta senza
colonna id); aggiornamento lettura via query diretta.
- Ricezione DM federati: testo mancante in conversazione quando la Note
arriva come stub senza content (typical Mastodon). OpenBook ora recupera
il documento completo con fetch firmato come destinatario locale e unisce
l'audience to/cc dell'attivita' Create.
- Risposte DM federate (
inReplyTosu un messaggio privato): restano nel
thread chat anziche' essere salvate come commenti fuori conversazione;
riconosciuto anche il flag Mastodon directMessage: true, il campo
inReplyToAtomUri e il conversation_id del messaggio padre (rete di
sicurezza se il fetch HTTP del Note remoto perde i metadati Mastodon).
- Routing inbox riscritto: qualsiasi Note con
directMessage: trueo
audience direct va sempre in conversazione, senza passare dal percorso
commenti (elimina doppia notifica menzione + commento).