<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Openbook 26.36 — Grumpy Waffle]]></title><description><![CDATA[<p><b>Openbook 26.36 — Grumpy Waffle</b></p><p>Come ormai da tradizione, il venerdì sta diventando il giorno dei rilasci. Oggi si conclude anche la lunga strada di fix e implementazioni di questa nuova stable per il progetto Openbook, la <strong>26.36 — Grumpy Waffle</strong>.<br /><a href="https://about.openb.app/getting-started.php" rel="noopener noreferrer nofollow ugc">https://about.openb.app/getting-started.php</a></p>
<p>Ecco le nuove funzionalità aggiunte:</p>
<ul>
<li><strong>Notifiche Web Push</strong> per browser desktop e mobile, attivabili per ogni<br />dispositivo da Impostazioni account. Una coppia VAPID per istanza e le<br />subscription cifrate alimentano un'outbox dedicata; il poller la sopprime<br />quando l'utente e' attivo, altrimenti <code>openbook:cron</code> consegna dopo 75<br />secondi con testo localizzato e icona dell'istanza. Consegna best effort<br />senza retry, pulizia automatica degli endpoint scaduti e click sulla<br />notifica verso <code>/notifiche</code> tramite service worker.</li>
<li>Menu condividi del post: voce <strong>Condividi a utente</strong><br />(<code>GET /posts/{post}/condividi-a-utente</code>). Apre i messaggi privati con il<br />post gia' citato: scegli il destinatario e invia (commento opzionale).<br />La citazione riusa <code>posts.quoted_post_id</code> come le quote pubbliche, senza<br />incrementare il contatore di condivisione ne' notificare l'autore originale.</li>
<li><strong>Condividi a utente</strong> anche sui profili (icona accanto al messaggio<br />privato): <code>GET /@{user}/condividi-a-utente</code> e<br /><code>GET /attori/{actor}/condividi-a-utente</code>. Il messaggio cita il profilo<br />(<code>posts.quoted_actor_id</code>) con link alla pagina Openbook locale<br />(<code>/@username</code> o <code>/attori/{id}</code>), non all'URI ActivityPub originale, cosi'<br />il destinatario puo' seguire da questa istanza.</li>
<li>Pannello di controllo, impostazioni istanza: upload della <strong>favicon</strong><br />del sito. Da un'unica immagine (consigliato quadrato 512×512) vengono<br />generate la favicon 32×32, l'Apple Touch Icon 180×180 (iOS) e le icone<br />Android 192/512 (anche maskable) per «Aggiungi alla schermata Home»,<br />piu' un web app manifest in <code>GET /manifest.webmanifest</code>.</li>
<li>Profili remoti (<code>GET /attori/{actor}</code>): follower e seguiti usano i<br />conteggi <code>totalItems</code> delle collection ActivityPub del server di origine,<br />con cache di 24 ore (<code>OPENBOOK_COLLECTIONS_CACHE_TTL_HOURS</code>). La data di<br />iscrizione arriva dal campo <code>published</code> del documento Person (o equivalenti<br />JSON-LD / <code>createdAt</code>). Visitando il profilo si rilegge l'Actor se la data<br />non e' ancora in cache. Si conserva anche un campione della prima pagina<br />della lista (non l'intero grafo, e non nel grafo locale <code>follows</code>).</li>
<li>Pannello di controllo, sezione <strong>Aspetto</strong> (<code>GET /admin/aspetto</code>): CSS<br />personalizzato che sovrascrive il template sul sito pubblico (non sul<br />pannello). Anteprima live in iframe su una pagina di esempio<br />(<code>GET /admin/aspetto/anteprima</code>); il sito reale cambia solo al salvataggio.</li>
<li>Impostazioni istanza: <strong>finestra in giorni</strong> per gli hashtag in tendenza<br />(sidebar e <code>GET /tendenze</code>, default 7). I conteggi oltre 999 si mostrano<br />in forma compatta (<code>19,6k</code> in italiano, <code>19.6k</code> in inglese).</li>
<li>Cliccando il numero di <strong>Mi piace</strong> o <strong>Condivisioni</strong> di un post si apre<br />un dropdown con chi ha reagito (<code>GET /posts/{post}/piace-a</code> e<br /><code>GET /posts/{post}/condiviso-da</code>). L'icona continua a mettere mi piace o<br />ad aprire il menu condividi. Senza JavaScript le stesse URL mostrano una<br />pagina con l'elenco. Massimo 40 nomi, poi "e altri N". La visibilita'<br />e' la stessa del post.</li>
<li>Post remoti: i contatori <strong>Mi piace</strong> e <strong>Condivisioni</strong> sulle card<br />usano i <code>totalItems</code> delle collection <code>likes</code>/<code>shares</code> del server di<br />origine (stesso GET della Note usato per i commenti, TTL<br /><code>OPENBOOK_REPLIES_CACHE_TTL_HOURS</code>). Se il totale non e' inline, al<br />massimo un GET in piu' per collection, senza scaricare l'elenco<br />completo. Il conteggio locale resta un pavimento. I totali arrivano<br />anche dall'outbox quando si importa il post.</li>
<li>Tab <strong>Attività</strong> sui profili Person (<code>GET /@{username}/attivita</code> e<br /><code>GET /attori/{actor}/attivita</code>): stream cronologico di <strong>commenti<br />(risposte)</strong> e <strong>condivisioni</strong> visibili a questa istanza, <strong>solo per<br />utenti autenticati</strong>. I visitatori anonimi non vedono il tab e<br /><code>/attivita</code> reindirizza al login. I mi piace, i post propri e i follow<br />non compaiono: i post restano nel tab dedicato. Scorrimento infinito<br />(<code>OPENBOOK_ACTIVITY_PER_PAGE</code>, default 20). Sui profili remoti la<br />cronologia e' solo cio' che l'istanza gia' conosce (non l'outbox<br />completo). Community e feed RSS non hanno il tab.</li>
<li>Menu del post: voce <strong>Modifica</strong> per i propri post locali pubblicati<br />(non i messaggi privati). Apre lo stesso composer della pubblicazione,<br />in un dialog se JavaScript e' disponibile (<code>GET /posts/{post}/modifica</code><br />come fallback senza JS). Il salvataggio (<code>PUT /posts/{post}</code>) aggiorna<br />testo, titolo, avviso e visibilita', consente di aggiungere allegati,<br />e ritrasmette un'attivita' ActivityPub <code>Update</code> alla stessa audience.</li>
</ul>
<p>Per tutto il resto dei dettagli su cambiamenti e bugfix, si rimanda come sempre al <a href="https://about.openb.app/changelog.php?version=26.36" rel="noopener noreferrer nofollow ugc">changelog</a> di questa versione.</p><p>in <a href="/user/..%2Fcategory%2Fannunci%40openb.app" rel="mention">@annunci@openb.app</a></p>]]></description><link>https://forum.pierobosio.it/topic/d9d3891f-d4fb-4713-8cbb-d1315f2cd0c2/openbook-26.36-grumpy-waffle</link><generator>RSS for Node</generator><lastBuildDate>Tue, 22 Sep 2026 18:18:13 GMT</lastBuildDate><atom:link href="https://forum.pierobosio.it/topic/d9d3891f-d4fb-4713-8cbb-d1315f2cd0c2.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 04 Sep 2026 12:12:24 GMT</pubDate><ttl>60</ttl></channel></rss>