Added
- Feed RSS/Atom come contatti (stile Friendica): dalla ricerca puoi
incollare l'URL di un feed o di un sito con feed rintracciabile; Openbook
crea un Actor di tipo feed, importa le voci come post pubblici e ti
permette di seguirlo nella home (relazione one-way, senza ActivityPub).
Aggiornamento periodico via openbook:fetch-feeds incluso in
openbook:cron.
- Menu laterale: voce Tendenze sotto Community, con la stessa
destinazione della pagina hashtag popolari (/tag).
- Notifiche di like e condivisione: nome e avatar di chi ha agito
portano al suo profilo Openbook; il resto della riga (e «Vedi») resta
sul contenuto coinvolto.
Changed
- Ricerca: mentre si digita nella navbar o nella pagina
/cerca
compaiono suggerimenti (persone locali discoverable, account remoti gia'
in cache, hashtag), sullo stesso schema delle menzioni. Frecce per
selezionare, Invio sul suggerimento apre profilo/tag; Invio senza
selezione avvia la ricerca completa. Nessuna chiamata WebFinger in
autocomplete (GET /cerca/suggerimenti).
- Condividi / repost sui post: condivisione diretta e annullamento
avvengono via AJAX (come i Mi piace), senza ricaricare la pagina.
- Menu condividi: Annulla condivisione compare solo dopo un repost
diretto; la sola citazione con commento lascia Condivisione diretta
(il contatore resta aggiornato anche per le citazioni).
- Persone da seguire (sidebar): su pagine hashtag e ricerca per keyword
propone profili (locali discoverable e remoti in cache) la cui bio
menziona il tag o la parola cercata; altrove resta il suggerimento
predefinito. Se non ci sono corrispondenze, si ripiega sul box
standard.
- Box Persone da seguire: handle lunghi vanno a capo senza spingere
fuori dal riquadro il pulsante Segui.
- Tab Community remote: sezione Community popolari su questa istanza
con Group remoti gia' seguiti da altri utenti locali (classificati per
iscritti sull'istanza), con pulsante per richiedere l'iscrizione; visibile
anche agli ospiti. Le community gia' seguite o in attesa non compaiono
tra i suggerimenti.
- Allegati audio sui post: in ingresso federato (Mastodon e simili,
Document/Audio con audio/*) e in uscita dal composer locale
(MP3, OGG, WAV, M4A, FLAC, AAC); riproduzione inline con <audio controls>.
- Rifiuto richiesta di follow: notifica locale a chi aveva richiesto
di seguire (accettazione o rifiuto da profilo protetto o da remoto via
Reject).
Fixed
- Avviso sul contenuto: il soffietto copre anche immagini, audio, video
e citazioni allegate, non solo il testo del post.
- Menu condivisi: «Annulla condivisione» non compare piu' insieme a
«Condivisione diretta» sui post non ancora ripostati (il CSS del menu
annullava l'attributo hidden sui form).
- Post federati con una sola immagine non mostrano piu' duplicati in
galleria quando il server remoto invia piu' varianti dello stesso file
(es. WordPress ActivityPub con thumbnail -150x150 e media -1024x572,
o Mastodon con URL original e small): si conserva la variante a
risoluzione piu' alta. I post gia' in cache si correggono al refresh
remoto del documento.
- Actor remoti con preferredUsername lungo (tipico WordPress ActivityPub,
che usa il dominio del blog come username, es.
@blog.example.com@blog.example.com) non falliscono piu' in inserimento
per limite MySQL su actors.preferred_username (esteso a 255 caratteri;
resta 32 per gli account locali).
- Elenchi follower / seguiti (e box suggerimenti): gli avatar non vengono
piu' allungati orizzontalmente dal layout flex del testo accanto.
- Scorrimento infinito nei feed: la paginazione usa un cursore ancorato
all'ultimo post mostrato invece del numero di pagina, evitando duplicati
quando arrivano nuovi post mentre si scrolla; deduplica lato client come
rete di sicurezza. Il cursore del feed home/profilo ripete la subquery di
shared_at nel WHERE (l'alias SELECT non e' usabile su MySQL/MariaDB).
La pagina hashtag accetta correttamente la relation BelongsToMany dei
post (non solo un Builder).
- Create consegnati all'inbox personale di un utente (es. messaggio
opzionale dopo un rifiuto da bridge ActivityPub) non vengono piu' ignorati:
vengono trattati come messaggio diretto in /messaggi quando non sono
post pubblici.
- Pagine che interrogano server remoti (profili/community federate, post
remoti, ricerca @utente@dominio) non mostrano piu' l'error page di
Laravel quando l'host esterno e' irraggiungibile o va in timeout cURL:
la richiesta fallisce in silenzio e resta visibile il contenuto gia'
in cache locale.