Skip to content

Feature/chattutorial#816

Merged
paullizer merged 31 commits intoDevelopmentfrom
feature/chattutorial
Mar 31, 2026
Merged

Feature/chattutorial#816
paullizer merged 31 commits intoDevelopmentfrom
feature/chattutorial

Conversation

@paullizer
Copy link
Copy Markdown
Contributor

No description provided.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

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] = []
Copy link

Copilot AI Mar 31, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copilot uses AI. Check for mistakes.
@paullizer paullizer merged commit 24c79c8 into Development Mar 31, 2026
5 checks passed
@paullizer paullizer deleted the feature/chattutorial branch March 31, 2026 20:03
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.

3 participants