Version Packages - #72
Merged
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
August 21, 2026 12:30
41a9c26 to
ccc2c22
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
2 times, most recently
from
August 21, 2026 13:19
fb16a17 to
baad8d2
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
August 21, 2026 13:29
baad8d2 to
37fa25d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@intentface/chat@0.2.0
Minor Changes
#69
0fb9b14Thanks @rpvilo! - Disclosure panels (Steps.Panel,Reasoning.Content) no longer stay pinned to the height they had when they opened. The panel measures its natural height for the transition and then releases that measurement once the transition settles, so an open panel tracks content that appears underneath it — a nested disclosure expanding, rows streaming in. Previously the measurement was written on open and never cleared, so any consumer following the documentedheight: var(…)pattern had its content clipped at the open-time height.Breaking: the measured height is published as
--panel-heightinstead of--collapsible-panel-height. The old name leaked an internal:Collapsibleis not a public part, cannot be imported, and appears nowhere in the docs, so a consumer stylingSteps.Panelhad to reach for a variable named after a component they could not see. The variable is now documented on both parts.[data-steps-panel] { overflow: hidden; - height: var(--collapsible-panel-height); + height: var(--panel-height); transition: height 150ms ease-out; }Note the value is present only while the open or close transition runs, which is what makes the fallback to
autowork while open. That is the intended contract, not a gap.Two supporting changes, both internal:
useTransitionStatusis now called withenableIdleStateanddeferEndingStateenabled.idleis the settled-open status the release gates on, and deferringendingby a frame leaves one frame where a closing panel is still at its open size — which is where the close has to be measured. Previously the close was measured on theendingframe, with the closed styles already applied, so it measured the clamped box.transitionStatus === "ending"rather than merely!open. With the ending state deferred, the earlier check could callgetAnimations()before the closed styles landed, find nothing running, and cut the exit animation off. This also affectsComposer.Panel, the other consumer of the shared transition hook.Measurement also neutralizes inline alignment properties for the read and restores them immediately, matching Base UI — inline alignment can distort a scroll-based measurement.
#67
414d132Thanks @rpvilo! - Breaking:Thread.Rootno longer takesdockSelector. The thread now measures theThread.Composerslot ([data-thread-composer]) it already renders, instead of querying the composer's internals for a set of dock parts. Dock your composer in the slot and the measurement is automatic:This is what the documentation already described —
THREAD.mdand the build-a-chat guide both said the thread measuredThread.Composer, while the code measured[data-composer-context-window], [data-composer-container]and only ever used the bottom-most match as the reference edge. The old default also meantComposer.ContextWindowwas never reserved for: it sits aboveComposer.Container, so the container won the measurement and the context strip had to fit inside the 32px content gap or content slid underneath it. Docking the whole slot fixes that, because the slot's box covers every in-flow part.The rule is now positional rather than configured: anything inside
Thread.Composerthat should not push content up must be out of the slot's flow.Thread.ScrollButtonand the default portaledComposer.Panelalready are, so the standard composition is unaffected. An in-flow panel (Composer.Panel anchor={false}) now counts as part of the dock and the viewport insets around it, where previously it overlapped the last turn.Patch Changes
#68
7be61d3Thanks @rpvilo! -exportsnow points at./distpermanently, so the registry metadata matches the tarball. Previouslyexportspointed at./src/*.tsin the repo — so the docs app could consume package source with no build step — and aprepack/postpackpair swapped it to./distfor packing. npm builds the packument frompackage.jsonas it stands afterpostpack, which restored the source paths, so every published version advertised./src/*.tsfor all 11 subpaths: files the tarball does not ship.Consumers were never affected, because Node resolves against the
package.jsoninside the tarball, which always carried the correct./distpaths. Butnpm view @intentface/chat exportsreported paths that do not exist, which reads exactly like a broken publish — and npm was warning thatpublishConfig.exports"will stop working in the next major version of npm", so the mechanism had an expiry date regardless.The swap is gone:
scripts/swap-exports.mjs, thepostpackhook, andpublishConfig.exportsare all deleted, andprepacknow just runs the build. The app gets source resolution from the repo instead of from the published exports map — apathsentry intsconfig.jsonand a matching TurbopackresolveAliasinnext.config.ts, both mapping the 11 subpaths topackages/chat/src. Verified by building the docs app withpackages/chat/distdeleted entirely.No API change; nothing to migrate.
#71
9a378b5Thanks @rpvilo! - Pointhomepageand the README athttps://ui.intentface.com. The previous address,intentface.dev, does not resolve — so the link on the npm page and the two documentation links inside the shipped README were dead. The documentation now also lives at the root of that host rather than under/docs, so the paths lose that prefix.No code change; published metadata only.
#63
d73bb3fThanks @rpvilo! - FixComposer.Textareaaccumulating phantom newlines during rapid editing. The editor's padding<br>is now marked withdata-padding-breakand recognized structurally instead of being inferred from position, so a native edit that strands it mid-document no longer reads it back as real content. The padding also stops consuming a caret position, keeping the DOM's position space aligned with the model's length.