Skip to content

Hide always-on tabular preflight switches from V2 Admin Settings - #1663

Merged
Paul Lizer (paullizer) merged 2 commits into
paullizer-react-v2-uifrom
paullizer-tabular-preflight-admin-setting
Oct 6, 2026
Merged

Paul Lizer (paullizer) merged 2 commits into
paullizer-react-v2-uifrom
paullizer-tabular-preflight-admin-setting

Conversation

@paullizer

Copy link
Copy Markdown
Contributor

Summary

  • Problem: V2 Admin Settings showed a Tabular search shared preflight switch (enable_tabular_search_shared_preflight) with no description under Workspaces > Files & Sharing > Shared Conversation File Approvals. The key isn't declared in the field schema, so the V2 fallback scan placed it by matching words in the name, and "shared" matched that section. Two related flags, enable_tabular_analyze_durable_preflight and enable_tabular_hierarchical_analysis, showed up as raw keys under Other capabilities.
  • Why hide them: none of the three can actually be changed. normalize_tabular_parity_durable_preflight_defaults() sets them back to True on every get_settings() read and saves that, so a change reverted every time. They send exhaustive row-by-row CSV/XLSX requests to the durable background job instead of the old foreground path, which truncates. The SIMPLECHAT_DISABLE_TABULAR_PARITY_DURABLE_PREFLIGHT env var is still the only off switch, and the classic admin page never had a control for them.
  • Change: the three keys are added to SUPPRESSED_CAPABILITY_KEYS in admin_settings_fields.py, each with a written reason. The settings GET already sends that list as suppressed_capabilities, and buildCapabilityIndex already skips it, so the frontend doesn't change and defaults and runtime behavior stay the same. Admins no longer see switches that look like they save and then revert.
  • Guard: test_v2_admin_capability_placement.py now reads TABULAR_PARITY_DURABLE_PREFLIGHT_ACTIVE_DEFAULTS and requires every enable_* key in it to be suppressed, so a flag added to that map later is covered automatically. Workspaces also joins the groups that must receive no guessed switches.

Out of scope: the other internal tabular tuning and telemetry flags with no classic control (batching, checkpointing, worker pool and so on) still go through the fallback scan. Unlike these three, their values do save, so they're left for a separate change.

Linked issue

N/A - no issue was filed for this fix.

Release Notes & Latest Features

  • New Feature
  • Bug Fix
  • UI Enhancement
  • Breaking Change
  • Internal only

Is this visible to end users?

  • Yes
  • No

Is this admin-facing (Admin Settings, governance, deployment, config)?

  • Yes
  • No

Should this become a Latest Feature card?

  • Yes
  • No
  • Already added

Screenshot needed for the card?

  • Yes
  • No
  • Attached

Version bump

  • application/single_app/config.py VERSION third segment bumped, or not needed because this is docs-only (0.261.259 -> 0.261.260)
  • deployers/version.txt bumped, or not needed because deployers/ was not changed (not changed)

Testing / validation

  • python functional_tests\test_v2_admin_capability_placement.py: passed, 8/8
  • python functional_tests\test_v2_admin_workspaces_parity.py: passed, 11/11
  • python functional_tests\test_v2_admin_default_model_api.py: passed, 11/11
  • python functional_tests\test_tabular_parity_stale_settings_migration.py: passed, 6/6
  • python -m pytest functional_tests\test_v2_admin_capability_placement.py functional_tests\test_tabular_analyze_search_parity_default_activation.py functional_tests\test_tabular_parity_stale_settings_migration.py -q -p no:cacheprovider: 16 passed. The 8 PytestReturnNotNoneWarning warnings come from the placement file's existing return True runner convention.
  • python functional_tests\test_docs_app_surface_coverage.py: passed, 7/7
  • python functional_tests\test_docs_site_quality.py: passed, 6/6
  • Mutation check (scratch script, not committed): removing the enable_tabular_search_shared_preflight suppression in memory made 3 checks fail as expected. test_described_groups_receive_no_guessed_capabilities reported enable_tabular_search_shared_preflight -> Workspaces > Files & Sharing > shared-conversation-file-approvals-section, which is the placement from the bug report.
  • python functional_tests\test_docs_release_notes_integrity.py: failed, 0/1. It fails on the base commit (1b8d4c47b) too, because the generated release-notes pages are stale: 192 releases are missing from them there, and 193 here with v0.261.260 added. Regenerating the pages is out of scope for this PR.
  • python functional_tests\test_docs_link_integrity.py: failed, 2/5. The base commit fails with the same counts (11 of 830 site page links, 2 of 72 features.yml links), and none of the links added here are among them.
  • Not run: UI tests and a manual browser check. The frontend is unchanged, and test_ported_heuristic_still_matches_the_renderer pins the renderer's !suppressedKeys.has(key) skip.

Documentation

  • Release notes updated, or not needed (docs/explanation/release_notes.md, v0.261.260)
  • Feature documentation updated, or not needed (suppressed-keys table in V2_ADMIN_CHAT_SETTINGS.md, note in TABULAR_ANALYZE_SEARCH_PARITY_ROLLOUT.md)
  • Fix documentation updated, or not needed (new V2_ADMIN_TABULAR_PREFLIGHT_SWITCH_FIX.md)

