#crystallang 75 hashtags

Todd Sundsted
Release v2.4.2 of Ktistec

Release v2.4.2 fixes a few more bugs. Only one is a regression—I found the others while testing. In this release:

Fixed

  • Fix metrics chart line labels.
  • Permit del, ins, and s elements in sanitized HTML.
  • Only store the redirect_after_auth_path on browser navigation.
  • Add "content" property to editor JSON error response.
  • Use FileUtils.mv to move uploaded files. (fixes #117)

Thanks to @jayvii for help with troubleshooting the last one!

#ktistec #fediverse #activitypub #crystallang

Todd Sundsted
Release v2.4.1 of Ktistec

Eh, I didn't test enough and released v2.4.0 of Ktistec with a few annoying regressions. Release v2.4.1 fixes them! ☹️ 😠 😡 🤬

Fixed

  • Handle edge cases and race conditions in script runner.
  • Reconnect editor autocomplete support.
  • Fix permissions on uploaded files.

#ktistec #fediverse #activitypub #crystallang

Todd Sundsted
Release v2.4.0 of Ktistec

I just released v2.4.0 of Ktistec. This release encompasses a few things that I've been working on for a while: improved support for operating without JavaScript available/enabled and support for running scripted automations.

Except for a few items, Ktistec now works without JavaScript. Obviously, things like WYSIWYG editing of HTML don't work—I plan to add support for Markdown to compensate. Running in Lynx is a stretch, but...

lynx on osx displaying the authenticated home page

Since the early days, most controller actions supported both text/html and application/json.  I cleaned up support for the latter and have officially documented the Ktistec API in the README.

In addition, I've added support for running bots/automations (prior announcement). The Ktistec server will periodically run any executable script in the etc/scripts directory. These scripts have access to the Ktistec API and can post, follow, share, like, etc. This is experimental and obviously introduces an attack surface, though that shouldn't be a problem on correctly configured hosts.

Here's the full changelog:

Added

  • Support running scripted automations.
  • "Fetch Once" button on hashtag and thread pages. (fixes #108)
  • Support navigation to a post's threaded view. (fixes #108)
  • Add support for post name and summary.

Fixed

  • Improve support for operating without JavaScript available/enabled.
  • Only enforce CSRF protection on "simple" requests.

Changed

  • Replace use of multi-action controller with formaction. (fixes #101)

Other

  • API usability improvements.


#ktistec #fediverse #activitypub #crystallang

Todd SundstedCrystalLanguage

And we have a new release: Crystal 1.14.0 🚀
Read about the highlights in crystal-lang.org/2024/10/09/1.

Happy Crystalling!

#CrystalLang #release

Todd Sundsted
Todd Sundsted

I just released v2.3.0 of Ktistec.  It fixes a few bugs introduced in the previous release. In particular, it handles a case I've observed a few times in production where the fetching of followed content hangs. The fix adds a monitor that periodically checks for "running" tasks without a backing fiber and sets socket timeouts to ensure requests eventually terminate (I believe the latter actually fixes the problem, but belts and suspenders...)

#ktistec #crystallanguage #crystallang #activitypub #fediverse

Todd SundstedCrystalLanguage

Today we celebrate the 12th anniversary of Crystal!
The initial commit was on September 4, 2012 🎉

github.com/crystal-lang/crysta

#crystallang #history #anniversary

Todd Sundsted

I just released v2.2.0 of Ktistec. A lot of code was written but the main user-visible change is streaming timeline updates to the web client using server-sent events.  The back-end pub/sub framework will also make it easier to decouple some components down the road.

I want a visual indicator that new posts are in my timeline. I appreciate that not everyone feels the same way—if there's interest I may make it switchable.

And now, off to #worldcon!

#ktistec #fediverse #crystallang

Todd Sundsted

the last few days are more in line with what i expect. there is a (temporary) bump in memory, but that corresponds to a large increase in traffic.

daily charts of memory, traffic, and server restarts for epiktistes

#ktistec #crystallang

Todd Sundsted

for reasons i don't understand, some restarts of epiktistes result in huge memory usage spikes—reported both by the garbage collector and the operating system. what's interesting is heap size and free memory move roughly in tandem (though the difference isn't constant), which implies that there is free memory, but perhaps it's too fragmented to be useful?

daily charts of memory, traffic, and server restarts for epiktistes

a restart typically fixes the problem...

#ktistec #crystallang