Skip to content

Harden tabular analysis and public workspace chat grounding - #1246

Merged
Paul Lizer (paullizer) merged 2 commits into
Developmentfrom
fix/tabular-line-terminology-hierarchical-analysis-default
Aug 14, 2026
Merged

Harden tabular analysis and public workspace chat grounding#1246
Paul Lizer (paullizer) merged 2 commits into
Developmentfrom
fix/tabular-line-terminology-hierarchical-analysis-default

Conversation

@paullizer

Copy link
Copy Markdown
Contributor

Summary

  • Recognize exhaustive "line" phrasing as row-oriented tabular intent and activate hierarchical analysis by default so large narrative Search and Analyze requests use the durable pipeline.
  • Migrate stale persisted tabular parity settings to their active defaults while preserving SIMPLECHAT_DISABLE_TABULAR_PARITY_DURABLE_PREFLIGHT as the emergency rollback switch.
  • Complete the durable artifact lifecycle: preserve selected model endpoint context, align Search/Analyze output contracts, publish required artifacts before run completion, repair uploaded-but-hidden Markdown artifacts, and expose sanitized failure categories.
  • Make an accessible hidden public workspace visible when a user explicitly hands one of its documents to Chat, preserving all other visibility choices and revalidating access before mutation.

User Impact

  • Exhaustive per-row and per-line requests no longer silently fall back to bounded foreground analysis because an upgraded deployment retained stale disabled settings.
  • Search and Analyze now produce consistent, downloadable artifacts and cannot report success before required publication completes.
  • Public workspace document handoffs now ground chat in the selected file instead of showing a selection that search silently excludes.

Validation

  • Python compilation passed for all changed Python files.
  • Focused functional scripts all exited successfully:
    • test_document_analysis_lossless_artifacts.py: 7/7
    • test_tabular_analyze_shared_preflight_adapter.py: 6/6
    • test_tabular_line_terminology_routing_fix.py: 3/3
    • test_tabular_phase8_ui_telemetry_rollout.py: passed
    • test_tabular_row_orchestration_scale.py: passed, including 100,000-row planning and publication contracts
    • test_tabular_durable_artifact_lifecycle_recovery.py: 5/5
    • test_tabular_parity_stale_settings_migration.py: 6/6
    • test_tabular_search_analyze_artifact_matrix.py: passed
    • test_public_workspace_hidden_document_chat_visibility.py: 5/5
  • ui_tests/test_chat_background_generated_export_status.py: 6 passed, 4 environment-dependent skips.
  • Route policy checks: Blueprint inventory 6/6, unauthenticated contract 4/4, policy coverage 2/2.
  • Pylance diagnostics, py_compile, staged whitespace checks, and untracked-file formatting checks were clean.

Risk And Rollback

  • The settings migration intentionally corrects four backend-only parity flags that have no admin UI. The existing environment kill switch remains available for immediate rollback.
  • Public workspace visibility updates are additive, occur only for explicit public document-search handoffs, and require the workspace to resolve with current user access.

Documentation

  • Added fix documentation for tabular stale-settings migration, durable artifact lifecycle recovery, and hidden public workspace document chat grounding.
  • Updated release notes through v0.250.200.

Fixes #1245

…by default

Customer prompt phrased with 'line' instead of 'row' (for each line in this document... go line by line) never triggered the durable tabular Analyze/Search pipeline for either mode, falling back to the old bounded foreground TabularProcessingPlugin tool loop and truncating after ~7 of 200 rows.

Two independent root causes: (1) at least 8 duplicated exhaustive/per-row keyword-list detection functions across functions_tabular_orchestration.py, functions_tabular_parity_contract.py, route_backend_chats.py, and functions_document_analysis.py recognized row phrasing but never line phrasing; (2) enable_tabular_hierarchical_analysis (a backend-only setting with no admin UI) defaulted to False, blocking narrative per-row/per-line requests from ever reaching the durable hierarchical_analysis task type regardless of intent detection.

Added line-phrase variants to every affected keyword list, flipped enable_tabular_hierarchical_analysis to active by default, and extended the existing emergency env kill switch to cover it. Verified end-to-end for both analyze and search action modes using the exact customer prompt.

New test: test_tabular_line_terminology_routing_fix.py (3/3). Re-ran ~16 related suites plus the full scale-matrix with no regressions.

Version 0.250.196 -> 0.250.197.
Complete durable tabular artifact publication and recovery, migrate stale parity settings, and align Search/Analyze output contracts.

Make hidden public workspaces visible when users explicitly hand documents off to Chat while preserving existing visibility choices.

Refs #1245
@paullizer
Paul Lizer (paullizer) merged commit 3af23cf into Development Aug 14, 2026
12 checks passed
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