Skip to content

Feature/chattutorial - #816

Merged
Paul Lizer (paullizer) merged 31 commits into
Developmentfrom
feature/chattutorial
Mar 31, 2026
Merged

Feature/chattutorial#816
Paul Lizer (paullizer) merged 31 commits into
Developmentfrom
feature/chattutorial

Conversation

@paullizer

Copy link
Copy Markdown
Collaborator

No description provided.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

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
FileDescription
scripts/generate-validators.mjsRemoves the AJV standalone validator generation script.
scripts/check_swagger_routes.pyNew AST-based checker enforcing authenticated swagger decorators on changed route files.
.github/workflows/swagger-route-check.ymlNew PR workflow that runs the swagger route checker on changed Python files.
README.mdAdds guidance for injecting private/self-signed CAs during Docker image build.
application/single_app/config.pyBumps app VERSION.
application/single_app/functions_settings.pyAdds derived helper for tabular-processing enablement; adds release notification settings defaults; normalizes derived flag on read/update.
application/single_app/semantic_kernel_loader.pyUses derived tabular-processing helper when loading the Tabular Processing plugin.
application/single_app/route_backend_chats.pyUses derived tabular-processing helper for runtime tabular gating in chat flows.
application/single_app/route_backend_plugins.pyReturns derived tabular-processing state and tolerates legacy POST payloads.
application/single_app/route_frontend_admin_settings.pyAdds persistence for release notification registration fields and derives tabular setting before rendering/saving.
application/single_app/route_backend_control_center.pyAdds missing swagger decorator to /api/approvals.
application/single_app/route_frontend_control_center.pyAdds missing swagger decorator to /approvals.
application/single_app/route_backend_speech.pyAdds swagger imports + missing swagger decorator to /api/speech/transcribe-chat.
application/single_app/route_backend_settings.pyAdds admin mailto workflows for Send Feedback + Release Notifications Registration (plus logging hooks).
application/single_app/functions_activity_logging.pyAdds activity logging helpers for admin feedback email submissions and release notification registrations.
application/single_app/templates/admin_settings.htmlAdds Latest Features tab, Send Feedback tab, and Release Notifications registration modal/fields.
application/single_app/templates/_sidebar_nav.htmlAdds admin sidebar entries/submenus for Latest Features + Send Feedback.
application/single_app/static/js/admin/admin_sidebar_nav.jsDefaults admin sidebar navigation to Latest Features and uses Bootstrap tab activation.
application/single_app/static/js/admin/admin_settings.jsWires 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/.gitkeepKeeps Latest Features screenshot directory tracked.
application/single_app/templates/base.htmlAdds SimpleMDE toolbar icon fallbacks (Font Awesome-free glyphs).
application/single_app/templates/public_workspaces.htmlEnsures SimpleMDE script is loaded for public prompt editing.
application/single_app/static/js/public/public_workspace.jsRefreshes/focuses SimpleMDE when the public prompt modal opens.
application/single_app/static/js/agent_modal_stepper.jsAdds SimpleMDE-backed markdown editing for agent instructions and keeps values in sync.
application/single_app/templates/_plugin_modal.htmlAdds autofill hardening attributes and wraps plugin modal content in an explicit form.
application/single_app/templates/chats.htmlSwitches reasoning tooltip markup to Bootstrap data-bs-title and adds Chat Tutorial launcher button markup.
application/single_app/static/js/chat/chat-reasoning.jsUses a Bootstrap-tooltip helper instead of raw title updates for reasoning tooltips.
application/single_app/static/js/chat/chat-sidebar-conversations.jsSwitches sidebar conversation dropdown to fixed Popper strategy + emits sidebar-loaded event for tutorial readiness.
application/single_app/static/js/chat/chat-onload.jsInitializes chat tutorial after chat bootstrap completes (finally block).
application/single_app/static/css/chats.cssAdds styling for chat tutorial launcher, overlay, and tutorial-owned popup surfaces.
application/single_app/templates/workspace.htmlAdds Workspace Tutorial launcher + workspace tutorial overlay CSS; loads workspace-tutorial.js.
docs/setup_instructions.mdNormalizes docs “section” capitalization.
docs/setup_instructions_manual.mdAdds local VS Code Python 3.12 .venv workflow guidance.
docs/reference/deploy/azd-cli_deploy.mdWraps CI/CD YAML snippet in {% raw %} to avoid Jekyll templating collisions.
docs/README-THEME.mdNormalizes docs “section” capitalization guidance.
docs/features.mdNormalizes docs “section” capitalization.
docs/index.mdRemoves embedded demo GIF section.
docs/how-to/docker_customization.mdExpands Docker customization doc, focusing on custom CA injection during image builds.
docs/explanation/running_simplechat_locally.mdUpdates local dev workflow guidance + bumps documentation version.
docs/_includes/sidebar_nav.htmlStops capitalizing section labels and removes inline JS (handled by docs/assets/js/sidebar.js).
docs/latest-release/index.mdAdds “Latest Release” landing page content for v0.239.001.
docs/latest-release/export-conversation.mdAdds Latest Release doc for conversation export workflow.
docs/latest-release/retention-policy.mdAdds Latest Release doc for retention policy configuration.
docs/latest-release/workspace-scope-lock.mdAdds Latest Release doc for workspace scope lock behavior.
docs/latest-release/tags-grid-view-chat-filtering.mdAdds Latest Release doc for tags, grid view, and chat filtering.
docs/explanation/features/index.mdAdds “Tutorial Features” section linking to Guided Tutorials.
docs/explanation/features/GUIDED_TUTORIALS.mdNew feature doc covering Chat + Personal Workspace tutorials and regression coverage.
docs/explanation/features/PERSONAL_WORKSPACE_TUTORIAL.mdNew feature doc for the personal workspace tutorial.
docs/explanation/features/LATEST_FEATURES_ADMIN_TAB.mdNew feature doc for Latest Features admin tab.
docs/explanation/features/SEND_FEEDBACK_ADMIN.mdNew feature doc for Send Feedback admin tab and mailto workflow.
docs/explanation/features/RELEASE_NOTIFICATIONS_REGISTRATION.mdNew feature doc for admin release notification registration.
docs/explanation/features/SWAGGER_PR_ROUTE_CHECK.mdNew feature doc describing the PR route checker workflow/script.
docs/explanation/fixes/TABULAR_PROCESSING_ENHANCED_CITATIONS_DEPENDENCY_FIX.mdFix doc describing derived tabular enablement from Enhanced Citations.
docs/explanation/fixes/SWAGGER_ROUTE_INTEGRATION_FIX.mdFix doc describing the missing swagger decorators and coverage.
docs/explanation/fixes/REASONING_EFFORT_TOOLTIP_STYLE_FIX.mdFix doc describing Bootstrap tooltip consistency for reasoning UI.
docs/explanation/fixes/WORKSPACE_PROMPT_MARKDOWN_TOOLBAR_FIX.mdFix doc describing SimpleMDE toolbar glyph fallbacks + public/agent editor wiring.
docs/explanation/fixes/WORKSPACE_PLUGIN_MODAL_AUTOFILL_FIX.mdFix doc describing plugin modal autofill hardening.
docs/explanation/fixes/PERSONAL_WORKSPACE_TUTORIAL_REPOSITION_FIX.mdFix doc for workspace tutorial repositioning after layout transitions.
docs/explanation/fixes/PERSONAL_WORKSPACE_TUTORIAL_LAYER_ORDER_FIX.mdFix doc for workspace tutorial popup layering order.
docs/explanation/fixes/CHAT_TUTORIAL_SELECTOR_COVERAGE_FIX.mdFix doc for chat tutorial selector drift + popup stability + sidebar dropdown fix.
docs/explanation/fixes/AUTOFILL_OVERLAY_NULL_FIELD_METADATA_FIX.mdFix doc for admin autofill-overlay errors via metadata hardening.
docs/explanation/fixes/v0.237.003/CUSTOM_LOGO_NOT_DISPLAYING_FIX.mdWraps Jinja snippet in {% raw %} to prevent docs rendering issues.
docs/explanation/fixes/v0.229.014/PUBLIC_WORKSPACE_SCOPE_DISPLAY_ENHANCEMENT.mdWraps Jinja snippet in {% raw %} to prevent docs rendering issues.
docs/explanation/fixes/v0.229.001/SIDEBAR_TITLE_LENGTH_CONTROL_FIX.mdWraps HTML/Jinja snippet in {% raw %} to prevent docs rendering issues.
docs/explanation/fixes/v0.229.001/CREATE_PUBLIC_WORKSPACE_PERMISSION_DISPLAY_FIX.mdWraps Jinja snippet in {% raw %} to prevent docs rendering issues.
docs/explanation/fixes/v0.229.001/CREATE_GROUP_PERMISSION_DISPLAY_FIX.mdWraps Jinja snippet in {% raw %} to prevent docs rendering issues.
docs/explanation/features/v0.235.001/PUBLIC_WORKSPACE_GOTO_BUTTON_ENHANCANCEMENT.mdWraps HTML snippet in {% raw %} to prevent docs rendering issues.
docs/explanation/features/v0.229.058/PUBLIC_WORKSPACE_GOTO_BUTTON_ENHANCEMENT.mdWraps HTML snippet in {% raw %} to prevent docs rendering issues.
docs/explanation/features/v0.235.001/FULL_WIDTH_CHAT_SUPPORT.mdWraps template-conditioned CSS in {% raw %} to prevent docs rendering issues.
docs/explanation/features/v0.235.001/AUTOMATIC_SWAGGER_SCHEMA_GENERATION.mdWraps HTML snippet in {% raw %} to prevent docs rendering issues.
functional_tests/test_chat_tutorial_selector_coverage.pyAdds regression checks for chat tutorial selectors and UI guards.
functional_tests/test_sidebar_conversation_dropdown_positioning.pyRegression checks for fixed-strategy dropdown positioning and tutorial popup classes.
functional_tests/test_personal_workspace_tutorial_selector_coverage.pyRegression checks for workspace tutorial selectors/launcher wiring and guard helpers.
functional_tests/test_personal_workspace_tutorial_document_flow.pyRegression checks for workspace tutorial document-flow step ordering and markers.
functional_tests/test_workspace_tutorial_reposition_fix.pyRegression checks for reposition scheduling/observers and collapse/tab listeners.
functional_tests/test_workspace_tutorial_layer_order_fix.pyRegression checks for tutorial-owned surface insertion inside the tutorial layer.
functional_tests/test_workspace_prompt_markdown_toolbar_fix.pyRegression checks for SimpleMDE toolbar glyph fallbacks + script includes + agent instructions editor wiring.
functional_tests/test_workspace_plugin_modal_autofill_hardening.pyRegression checks for plugin modal autofill ignore attributes and explicit form context.
functional_tests/test_reasoning_effort_tooltip_consistency.pyRegression checks for Bootstrap tooltip usage in reasoning UI and template attributes.
functional_tests/test_reasoning_effort_initial_sync.pyUpdates expected version assertions for reasoning effort initial sync test.
functional_tests/test_tabular_processing_enhanced_citations_dependency.pyRegression checks for derived tabular enablement and admin UI/API behavior changes + fix doc presence.
functional_tests/test_missing_swagger_routes_fix.pyRegression checks for newly added swagger decorators on previously missing routes.
functional_tests/test_swagger_route_pr_workflow.pyRegression checks for workflow presence + checker pass/fail behavior.
functional_tests/test_admin_latest_features_tab.pyRegression checks for Latest Features tab structure, mirrored controls, JS syncing, and assets/docs.
functional_tests/test_admin_send_feedback_tab.pyRegression checks for Send Feedback tab structure, JS/backend integration, and docs.
functional_tests/test_admin_release_notifications_registration.pyRegression checks for release notification registration UI, persistence, JS/backend integration, and docs.

Comment threadapplication/single_app/config.py Outdated
Comment threadapplication/single_app/route_backend_settings.py Outdated
Comment threadapplication/single_app/route_backend_settings.py Outdated
Comment threadscripts/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] = []

CopilotAIMar 31, 2026

Copy link

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.
Comment threadapplication/single_app/static/js/agent_modal_stepper.js Outdated
Comment threadapplication/single_app/templates/_plugin_modal.html
Comment threadfunctional_tests/test_chat_tutorial_selector_coverage.py
Comment threadapplication/single_app/functions_activity_logging.py Outdated
Comment threadapplication/single_app/functions_activity_logging.py Outdated
@paullizer
Paul Lizer (paullizer) merged commit 24c79c8 into DevelopmentMar 31, 2026
5 checks passed
@paullizer
Paul Lizer (paullizer) deleted the feature/chattutorial branch March 31, 2026 20:03
Sign up for freeto 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

@paullizer@nadoylemsft