microsoft / microsoft/simplechat
Unify mixed-source document orchestration across Chat, Search, Analyze, and Compare
Open
@paullizer is already working on this.
Since Jul 22, 2026.
bug
- Dominant language
- Python
- Stars
- 152
- Forks
- 116
- Avg merge
- 7h 7m
- Merged PRs (30d)
- 122
Description
Issue Mixed selections of narrative documents (for example PDF, Word, and PowerPoint) and tabular sources (CSV and Excel) do not consistently use each source's native processing engine across Chat, Search, Analyze, and Compare. The current paths make several mutually exclusive decisions at request level instead of routing each authorized source independently. A non-tabular file can suppress tabular tooling for the entire selection, explicit selections can be ignored when the Search Documents panel is inactive, and mixed Analyze/Compare requests can silently treat tables as generic document chunks. ## Impact - Users can receive incomplete or misleading answers from mixed document selections. - File ordering can change whether tabular analysis runs. - Explicitly selected sources are not always authoritative context. - Analyze cannot reliably provide exhaustive native-engine coverage for mixed selections. - Compare cannot reliably handle table-to-table or narrative-to-table pairs. - Follow-up turns may rerun too much work or fail to reuse the previously grounded table. ## Target Behavior Resolve requested sources once into an authorization-safe manifest, partition them by capability, run each through its native engine, normalize bounded evidence, and synthesize one response with explicit per-source coverage. | Mode | Required behavior | | --- | --- | | Chat | Use explicit selections regardless of panel state; otherwise use authorized history/relevance context. Combine relevant narrative retrieval and tabular computation. | | Search | Remain relevance-bounded while allowing selected or relevant tables to contribute computed evidence. | | Analyze | Process every selected source with its native engine. All Documents means exhaustive authorized catalog coverage within configured limits. | | Compare | Support table-to-table, narrative-to-table, table-to-narrative, and narrative-to-narrative source/target combinations. | ## Phased Delivery - [ ] #1056 - Phase 1: Authorized source manifest and evidence contracts - [ ] #1057 - Phase 2: Chat and Search consistency - [ ] #1058 - Phase 3: Mixed-source Analyze - [ ] #1059 - Phase 4: Cross-format Compare - [ ] #1060 - Phase 5: Conversation continuity and selection semantics - [ ] #1061 - Phase 6: Hardening, extraction, and rollout ## Acceptance Criteria - [ ] A mixed PDF + XLSX selection uses narrative and tabular processing in Chat, Search, Analyze, and Compare as appropriate. - [ ] File ordering does not affect engine selection or source coverage. - [ ] Explicit selections work without relying on a panel's visible or active state. - [ ] Collective questions synthesize evidence from every required source type. - [ ] Analyze All Documents enumerates and reports every authorized target within configured limits. - [ ] Compare supports table-to-table, narrative-to-table, table-to-narrative, and narrative-to-narrative pairs. - [ ] Follow-up turns reuse prior evidence when sufficient and rerun only the engines needed for fresh computation. - [ ] Every requested source has a visible terminal coverage state. - [ ] No unauthorized, changed, omitted, or silently downgraded source contributes to the final answer. - [ ] Functional, UI, route-policy, access-control, cancellation, and partial-failure tests cover the supported modes and source scopes. ## Delivery Constraints - Preserve current personal, group, public workspace, and chat-upload authorization boundaries. - Keep Chat and Search relevance-bounded; only Analyze may use exhaustive All Documents semantics. - Keep exhaustive tabular rows in generated artifacts/checkpoints rather than model synthesis context. - Reuse the existing tabular analysis/export subsystem and conversation grounding metadata. - Roll out mode-specific behavior behind independent feature flags. ## Related Work - Refs #1031 for bounded, durable large tabular analysis and generated exports. - Refs #1021 for broader turn-level orchestration across chat capabilities; this issue owns document source classification, native-engine dispatch, and mixed-source evidence coverage. - Refs #941 for assigned-knowledge intent routing between Search, Analyze, and Compare; this issue owns execution after a mode and source set are chosen.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.