Skip to content

Say what the provider said, bound silent streams, ai-chat 0.5 - #344

Merged
mattshax merged 1 commit into
mainfrom
models-honest-and-aichat-05
Sep 24, 2026
Merged

mattshax merged 1 commit into
mainfrom
models-honest-and-aichat-05

Conversation

@mattshax

Copy link
Copy Markdown
Member

Banner. Every [unavailable] mark was explained as a key on an 8-hour lock schedule. Measured against a provider whose models were marked: the provider refused the model names outright, streamed (502) and non-streamed (masked 400), with Requested model is not available and no compliant same-model variant was found. The mark was correct; the explanation was wrong. Marked models now carry the provider's own sentence (providerReason, which unwraps the gateway's nested error bodies) and the banner quotes it. A lock still gets the unlock step.

Correction. #340 claimed live verification that removing the probe's token cap cleared the marks. That check hit the wrong gateway (Provider owner not found), and the marks had this other cause. Removing the cap stays, since a probe never needed one.

Silent streams. A stream that opened and sent nothing had no limit but the client's abort. Each read now has one (STUDIO_STREAM_IDLE_MS, default 300 s), reset by every chunk; some providers buffer a whole answer and take about a minute per call.

ai-chat 0.5.0 with @parallelworks/ui ^0.16 (its peer floor). Attachments paging moved to a cursor contract with hasMore; the adapter maps the server offset to it (tested). Headless smoke: chat canvas, composer, and picker render, 19 models listed, no page errors.

Also regenerates CHANGELOG.md; the v1.62 and v1.63 entries never reached main. 189 server and 15 web tests pass.

…t 0.5

The availability banner explained every [unavailable] mark as a key on
an 8-hour lock schedule. Measured against a provider whose models were
marked, the cause was the provider refusing the model names outright,
streamed and not ("Requested model is not available and no compliant
same-model variant was found"), which no unlock would fix. The mark was
right and the explanation wrong. Each marked model now carries the
provider's own sentence, unwrapped from the gateway's nested error
bodies, and the banner quotes it; a lock still gets the unlock step.

A stream that opens and then sends nothing had no limit other than the
client's own abort. Each read now has one, reset by every chunk and set
at five minutes, since some providers buffer a whole answer and take
about a minute per call.

ai-chat moves to 0.5.0 and @parallelworks/ui to 0.16, its new floor.
The attachments list now pages by cursor and reports hasMore; the
adapter maps the server's offset to that contract. The chat renders and
lists models with no page errors in a headless check. The change log is
regenerated, since the last two entries never reached the default
branch.

The earlier probe change (v1.60) removed the token cap on the claim that
a cap-rejecting family was being marked; its live verification had hit
the wrong gateway, and the marks it was meant to clear had this other
cause. The cap removal stays, since a cap was never needed for a probe.
@mattshax
mattshax merged commit 30e4f6d into main Sep 24, 2026
2 checks passed
@mattshax
mattshax deleted the models-honest-and-aichat-05 branch September 24, 2026 15:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant