Added
- Anteprime dei post condivisi: le pagine dei post pubblici espongono
metadati Open Graph con titolo, estratto e prima immagine o copertina video,
permettendo alle applicazioni compatibili di generare preview piu' complete.
- Custom emoji federate ([issue #76](https://github.com/insicd/openbook/issues/76)):
le emoji dichiarate nei tag ActivityPub vengono conservate e mostrate
inline nei post, nei commenti, nei nomi e nelle biografie degli Actor remoti.
Shortcode e URL sono validati, mentre i file restano ospitati sull'istanza
di origine senza introdurre cataloghi o download locali.
- Condivisione nativa dei post pubblici
([issue #75](https://github.com/insicd/openbook/issues/75)): sui browser che
supportano la Web Share API, il menu di condivisione permette agli utenti
autenticati di inviare il permalink locale tramite il menu del dispositivo.
- Follow locale degli hashtag: dalla pagina di un tag e dall'elenco delle
tendenze gli utenti possono seguire o smettere di seguire un hashtag. I post
pubblici gia' conosciuti dall'istanza entrano nella Home personale senza
duplicati; i tag seguiti restano privati e compaiono, mescolati per data agli
Actor, soltanto nell'elenco "Seguiti" del proprietario.
- Posizione facoltativa nei post: il composer permette di scegliere una
citta' dal catalogo locale GeoNames oppure di proporre quella piu' vicina
tramite la geolocalizzazione del browser. La posizione puo' essere aggiunta,
modificata o rimossa, viene mostrata nelle card e federata come Place
ActivityStreams; sono supportate anche le location ricevute dai post remoti.
Il catalogo cities500 si installa o aggiorna con il comando dedicato
openbook:update-cities; fino al primo import riuscito i controlli location
restano nascosti e il resto di Openbook funziona normalmente. Le coordinate
precise del dispositivo sono usate soltanto per la ricerca, senza essere mai
salvate, mostrate o federate.
- Supporto video locale opt-in: dal pannello amministrativo si configurano
FFmpeg/ffprobe e limiti di upload, durata, risoluzione, fps e copy-through.
I post con video vengono salvati in staging privato, analizzati con ffprobe
e pubblicati solo dopo l'eventuale conversione MP4 H.264/AAC e la generazione
del poster. Il worker CLI dedicato (openbook:process-videos) puo' restare
residente oppure essere richiamato da cron con --once; claim con lease,
retry limitati e collegamento idempotente evitano doppie pubblicazioni. La
home mostra i lavori in attesa/falliti e permette all'autore di eliminarli.
Fixed
- Custom emoji federate: i nomi degli Actor ora renderizzano correttamente le
emoji anche in notifiche, attivita', commenti, messaggi, segnalazioni e liste
delle reazioni; nei contesti solo testuali gli shortcode dichiarati vengono
rimossi senza alterare eventuali sequenze sconosciute.
- Commenti remoti ([issue #74](https://github.com/insicd/openbook/issues/74)):
il timestamp ActivityPub published viene conservato in created_at sia
per le reply ricevute in inbox sia per quelle recuperate aprendo un post;
un successivo aggiornamento corregge anche gli orari importati in precedenza.
- Composer con allegati: l'upload usa XHR e mostra avanzamento percentuale,
disabilitando il pulsante durante l'invio per rendere evidente che i file
piu' grandi sono in caricamento. Errori e redirect conservano il flusso
esistente; i post senza allegati continuano a usare il submit tradizionale.
- Actor remoti ([issue #62](https://github.com/insicd/openbook/issues/62)):
le date di pubblicazione fuori dal range supportato da MySQL TIMESTAMP
vengono ignorate, senza impedire il salvataggio del profilo.
- Dettaglio post (
GET /posts/{post}):PostPublicationStagernon viene
piu' risolto nel costruttore del controller. Serve solo allo staging dei
video in pubblicazione; iniettarlo su ogni azione faceva fallire la
pagina se l'autoloader non aveva ancora la classe.
- Pannello Impostazioni istanza (
GET /admin/impostazioni):VideoCapability
viene usata solo se il supporto video e' attivo (o lo si sta attivando),
non su ogni apertura della pagina.
- Inbox ActivityPub: le
Deletedi Actor o contenuti remoti gia' assenti sono
accettate in modo idempotente; gli Actor cancellati vengono anonimizzati come
tombstone liberando URI e handle, senza recuperare da remoto chiavi ormai non
disponibili. Normalizzazione centralizzata degli URI e log sintetici rendono
piu' affidabili autenticazione e diagnosi delle attivita' inoltrate.
- Interfaccia profilo e mobile: il tab media indica esplicitamente "Foto e
video"; sugli schermi piccoli la campanella con il numero delle notifiche
non lette resta visibile accanto al menu e porta alla pagina notifiche.
- Composer: la dimensione degli allegati viene controllata nel browser prima
dell'upload, usando i limiti media e video configurati dall'istanza; i file
troppo grandi vengono segnalati immediatamente senza attendere il server.