• 0.15.1 c0db0757b8

    0.15.1 Stable

    prologic released this 7 months ago | 0 commits to c0db0757b8e7067baa90a037bf5aeb106a4dea10 since this release

    Bug Fixes

    • Fix a cache map concurrent read/write bug


    • Add Access-Control-Allow-Origin (CORS) header to all API endpoints (#1054)


    • Update CHANGELOG for 0.15.1
  • 0.15.0 33e1a844bf

    0.15.0 Stable

    prologic released this 7 months ago | 0 commits to 33e1a844bf10c6d422af34f8f3f9c843281c7f82 since this release

    yarnd v0.15 Phosphorus Phoenix

    Hello Yarners! 🤗

    It's again been a long while since our Last Release yarnd v0.14 over ~6 months ago! 😳 Sorry about that! 🙏 I guess we got a bit busy with a few other things going on...

    First of all a big thanks to everybody who has given all of their time and effort to help Yarn.social become a better platform every day.

    A special thanks to our new contributors @tkanos and @eaplmx who recently started contributing to the project! Thank you! 🙏

    Without further ado, here are the highlights for the 0.15 release!


    • Twtxt Search Engine -- The much improved Twtxt Search Engine
    • NEW Sync API 🥳 (see below)
    • Add Block Quote button to the Postbox.
    • Add official "Feed Types" (see below)

    Its a bit of a small(ish) release with no that many "big" new features (sorry!) mostly just bug fixes and little improvements. So if you're curious please see the full Change Log below.

    Twtxt Search Engine

    The much improved Twtxt Search Engine is out which improves the index greatly, performance and overall functionality and UX.

    Help pages have been improved and overall searches are "just better".

    Check it out!

    Sync API

    For a long time we've talked about the possibility of "syncing" a local feed with your feed on a Yarn.social pod. This is now possible with a 3-way Sync API /api/v1/sync and a sub command of the yarnc command-line client. Usage is as simple as:

    $ yarnc sync twtxt.txt

    See yarnc sync --help and the [Sync API (https://dev.twtxt.net/doc/api.html#sync) API endpoint documentation for more details.

    Feed Types

    In order to better improve the code and manageability of different feed types such as automated feeds (bots) and RSS / Atom feeds, we have defined a set of Feed Types namely:

    • rss -- A Twtxt feed whose primary source comes from an RSS / Atom feed.
    • bot -- A Twtxt feed which is fully automated by some script or automation.

    These are the only feed types currently and we do not expect any more really. The way this works is ti simply add # type = rss|bot to your feed if the feed you are publishing is a non-human/non-user feed. Omitting the type Metadata is completely fine and optional. The default for all feeds is a User / Human feed.

    This helps us categorize and filter out noise feeds, automated feeds from views like the "Discover" view on Yarn.social pods and serve as a way to "filter" for these types of feed in the Twtxt Search Engine.

    As per usual, please provide feedback to @prologic or reply to this Yarn 🤗

    Bug Fixes

    • Fix spelling errors
    • Fix Change Log for v0.15
    • Fix link opening preference and disallow HTML links from overriding the target attribute based on user preference (#1052)
    • Fix FilterOutFeedsAndBotsFactory() to use previously cached Twters for feed metadata
    • Fix Mute and Bookmark Btn Disapearing (#1048)
    • Fix possibly security/privact flaw in processing Markdown that allowed artbitrary style on HTML elements (#1047)
    • Fix security flaw in link parsing and only allow standard urls (#1046)
    • Fix tests
    • Fix rendering line breaks by NOT stripping
      tags from the rendered output during HTML Santization 🤦‍♂️
    • Fix FormatTwt markdown handling so posts entirely in parens are actually rendered correctly (#1045)
    • Fix position of the Remember Me checkbox o Login
    • Fix missing fieldset and labels for register and login forms and improve some help tooltips (#1043)
    • Fix behaviour of Open Registrations and /register handler so toggling Open Registrations and Join work seamlessly
    • Fix formatting of Atom Feeds of Users and the Pod's Local Timeline (#1040)
    • Fix behaviour of the link and image link buttons (#1039)
    • Fix deleting/editing last Twt behaviour where delete would also post what's in the postbox (#1038)
    • Fix typos (#1035)
    • Fix renaming merged feed to avoid invalid cross-device link errors
    • Fix missing aria-busy css (#1030)
    • Fix and improve the language around Email login and help text (#1026)
    • Fix missing aria-busy css (#1025)
    • Fix the accent bg colour of amoled theme to improve contrast (#1023)
    • Fix e2e tests by enabling open registrations
    • Fix another templat ebug (wtf)
    • Fix a template bug
    • Fix amoled theme
    • Fix API log messages
    • Fix setting to show hostname of account to match profile view
    • Fix registration spam (#981)
    • Fix confusing behaviour of Reply button on Forked conversations in /conv/ view (#1001)
    • Fix behaviour of Follow / Unfollow buttons (#1000)
    • Fix preflight checks to support Go 1.19
    • Fix indentation test
    • Fix typo and remove trailing space
    • Fix lightbox JS error on close (#948)


    • Add completed release notes for v0.15
    • Add Chnage Log for v0.15 and prepare for the Release Notes
    • Add pager support to urlForRootConv (#1053)
    • Add blockquote button to postbox (#1051)
    • Add comments on the now badly implemented FilterOutFeedsAndBots FilterFunc
    • Add FeatureFixMovedTwters (fix_moved_twters) to try to address bad cached Twters data for moved feeds (302)
    • Add a new debug endpoint to dump the pod's cache
    • Add Access-Control-Allow-Origin (CORS) Headers for Twtxt, Atom and Avatar endpoints (#1044)
    • Add feedtype icons to profile views too
    • Add feedtype icons next to the nick of each twt (#1036)
    • Add Sync API and sync sub-command for yarnc for syncing a local feed to a Yarn.social pod (#1033)
    • Add an improved version of the Settings view with Tabs (#1032)
    • Add /api/v1/whoami endpoint that exposes the Username of the logged in user (#1028)
    • Add Pod Logo resource endpoint and update Info resource to include link (#1029)
    • Add a little Javascript (optional of course) to support Drag 'n Drop to Upload files/media (#1031)
    • Add social.kyoko-project.wer.ee to known pods
    • Add yn.vern.cc to known pods
    • Add a /join endpoint and join page to combat spam and unwanted seo link submission crap until we build a proper invite system
    • Add support for serving archived/rotated feeds and the prev Metadata field (#1017)
    • Add Amoled color theme
    • Add support for indexing and searching an archive (#1010)
    • Add tool to validate feeds for analysis purposes (#1009)
    • Add optional --log-file support (#1003)
    • Add support for disabling the on-disk archive for pods with limited disk resources
    • Add some cookie tests and fix revealed bugs
    • Add start page preference for users (#956)
    • Add Health Check to Docker Container (#958)


    • Update CHANGELOG for 0.15.0
    • Update deps and fix timeline and profile view to show no icon for normal users/humans/etc
    • Update deps
    • Update API docs
    • Update go.yarn.social/types
    • Update the settings template to improve the experience (#1024)
    • Update translactions
    • Update deps
    • Update known pods
  • 0.14.0 2350def754

    0.14.0 Stable

    prologic released this 1 year ago | 0 commits to since this release

    yarnd v0.14 Silicon Sphinx

    Hello Yarners! 🤗

    Long time no release! We have a pretty big 0.14 release and we are already prepping our 0.15 features!

    First of all a big thanks to everybody who has given all of their time and effort to help Yarn.social become a better platform every day.

    Without further ado, here are the following changes for our 0.14 release!


    The biggest highlight of them all is that Yarn.social is now available on the Vultr Marketplace! 🥳

    Before we mention the fixes here are some fantastic new features found in this release:

    • Added support for muting by subject and hash.
    • Tool created for computing the on-disk Archive path for a given Twt hash.
    • Yarn.social deployment documentation.
    • Poderator alert system for displaying pod wide messages.
    • Support for displaying custom links in profiles, both locally and external facing profiles.
    • Read More option to shrink large walls of text. Javascript required.
    • Link Verification option, a popup modal box on links, for those extra cautious folk. Javascript required.
    • Third party tracker removal. Removes most (if not all) social media and other service attributes on links. Javascript required.
    • Replies to users or feeds who have been muted will display a 'muted' message.
    • Realtime feed fetching using WebSub.
    • Added additional metrics and debugging API for WebSub.
    • IndieAuth endpoint support.
    • Updated multiline extension for twtxt.
    • Updated PicoCSS

    And now for the important noteworthy bug-fixes: 🐞

    • A multitude of CSS and general UI/UX fixes. This will always be a constant battle!
    • Memory surge fix by disabling daily stats job.
    • Fix errors from bad hashes with the /conv handler.
    • Fix mentions functionality of the formatting toolbar.
    • Fix multiple image stacking.
    • Fix postbox keeping text in various cases.
    • Fix image rendering regression.
    • Fix panic errors during user lookups.
    • Fix several language translations.

    0.14.0 (2022-05-08)

    Bug Fixes

    • Fix muted message based on UL/OL (#936)
    • Fix memory surge by disabling daily stats job (expensive)
    • Fix feed page spacing (#927)
    • Fix missing lang items
    • Fix errors from bad hashes from the /conv handler (#922)
    • Fix a panic bug in lookups
    • Fix mentions functionality on formatting toolbar (#920)
    • Fix multiple image stacking (#918)
    • Fix navigation mobile menu with alerts (#910)
    • Fix prompt to go back a page on cancel (#908)
    • Fix link verification for posts containing internal links (#904)
    • Fix embed improt
    • Fix postbox keeping text after submission (#900)
    • Fix the Dockerfile.dev used by docker-compose.yml
    • Fix spacing for single image post for lightbox (#887)
    • Fix Profile CSS with no twts (#875)
    • Fix missing UnmarshalJSON() for subscriptions
    • Fix filtering out subscriptions in UpdateFeeds job
    • Fix typo
    • Fix bug in Cache that incorrectly creates Twter objects for local feeds to the pod
    • Fix WebSub handlers
    • Fix link for external muted user (#852)
    • Fix structure of HTML for non-inline rendering of media
    • Fix image render regression (#835)
    • Fix profileLinks partials to not show bookmarks link for external profiles (#832)
    • Fix profile view spacing issue (#826)
    • Fix toolbar reply postbox alignment (#824)
    • Fix invalid import in tests
    • Fix Pico CSS style tooltips from being cut off on articles (#818)
    • Fix default for DisplayMedia for new pods (Thanks @scara :D)
    • Fix User.Fork() behaviour
    • Fix install target (#790)
    • Fix #783 (#784)


    • Add support for displaying Links found in External Feeds in External Profile view (#941)
    • Add additional known pods in the wild
    • Add Deployment Guide Documentation (#933)
    • Add ndl.taigrr.com to known pods
    • Add link verification modal (#911)
    • Add user preference for stripping third party tracking on posted URLs (#913)
    • Add muted message on in-reply-to (#897)
    • Add URL verification to all external facing links (#891)
    • Add 'readmore' to all h-entry articles (#892)
    • Add Read More for all e-content (#888)
    • Add json tags
    • Add some websub_ metrics (gauges)
    • Add a debug /api/v1/websub endpoint for Poderators for easier curl + jq debugging of websub weirdness
    • Add a tool for computing the on-disk Archive path for a given Twt Hash (for example to delete it)
    • Add topic validation to websub
    • Add support for real-time feed fetching using WebSub (#857)
    • Add support for User Links in Profile and Feed Metadata (#854)
    • Add a more strict bluemonday HTML sanitizer policy (#853)
    • Add view for Muted Feeds and Twts/Yarns (#850)
    • Add support for muting by Subject and Hash (#849)
    • Add netbros.com to known pods
    • Add support for IndieAuth endpoint (#799)
    • Add network-stats script to measure the size of the network
    • Add 2022-02-09-multilineextension.md
    • Add yarnd.orbsmart.synology.me to known pods
    • Add optional support for setting up a TLS listener with Let's Encrypt support (#785)
    • Add alert system for poderators to configure (#788)
    • Add twt.rjp.is to known pods
    • Add yarnd.orbsmart.synology.me to known list of pods


    • Update some pod default configuration values
    • Update 'preflight.sh' (#899)
    • Update deps (CVE-2020-29652)
    • Update 'internal/email.go' (#860)
    • Update LICENSE to AGPLv3 and update README (#794)
    • Update multi-line extension re-@lyse
  • 0.13.0 0db6025fae

    0.13.0 Stable

    prologic released this 1 year ago | 0 commits to 0db6025fae34e328119d2f031ec8384ee47f3d1f since this release

    yarnd v0.13 Aluminium Amarok

    Hello Yarners! 🤗

    What a month (and a bit) it has been! 😅 During this time we've closed out
    78 Pull Requests, 55 Issues from the hard work of 8 contributors over 174 commits!

    This release yarnd v0.13 is special because this will be the last release
    for a while. The project will be entering a "feature freeze" whilst the developers
    and active contributors slow down a bit and work on some other much-needed components.

    We will be working on improving documentation, deployment guides, builtin pages
    and other supporting services and components in the ecosystem. In addition a
    decision has been made to relicense all software components under a new license
    (AGPLv3) going forward. We hope this will not affect contributions in any way but
    will also serve to protect what we've all worked so hard to build.

    But don't worry! We will still be committing to main, we just won't be adding
    and new significant new features for a while.

    Without further ado, here are the following changes for our 0.12 release!


    First the important noteworthy bug-fixes: 🐞

    • Fixed various rendering issues with blockquote(s) and code snippets.
    • Fixed image alt and title rendering
    • Fixed various Cache consistency bugs
    • Fixed privacy issue in "Mentions" view
    • Fixed support for WebMentions and cross-pod mentions
    • Fixed weird behaviour when accidentally posting an empty Twt

    And finally the new shiny new features! 🥳

    • Pod Owner/Operators (Poderators) can now edit Pod pages in data/pages/<name>.md and changes are reflected live!
    • Users that reply to someone they don't follow now correctly @-mention them.
    • Users can now @-mention cross-pod as well as any Twtxt-supported feed using the now well supported syntax @nick@domain
    • Added first-class support for GIF(s) 🦋 Finally! 😅
    • Added support for fetching feeds over gemini://
    • Added support for Twitter Summary Card
    • Added support for pressing Escape to cancel a Reply
    • Added support for configuring Twts Per Page in Manage Pod

    As per usual, please provide feedback to @prologic or reply to this Yarn 🤗


    Bug Fixes

    • Fix style issue for blockquotes with hard line breaks whilst still preserving the fix in #668 (#781)
    • Fix RenderImage() bug which was not permitting title attr on a or img elements during HTML sanitization
    • Fix handling of empty lines in feeds (#772)
    • Fix Cache.FollowedBy() to return true if user.Is(uri)
    • Fix bad Cache.Twters in Cache v20 and reset (letting it rebuild from source data) (#769)
    • Fix broken context for blocked feeds config/context
    • Fix ParseFile() to return types.ErrInvalidFeed on parser errors resulting in nil lines and only set Cache.Twters on successful parse (#767)
    • Fix blocked feeds configuration and add some default blocked feed patterns
    • Fix updating Cache.Twters when injecting twts and several other bad bugs found :/ (#760)
    • Fix Edit LastTwt so it works properly (#753)
    • Fix Privacy / User Preference bug in cache.GetMentions()
    • Fix bug in DownloadImage() leaking termporary files for external avatar downloads (#746)
    • Fix support for WebMentions (from the web) to /twt/ permalinks as well as /user/ links (#741)
    • Fix the way we work out what the root twt is in conversation view (#739)
    • Fix CI
    • Fix WebMentions once and for all (#737)
    • Fix bug in deleting user cache views on timeline preference change
    • Fix RenderImage() to only append ?full=1 on Media URIs that actually look like they came from a Yarn pod (#735)
    • Fix bad event handling when there is no mentioned-list DOM elements :/
    • Fix some more JS bugs with the @-mention autocomplete and restore ENTER to complete behaviour (#733)
    • Fix ENTER clearing Text in KeyDown event for @-mention autocomplete (use TAB only)
    • Fix issue with @ mentions in reply boxes (#732)
    • Fix hiding @ mention list on selection (#729)
    • Fix minor spelling error (yarml > yaml) (#730)
    • Fix broken empty post behaviour (#726)
    • Fix removing drawer class on postbox in resetPostBox()
    • Fix drawer spacing issue on last yarn (#712)
    • Fix %t (text) and %c (compat) for lextwt.Mention node and strip subject hash from Permalink OG and Twitter Card rendering
    • Fix tests
    • Fix 0f333b3
    • Fix a minor bug with IPP and add some lgging
    • Fix spacing issues and remove 'register' link in particpate message for registration disabled pods.
    • Fix to smaller images scaling to full width
    • Fix lack of public followers mapping in FetchFeeds() call in IPP
    • Fix FeatureJumpTimelineAge to guard against Divide by Zero (See #688)
    • Fix code block
    • Fix filter by age parameter that hsould have been a query string
    • Fix check for anonymous users (no username)
    • Fix Cache.GetByUserView()
    • Fix Cache.IsShadowed()
    • Fix potential template rendering error when ConversationHanadler() tries to render an empty types.Twts{} slice due to muted feeds


    • Add v0.13 Release Notes (#782)
    • Add first e2e integration test for InfoHandler() (#774)
    • Add unit tests for invalid feedds (#763)
    • Add support for cached pages with reload so Poderators can more easily customize Pod pages (#756)
    • Add yarn.yarnpods.com to known pods
    • Add support for setting the Reply text to initially @-mentino the Twter() even if the user doesn't follow them (#749)
    • Add two additional known pods
    • Add Context.View which is the name of the template/view being rendered (#740)
    • Add proper validated support for vanity URI(s) e.g: @prologic@twtxt.net (#738)
    • Add support for Avatar GIFs :D (#734)
    • Add first-class support for GIFs (#727)
    • Add support for fetching feeds over gemini://
    • Add support for %t (text) rendering to lextwt.Link node to improve OG and Twitter Card rendering
    • Add support for Twitter Summary Card (Fixes #706)
    • Add FixAdminFeeds job to cleanup @help and @twtxt feeds from AdminUser (Fixes #704)
    • Add missing download attribute db39c14 missed
    • Add support for pressing Escape to canel a Reply
    • Add small highlight to article on post box movement.
    • Add support for building and publishing two different Docker images (latest vs dev) (#693)
    • Add ability to jump to a certain 'X' hours ago on the timeline (#688)
    • Add support for configuring Twts Per Page in Manage Pod


    • Update CHANGELOG for 0.13.0
    • Update langs
  • 0.12.0 a8dd58fd0b

    0.12.0 Stable

    prologic released this 1 year ago | 307 commits to since this release

    Hello Yarners! 🤗

    What an absolute week it has been! Quite a bit of change for this Yarn release. Let me preface this by thanking everybody involved in this project; the developers, the UI/UX testers, and especially the users. 🤗

    Without further ado, here are the following changes for out 0.12 release!

    General Fixes:

    • Lots of minor alignment issues with logos, code tags and other margins and gaps!
    • Fixed the order of the ‘Hide Replies’ feature.
    • Icons size for profiles without avatars.
    • Fixed duplicate followers bug!
    • Language fixes to have more neutral text.
    • Fixed an issue with last seen text on profiles.


    • New image displays; Lightbox (as per default) and Gallery for those who prefer images below the text!
    • Variable image support; Preservation of original quality images and serving thumbnails and links to original media.
    • Support for configurable pod-level avatar and media resolutions
    • Added poderator support for deleting feeds in Manage Users
    • Basic onboarding flow for new users including automatic following of important feeds.
    • Backwards compatibility support
    • Can’t forget our CLI users; Adding of hash commands for constructing Twt hashes.
    • Added poderator support for clearing Yarn cache with the Refresh Cache option.
    • Update Pod Logo and Favicon to simpler colours.

    As per usual, please provide feedback to @prologic or reply to this Yarn 🤗

    Bug Fixes

    • Fix logo alignment. Fix gap issues with code/pre tags. (#680)
    • Fix CI
    • Fix bad commit in f7db6f9
    • Fix StatsJob() and posting stats as the statsBot via the adminUser
    • Fix sort order of Hide Replies (I think)
    • Fix JSON response of Who Follows Resource (#639)
    • Fix language used in ManageJobs() on successful job queue
    • Fix the URL for user urls in /whoFollows response
    • Fix stupid bugs caused by c14cebb
    • Fix size of icon for profiles with no avatar
    • Fix language for ProfileDoesNotFollowYou to be more neutral
    • Fix code colouring (#636)
    • Fix duplicate followers bug
    • Fix bug with updating Follower.LastSeenAt (pointer mishap)


    • Add Release Notes for v0.12.0 (Thanks @Ullarah)
    • Add support for Pod-level and User-level Display Media and Original Media settings
    • Add support back for original inline image display as a DisplayImagesPreference (inline)
    • Add Download link to Image modal dialog to download original quality media
    • Add c content-negogiated media view to access original quality media cross-pod (#666)
    • Add support for preserving original quality images and serving thumbnail + link to original (#661)
    • Add support for configurable pod-level avatar and media resolutions (#663)
    • Add support for deleting feed in Manage Pod -> Manage Users
    • Add FeatureInternalEvents (internal_events) and basic Onboarding flow for new users
    • Add support for Hide Replies user settings (Closes #549)
    • Add Avatar to Twter object for User/Feed models so injected Twts injected directly in the cache show the User/Feed's Avatar
    • Add temporary backwards compatibility for yarnd 0.11.x for the fucked up /whoFollows response in MultiUserAgent().Follows() logic
    • Add a yarnc hash command for constructing Twt Hashes by hand (useful for tests and older/legacy clients)
    • Add support for actually nuking the cache with the Refresh Cache admin UI with a Javascript confirmation
    • Add Release Notes for v0.11.0


    • Update CHANGELOG for 0.12.0
    • Update Pod Logo and Favicon to simpler colors (#658)
    • Update translations
    • Update 'AUTHORS' file (#634)
  • 0.11.0 badc723e3d

    0.11.0 Stable

    prologic released this 1 year ago | 381 commits to since this release

    Hello Yarners! 🤗

    Happy New Year! #2021 #NewYearsEve 🥳

    For those of you that live on this side of the planet, Welcome to #2022 🥳

    This year in Yarn we have a brand new version of yarnd
    for you all with exciting new features! 🥳 Some of you have already been using them! 😅


    • NEW Peers try to validate the authenticity of injected Twts between peers.This has finally #resolved the issue with my Avatar that kept reverting back and forth 😂
    • NEW New refresh Metadata field added to the Metadata ext allowing feed authors to manually hint to clients as to how often their feeds should be fetched.
    • NEW Moving Average Feed Refresh (currently in experimental) feature (Enable with moving_average_feed_refresh) that automatically backs off fetching/refreshing feeds based on an exponential moving average of feed's update frequency. This helps to reduce traffic to pods and external feeds but keep the network convergent within 60s to 10m (on-pod are always instantaneous) 🚀
    • NEW Improvements to the yarnc timeline command to support -r/--reverse and -n/--twts 🧑‍💻
    • NEW Support for pruning old dead accounts a multi-user pod might accumulate. This sends an email to the Pod Owner on a weekly basis and uses a heuristic score ranges from 1000 (every user) to 2993 (users who have never posted, never updated any part of their profile). A Poderator (Pod Owner/Operator) is sent a weekly candidates of up to 10 users with a score > 1200 for consideration. 👻
    • NEW Active Users. Pods now measure two key metrics a Poderator can track, Daily Active Users (DAU) and Monthly Active Users (MAU). These are only accurate to a day. 📈
    • NEW New followers tracking that is now actually accurate and is pruned once-per-week. So now your "Followers" count, even across pods will be accurate and up-to-date 🥳
    • FIXED Finally squished that annoying bug 🐞 causing profile data to flip-flop
    • FIXED The LookupHandler() was fixed to support auto/tab-completion for external feeds! 🥳
    • UPDATE Update Chinese and Taiwanese translations! 🇨🇳 🇹🇼

    Big thanks to @gbmor for driving the need for some much needed network optimizations!
    Thanks again to @ullarah for the many UI/UX updates and improvements! 🙇‍♂️
    And thank you again to @venjiang for updating the CN and TW translations! 👌

    As per usual, please provide feedback to @prologic or reply to this Yarn 🤗

    Bug Fixes

    • Fix -R/--raw output of yarnc timeline command
    • Fix NaN bug
    • Fix logging for FeatureMovingAverageFeedRefresh
    • Fix nil pointer bug in Cache.TwtCount()
    • Fix leaking temporary files
    • Fix leaking temporary files and remove when done
    • Fix ShouldRefreshFeed() to always refresh feeds on the same pod
    • Fix boundedMovingAverage expression
    • Fix minor bug with non-existent/blank refresh interval
    • Fix compat for old Twters in archive
    • Fix LookupHandler() and associated Javascript to handle External Avatars and only pull up what the user follows
    • Fix data race in BaseTask
    • Fix an obscure bug with injected twts from peering pods (do not fuck with the LastModified time of the feed)
    • Fix User.Unfollow()
    • Fix Unfollow behaviour
    • Fix TwtxtHandler to display and use correct profile attribute for no. of followers/followings
    • Fix source of occassional 500 errors on /conv/:hash links caused by -TwtRootLinkTitle missing from other translations
    • Fix permalink template and view to handle muted feeds
    • Fix bug displaying Followers count in Settings
    • Fix some gaping security holes by adding missing MustAuth() middleware on protected resources requiring auth (#615)
    • Fix an IndexError bug in SyndicationHandler
    • Fix followers template
    • Fix APIv1 compat by partially reverting fb43196
    • Fix possible deadlocks in store
    • Fix #602: Referrer not remembered after login (#614)


    • Add monthly active users metric (mau)
    • Add -p/--page support to yarnc timeline command
    • Add support for -n/--twts and --r/--reverse to yarnc timeline command
    • Add special case for alwaysRefreshDomains
    • Add FeatureMovingAverageFeedRefresh moving_average_feed_refresh feature
    • Add support for feed refresh intervals + spec + refactor to support handling bad feeds (#624)
    • Add ActiveUsers to startup jobs so dau isn't 0 on startup when it's not
    • Add ActiveUsers job
    • Add PruneFollowers job
    • Add the builtin theme to the Docker image at /theme
    • Add concurrency to check_pod_versions.go to make it go faster :D
    • Add a better tool (written in Go) for checking pod versions


    • Update CHANGELOG for 0.11.0
    • Update .gitignore
  • 0.10.0 4cf51ddb22

    0.10.0 Stable

    prologic released this 1 year ago | 458 commits to since this release

    This week in Yarn we have a brand new version of yarnd for you all with exciting new features! 🥳 Some of you have already been using them! 😅


    • NEW Cache Convergence! -- Phantom Twts are no more! 👻
    • NEW More UI/UX improvements all round! 🥳
    • NEW Manage Jobs for Poderators ⚙️
    • FIXED Fixed a few minor UI/UX bugs 🐞 (despite the many listed bugs below, we #testinprod 🤣)

    Big thanks to @ullarah and @fastidious for all the PRs this week 😍
    And a special thanks to @markwylde for fixing the CSS animations! 🙇‍♂️

    As per usual, please provide feedback to @prologic or reply to this Yarn 🤗

    Bug Fixes

    • Fix rotate on submit button (#612)
    • Fix Dockerfile
    • Fix deadlock proper in Converge() and use getPeers() to avoid recursive locks :/
    • Fix deadlock between cache.Converge() and cache.GetPeers()
    • Fix case where there are no suitable peers from the twts and ask a random subset (60%) of peers for the missing root twt
    • Fix search by tags because we normalize the case of tags when indexing in the cache
    • Fix posting performance by moving the Cache Convergence to the UpdateFeeds job
    • Fix noise from DetectPodFromResponse() for Twtxt responses that are non-yarnd pods with an empty/non-existent Powered-By header
    • Fix Follow/Unfollow AJAX
    • Fix error message in BaseFromURL()
    • Fix settings template
    • Fix bad merge
    • Fix bad typo
    • Fix Cache.Store() and Cache.Load() to take advantage of gob streams and reduce memory allocations on startup
    • Fix peer caching for stale peers with lastUpdated > podInfoUpdateTTL
    • Fix a bunch issues found withchanges in the UI/UX mostly to do with Follow/Unfollow and refactor profile views
    • Fix a bunch of missing UI elements on profile view


    • Add gen-secrets.sh script to provide a convenience way to generate required pod secrets
    • Add LastSeen and LastPosted support
    • Add metrics for convergence processing time and missing twts
    • Add support for cache congerence (missing root twts) (#610)
    • Add support for detecting outgoing peers
    • Add link to the Twter.URL's baseURL(or Yarn.social pod) (#607)
    • Add a Manage Jobs Poderator interface for manually triggering jobs and display background job status
    • Add docs for FromOldCache()
    • Add support for loading up a previous cache version (n-1) and migrating to current version
    • Add MemoryUsage() to help optimize some parts of the codebase's memory allocations


    • Update CHANGELOG for 0.10.0
    • Update 'README.md'
    • Update logo
    • Update managePeers template to display no. of peers at the top header
    • Update Manage Jobs icon
  • 0.9.0 6c93145b78

    0.9.0 Stable

    prologic released this 2 years ago | 517 commits to since this release

    Apologies for the long waited release of the 0.9.x series 😅 This is a release that mostly refactors a lot of the default theme's UI/UX. In particular the highlights are:

    • Updated icon-set to use the lovely Tabler Icons 😍
    • Update Profile views to be actually clean and sane! 👌
    • And lots of other small UI/UX improvements thanks to @fastidious @Ullarah and @darch 🙇‍♂️

    The only other notable changes are Work-in-Progress items that will eventually lead us to a fully distributed and cross-pod Yarns without missing context or participants (based on your interactions with others!).

    As per usual, Happy Yarn'n! And please send all feedback to @prologic or reply to this Twt! 🤗

    Bug Fixes

    • Fix memory leak of the internal taskMap for async tasks
    • Fix cache tests
    • Fix display of peers to have a consistent sort order
    • Fix tools/inject_twt.sh
    • Fix bug causing inconsisstencyin order of (#hash) @mention in forks (left over UniqStringsfrom previous refactor :O)
    • Fix form used for Following new feeds (now under Feeds view)
    • Fix profile and externalProfile to only show Follow/Unfollow and Mute/Unmute for authenticated users
    • Fix media button formatting (#569)
    • Fix the location of the tabler-icons.woff icon font and where it's served from
    • Fix bug / bad data in customTimeMagnitudes table causing incorrect relative times to be displayed for >1m


    • Add tools/compare_twt_chains.sh for comparing two pods conversation chains for set difference of twts
    • Add content-negogiated application/json output for /conv views
    • Add quick script for injecting twts from a source pod to a target pod given a hash
    • Add support for discovering peering pods (#582)
    • Add an experimental injection endpoint for injecting twts into the cache and archive


    • Update CHANGELOG for 0.9.0
    • Update External Avatar for injected Twts
    • Update to tabler-icons v1.45.0
    • Update 'internal/theme/static/css/99-yarn.css'
    • Update 'internal/langs/active.en.toml' (#571)
    • Update icons for default theme to use Tabler Icons (#562)
  • 0.8.0 80999abfa6

    0.8.0 Stable

    prologic released this 2 years ago | 566 commits to since this release

    This week in Yarn we have a brandh new version of yarnd for you all with exciting new features! 🥳 Some of you have already been using them! 🤗


    • NEW MagicLinkAuth -- Login with your email address!
    • NEW StripTwtSubjectHashes -- Twt Subject Hashes are transparently stripped
    • NEW: ShowTwtContext -- Now that Twt Subject Hashes are gone, all hail Twt Context! 😆
      ** FIXED: Fixed a few critical bugs that would cause yarnd to crash and leak resources 🐞 Sorry @jlj and @eldersnake 🤗

    Seriously though, these are massive UX improvements to the Web Interface. 👌 (hopefully these will also come to hte Mboie App too!)

    Big thanks to @darch and @fastidious for all the PRs this week 😍

    As per usual, please provide feedback to @prologic

    Bug Fixes

    • Fix CHANGELOG template (too noisey)
    • Fix loading pod settings with invalid features (Fixes #556)
    • Fix IsAdmin contexxt variable
    • Fix a potential panic in NewContext()
    • Fix bug with --disable-ffmpeg that also disable incorrectly uploading of photos/pictures
    • Fix fd socket leak in webmention handling
    • Fix the margin of the Yarn count badge
    • Fix a few bugs with twt context rendering (aparently you can't nest a tags :O)
    • Fix twt context to use proper Markdown rendering + HTML sanitizer (#532)
    • Fix css for show_twt_context so ellipsis works
    • Fix display of Root conv button for unauthenticated users


    • Add graceful AJAX support for Follow/UnFollow in Following and Followers views (Fixes #547)
    • Add support for Service Workers to be hosted at /js/ (/static/js/ in themes)
    • Add MagicLinkAuth, StripTwtSubjectHashes and ShowTwtContext as promoted features
    • Add graceful AJAX for Follow/UnFollow and Mute/UnMute for externalProfile template too
    • Add a bunch of missed defer f.Close() -- none of which I believe could lea file descriptors though from open files (#531)
    • Add a class to the twt navigation (#528)
    • Add getRootTwt template function
    • Add experimental Twt Context feature enabled with show_twt_context
    • Add support for displaying list of features with ./yarnd --enable-feature list


    • Update CHANGELOG for 0.8.0
    • Update CHANGELOG for 0.8.0
    • Update CHANGELOG for 0.8.0
    • Update CHANGELOG template and config
    • Update 'internal/theme/static/css/99-yarn.css' (#534)
    • Update 'internal/theme/static/css/99-yarn.css' (#533)
    • Update default pod logo as per abb9c01
  • 0.7.4 5863328c80

    0.7.4 Stable

    prologic released this 2 years ago | 625 commits to since this release

    This is the 4th Hotfix in the yarnd v0.7.x series just due to my sheer tiredness and my own limitations (I'm not perfect 😅). Sorry for the noise! Please upgrade to this hotfix when you can! cheers! 🙇‍♂️

    Bug Fixes

    • Fix dupe Twt bug in User views by returning a copy of the view's slice
    • Fix broken logic for archived root twts


    • Update CHANGELOG for 0.7.4