Repository navigation
Description
Summary
Keep grounded answers readable by moving routine coverage warnings out of model-generated answer prose into a compact, clickable evidence-status notification at the bottom of the V2 assistant message. Carry the same per-answer status into the citation/source dropdown and the right-hand Documents pane, and provide useful, grounded next-step suggestions when information is partial or missing.
This is a user-directed UX improvement, not permission to hide a genuine inability to answer, weaken evidence validation, or call an unsearched document empty.
User Value
Users can read what the application actually found without a long generic "Coverage note: Source coverage was partial" paragraph dominating the answer. They can inspect exactly what supports the answer, what remains unverified, and what additional source or clarification would help.
Proposed Behavior
- A concise footer/status is outside the generated answer body. Yellow means partial supporting evidence; red means no supporting evidence was found in the sources actually searched. Use text plus an icon, not color alone.
- Clicking the status opens the existing message source/citation details. Corresponding information appears in the right-hand Documents pane, with per-source indicators when supported by authoritative metadata.
- Explain which parts of the question were answered, which sources/pages/ranges were actually inspected where known, and which requested information was not found or remains unverified.
- Keep access-denied, processing failure, pending, not searched, and no matching evidence distinguishable. A timeout or failed connector is not proof that the information does not exist.
- For a genuinely unanswerable request, the answer itself still says so briefly. For a partially answerable request, provide the supported answer and use the status details for routine limitations.
- Offer one or two relevant suggestions, such as supplying an appropriate document/time range, clarifying the missing item, or selecting another authorized source. Suggestions must be based on the actual task and available capabilities, not invented files, fabricated evidence, or assumptions that broader permissions are required. No automatic expansion of search scope or permissions.
Example intent: "I found the retention period in the policy, but could not verify the exception. If you have the exception procedure, add it; otherwise select another authorized source to check." Actual source names and claims must come from the current answer's evidence, not this example.
Acceptance Criteria
- Derive status from authoritative, sanitized per-turn evidence/coverage metadata, not generated phrasing, absence of citation chips, or a zero-result heuristic alone.
- Render a compact clickable footer for relevant source-grounded answers, with yellow partial and red no-supporting-evidence states, accessible labels, keyboard interaction, focus handling, and responsive light/dark styling using existing V2 tokens.
- Show the same scoped status in message Sources/citations and the right-hand Documents pane. Include authorized selected/inspected-but-uncited sources without misclassifying them as "Used in answers" or cited evidence.
- Tie indicators to the correct answer/turn and make their scope clear; do not allow an older response or another conversation to color the current document state.
- Keep unsupported claims unsupported and preserve strict evidence/Compose contracts. General non-grounded chat, unknown historical metadata, unsearched documents, and failed/unfinished retrieval must not be automatically labeled "missing evidence".
- Reduce blanket warning prose while preserving a short truthful refusal/inability statement when the answer cannot be supported. Include material limitations in the appropriate persisted/source/export representation so copying or exporting does not silently remove them.
- Provide concise, task-specific next-step suggestions without automatic model/tool retries, unapproved searches, invented access failures, or leaks of unauthorized source names.
- Cover streaming, saved history/reload, retry/edit, per-source aggregation, partial/missing/unavailable/unknown states, no-fabrication behavior, and accessibility in functional and rendered UI tests.
- Update the V2 guide and chat-control reference/inventory as applicable, feature/fix documentation, and the required application version.
Notes
Target: paullizer-react-v2-ui. Priority: P1. Assignee: Paul Lizer (@paullizer). Roadmap size: L.
Reuse existing V2 surfaces: MessageList.tsx, MessageInspector.tsx Sources, ConversationDrawer.tsx Documents, chat stream/store contracts, and the backend source-coverage ledger. Do not add a competing notification system.
V2 already has relevant backend improvements: #1540's formatting-tolerant evidence matching/non-blocking caveats (implemented in 0.261.191, with later refinements), and the honest not-found/completeness and linked-PDF coverage fix in 0.261.385. Build on those rather than reopening the same evidence-validation defects. Preserve the retrieved-versus-cited distinction from #1249.
Related docs: V2_COMPARISON_ANALYZE_EVIDENCE_MATCHING_FIX.md and ORCHESTRATION_UNFOUND_SOURCE_COVERAGE_FIX.md.
The new footer/source-panel presentation and grounded follow-up suggestions are not already provided by those backend fixes.
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsPending Evaluation
Activity