Security checklist

  • New Flask routes include @swagger_route(security=get_auth_security()) (N/A: no routes added or changed)
  • Settings sent to non-admin frontends use sanitize_settings_for_user() (N/A: only the admin-only suppressed_capabilities list changed)
  • Browser JavaScript is served from local SimpleChat static assets only; no CDN-hosted JS (N/A: no frontend changes)
  • No secrets, keys, connection strings, or local-only artifacts are included

Paul Lizer (paullizer) and others added 2 commits October 6, 2026 14:06
The V2 admin fallback scan drew enable_tabular_search_shared_preflight under Shared Conversation File Approvals (word-stem match on 'shared') with no description, and drew enable_tabular_analyze_durable_preflight and enable_tabular_hierarchical_analysis under Other capabilities. All three are reset to True by normalize_tabular_parity_durable_preflight_defaults() on every settings read, so the switches reverted after saving; SIMPLECHAT_DISABLE_TABULAR_PARITY_DURABLE_PREFLIGHT remains the only off switch.

Suppress all three in SUPPRESSED_CAPABILITY_KEYS with written reasons, require every enable_* key in TABULAR_PARITY_DURABLE_PREFLIGHT_ACTIVE_DEFAULTS to stay suppressed, and add Workspaces to the groups that must receive no guessed switches. Version 0.261.260.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…x to 0.261.261

#1662 merged as 0.261.260, the number this branch had taken. Both release
note sections are kept, with this branch's on top. The fix doc, feature
doc notes, test header and the new check's assert_app_version_at_least
move to 0.261.261.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@paullizer
Paul Lizer (paullizer) merged commit d2d7b1d into paullizer-react-v2-ui Oct 6, 2026
10 checks passed
Paul Lizer (paullizer) added a commit that referenced this pull request Oct 6, 2026
Paul Lizer (paullizer) added a commit that referenced this pull request Oct 6, 2026
…Indexer deployer fix to 0.261.264

Resolve the config.py VERSION, release notes, and fixes index conflicts. The base
already used 0.261.260 through 0.261.263, so this fix moves to 0.261.264 in its
release notes section, fix document, deployer READMEs, preflight script header, and
test headers. The base's own 0.261.260 Web Search entry is unchanged. Deployer
version stays 1.0.33 because no incoming commit changed deployers/.

Refs #1666

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Paul Lizer (paullizer) added a commit that referenced this pull request Oct 6, 2026
… Enhanced Extraction section to 0.261.265

Resolve the conflicts with paullizer-react-v2-ui, keeping both sides:

- config.py: VERSION 0.261.265, after 0.261.264 on the base.
- release_notes.md: this change on top as v0.261.265.
- SettingsSection.tsx: pass both fieldsByKey (#1662) and runtimeFlags to
  isFieldVisible; the open_until_set reader passes fieldsByKey too.
- test_v2_admin_section_logic.ts: both header lines, both imports and both
  sets of appended checks.
- test_v2_admin_capability_placement.py: header version.

#1662 renamed readDependencyValue to readSettingValue, which the text merge
did not flag, so applyEnableEffect now calls readSettingValue.

Renumber this change's own 0.261.260 references to 0.261.265. The base's
0.261.260 (the Web Search nested settings fix) is unchanged.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Paul Lizer (paullizer) added a commit that referenced this pull request Oct 6, 2026
…ber the File Sync single card to 0.261.266

Keep both sides of each conflict: the group `anchor` descriptor alongside
`open_until_set`, both new vocabulary and section-logic checks, and both
Knowledge doc entries. Anchored panels and their placement now pass the
field index and runtime flags, and use the open-until-set group reader,
the same way the base's card body does.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Paul Lizer (paullizer) added a commit that referenced this pull request Oct 6, 2026
, #1671, #1674) and renumber the Operations settings parity to 0.261.269

Conflict resolutions:
- admin_settings_fields.py: keep the full Operations block. The Application
  Insights and Health Check declarations #1670 added beside Appearance are
  superseded by it, and its mixed-source telemetry switch moves into the
  Operations Application Insights section, after the global logging readouts.
  Keep #1668's on_enable documentation and both sides' V2_ONLY_FIELDS entries.
- route_backend_v2.py: fold content_understanding_supported into
  _build_runtime_flags.
- SettingsSection.tsx, AdminSettingsPage.tsx, adminFields.ts: keep both the
  section guide and runtimeFlags props, and on_enable beside the Operations
  field properties.
- operations.md, release_notes.md and tests: keep both sides. Both
  enable_dai_debug and enable_mixed_source_development_telemetry are documented
  rather than exempted, and Workspaces and Operations are both fully described.
- Renumber this branch's 0.261.260 references to 0.261.269; the base's own
  0.261.260 Web Search fix references are unchanged.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Paul Lizer (paullizer) added a commit to paullizer/simplechat that referenced this pull request Oct 7, 2026
…e setting to 0.261.262

microsoft#1662 merged as 0.261.260, the number this branch had taken, and microsoft#1663 as
0.261.261. Both release note sections are kept, with this branch's on top.
The fix doc, feature doc note, test headers and the new check's
assert_app_version_at_least move to 0.261.262. The capability placement test
keeps microsoft#1663's forced tabular parity check and this branch's relocation.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Paul Lizer (paullizer) added a commit to paullizer/simplechat that referenced this pull request Oct 7, 2026
…rosoft#1665, microsoft#1667, microsoft#1668) and renumber the mixed-source settings fix to 0.261.266

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
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