You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(web): second sweep round - 20 confirmed findings across all surfaces
The agent sweep finished all nine surfaces (52 raw findings, 39 after
dedup) and the verify stage confirmed the set below against the tree.
Chat:
- New chat now orphans an in-flight ask via a run counter: the zombie
stream can no longer write its answer, citations, status, or busy
state into the next conversation.
- Citation chips in older messages open the source-page modal for
their own evidence instead of highlighting the last turn's panel
(the panel only ever shows the last retrieval).
- Stream/transport failures keep the partially streamed answer with an
interruption note instead of replacing it with key-blaming boilerplate.
- Error and notice turns are excluded from the prior-turn history sent
to condense/generation; error turns get visible styling.
- Figure thumbnails get real CSS (page PNGs rendered at natural size);
the routing card reports the mode the turn ran under, not the
current setting; agentic turns get their own pill; cited visual
candidates show their citation number instead of IMG.
Layout/shell:
- The tweaks effect no longer clobbers the persisted layout on every
reload, and the "focus" tweak maps to the layout value the state
machine actually uses.
- ChatView stays mounted across tab switches - switching to Papers and
back no longer destroys the conversation. The hash follows the tab,
so stale deep links stop overriding the saved tab.
- KeyModal clears stale typed input on every open. routing_available
must be positively confirmed by /health.
Score display:
- Relevance bars are min-max scaled within the result set in both the
chat panel and Inspection (all-negative logit sets rendered every
bar empty; mixed sets rendered the worst rows full).
Inspection/Papers/Figures/Why:
- The forced paper filter is passed to traces AND shown as a chip;
example chips disable while a trace runs.
- The figures gallery surfaces docling table chunks (kind=table, ~30%
of the gallery) as "table" with their own filter chip.
- Paper drawer captions hide internal [chunk_id] placeholders; the
papers empty state explains itself; the dead "other" source filter
only appears when the corpus mixes sources.
- The Why tab no longer renders "0/0" stats while its data loads, and
its CTA stops promising live routing on routerless deployments.
- Orphaned CSS fixed or removed (.figthumb hover, .stage-dive); the
bbox note no longer promises a region box that multi-page chunks
never have; SSE streams flush a final unterminated frame.
answer: "Agentic search runs a search agent server-side on your OpenRouter key, so it needs one — add yours (top-right) to try it. The standard retrieval modes work without a key.",
337
349
streaming: false,
338
350
notice: true,
@@ -359,10 +371,10 @@ function ChatView({ settings, set, layout, resetSignal, apiKey, model, papers, f
359
371
}elseif(demoAvailable){
360
372
setStatus("Condensing the follow-up into a search query…");
@@ -426,7 +444,7 @@ function ChatView({ settings, set, layout, resetSignal, apiKey, model, papers, f
426
444
constpages=c ? c.page_numbers||[] : [];
427
445
return{n: i+1, id,paper: c ? c.paper_id : id,page: pages[0],quote: c ? previewQuote(c.text) : null,kind: c&&c.source==="visual" ? "visual" : "text"};
428
446
});
429
-
updateLast({
447
+
upd({
430
448
answer: newText,
431
449
streaming: false,
432
450
citations,
@@ -439,33 +457,41 @@ function ChatView({ settings, set, layout, resetSignal, apiKey, model, papers, f
439
457
// The shared free quota ran out for today: hand off to the key modal
440
458
// instead of rendering it as a failure — retrieval still worked.
441
459
onNeedKey&&onNeedKey();
442
-
updateLast({
460
+
upd({
443
461
answer: "Today's free demo answers are used up, but retrieval still works — the chunks are on the right. Add your own OpenRouter key (top-right) to keep generating answers.",
0 commit comments