#kittenreleases — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #kittenreleases, aggregated by home.social.
-
🥳 New Kitten¹ Release
Fixed:
• (Possible regression?) Value referencing during database event logging (see 2026-04-02 release²) was broken. This is now fixed.
Enjoy!
:kitten:💕
¹ https://kitten.small-web.org
² https://codeberg.org/kitten/app/src/branch/main/CHANGELOG.md#2026-04-02#Kitten #KittenReleases #SmallWeb #SmallTech #bugFix #regression
-
🥳 New Kitten¹ Release
Fixes:
• Actually fixes the plain HTMX connection state handlers. They’re now stable and exactly match the behaviour of the Alpine.js handlers in plain HTMX (this was not trivial https://codeberg.org/kitten/app/commit/b53bb6d02c568b7119ae2851596943fad78a0ffa due to a limitation in HTMX https://github.com/bigskysoftware/htmx/issues/2131).
Enjoy!
:kitten:💕
¹ kitten.small-web.org
-
🥳 New Kitten¹ Release
Fixes:
• The `kitten.html` shorthands for plain HTMX client-side event handling of a Kitten Page’s default WebSocket lifecycle (`on:connecting`, `on:connect`, and `on:disconnect`) were generating faulty HTMX code (the Alpine.js versions, `@on:connecting`, `@on:connect`, and `@on:disconnect`, were fine). The plain HTMX versions now also generate working code.
• Replaced direct `eval` in a statement in the Kitten Introspection API to improve safety and silence the esbuild warning.Full change log: https://codeberg.org/kitten/app/src/branch/main/CHANGELOG.md#2026-04-10
Enjoy!
:kitten:💕
-
🥳 New Kitten¹ Release
• Adds Kitten Introspection API
I’ll record a video this week demonstrating it.
In the meanwhile, check out the change log for details:
https://codeberg.org/kitten/app/src/branch/main/CHANGELOG.md#2026-03-29Enjoy!
:kitten:💕
¹ https://kitten.small-web.org
#Kitten #KittenReleases #SmallWeb #SmallTech #introspectionAPI #web #dev
-
🥳 New Kitten Release
• Implement garbage collection timeout for unconnected pages
Added a timeout to KittenPage instances so that if they do not connect within 10 seconds, they are garbage collected.
This is to avoid a memory leak in the scenario where a person rapidly refreshes a class-based (state maintaining) Kitten page. In such a scenario, the almost instant page lifecycle does not allow enough time for the page’s default WebSocket to connect and disconnect from the client. As we normally garbage collect pages when their default WebSocket disconnects, this leaves the page object in memory, creating a memory leak.Enjoy!
:kitten:💕
-
🥳 New Kitten Release
• Fix: Events on `KittenComponent` hierarchies are now bubbled in reverse (from children down to parents). This provides for predictable event firing in cases where parents might emit events (e.g., a page emitting an event from its `onConnect()` handler). Your existing code should work as before with certain edge cases that might have broken before no longer breaking.
Enjoy!
:kitten:💕
#Kitten #KittenReleases #SmallWeb #SmallTech #web #dev #events #serverSide #eventBased #components #hypermedia #streamingHTML
-
🥳 New Kitten Release
• `KittenComponent` (and thereby `KittenPage`) gains an `emit()` method.
Use this to bubble events from your page to all child components or from any component to all of its child components.
This is useful, for example, for setting the state of a page or a component where each child component knows how to present itself for that state.
(That, in turn, is useful if you want to be able to restore state based on URLs.)
The naming convention-based mapping of event names to event handler names is the same as for the events you receive from the client. So an event called `myEvent` will result in `onMyEvent` handlers on child components being called.(Also update @small-web/kitten to version 7.1.0 to get language intelligence for the new method.)
Enjoy!
:kitten:💕
#Kitten #KittenReleases #SmallWeb #SmallTech #web #dev #events #serverSide #eventBased #components #hypermedia #streamingHTML
-
🥳 New @small-web/kitten (Kitten globals) release.
• Improved type information.
• Now plays nice with tsconfig.json and tsc.
• Adds `rawBody` to `KittenRequest`.This is not really a breaking change (in that it won’t break your apps) but I’m releasing it as a major version update so as not to surprise you if you notice the type information is different (more detailed than before).
To update in your kitten apps:
npm install @small-web/kitten@7For more information on how to use this module, see the Kitten Type Safety tutorial:
https://kitten.small-web.org/tutorials/type-safety/Full change log:
https://codeberg.org/kitten/globals/src/branch/main/CHANGELOG.md#7-0-0-2026-03-19Enjoy!
:kitten:💕
#Kitten #KittenReleases #SmallWeb #SmallTech #web #dev #typeSafety #JavaScript #JS #nodeJS
-
🥳 New Kitten¹ Release
• Fixes: Page infinitely refreshes if class does not extend `kitten.Page`
Kitten now shows a helpful error message for this authoring error.
(The issue was due to the page getting rendered without the necessary scaffolding provided by the base class for maintaining the web socket connection,. leading to Kitten thinking the socket connection had failed and triggering a reload to reestablish it.)
Full changelog of today’s updates: https://codeberg.org/kitten/app/src/branch/main/CHANGELOG.md#2026-03-18
Thanks to @joshhatesgithub (https://codeberg.org/joshhatesgithub) for discovering and reporting this last night.
Enjoy!
:kitten:💕
¹ https://kitten.small-web.org
#Kitten #KittenReleases #SmallWeb #developerExperience #bugFix
-
🥳 New Kitten¹ Release
• Adds `rawBody` to non-multipart POST requests.
This property, which is a Buffer, is necessary if you want to verify signatures (e.g., for webhooks).
I had to fork express-busboy as they already ruled out adding it. The fork (@small-web/kitten-busboy²) also allowed me to type the middleware extension point for Polka³ instead of Express (Kitten uses Polka) so that’s one @ts-ignore removed (hey, dev is a string of little wins) :)
Change log: https://codeberg.org/kitten/app/src/branch/main/CHANGELOG.md#2026-03-18
Caught a bug and feeling a little under the weather at the moment (nothing major, mom and dad – no need to worry) so apologies if I’m not responsive here.
Enjoy!:kitten:💕
¹ https://kitten.small-web.org
² https://codeberg.org/kitten/busboy
³ https://github.com/lukeed/polka#Kitten #SmallWeb #KittenReleases #busboy #polka #express #bodyParsing #middleware #NodeJS #web #dev
-
🥳 New Kitten¹ Release
• Fixed: Errors in a project’s _main.script.js_ now cause a hard crash without retry attempts. The errors are also now better classified and communicated.
• Housekeeping: Removed unmaintained dev dependency, updated supported ES versions to esnext and simplified jsconfig.json.Full change log:
https://codeberg.org/kitten/app/src/branch/main/CHANGELOG.md#changelogEnjoy!
:kitten:💕
-
🥳 New Kitten release
Several but fixes, thanks to wunter8 (https://codeberg.org/wunter8):
• Default socket doesn't work when testing with a local mobile device (https://codeberg.org/kitten/app/issues/310)
• Apostrophes in the text content of <if> tags can cause problems (https://codeberg.org/kitten/app/issues/312)Also, there’s now a canonical place to initialise state-maintaining child components when using the new (and still undocumented) class-based Kitten Component system. Until it’s all documented, please refer to this:
https://codeberg.org/kitten/app/issues/311#issuecomment-11126516
Enjoy!
:kitten:💕
-
🥳 New Kitten Release
I just reworked the fix for this to simplify the Kitten renderer (as this fix introduced a regression with components getting instantiated multiple times due to the fall-through logic between asynchronous and synchronous rendering). The renderer now treats every component render function as asynchronous, thereby avoiding the issue entirely.
Enjoy!
💕
#Kitten #KittenReleases #SmalWeb #SmallTech #web #dev #components #async #rendering
-
🥳 New Kitten Release
This one fixes a bug that you would have encountered had you had an asynchronous component (component with asynchronous render method) nested more than one-level deep within synchronous components.
(Kitten’s html renderer transparently supports both synchronous and asynchronous render methods.)
So, this (taken from my unit test), for example, works correctly now:
```js
class AsynchronousOtherName extends KittenComponent {
async html () {
await new Promise(resolve => setTimeout(resolve, 10))
return kitten.html`<i>Balkan</i>`
}
}class SynchronousName extends KittenComponent {
/* NOT async */ html () {
return kitten.html`<strong>Aral</strong> <${AsynchronousOtherName.connectedTo(this)} />`
}
}class SynchronousTemplate extends KittenComponent {
html ({ SLOT }) {
return kitten.html`[Before slot]${SLOT}[After slot]`
}
}class MyPage extends KittenPage {
html () {
return kitten.html`
<${SynchronousTemplate.connectedTo(this)}>
<h1>This should render all at once after a short delay.</h1>
<p>Hello, <${SynchronousName.connectedTo(this)} /></p>
</>
`
}
}
```Enjoy!
:kitten:💕
#Kitten #KittenReleases #SmallWeb #SmallTech #web #dev #JavaScript #NodeJS #async #render
-
🥳 New Kitten Release
• Added `target` and `data-*` to the list of safe attributes you can specify within curly brackets when writing Markdown in Kitten.
Enjoy!
:kitten:💕
#Kitten #KittenReleases #SmallWeb #SmallTech #Markdown #web #dev
-
🥳 New Kitten¹ release
• Added `initialise()` hook to `kitten.Component` instances.
This gets called at the end of the constructor and is handy if you don’t want to override the constructor and have to handle the `data` parameter and remember to call `super(data)`. You can still access passed data from `this.data`.
Note that the component is not part of the view hierarchy on the client at this point. If you have tasks you need to perform only once per page – for example, instantiating a child component to use in your view template – override the `onConnect()` handler instead which is guaranteed to be called just once when your component has successfully been added to a connected page.https://codeberg.org/kitten/app/src/branch/main/CHANGELOG.md#2026-02-23
Enjoy!
:kitten:💕
¹ https://kitten.small-web.org
#Kitten #KittenReleases #SmallWeb #SmallTech #web #dev #components
-
🥳 New Kitten release
⁃ Bug fix: Kitten no longer awaits events bubbled from the client to the server.
Kitten’s Streaming HTML workflow¹ transparently bubbles events from the client to the server so you can keep all your code on one tier and stream HTML updates to the page. Anyway, so I was awaiting events while bubbling them instead of just firing them off in parallel which meant that if you had delays, etc., in some of your event handlers, the timing of other event handlers would be affected. This is now fixed so your event handlers should fire independently of each other. (Your async event handlers will continue to work as intended so you can script animations, etc., by awaiting delays within them.)
Enjoy!
:kitten:💕
¹ https://kitten.small-web.org/tutorials/streaming-html/
#Kitten #KittenReleases #SmallWeb #SmallTech #bugFix #events #StreamingHTML
-
🥳 New Kitten release
Just released a new version of Kitten that now includes JSDB 7.0.0 with its improved JSTable.PERSIST event.
Note that this is a breaking change. If you’re listening for the old 'persist' event, please update your code.
For more information, please see the changelog: https://codeberg.org/kitten/app/src/branch/main/CHANGELOG.md#breaking-changes
Enjoy!
:kitten: 💕
#SmallWeb #SmallTech #Kitten #KittenReleases #web #dev #JavaScriptDatabase #JSDB #NodeJS
-
🥳 New Kitten release
Just released a new version of Kitten that now includes JSDB 7.0.0 with its improved JSTable.PERSIST event.
Note that this is a breaking change. If you’re listening for the old 'persist' event, please update your code.
For more information, please see the changelog: https://codeberg.org/kitten/app/src/branch/main/CHANGELOG.md#breaking-changes
Enjoy!
:kitten: 💕
#SmallWeb #SmallTech #Kitten #KittenReleases #web #dev #JavaScriptDatabase #JSDB #NodeJS
-
🥳 New Kitten release
Just released a new version of Kitten that now includes JSDB 7.0.0 with its improved JSTable.PERSIST event.
Note that this is a breaking change. If you’re listening for the old 'persist' event, please update your code.
For more information, please see the changelog: https://codeberg.org/kitten/app/src/branch/main/CHANGELOG.md#breaking-changes
Enjoy!
:kitten: 💕
#SmallWeb #SmallTech #Kitten #KittenReleases #web #dev #JavaScriptDatabase #JSDB #NodeJS
-
🥳 New Kitten release
Just released a new version of Kitten that now includes JSDB 7.0.0 with its improved JSTable.PERSIST event.
Note that this is a breaking change. If you’re listening for the old 'persist' event, please update your code.
For more information, please see the changelog: https://codeberg.org/kitten/app/src/branch/main/CHANGELOG.md#breaking-changes
Enjoy!
:kitten: 💕
#SmallWeb #SmallTech #Kitten #KittenReleases #web #dev #JavaScriptDatabase #JSDB #NodeJS
-
🥳 New Kitten release
Just released a new version of Kitten that now includes JSDB 7.0.0 with its improved JSTable.PERSIST event.
Note that this is a breaking change. If you’re listening for the old 'persist' event, please update your code.
For more information, please see the changelog: https://codeberg.org/kitten/app/src/branch/main/CHANGELOG.md#breaking-changes
Enjoy!
:kitten: 💕
#SmallWeb #SmallTech #Kitten #KittenReleases #web #dev #JavaScriptDatabase #JSDB #NodeJS