Merged
Conversation
… cause Jekyll build failures
Contributor
There was a problem hiding this comment.
Pull request overview
This PR introduces guided tutorial UX hardening (chat + personal workspace), expands Admin Settings “Latest Features”/feedback/registration experiences, and adds automation to enforce authenticated Swagger decorators on changed Flask routes.
Changes:
- Adds/updates guided tutorial launchers and tutorial stability fixes (selector coverage, popup layering, repositioning, sidebar dropdown positioning).
- Adds Admin Settings “Latest Features”, “Send Feedback”, and “Release Notifications Registration” flows with supporting backend endpoints, activity logging, and documentation.
- Adds a PR workflow + checker script to enforce
@swagger_route(security=get_auth_security())on changed Flask route files; also refactors tabular-processing enablement to be derived from Enhanced Citations.
Reviewed changes
Copilot reviewed 89 out of 131 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
| scripts/generate-validators.mjs | Removes the AJV standalone validator generation script. |
| scripts/check_swagger_routes.py | New AST-based checker enforcing authenticated swagger decorators on changed route files. |
| .github/workflows/swagger-route-check.yml | New PR workflow that runs the swagger route checker on changed Python files. |
| README.md | Adds guidance for injecting private/self-signed CAs during Docker image build. |
| application/single_app/config.py | Bumps app VERSION. |
| application/single_app/functions_settings.py | Adds derived helper for tabular-processing enablement; adds release notification settings defaults; normalizes derived flag on read/update. |
| application/single_app/semantic_kernel_loader.py | Uses derived tabular-processing helper when loading the Tabular Processing plugin. |
| application/single_app/route_backend_chats.py | Uses derived tabular-processing helper for runtime tabular gating in chat flows. |
| application/single_app/route_backend_plugins.py | Returns derived tabular-processing state and tolerates legacy POST payloads. |
| application/single_app/route_frontend_admin_settings.py | Adds persistence for release notification registration fields and derives tabular setting before rendering/saving. |
| application/single_app/route_backend_control_center.py | Adds missing swagger decorator to /api/approvals. |
| application/single_app/route_frontend_control_center.py | Adds missing swagger decorator to /approvals. |
| application/single_app/route_backend_speech.py | Adds swagger imports + missing swagger decorator to /api/speech/transcribe-chat. |
| application/single_app/route_backend_settings.py | Adds admin mailto workflows for Send Feedback + Release Notifications Registration (plus logging hooks). |
| application/single_app/functions_activity_logging.py | Adds activity logging helpers for admin feedback email submissions and release notification registrations. |
| application/single_app/templates/admin_settings.html | Adds Latest Features tab, Send Feedback tab, and Release Notifications registration modal/fields. |
| application/single_app/templates/_sidebar_nav.html | Adds admin sidebar entries/submenus for Latest Features + Send Feedback. |
| application/single_app/static/js/admin/admin_sidebar_nav.js | Defaults admin sidebar navigation to Latest Features and uses Bootstrap tab activation. |
| application/single_app/static/js/admin/admin_settings.js | Wires up Latest Features mirrors, Send Feedback mailto flow, release notification registration flow, and autofill hardening (referenced by tests/docs). |
| application/single_app/static/images/features/.gitkeep | Keeps Latest Features screenshot directory tracked. |
| application/single_app/templates/base.html | Adds SimpleMDE toolbar icon fallbacks (Font Awesome-free glyphs). |
| application/single_app/templates/public_workspaces.html | Ensures SimpleMDE script is loaded for public prompt editing. |
| application/single_app/static/js/public/public_workspace.js | Refreshes/focuses SimpleMDE when the public prompt modal opens. |
| application/single_app/static/js/agent_modal_stepper.js | Adds SimpleMDE-backed markdown editing for agent instructions and keeps values in sync. |
| application/single_app/templates/_plugin_modal.html | Adds autofill hardening attributes and wraps plugin modal content in an explicit form. |
| application/single_app/templates/chats.html | Switches reasoning tooltip markup to Bootstrap data-bs-title and adds Chat Tutorial launcher button markup. |
| application/single_app/static/js/chat/chat-reasoning.js | Uses a Bootstrap-tooltip helper instead of raw title updates for reasoning tooltips. |
| application/single_app/static/js/chat/chat-sidebar-conversations.js | Switches sidebar conversation dropdown to fixed Popper strategy + emits sidebar-loaded event for tutorial readiness. |
| application/single_app/static/js/chat/chat-onload.js | Initializes chat tutorial after chat bootstrap completes (finally block). |
| application/single_app/static/css/chats.css | Adds styling for chat tutorial launcher, overlay, and tutorial-owned popup surfaces. |
| application/single_app/templates/workspace.html | Adds Workspace Tutorial launcher + workspace tutorial overlay CSS; loads workspace-tutorial.js. |
| docs/setup_instructions.md | Normalizes docs “section” capitalization. |
| docs/setup_instructions_manual.md | Adds local VS Code Python 3.12 .venv workflow guidance. |
| docs/reference/deploy/azd-cli_deploy.md | Wraps CI/CD YAML snippet in {% raw %} to avoid Jekyll templating collisions. |
| docs/README-THEME.md | Normalizes docs “section” capitalization guidance. |
| docs/features.md | Normalizes docs “section” capitalization. |
| docs/index.md | Removes embedded demo GIF section. |
| docs/how-to/docker_customization.md | Expands Docker customization doc, focusing on custom CA injection during image builds. |
| docs/explanation/running_simplechat_locally.md | Updates local dev workflow guidance + bumps documentation version. |
| docs/_includes/sidebar_nav.html | Stops capitalizing section labels and removes inline JS (handled by docs/assets/js/sidebar.js). |
| docs/latest-release/index.md | Adds “Latest Release” landing page content for v0.239.001. |
| docs/latest-release/export-conversation.md | Adds Latest Release doc for conversation export workflow. |
| docs/latest-release/retention-policy.md | Adds Latest Release doc for retention policy configuration. |
| docs/latest-release/workspace-scope-lock.md | Adds Latest Release doc for workspace scope lock behavior. |
| docs/latest-release/tags-grid-view-chat-filtering.md | Adds Latest Release doc for tags, grid view, and chat filtering. |
| docs/explanation/features/index.md | Adds “Tutorial Features” section linking to Guided Tutorials. |
| docs/explanation/features/GUIDED_TUTORIALS.md | New feature doc covering Chat + Personal Workspace tutorials and regression coverage. |
| docs/explanation/features/PERSONAL_WORKSPACE_TUTORIAL.md | New feature doc for the personal workspace tutorial. |
| docs/explanation/features/LATEST_FEATURES_ADMIN_TAB.md | New feature doc for Latest Features admin tab. |
| docs/explanation/features/SEND_FEEDBACK_ADMIN.md | New feature doc for Send Feedback admin tab and mailto workflow. |
| docs/explanation/features/RELEASE_NOTIFICATIONS_REGISTRATION.md | New feature doc for admin release notification registration. |
| docs/explanation/features/SWAGGER_PR_ROUTE_CHECK.md | New feature doc describing the PR route checker workflow/script. |
| docs/explanation/fixes/TABULAR_PROCESSING_ENHANCED_CITATIONS_DEPENDENCY_FIX.md | Fix doc describing derived tabular enablement from Enhanced Citations. |
| docs/explanation/fixes/SWAGGER_ROUTE_INTEGRATION_FIX.md | Fix doc describing the missing swagger decorators and coverage. |
| docs/explanation/fixes/REASONING_EFFORT_TOOLTIP_STYLE_FIX.md | Fix doc describing Bootstrap tooltip consistency for reasoning UI. |
| docs/explanation/fixes/WORKSPACE_PROMPT_MARKDOWN_TOOLBAR_FIX.md | Fix doc describing SimpleMDE toolbar glyph fallbacks + public/agent editor wiring. |
| docs/explanation/fixes/WORKSPACE_PLUGIN_MODAL_AUTOFILL_FIX.md | Fix doc describing plugin modal autofill hardening. |
| docs/explanation/fixes/PERSONAL_WORKSPACE_TUTORIAL_REPOSITION_FIX.md | Fix doc for workspace tutorial repositioning after layout transitions. |
| docs/explanation/fixes/PERSONAL_WORKSPACE_TUTORIAL_LAYER_ORDER_FIX.md | Fix doc for workspace tutorial popup layering order. |
| docs/explanation/fixes/CHAT_TUTORIAL_SELECTOR_COVERAGE_FIX.md | Fix doc for chat tutorial selector drift + popup stability + sidebar dropdown fix. |
| docs/explanation/fixes/AUTOFILL_OVERLAY_NULL_FIELD_METADATA_FIX.md | Fix doc for admin autofill-overlay errors via metadata hardening. |
| docs/explanation/fixes/v0.237.003/CUSTOM_LOGO_NOT_DISPLAYING_FIX.md | Wraps Jinja snippet in {% raw %} to prevent docs rendering issues. |
| docs/explanation/fixes/v0.229.014/PUBLIC_WORKSPACE_SCOPE_DISPLAY_ENHANCEMENT.md | Wraps Jinja snippet in {% raw %} to prevent docs rendering issues. |
| docs/explanation/fixes/v0.229.001/SIDEBAR_TITLE_LENGTH_CONTROL_FIX.md | Wraps HTML/Jinja snippet in {% raw %} to prevent docs rendering issues. |
| docs/explanation/fixes/v0.229.001/CREATE_PUBLIC_WORKSPACE_PERMISSION_DISPLAY_FIX.md | Wraps Jinja snippet in {% raw %} to prevent docs rendering issues. |
| docs/explanation/fixes/v0.229.001/CREATE_GROUP_PERMISSION_DISPLAY_FIX.md | Wraps Jinja snippet in {% raw %} to prevent docs rendering issues. |
| docs/explanation/features/v0.235.001/PUBLIC_WORKSPACE_GOTO_BUTTON_ENHANCANCEMENT.md | Wraps HTML snippet in {% raw %} to prevent docs rendering issues. |
| docs/explanation/features/v0.229.058/PUBLIC_WORKSPACE_GOTO_BUTTON_ENHANCEMENT.md | Wraps HTML snippet in {% raw %} to prevent docs rendering issues. |
| docs/explanation/features/v0.235.001/FULL_WIDTH_CHAT_SUPPORT.md | Wraps template-conditioned CSS in {% raw %} to prevent docs rendering issues. |
| docs/explanation/features/v0.235.001/AUTOMATIC_SWAGGER_SCHEMA_GENERATION.md | Wraps HTML snippet in {% raw %} to prevent docs rendering issues. |
| functional_tests/test_chat_tutorial_selector_coverage.py | Adds regression checks for chat tutorial selectors and UI guards. |
| functional_tests/test_sidebar_conversation_dropdown_positioning.py | Regression checks for fixed-strategy dropdown positioning and tutorial popup classes. |
| functional_tests/test_personal_workspace_tutorial_selector_coverage.py | Regression checks for workspace tutorial selectors/launcher wiring and guard helpers. |
| functional_tests/test_personal_workspace_tutorial_document_flow.py | Regression checks for workspace tutorial document-flow step ordering and markers. |
| functional_tests/test_workspace_tutorial_reposition_fix.py | Regression checks for reposition scheduling/observers and collapse/tab listeners. |
| functional_tests/test_workspace_tutorial_layer_order_fix.py | Regression checks for tutorial-owned surface insertion inside the tutorial layer. |
| functional_tests/test_workspace_prompt_markdown_toolbar_fix.py | Regression checks for SimpleMDE toolbar glyph fallbacks + script includes + agent instructions editor wiring. |
| functional_tests/test_workspace_plugin_modal_autofill_hardening.py | Regression checks for plugin modal autofill ignore attributes and explicit form context. |
| functional_tests/test_reasoning_effort_tooltip_consistency.py | Regression checks for Bootstrap tooltip usage in reasoning UI and template attributes. |
| functional_tests/test_reasoning_effort_initial_sync.py | Updates expected version assertions for reasoning effort initial sync test. |
| functional_tests/test_tabular_processing_enhanced_citations_dependency.py | Regression checks for derived tabular enablement and admin UI/API behavior changes + fix doc presence. |
| functional_tests/test_missing_swagger_routes_fix.py | Regression checks for newly added swagger decorators on previously missing routes. |
| functional_tests/test_swagger_route_pr_workflow.py | Regression checks for workflow presence + checker pass/fail behavior. |
| functional_tests/test_admin_latest_features_tab.py | Regression checks for Latest Features tab structure, mirrored controls, JS syncing, and assets/docs. |
| functional_tests/test_admin_send_feedback_tab.py | Regression checks for Send Feedback tab structure, JS/backend integration, and docs. |
| functional_tests/test_admin_release_notifications_registration.py | Regression checks for release notification registration UI, persistence, JS/backend integration, and docs. |
scripts/check_swagger_routes.py
Outdated
Comment on lines
+57
to
+63
| source = file_path.read_text(encoding='utf-8') | ||
|
|
||
| if '.route(' not in source: | ||
| return [] | ||
|
|
||
| tree = ast.parse(source, filename=str(file_path)) | ||
| issues: list[str] = [] |
There was a problem hiding this comment.
ast.parse() can raise SyntaxError (or UnicodeDecodeError) and currently would crash the script without producing a GitHub Actions annotation. Consider wrapping parsing in a try/except and emitting a ::error file=...,line=...:: message (and non-zero exit) so failures are actionable in PR checks.
…rs now produce GitHub Actions ::error annotations instead of crashing
…implechat into feature/chattutorial
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.