diff --git a/.changeset/thread-layout-repin.md b/.changeset/thread-layout-repin.md deleted file mode 100644 index 4c65281..0000000 --- a/.changeset/thread-layout-repin.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -"@intentface/chat": patch ---- - -`Thread` keeps the bottom pinned while its container is resized. - -**Resizing with a long last turn.** Dragging a chat window's height let the bottom drift out of view until the next content change re-pinned it, whenever the last turn was taller than its reserve: the content didn't change size, so nothing fired. The follow now observes the scroller as well as the content, so a resize re-pins in the same frame. - -**No smooth scroll queued behind a resize.** One resize settles over several observer passes in a frame: the scroller's box changes first, then the content resizes to the new reserve a pass later. That later pass read as content growth and queued a smooth scroll behind the instant re-pin. Re-pins now stay instant for the rest of a frame in which the scroller resized. - -New turns still land smoothly, streaming still follows smoothly, and scrolling up still releases the follow. diff --git a/packages/chat/CHANGELOG.md b/packages/chat/CHANGELOG.md index 1d855b9..5569334 100644 --- a/packages/chat/CHANGELOG.md +++ b/packages/chat/CHANGELOG.md @@ -1,5 +1,17 @@ # @intentface/chat +## 0.5.1 + +### Patch Changes + +- [#85](https://github.com/Intentface/intentface-chat/pull/85) [`b49fb7a`](https://github.com/Intentface/intentface-chat/commit/b49fb7a0c2948beb46ed9c9864ee4ba676940147) Thanks [@rpvilo](https://github.com/rpvilo)! - `Thread` keeps the bottom pinned while its container is resized. + + **Resizing with a long last turn.** Dragging a chat window's height let the bottom drift out of view until the next content change re-pinned it, whenever the last turn was taller than its reserve: the content didn't change size, so nothing fired. The follow now observes the scroller as well as the content, so a resize re-pins in the same frame. + + **No smooth scroll queued behind a resize.** One resize settles over several observer passes in a frame: the scroller's box changes first, then the content resizes to the new reserve a pass later. That later pass read as content growth and queued a smooth scroll behind the instant re-pin. Re-pins now stay instant for the rest of a frame in which the scroller resized. + + New turns still land smoothly, streaming still follows smoothly, and scrolling up still releases the follow. + ## 0.5.0 ### Minor Changes diff --git a/packages/chat/package.json b/packages/chat/package.json index 4aa9fe4..57456be 100644 --- a/packages/chat/package.json +++ b/packages/chat/package.json @@ -1,6 +1,6 @@ { "name": "@intentface/chat", - "version": "0.5.0", + "version": "0.5.1", "description": "Headless UI primitives — unstyled compound components, hooks, and wire formats for AI chat interfaces and the app shells around them.", "license": "MIT", "type": "module",