Settings and help work on a phone, and three chat fixes - #331
Merged
Conversation
Four things a phone found. The section rail on Settings and Help is 220px beside a scrolling article; on a phone it took most of the width, and with the page itself no longer scrolling the article had nowhere to go, so the page looked frozen. The rail is now a horizontal strip of section chips above the article, and every view scrolls inside itself. The chat controls float over the package's header, and on a phone the model picker grew under them. Every label drops to its icon there and the picker is given a ceiling and allowed to truncate. A retried turn appended a second answer to the first, because the client accumulates content events and cannot unsay them. A turn that has already spoken is no longer retried; the error is surfaced instead. And a provider that refuses a token cap is now remembered on disk, so only the first turn a deployment ever runs pays for learning it, and that retry keeps streaming, since a rejected parameter is not a streaming failure and answering without it left the reader watching a still Thinking line. Voice opens at top level rather than in an iframe: the deployment is its own platform session on its own domain, so the frame asked for a second sign-in that mobile browsers cannot carry a cookie into. Serving it from the Studio's own origin needs a proxy and a base path in Unmute's frontend build; the panel says what it is until that lands.
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.
Four things found on a phone.
Settings and Help on mobile. Their 220px section rail sat beside a scrolling article; on a phone it took most of the width, and with the page itself no longer scrolling (the viewport fix) the article had nowhere to go, so the page looked frozen. The rail becomes a horizontal strip of section chips above the article, and views scroll inside themselves with
overscroll-behavior: contain.Chat controls overlapping the model picker. They float over the package's header; on a phone the picker grew under them. Labels drop to icons there and the picker gets
max-width: calc(100vw - 190px)with truncation (written defensively against the package's class names).A retry duplicated the answer. The client accumulates
contentevents and cannot unsay them, so a retry after text had already streamed appended a second reply. A turn that has spoken is no longer retried; the error is surfaced.Sol's first turn always failed. That provider rejects every token-cap spelling (
max_output_tokensexplicitly,max_tokensandmax_completion_tokensbehind the masked 400; no cap works). The rejection is now remembered on disk, so only the first turn a deployment ever runs pays to learn it, and that retry keeps streaming, since a rejected parameter is not a generation failure and the unstreamed retry left the reader on a still "Thinking" line for the whole reply.Voice now opens at top level instead of in an iframe: the deployment is its own platform session on its own domain, so the frame demanded a second sign-in that mobile browsers cannot carry a cookie into. Proxying it from the Studio's origin needs a base path in Unmute's frontend build; noted for next.