diff --git a/application/single_app/config.py b/application/single_app/config.py index 976352692..bfeb46dae 100644 --- a/application/single_app/config.py +++ b/application/single_app/config.py @@ -96,7 +96,7 @@ EXECUTOR_TYPE = 'thread' EXECUTOR_MAX_WORKERS = 30 SESSION_TYPE = 'filesystem' -VERSION = "0.260.025" +VERSION = "0.260.028" IS_DEVELOPMENT = is_development_env_enabled() SESSION_COOKIE_SAMESITE = os.getenv('SESSION_COOKIE_SAMESITE', 'Lax') diff --git a/application/single_app/static/images/features/admin_release_260_feedback_safety_lifecycle.png b/application/single_app/static/images/features/admin_release_260_feedback_safety_lifecycle.png deleted file mode 100644 index 777c02909..000000000 Binary files a/application/single_app/static/images/features/admin_release_260_feedback_safety_lifecycle.png and /dev/null differ diff --git a/application/single_app/static/images/features/admin_release_260_index_auto_login.png b/application/single_app/static/images/features/admin_release_260_index_auto_login.png deleted file mode 100644 index 3e1073095..000000000 Binary files a/application/single_app/static/images/features/admin_release_260_index_auto_login.png and /dev/null differ diff --git a/application/single_app/static/images/features/release_260_action_test_connection_1.png b/application/single_app/static/images/features/release_260_action_test_connection_1.png index 07329b0d1..fd60c0d37 100644 Binary files a/application/single_app/static/images/features/release_260_action_test_connection_1.png and b/application/single_app/static/images/features/release_260_action_test_connection_1.png differ diff --git a/application/single_app/static/images/features/release_260_action_test_connection_2.png b/application/single_app/static/images/features/release_260_action_test_connection_2.png index 355675d15..7beee2849 100644 Binary files a/application/single_app/static/images/features/release_260_action_test_connection_2.png and b/application/single_app/static/images/features/release_260_action_test_connection_2.png differ diff --git a/application/single_app/static/images/features/release_260_action_test_connection_3.png b/application/single_app/static/images/features/release_260_action_test_connection_3.png index 2b4890738..ce93168a7 100644 Binary files a/application/single_app/static/images/features/release_260_action_test_connection_3.png and b/application/single_app/static/images/features/release_260_action_test_connection_3.png differ diff --git a/application/single_app/static/images/features/release_260_azure_blob_file_sync_1.png b/application/single_app/static/images/features/release_260_azure_blob_file_sync_1.png index 4b0c05ae5..de4db0cef 100644 Binary files a/application/single_app/static/images/features/release_260_azure_blob_file_sync_1.png and b/application/single_app/static/images/features/release_260_azure_blob_file_sync_1.png differ diff --git a/application/single_app/static/images/features/release_260_azure_blob_file_sync_2.png b/application/single_app/static/images/features/release_260_azure_blob_file_sync_2.png index a4736bdb3..257022cf7 100644 Binary files a/application/single_app/static/images/features/release_260_azure_blob_file_sync_2.png and b/application/single_app/static/images/features/release_260_azure_blob_file_sync_2.png differ diff --git a/application/single_app/static/images/features/release_260_azure_blob_file_sync_3.png b/application/single_app/static/images/features/release_260_azure_blob_file_sync_3.png index 0598a0ae8..9bc0ac8aa 100644 Binary files a/application/single_app/static/images/features/release_260_azure_blob_file_sync_3.png and b/application/single_app/static/images/features/release_260_azure_blob_file_sync_3.png differ diff --git a/application/single_app/static/images/features/release_260_chat_scroll_508_1.png b/application/single_app/static/images/features/release_260_chat_scroll_508_1.png index eee4d555f..1848b57cb 100644 Binary files a/application/single_app/static/images/features/release_260_chat_scroll_508_1.png and b/application/single_app/static/images/features/release_260_chat_scroll_508_1.png differ diff --git a/application/single_app/static/images/features/release_260_chat_scroll_508_2.png b/application/single_app/static/images/features/release_260_chat_scroll_508_2.png index 83ebdf785..7f390d8c4 100644 Binary files a/application/single_app/static/images/features/release_260_chat_scroll_508_2.png and b/application/single_app/static/images/features/release_260_chat_scroll_508_2.png differ diff --git a/application/single_app/static/images/features/release_260_chat_scroll_508_3.png b/application/single_app/static/images/features/release_260_chat_scroll_508_3.png index dc41151f9..06e31b796 100644 Binary files a/application/single_app/static/images/features/release_260_chat_scroll_508_3.png and b/application/single_app/static/images/features/release_260_chat_scroll_508_3.png differ diff --git a/application/single_app/static/images/features/release_260_conversation_contents_drawer_1.png b/application/single_app/static/images/features/release_260_conversation_contents_drawer_1.png index b8bebe03e..270e4cd2c 100644 Binary files a/application/single_app/static/images/features/release_260_conversation_contents_drawer_1.png and b/application/single_app/static/images/features/release_260_conversation_contents_drawer_1.png differ diff --git a/application/single_app/static/images/features/release_260_conversation_contents_drawer_2.png b/application/single_app/static/images/features/release_260_conversation_contents_drawer_2.png index 38e5c441f..1d940ae88 100644 Binary files a/application/single_app/static/images/features/release_260_conversation_contents_drawer_2.png and b/application/single_app/static/images/features/release_260_conversation_contents_drawer_2.png differ diff --git a/application/single_app/static/images/features/release_260_conversation_contents_drawer_3.png b/application/single_app/static/images/features/release_260_conversation_contents_drawer_3.png deleted file mode 100644 index 809696c71..000000000 Binary files a/application/single_app/static/images/features/release_260_conversation_contents_drawer_3.png and /dev/null differ diff --git a/application/single_app/static/images/features/release_260_conversation_context_grounding_1.png b/application/single_app/static/images/features/release_260_conversation_context_grounding_1.png index 8fd41c5ed..761c379b1 100644 Binary files a/application/single_app/static/images/features/release_260_conversation_context_grounding_1.png and b/application/single_app/static/images/features/release_260_conversation_context_grounding_1.png differ diff --git a/application/single_app/static/images/features/release_260_conversation_context_grounding_2.png b/application/single_app/static/images/features/release_260_conversation_context_grounding_2.png index 9b99ddb7e..bcd494634 100644 Binary files a/application/single_app/static/images/features/release_260_conversation_context_grounding_2.png and b/application/single_app/static/images/features/release_260_conversation_context_grounding_2.png differ diff --git a/application/single_app/static/images/features/release_260_conversation_context_grounding_3.png b/application/single_app/static/images/features/release_260_conversation_context_grounding_3.png index 40c7bbaf9..9694ef591 100644 Binary files a/application/single_app/static/images/features/release_260_conversation_context_grounding_3.png and b/application/single_app/static/images/features/release_260_conversation_context_grounding_3.png differ diff --git a/application/single_app/static/images/features/release_260_mcp_platform_1.png b/application/single_app/static/images/features/release_260_mcp_platform_1.png index 50f357c30..a4a8a7d3f 100644 Binary files a/application/single_app/static/images/features/release_260_mcp_platform_1.png and b/application/single_app/static/images/features/release_260_mcp_platform_1.png differ diff --git a/application/single_app/static/images/features/release_260_mcp_platform_2.png b/application/single_app/static/images/features/release_260_mcp_platform_2.png index 39973c61c..dc325ff15 100644 Binary files a/application/single_app/static/images/features/release_260_mcp_platform_2.png and b/application/single_app/static/images/features/release_260_mcp_platform_2.png differ diff --git a/application/single_app/static/images/features/release_260_mcp_platform_3.png b/application/single_app/static/images/features/release_260_mcp_platform_3.png index 3b2350b55..a15e7d1bb 100644 Binary files a/application/single_app/static/images/features/release_260_mcp_platform_3.png and b/application/single_app/static/images/features/release_260_mcp_platform_3.png differ diff --git a/application/single_app/static/images/features/release_260_message_audio_export_1.png b/application/single_app/static/images/features/release_260_message_audio_export_1.png index 1c56af3c4..2c52af94b 100644 Binary files a/application/single_app/static/images/features/release_260_message_audio_export_1.png and b/application/single_app/static/images/features/release_260_message_audio_export_1.png differ diff --git a/application/single_app/static/images/features/release_260_message_audio_export_2.png b/application/single_app/static/images/features/release_260_message_audio_export_2.png index 92c382ee1..7be07b1db 100644 Binary files a/application/single_app/static/images/features/release_260_message_audio_export_2.png and b/application/single_app/static/images/features/release_260_message_audio_export_2.png differ diff --git a/application/single_app/static/images/features/release_260_message_audio_export_3.png b/application/single_app/static/images/features/release_260_message_audio_export_3.png index dcdc8f989..843a60033 100644 Binary files a/application/single_app/static/images/features/release_260_message_audio_export_3.png and b/application/single_app/static/images/features/release_260_message_audio_export_3.png differ diff --git a/application/single_app/static/images/features/release_260_public_workspace_display_name_1.png b/application/single_app/static/images/features/release_260_public_workspace_display_name_1.png index 6cf13a73e..7522dfa57 100644 Binary files a/application/single_app/static/images/features/release_260_public_workspace_display_name_1.png and b/application/single_app/static/images/features/release_260_public_workspace_display_name_1.png differ diff --git a/application/single_app/static/images/features/release_260_public_workspace_display_name_2.png b/application/single_app/static/images/features/release_260_public_workspace_display_name_2.png index 91e7c10ef..de6dd0f6f 100644 Binary files a/application/single_app/static/images/features/release_260_public_workspace_display_name_2.png and b/application/single_app/static/images/features/release_260_public_workspace_display_name_2.png differ diff --git a/application/single_app/static/images/features/release_260_public_workspace_display_name_3.png b/application/single_app/static/images/features/release_260_public_workspace_display_name_3.png index 70b863f81..62f596285 100644 Binary files a/application/single_app/static/images/features/release_260_public_workspace_display_name_3.png and b/application/single_app/static/images/features/release_260_public_workspace_display_name_3.png differ diff --git a/application/single_app/static/images/features/release_260_rocksdb_action_1.png b/application/single_app/static/images/features/release_260_rocksdb_action_1.png index 0c1e431e4..b72764f45 100644 Binary files a/application/single_app/static/images/features/release_260_rocksdb_action_1.png and b/application/single_app/static/images/features/release_260_rocksdb_action_1.png differ diff --git a/application/single_app/static/images/features/release_260_rocksdb_action_2.png b/application/single_app/static/images/features/release_260_rocksdb_action_2.png index 3eb7f4c59..37062602c 100644 Binary files a/application/single_app/static/images/features/release_260_rocksdb_action_2.png and b/application/single_app/static/images/features/release_260_rocksdb_action_2.png differ diff --git a/application/single_app/static/images/features/release_260_rocksdb_action_3.png b/application/single_app/static/images/features/release_260_rocksdb_action_3.png index 3a0eb2524..35c9cde12 100644 Binary files a/application/single_app/static/images/features/release_260_rocksdb_action_3.png and b/application/single_app/static/images/features/release_260_rocksdb_action_3.png differ diff --git a/application/single_app/static/images/features/release_260_terms_of_use_1.png b/application/single_app/static/images/features/release_260_terms_of_use_1.png index 4cfb1c7e2..bf3240ca9 100644 Binary files a/application/single_app/static/images/features/release_260_terms_of_use_1.png and b/application/single_app/static/images/features/release_260_terms_of_use_1.png differ diff --git a/application/single_app/static/images/features/release_260_terms_of_use_2.png b/application/single_app/static/images/features/release_260_terms_of_use_2.png index 2167dac08..0272b6761 100644 Binary files a/application/single_app/static/images/features/release_260_terms_of_use_2.png and b/application/single_app/static/images/features/release_260_terms_of_use_2.png differ diff --git a/application/single_app/static/images/features/release_260_terms_of_use_3.png b/application/single_app/static/images/features/release_260_terms_of_use_3.png index 7a63cea0d..1cde4687e 100644 Binary files a/application/single_app/static/images/features/release_260_terms_of_use_3.png and b/application/single_app/static/images/features/release_260_terms_of_use_3.png differ diff --git a/application/single_app/static/images/features/release_260_used_documents_fork_1.png b/application/single_app/static/images/features/release_260_used_documents_fork_1.png index 3461a89e2..6e17a6a05 100644 Binary files a/application/single_app/static/images/features/release_260_used_documents_fork_1.png and b/application/single_app/static/images/features/release_260_used_documents_fork_1.png differ diff --git a/application/single_app/static/images/features/release_260_used_documents_fork_2.png b/application/single_app/static/images/features/release_260_used_documents_fork_2.png index 567ace5ad..28de4819a 100644 Binary files a/application/single_app/static/images/features/release_260_used_documents_fork_2.png and b/application/single_app/static/images/features/release_260_used_documents_fork_2.png differ diff --git a/application/single_app/static/images/features/release_260_used_documents_fork_3.png b/application/single_app/static/images/features/release_260_used_documents_fork_3.png index 519fa2619..ec1906447 100644 Binary files a/application/single_app/static/images/features/release_260_used_documents_fork_3.png and b/application/single_app/static/images/features/release_260_used_documents_fork_3.png differ diff --git a/application/single_app/static/images/features/release_260_workflow_task_sequences_1.png b/application/single_app/static/images/features/release_260_workflow_task_sequences_1.png index 292df8c50..9a152c2fc 100644 Binary files a/application/single_app/static/images/features/release_260_workflow_task_sequences_1.png and b/application/single_app/static/images/features/release_260_workflow_task_sequences_1.png differ diff --git a/application/single_app/static/images/features/release_260_workflow_task_sequences_2.png b/application/single_app/static/images/features/release_260_workflow_task_sequences_2.png index 02fc5cf33..cc63486b5 100644 Binary files a/application/single_app/static/images/features/release_260_workflow_task_sequences_2.png and b/application/single_app/static/images/features/release_260_workflow_task_sequences_2.png differ diff --git a/application/single_app/static/images/features/release_260_workflow_task_sequences_3.png b/application/single_app/static/images/features/release_260_workflow_task_sequences_3.png index 9d3d84775..ef8d34f5f 100644 Binary files a/application/single_app/static/images/features/release_260_workflow_task_sequences_3.png and b/application/single_app/static/images/features/release_260_workflow_task_sequences_3.png differ diff --git a/application/single_app/static/images/features/release_260_yamcs_action_1.png b/application/single_app/static/images/features/release_260_yamcs_action_1.png index 994045959..783196236 100644 Binary files a/application/single_app/static/images/features/release_260_yamcs_action_1.png and b/application/single_app/static/images/features/release_260_yamcs_action_1.png differ diff --git a/application/single_app/static/images/features/release_260_yamcs_action_2.png b/application/single_app/static/images/features/release_260_yamcs_action_2.png index 74aa83eba..95d3979e1 100644 Binary files a/application/single_app/static/images/features/release_260_yamcs_action_2.png and b/application/single_app/static/images/features/release_260_yamcs_action_2.png differ diff --git a/application/single_app/static/images/features/release_260_yamcs_action_3.png b/application/single_app/static/images/features/release_260_yamcs_action_3.png index f7abecf2c..6eec9305f 100644 Binary files a/application/single_app/static/images/features/release_260_yamcs_action_3.png and b/application/single_app/static/images/features/release_260_yamcs_action_3.png differ diff --git a/application/single_app/support_menu_config.py b/application/single_app/support_menu_config.py index 305592347..34590695a 100644 --- a/application/single_app/support_menu_config.py +++ b/application/single_app/support_menu_config.py @@ -1653,7 +1653,7 @@ def _apply_support_application_title(value, app_title): images=[ {'title': 'Choose an MCP Preset', 'label': 'MCP Presets', 'caption': 'Presets and admin-curated catalogs replace hand-typed MCP server configuration.'}, {'title': 'Test the Connection', 'label': 'Test Connection', 'caption': 'Verify the MCP server responds before saving the action.'}, - {'title': 'Use MCP Tools in Chat', 'label': 'MCP in Chat', 'caption': 'An agent holding an MCP action can call those tools during a conversation.'}, + {'title': 'Review the MCP Configuration', 'label': 'MCP Summary', 'caption': 'The final step lists the transport, preset, timeouts, and the exact tools the action will expose.'}, ], ), _latest_feature_card( @@ -1679,7 +1679,7 @@ def _apply_support_application_title(value, app_title): images=[ {'title': 'Configure the Yamcs Action', 'label': 'Yamcs Setup', 'caption': 'A dedicated panel collects the server address, authentication method, and optional archive SQL access.'}, {'title': 'Verify With Test Connection', 'label': 'Connection Test', 'caption': 'Confirm SimpleChat can reach the Yamcs instance before relying on the action.'}, - {'title': 'Ask About Telemetry', 'label': 'Telemetry Q&A', 'caption': 'An agent with the Yamcs action can answer questions about telemetry, events, and alarms.'}, + {'title': 'Review the Yamcs Configuration', 'label': 'Configuration Summary', 'caption': 'The summary confirms the instance, processor, authentication, TLS, limits, and archive SQL state before saving.'}, ], ), _latest_feature_card( @@ -1705,7 +1705,7 @@ def _apply_support_application_title(value, app_title): images=[ {'title': 'Configure the RocksDB Action', 'label': 'RocksDB Setup', 'caption': 'Point the action at the HTTP and JSON service fronting your key-value store.'}, {'title': 'Choose an Authentication Mode', 'label': 'Auth Options', 'caption': 'No-auth, bearer token, and API key authentication are all supported.'}, - {'title': 'Query Keys From Chat', 'label': 'Key Lookup', 'caption': 'Ask an agent for a specific key or a range scan across a key prefix.'}, + {'title': 'Review the Keyspace Configuration', 'label': 'Keyspace Summary', 'caption': 'The summary confirms read-only access, encodings, limits, and the key prefixes the model is told about.'}, ], ), _latest_feature_card( @@ -1906,9 +1906,9 @@ def _apply_support_application_title(value, app_title): {'label': 'Open Chat', 'description': 'Send a message and open the Conversation Context citation on the response.', 'href': '/chats#chatbox', 'icon': 'bi-chat-dots'}, ], images=[ - {'title': 'Context Citation on a Response', 'label': 'Context Citation', 'caption': 'Every answer carries a Conversation Context citation alongside its document sources.'}, - {'title': 'Model and Version Detail', 'label': 'Model Detail', 'caption': 'See the exact model and SimpleChat version that produced the response.'}, - {'title': 'Scope and Documents', 'label': 'Scope Detail', 'caption': 'Workspace scope, selected documents, agent, and capability state are all recorded.'}, + {'title': 'Context Citation on a Response', 'label': 'Context Citation', 'caption': 'Every answer carries a Conversation Context citation alongside Conversation History and Instruction Memory.'}, + {'title': 'Document Sources', 'label': 'Document Sources', 'caption': 'Statements drawn from a workspace document cite the source file and the page they came from.'}, + {'title': 'Scope and Generation Detail', 'label': 'Generation Detail', 'caption': 'The detail panel records the model, workspace action, retrieval flags, and agent citations behind the answer.'}, ], ), _latest_feature_card( @@ -1958,8 +1958,7 @@ def _apply_support_application_title(value, app_title): {'label': 'Open Profile', 'description': 'Show or hide the conversation contents drawer for your account.', 'href': '/profile', 'icon': 'bi-person-gear'}, ], images=[ - {'title': 'Contents Drawer', 'label': 'Drawer', 'caption': 'Your earlier prompts are indexed as navigable entries beside the conversation.'}, - {'title': 'Jump to a Prompt', 'label': 'Jump', 'caption': 'Select an entry to move directly to that point in a long conversation.'}, + {'title': 'Contents Drawer', 'label': 'Drawer', 'caption': 'Your earlier prompts are indexed as navigable entries; select one to move straight to that point in a long conversation.'}, {'title': 'Hide It If You Prefer', 'label': 'Profile Toggle', 'caption': 'Each user can hide the drawer from their own profile page.'}, ], ), @@ -2035,9 +2034,9 @@ def _apply_support_application_title(value, app_title): {'label': 'Open Profile', 'description': 'Confirm the same workspace name appears on your profile.', 'href': '/profile', 'icon': 'bi-person-gear'}, ], images=[ - {'title': 'Renamed in Chat Scope', 'label': 'Scope Selector', 'caption': 'The organization-chosen name replaces the default Public Workspace label.'}, + {'title': 'Set the End-User Label', 'label': 'Display Name', 'caption': 'An optional display name replaces Public Workspace everywhere end users see it.'}, {'title': 'Consistent Across Navigation', 'label': 'Navigation', 'caption': 'The same label appears in navigation, profile, and directory pages.'}, - {'title': 'Behavior Is Unchanged', 'label': 'Same Behavior', 'caption': 'Only the label changes; documents, links, and citations work exactly as before.'}, + {'title': 'Behavior Is Unchanged', 'label': 'Same Behavior', 'caption': 'Chat scope selection, documents, and citations work exactly as before; only the label changes.'}, ], ), _latest_feature_card( @@ -2228,7 +2227,7 @@ def _apply_support_application_title(value, app_title): {'label': 'Open Safety', 'description': 'Manage safety violation archive and delete lifecycle.', 'href': '#safety', 'admin_tab': '#safety', 'icon': 'bi-shield-exclamation'}, {'label': 'Open Send Feedback', 'description': 'Review feedback records affected by archive and delete lifecycle controls.', 'href': '#send-feedback', 'admin_tab': '#send-feedback', 'icon': 'bi-chat-left-text'}, ], - image_label='Record Lifecycle', + include_media=False, ), _latest_feature_card( 'admin_release_260_log_cleanup', @@ -2282,7 +2281,7 @@ def _apply_support_application_title(value, app_title): actions=[ {'label': 'Open Security', 'description': 'Review Entra SSO and home-page auto-login behavior.', 'href': '#security', 'admin_tab': '#security', 'icon': 'bi-shield-lock'}, ], - image_label='SSO Redirect', + include_media=False, ), _latest_feature_card( 'admin_release_260_enhanced_extraction', @@ -2518,13 +2517,6 @@ def get_default_support_latest_features_visibility(): defaults['deployment'] = False defaults['redis_key_vault'] = False - # The v0.260.001 cards ship hidden because their screenshots are still - # placeholders. Admins enable each card from Admin Settings once the real - # capture replaces the placeholder image, so end users never see a - # "Screenshot pending" tile. - for item in _SUPPORT_RELEASE_260_FEATURE_CATALOG: - defaults[item['id']] = False - return defaults diff --git a/docs/_data/latest_release_features.yml b/docs/_data/latest_release_features.yml index 15ab09989..ebbb2e428 100644 --- a/docs/_data/latest_release_features.yml +++ b/docs/_data/latest_release_features.yml @@ -220,9 +220,9 @@ lookup: label: Test Connection - path: /images/latest-release/release_260_mcp_platform_3.png alt: Use MCP Tools in Chat screenshot placeholder - title: Use MCP Tools in Chat - caption: An agent holding an MCP action can call those tools during a conversation. - label: MCP in Chat + title: Review the MCP Configuration + caption: The final step lists the transport, preset, timeouts, and the exact tools the action will expose. + label: MCP Summary release-260-yamcs-action: title: Yamcs Mission Control Integration description: A new Yamcs action type connects agents to Yamcs mission control servers with eleven read-only tools covering @@ -251,9 +251,9 @@ lookup: label: Connection Test - path: /images/latest-release/release_260_yamcs_action_3.png alt: Ask About Telemetry screenshot placeholder - title: Ask About Telemetry - caption: An agent with the Yamcs action can answer questions about telemetry, events, and alarms. - label: Telemetry Q&A + title: Review the Yamcs Configuration + caption: The summary confirms the instance, processor, authentication, TLS, limits, and archive SQL state before saving. + label: Configuration Summary release-260-rocksdb-action: title: RocksDB Key-Value Store Action description: A new RocksDB action type lets agents read from an ordered key-value store through a conforming HTTP and @@ -282,9 +282,9 @@ lookup: label: Auth Options - path: /images/latest-release/release_260_rocksdb_action_3.png alt: Query Keys From Chat screenshot placeholder - title: Query Keys From Chat - caption: Ask an agent for a specific key or a range scan across a key prefix. - label: Key Lookup + title: Review the Keyspace Configuration + caption: The summary confirms read-only access, encodings, limits, and the key prefixes the model is told about. + label: Keyspace Summary release-260-agent-instruction-references: title: Reference Actions and Knowledge Directly in Agent Instructions description: Agent instructions can now name the exact actions and documents an agent holds using autocompleted hash-action @@ -519,20 +519,20 @@ lookup: image_alt: Context Citation on a Response screenshot placeholder images: - path: /images/latest-release/release_260_conversation_context_grounding_1.png - alt: Context Citation on a Response screenshot placeholder + alt: Context Citation on a Response screenshot title: Context Citation on a Response - caption: Every answer carries a Conversation Context citation alongside its document sources. + caption: Every answer carries a Conversation Context citation alongside Conversation History and Instruction Memory. label: Context Citation - path: /images/latest-release/release_260_conversation_context_grounding_2.png - alt: Model and Version Detail screenshot placeholder - title: Model and Version Detail - caption: See the exact model and SimpleChat version that produced the response. - label: Model Detail + alt: Document Sources screenshot + title: Document Sources + caption: Statements drawn from a workspace document cite the source file and the page they came from. + label: Document Sources - path: /images/latest-release/release_260_conversation_context_grounding_3.png - alt: Scope and Documents screenshot placeholder - title: Scope and Documents - caption: Workspace scope, selected documents, agent, and capability state are all recorded. - label: Scope Detail + alt: Scope and Generation Detail screenshot + title: Scope and Generation Detail + caption: The detail panel records the model, workspace action, retrieval flags, and agent citations behind the answer. + label: Generation Detail release-260-used-documents-fork: title: Used Documents View and Conversation Forking description: A Used Documents mode shows only the documents actually cited in a conversation, and you can fork a conversation @@ -581,17 +581,12 @@ lookup: image_alt: Contents Drawer screenshot placeholder images: - path: /images/latest-release/release_260_conversation_contents_drawer_1.png - alt: Contents Drawer screenshot placeholder + alt: Contents Drawer screenshot title: Contents Drawer - caption: Your earlier prompts are indexed as navigable entries beside the conversation. + caption: Your earlier prompts are indexed as navigable entries; select one to move straight to that point in a long conversation. label: Drawer - path: /images/latest-release/release_260_conversation_contents_drawer_2.png - alt: Jump to a Prompt screenshot placeholder - title: Jump to a Prompt - caption: Select an entry to move directly to that point in a long conversation. - label: Jump - - path: /images/latest-release/release_260_conversation_contents_drawer_3.png - alt: Hide It If You Prefer screenshot placeholder + alt: Hide It If You Prefer screenshot title: Hide It If You Prefer caption: Each user can hide the drawer from their own profile page. label: Profile Toggle @@ -668,22 +663,22 @@ lookup: release_label: Current Release release_version: 0.260.001 image: /images/latest-release/release_260_public_workspace_display_name_1.png - image_alt: Renamed in Chat Scope screenshot placeholder + image_alt: Set the End-User Label screenshot images: - path: /images/latest-release/release_260_public_workspace_display_name_1.png - alt: Renamed in Chat Scope screenshot placeholder - title: Renamed in Chat Scope - caption: The organization-chosen name replaces the default Public Workspace label. - label: Scope Selector + alt: Set the End-User Label screenshot + title: Set the End-User Label + caption: An optional display name replaces Public Workspace everywhere end users see it. + label: Display Name - path: /images/latest-release/release_260_public_workspace_display_name_2.png - alt: Consistent Across Navigation screenshot placeholder + alt: Consistent Across Navigation screenshot title: Consistent Across Navigation caption: The same label appears in navigation, profile, and directory pages. label: Navigation - path: /images/latest-release/release_260_public_workspace_display_name_3.png - alt: Behavior Is Unchanged screenshot placeholder + alt: Behavior Is Unchanged screenshot title: Behavior Is Unchanged - caption: Only the label changes; documents, links, and citations work exactly as before. + caption: Chat scope selection, documents, and citations work exactly as before; only the label changes. label: Same Behavior release-260-chat-scroll-508: title: Chat Stops Yanking You to the Bottom diff --git a/docs/_data/media_pending.yml b/docs/_data/media_pending.yml index 0401fc0be..2f0a50e89 100644 --- a/docs/_data/media_pending.yml +++ b/docs/_data/media_pending.yml @@ -9,65 +9,5 @@ release_v0_260_001: label: "SimpleChat v0.260.001 Latest Features" - note: "Placeholder graphics shipped with the release so cards render. Replace with real captures." - items: - - page: /latest-release/release-260-action-test-connection/ - images: 3 - path_pattern: "docs/images/latest-release/release_260_action_test_connection_1.png .. _3.png" - - page: /latest-release/release-260-agent-instruction-references/ - images: 3 - path_pattern: "docs/images/latest-release/release_260_agent_instruction_references_1.png .. _3.png" - - page: /latest-release/release-260-audio-file-support/ - images: 3 - path_pattern: "docs/images/latest-release/release_260_audio_file_support_1.png .. _3.png" - - page: /latest-release/release-260-azure-blob-file-sync/ - images: 3 - path_pattern: "docs/images/latest-release/release_260_azure_blob_file_sync_1.png .. _3.png" - - page: /latest-release/release-260-chat-ai-notice/ - images: 3 - path_pattern: "docs/images/latest-release/release_260_chat_ai_notice_1.png .. _3.png" - - page: /latest-release/release-260-chat-scroll-508/ - images: 3 - path_pattern: "docs/images/latest-release/release_260_chat_scroll_508_1.png .. _3.png" - - page: /latest-release/release-260-completion-notifications/ - images: 3 - path_pattern: "docs/images/latest-release/release_260_completion_notifications_1.png .. _3.png" - - page: /latest-release/release-260-conversation-contents-drawer/ - images: 3 - path_pattern: "docs/images/latest-release/release_260_conversation_contents_drawer_1.png .. _3.png" - - page: /latest-release/release-260-conversation-context-grounding/ - images: 3 - path_pattern: "docs/images/latest-release/release_260_conversation_context_grounding_1.png .. _3.png" - - page: /latest-release/release-260-enhanced-extraction/ - images: 3 - path_pattern: "docs/images/latest-release/release_260_enhanced_extraction_1.png .. _3.png" - - page: /latest-release/release-260-font-size-zoom/ - images: 3 - path_pattern: "docs/images/latest-release/release_260_font_size_zoom_1.png .. _3.png" - - page: /latest-release/release-260-mcp-platform/ - images: 3 - path_pattern: "docs/images/latest-release/release_260_mcp_platform_1.png .. _3.png" - - page: /latest-release/release-260-message-audio-export/ - images: 3 - path_pattern: "docs/images/latest-release/release_260_message_audio_export_1.png .. _3.png" - - page: /latest-release/release-260-office-embedded-images/ - images: 3 - path_pattern: "docs/images/latest-release/release_260_office_embedded_images_1.png .. _3.png" - - page: /latest-release/release-260-public-workspace-display-name/ - images: 3 - path_pattern: "docs/images/latest-release/release_260_public_workspace_display_name_1.png .. _3.png" - - page: /latest-release/release-260-rocksdb-action/ - images: 3 - path_pattern: "docs/images/latest-release/release_260_rocksdb_action_1.png .. _3.png" - - page: /latest-release/release-260-terms-of-use/ - images: 3 - path_pattern: "docs/images/latest-release/release_260_terms_of_use_1.png .. _3.png" - - page: /latest-release/release-260-used-documents-fork/ - images: 3 - path_pattern: "docs/images/latest-release/release_260_used_documents_fork_1.png .. _3.png" - - page: /latest-release/release-260-workflow-task-sequences/ - images: 3 - path_pattern: "docs/images/latest-release/release_260_workflow_task_sequences_1.png .. _3.png" - - page: /latest-release/release-260-yamcs-action/ - images: 3 - path_pattern: "docs/images/latest-release/release_260_yamcs_action_1.png .. _3.png" + note: "All Latest Features screenshots for this release are captured." + items: [] diff --git a/docs/explanation/features/v0.260.001/LATEST_FEATURES_RELEASE_260.md b/docs/explanation/features/v0.260.001/LATEST_FEATURES_RELEASE_260.md index 7e86280c2..d5df93fbd 100644 --- a/docs/explanation/features/v0.260.001/LATEST_FEATURES_RELEASE_260.md +++ b/docs/explanation/features/v0.260.001/LATEST_FEATURES_RELEASE_260.md @@ -127,15 +127,17 @@ Admin-only cards are not controlled by user-facing visibility toggles. They are Stored choices are merged over defaults, so disabling an older card remains honored after the v0.260.001 tier shift. -The 20 new v0.260.001 cards ship **hidden**. Their screenshots are still placeholders, so publishing them immediately would show end users a page full of "Screenshot pending" tiles. The intended rollout is: - -1. Replace `release_260__1.png`, `_2.png`, and `_3.png` for a card with real captures. -2. Open **Admin Settings > General > User-Facing Latest Features** and tick that card. -3. Save, then confirm it on **Support > Latest Features** as an end user. - -Until a card is enabled, end users continue to see the previous and archive tiers, which carry real screenshots. Admins still see all 16 v0.260.001 admin cards in the Latest Features tab, since admins are the ones capturing the screenshots. - -Once every card is published, the `for item in _SUPPORT_RELEASE_260_FEATURE_CATALOG` loop in `get_default_support_latest_features_visibility()` can be dropped so future tenants get the cards on by default. +The v0.260.001 cards ship **visible**. They were hidden while their screenshots were +still branded placeholders, so end users would not land on a page of "Screenshot +pending" tiles. Every card now carries real captures, so the default-hidden loop in +`get_default_support_latest_features_visibility()` has been removed and admins only +need to intervene to hide a card they do not want. + +Two admin cards render without a screenshot at all. `admin_release_260_index_auto_login` +documents `ENABLE_AUTO_LOGIN_ON_INDEX`, an environment variable with no admin pane, and +`admin_release_260_feedback_safety_lifecycle` describes controls that only appear once +real feedback or safety rows exist. Both pass `include_media=False` rather than shipping +a placeholder. The **Latest Features** admin tab also carries a read-only preview of the user-facing catalog. Each non-current tier renders as a collapsible panel whose cards show a **Shared with Users** or **Hidden from Users** badge, so an admin can review exactly what the previous and archive tiers look like without leaving Admin Settings. Its element ids are namespaced `latest-features-user-preview-*` and `latestFeaturesUserPreview*` so they never collide with the admin-facing release-group cards. diff --git a/docs/images/latest-release/release_260_action_test_connection_1.png b/docs/images/latest-release/release_260_action_test_connection_1.png index 07329b0d1..fd60c0d37 100644 Binary files a/docs/images/latest-release/release_260_action_test_connection_1.png and b/docs/images/latest-release/release_260_action_test_connection_1.png differ diff --git a/docs/images/latest-release/release_260_action_test_connection_2.png b/docs/images/latest-release/release_260_action_test_connection_2.png index 355675d15..7beee2849 100644 Binary files a/docs/images/latest-release/release_260_action_test_connection_2.png and b/docs/images/latest-release/release_260_action_test_connection_2.png differ diff --git a/docs/images/latest-release/release_260_action_test_connection_3.png b/docs/images/latest-release/release_260_action_test_connection_3.png index 2b4890738..ce93168a7 100644 Binary files a/docs/images/latest-release/release_260_action_test_connection_3.png and b/docs/images/latest-release/release_260_action_test_connection_3.png differ diff --git a/docs/images/latest-release/release_260_azure_blob_file_sync_1.png b/docs/images/latest-release/release_260_azure_blob_file_sync_1.png index 4b0c05ae5..de4db0cef 100644 Binary files a/docs/images/latest-release/release_260_azure_blob_file_sync_1.png and b/docs/images/latest-release/release_260_azure_blob_file_sync_1.png differ diff --git a/docs/images/latest-release/release_260_azure_blob_file_sync_2.png b/docs/images/latest-release/release_260_azure_blob_file_sync_2.png index a4736bdb3..257022cf7 100644 Binary files a/docs/images/latest-release/release_260_azure_blob_file_sync_2.png and b/docs/images/latest-release/release_260_azure_blob_file_sync_2.png differ diff --git a/docs/images/latest-release/release_260_azure_blob_file_sync_3.png b/docs/images/latest-release/release_260_azure_blob_file_sync_3.png index 0598a0ae8..9bc0ac8aa 100644 Binary files a/docs/images/latest-release/release_260_azure_blob_file_sync_3.png and b/docs/images/latest-release/release_260_azure_blob_file_sync_3.png differ diff --git a/docs/images/latest-release/release_260_chat_scroll_508_1.png b/docs/images/latest-release/release_260_chat_scroll_508_1.png index eee4d555f..1848b57cb 100644 Binary files a/docs/images/latest-release/release_260_chat_scroll_508_1.png and b/docs/images/latest-release/release_260_chat_scroll_508_1.png differ diff --git a/docs/images/latest-release/release_260_chat_scroll_508_2.png b/docs/images/latest-release/release_260_chat_scroll_508_2.png index 83ebdf785..7f390d8c4 100644 Binary files a/docs/images/latest-release/release_260_chat_scroll_508_2.png and b/docs/images/latest-release/release_260_chat_scroll_508_2.png differ diff --git a/docs/images/latest-release/release_260_chat_scroll_508_3.png b/docs/images/latest-release/release_260_chat_scroll_508_3.png index dc41151f9..06e31b796 100644 Binary files a/docs/images/latest-release/release_260_chat_scroll_508_3.png and b/docs/images/latest-release/release_260_chat_scroll_508_3.png differ diff --git a/docs/images/latest-release/release_260_conversation_contents_drawer_1.png b/docs/images/latest-release/release_260_conversation_contents_drawer_1.png index b8bebe03e..270e4cd2c 100644 Binary files a/docs/images/latest-release/release_260_conversation_contents_drawer_1.png and b/docs/images/latest-release/release_260_conversation_contents_drawer_1.png differ diff --git a/docs/images/latest-release/release_260_conversation_contents_drawer_2.png b/docs/images/latest-release/release_260_conversation_contents_drawer_2.png index 38e5c441f..1d940ae88 100644 Binary files a/docs/images/latest-release/release_260_conversation_contents_drawer_2.png and b/docs/images/latest-release/release_260_conversation_contents_drawer_2.png differ diff --git a/docs/images/latest-release/release_260_conversation_contents_drawer_3.png b/docs/images/latest-release/release_260_conversation_contents_drawer_3.png deleted file mode 100644 index 809696c71..000000000 Binary files a/docs/images/latest-release/release_260_conversation_contents_drawer_3.png and /dev/null differ diff --git a/docs/images/latest-release/release_260_conversation_context_grounding_1.png b/docs/images/latest-release/release_260_conversation_context_grounding_1.png index 8fd41c5ed..761c379b1 100644 Binary files a/docs/images/latest-release/release_260_conversation_context_grounding_1.png and b/docs/images/latest-release/release_260_conversation_context_grounding_1.png differ diff --git a/docs/images/latest-release/release_260_conversation_context_grounding_2.png b/docs/images/latest-release/release_260_conversation_context_grounding_2.png index 9b99ddb7e..bcd494634 100644 Binary files a/docs/images/latest-release/release_260_conversation_context_grounding_2.png and b/docs/images/latest-release/release_260_conversation_context_grounding_2.png differ diff --git a/docs/images/latest-release/release_260_conversation_context_grounding_3.png b/docs/images/latest-release/release_260_conversation_context_grounding_3.png index 40c7bbaf9..9694ef591 100644 Binary files a/docs/images/latest-release/release_260_conversation_context_grounding_3.png and b/docs/images/latest-release/release_260_conversation_context_grounding_3.png differ diff --git a/docs/images/latest-release/release_260_mcp_platform_1.png b/docs/images/latest-release/release_260_mcp_platform_1.png index 50f357c30..a4a8a7d3f 100644 Binary files a/docs/images/latest-release/release_260_mcp_platform_1.png and b/docs/images/latest-release/release_260_mcp_platform_1.png differ diff --git a/docs/images/latest-release/release_260_mcp_platform_2.png b/docs/images/latest-release/release_260_mcp_platform_2.png index 39973c61c..dc325ff15 100644 Binary files a/docs/images/latest-release/release_260_mcp_platform_2.png and b/docs/images/latest-release/release_260_mcp_platform_2.png differ diff --git a/docs/images/latest-release/release_260_mcp_platform_3.png b/docs/images/latest-release/release_260_mcp_platform_3.png index 3b2350b55..a15e7d1bb 100644 Binary files a/docs/images/latest-release/release_260_mcp_platform_3.png and b/docs/images/latest-release/release_260_mcp_platform_3.png differ diff --git a/docs/images/latest-release/release_260_message_audio_export_1.png b/docs/images/latest-release/release_260_message_audio_export_1.png index 1c56af3c4..2c52af94b 100644 Binary files a/docs/images/latest-release/release_260_message_audio_export_1.png and b/docs/images/latest-release/release_260_message_audio_export_1.png differ diff --git a/docs/images/latest-release/release_260_message_audio_export_2.png b/docs/images/latest-release/release_260_message_audio_export_2.png index 92c382ee1..7be07b1db 100644 Binary files a/docs/images/latest-release/release_260_message_audio_export_2.png and b/docs/images/latest-release/release_260_message_audio_export_2.png differ diff --git a/docs/images/latest-release/release_260_message_audio_export_3.png b/docs/images/latest-release/release_260_message_audio_export_3.png index dcdc8f989..843a60033 100644 Binary files a/docs/images/latest-release/release_260_message_audio_export_3.png and b/docs/images/latest-release/release_260_message_audio_export_3.png differ diff --git a/docs/images/latest-release/release_260_public_workspace_display_name_1.png b/docs/images/latest-release/release_260_public_workspace_display_name_1.png index 6cf13a73e..7522dfa57 100644 Binary files a/docs/images/latest-release/release_260_public_workspace_display_name_1.png and b/docs/images/latest-release/release_260_public_workspace_display_name_1.png differ diff --git a/docs/images/latest-release/release_260_public_workspace_display_name_2.png b/docs/images/latest-release/release_260_public_workspace_display_name_2.png index 91e7c10ef..de6dd0f6f 100644 Binary files a/docs/images/latest-release/release_260_public_workspace_display_name_2.png and b/docs/images/latest-release/release_260_public_workspace_display_name_2.png differ diff --git a/docs/images/latest-release/release_260_public_workspace_display_name_3.png b/docs/images/latest-release/release_260_public_workspace_display_name_3.png index 70b863f81..62f596285 100644 Binary files a/docs/images/latest-release/release_260_public_workspace_display_name_3.png and b/docs/images/latest-release/release_260_public_workspace_display_name_3.png differ diff --git a/docs/images/latest-release/release_260_rocksdb_action_1.png b/docs/images/latest-release/release_260_rocksdb_action_1.png index 0c1e431e4..b72764f45 100644 Binary files a/docs/images/latest-release/release_260_rocksdb_action_1.png and b/docs/images/latest-release/release_260_rocksdb_action_1.png differ diff --git a/docs/images/latest-release/release_260_rocksdb_action_2.png b/docs/images/latest-release/release_260_rocksdb_action_2.png index 3eb7f4c59..37062602c 100644 Binary files a/docs/images/latest-release/release_260_rocksdb_action_2.png and b/docs/images/latest-release/release_260_rocksdb_action_2.png differ diff --git a/docs/images/latest-release/release_260_rocksdb_action_3.png b/docs/images/latest-release/release_260_rocksdb_action_3.png index 3a0eb2524..35c9cde12 100644 Binary files a/docs/images/latest-release/release_260_rocksdb_action_3.png and b/docs/images/latest-release/release_260_rocksdb_action_3.png differ diff --git a/docs/images/latest-release/release_260_terms_of_use_1.png b/docs/images/latest-release/release_260_terms_of_use_1.png index 4cfb1c7e2..bf3240ca9 100644 Binary files a/docs/images/latest-release/release_260_terms_of_use_1.png and b/docs/images/latest-release/release_260_terms_of_use_1.png differ diff --git a/docs/images/latest-release/release_260_terms_of_use_2.png b/docs/images/latest-release/release_260_terms_of_use_2.png index 2167dac08..0272b6761 100644 Binary files a/docs/images/latest-release/release_260_terms_of_use_2.png and b/docs/images/latest-release/release_260_terms_of_use_2.png differ diff --git a/docs/images/latest-release/release_260_terms_of_use_3.png b/docs/images/latest-release/release_260_terms_of_use_3.png index 7a63cea0d..1cde4687e 100644 Binary files a/docs/images/latest-release/release_260_terms_of_use_3.png and b/docs/images/latest-release/release_260_terms_of_use_3.png differ diff --git a/docs/images/latest-release/release_260_used_documents_fork_1.png b/docs/images/latest-release/release_260_used_documents_fork_1.png index 3461a89e2..6e17a6a05 100644 Binary files a/docs/images/latest-release/release_260_used_documents_fork_1.png and b/docs/images/latest-release/release_260_used_documents_fork_1.png differ diff --git a/docs/images/latest-release/release_260_used_documents_fork_2.png b/docs/images/latest-release/release_260_used_documents_fork_2.png index 567ace5ad..28de4819a 100644 Binary files a/docs/images/latest-release/release_260_used_documents_fork_2.png and b/docs/images/latest-release/release_260_used_documents_fork_2.png differ diff --git a/docs/images/latest-release/release_260_used_documents_fork_3.png b/docs/images/latest-release/release_260_used_documents_fork_3.png index 519fa2619..ec1906447 100644 Binary files a/docs/images/latest-release/release_260_used_documents_fork_3.png and b/docs/images/latest-release/release_260_used_documents_fork_3.png differ diff --git a/docs/images/latest-release/release_260_workflow_task_sequences_1.png b/docs/images/latest-release/release_260_workflow_task_sequences_1.png index 292df8c50..9a152c2fc 100644 Binary files a/docs/images/latest-release/release_260_workflow_task_sequences_1.png and b/docs/images/latest-release/release_260_workflow_task_sequences_1.png differ diff --git a/docs/images/latest-release/release_260_workflow_task_sequences_2.png b/docs/images/latest-release/release_260_workflow_task_sequences_2.png index 02fc5cf33..cc63486b5 100644 Binary files a/docs/images/latest-release/release_260_workflow_task_sequences_2.png and b/docs/images/latest-release/release_260_workflow_task_sequences_2.png differ diff --git a/docs/images/latest-release/release_260_workflow_task_sequences_3.png b/docs/images/latest-release/release_260_workflow_task_sequences_3.png index 9d3d84775..ef8d34f5f 100644 Binary files a/docs/images/latest-release/release_260_workflow_task_sequences_3.png and b/docs/images/latest-release/release_260_workflow_task_sequences_3.png differ diff --git a/docs/images/latest-release/release_260_yamcs_action_1.png b/docs/images/latest-release/release_260_yamcs_action_1.png index 994045959..783196236 100644 Binary files a/docs/images/latest-release/release_260_yamcs_action_1.png and b/docs/images/latest-release/release_260_yamcs_action_1.png differ diff --git a/docs/images/latest-release/release_260_yamcs_action_2.png b/docs/images/latest-release/release_260_yamcs_action_2.png index 74aa83eba..95d3979e1 100644 Binary files a/docs/images/latest-release/release_260_yamcs_action_2.png and b/docs/images/latest-release/release_260_yamcs_action_2.png differ diff --git a/docs/images/latest-release/release_260_yamcs_action_3.png b/docs/images/latest-release/release_260_yamcs_action_3.png index f7abecf2c..6eec9305f 100644 Binary files a/docs/images/latest-release/release_260_yamcs_action_3.png and b/docs/images/latest-release/release_260_yamcs_action_3.png differ diff --git a/docs/latest-release/release-260-conversation-contents-drawer.md b/docs/latest-release/release-260-conversation-contents-drawer.md index cb5bd609f..dd42995db 100644 --- a/docs/latest-release/release-260-conversation-contents-drawer.md +++ b/docs/latest-release/release-260-conversation-contents-drawer.md @@ -23,7 +23,6 @@ The v0.260.001 app catalog currently provides branded placeholder captures for J - `/images/latest-release/release_260_conversation_contents_drawer_1.png` - `/images/latest-release/release_260_conversation_contents_drawer_2.png` -- `/images/latest-release/release_260_conversation_contents_drawer_3.png` ## Why It Matters @@ -42,4 +41,4 @@ This matters because a long working session becomes hard to navigate, and the th ## Notes - The Jump Back to Any Earlier Prompt guide belongs to the SimpleChat 0.260.001 latest-feature set. -- The gallery for this page uses `release_260_conversation_contents_drawer_1.png`, `release_260_conversation_contents_drawer_2.png`, `release_260_conversation_contents_drawer_3.png` from the app Latest Features catalog. +- The gallery for this page uses `release_260_conversation_contents_drawer_1.png`, `release_260_conversation_contents_drawer_2.png` from the app Latest Features catalog. diff --git a/functional_tests/test_admin_latest_features_tab.py b/functional_tests/test_admin_latest_features_tab.py index 31d96dfc4..367bd4e99 100644 --- a/functional_tests/test_admin_latest_features_tab.py +++ b/functional_tests/test_admin_latest_features_tab.py @@ -88,7 +88,7 @@ 'release_260_chat_ai_notice': ['release_260_chat_ai_notice_1.png', 'release_260_chat_ai_notice_2.png', 'release_260_chat_ai_notice_3.png'], 'release_260_conversation_context_grounding': ['release_260_conversation_context_grounding_1.png', 'release_260_conversation_context_grounding_2.png', 'release_260_conversation_context_grounding_3.png'], 'release_260_used_documents_fork': ['release_260_used_documents_fork_1.png', 'release_260_used_documents_fork_2.png', 'release_260_used_documents_fork_3.png'], - 'release_260_conversation_contents_drawer': ['release_260_conversation_contents_drawer_1.png', 'release_260_conversation_contents_drawer_2.png', 'release_260_conversation_contents_drawer_3.png'], + 'release_260_conversation_contents_drawer': ['release_260_conversation_contents_drawer_1.png', 'release_260_conversation_contents_drawer_2.png'], 'release_260_font_size_zoom': ['release_260_font_size_zoom_1.png', 'release_260_font_size_zoom_2.png', 'release_260_font_size_zoom_3.png'], 'release_260_message_audio_export': ['release_260_message_audio_export_1.png', 'release_260_message_audio_export_2.png', 'release_260_message_audio_export_3.png'], 'release_260_public_workspace_display_name': ['release_260_public_workspace_display_name_1.png', 'release_260_public_workspace_display_name_2.png', 'release_260_public_workspace_display_name_3.png'], @@ -102,10 +102,8 @@ 'admin_release_260_model_identity_header': ['admin_release_260_model_identity_header.png'], 'admin_release_260_per_model_response_length': ['admin_release_260_per_model_response_length.png'], 'admin_release_260_control_center_refresh': ['admin_release_260_control_center_refresh.png'], - 'admin_release_260_feedback_safety_lifecycle': ['admin_release_260_feedback_safety_lifecycle.png'], 'admin_release_260_log_cleanup': ['admin_release_260_log_cleanup.png'], 'admin_release_260_redis_explorer': ['admin_release_260_redis_explorer.png'], - 'admin_release_260_index_auto_login': ['admin_release_260_index_auto_login.png'], 'admin_release_260_enhanced_extraction': ['admin_release_260_enhanced_extraction.png'], 'admin_release_260_mcp_platform': ['admin_release_260_mcp_platform.png'], 'admin_release_260_azure_blob_file_sync': ['admin_release_260_azure_blob_file_sync.png'], @@ -114,6 +112,14 @@ 'admin_release_260_public_workspace_display_name': ['admin_release_260_public_workspace_display_name.png'], } +# These settings have no admin pane of their own to photograph: auto-login is an +# environment variable, and the record lifecycle controls only appear once real +# feedback or safety rows exist. +ADMIN_FEATURES_WITHOUT_SCREENSHOTS = [ + 'admin_release_260_feedback_safety_lifecycle', + 'admin_release_260_index_auto_login', +] + PREVIOUS_ADMIN_FEATURE_IDS = [ 'admin_release_250_azure_openai_identity', 'admin_release_250_model_endpoint_setup', @@ -181,7 +187,7 @@ def test_user_latest_features_catalog_release_groups(): assert default_visibility['deployment'] is False assert default_visibility['redis_key_vault'] is False assert default_visibility['release_250_ai_access'] is True - assert all(default_visibility[feature_id] is False for feature_id in USER_CURRENT_FEATURE_IDS), 'v0.260.001 cards ship hidden until their placeholder screenshots are replaced' + assert all(default_visibility[feature_id] is True for feature_id in USER_CURRENT_FEATURE_IDS), 'v0.260.001 cards ship visible now that every screenshot is a real capture' first_feature = release_groups[0]['features'][0] assert first_feature['id'] == 'release_260_enhanced_extraction' @@ -194,7 +200,7 @@ def test_user_latest_features_catalog_release_groups(): assert feature.get('image') == expected_paths[0], f"Primary image mismatch for {feature['id']}" assert feature.get('image_alt'), f"Missing primary image alt text for {feature['id']}" assert [image['path'] for image in images] == expected_paths, f"Gallery image paths mismatch for {feature['id']}" - assert len(images) == 3, f"Expected three gallery images for {feature['id']}" + assert len(images) == len(expected_files), f"Gallery image count mismatch for {feature['id']}" assert len(feature.get('guidance', [])) >= 5, f"Expected at least five how-to steps for {feature['id']}" print('User-facing Latest Features catalog release groups are current') @@ -238,6 +244,9 @@ def test_admin_latest_features_catalog_release_groups(): images = feature.get('images', []) assert feature.get('image') == expected_paths[0], f"Primary admin image mismatch for {feature['id']}" assert [image['path'] for image in images] == expected_paths, f"Admin gallery image paths mismatch for {feature['id']}" + elif feature['id'] in ADMIN_FEATURES_WITHOUT_SCREENSHOTS: + assert not feature.get('images'), f"Expected no screenshot slot for {feature['id']}" + assert not feature.get('image'), f"Expected no primary image for {feature['id']}" print('Admin Latest Features catalog release groups are current') return True diff --git a/functional_tests/test_latest_release_docs_structure.py b/functional_tests/test_latest_release_docs_structure.py index ea3640721..508b044fc 100644 --- a/functional_tests/test_latest_release_docs_structure.py +++ b/functional_tests/test_latest_release_docs_structure.py @@ -65,7 +65,7 @@ 'release-260-chat-ai-notice': ['release_260_chat_ai_notice_1.png', 'release_260_chat_ai_notice_2.png', 'release_260_chat_ai_notice_3.png'], 'release-260-conversation-context-grounding': ['release_260_conversation_context_grounding_1.png', 'release_260_conversation_context_grounding_2.png', 'release_260_conversation_context_grounding_3.png'], 'release-260-used-documents-fork': ['release_260_used_documents_fork_1.png', 'release_260_used_documents_fork_2.png', 'release_260_used_documents_fork_3.png'], - 'release-260-conversation-contents-drawer': ['release_260_conversation_contents_drawer_1.png', 'release_260_conversation_contents_drawer_2.png', 'release_260_conversation_contents_drawer_3.png'], + 'release-260-conversation-contents-drawer': ['release_260_conversation_contents_drawer_1.png', 'release_260_conversation_contents_drawer_2.png'], 'release-260-font-size-zoom': ['release_260_font_size_zoom_1.png', 'release_260_font_size_zoom_2.png', 'release_260_font_size_zoom_3.png'], 'release-260-message-audio-export': ['release_260_message_audio_export_1.png', 'release_260_message_audio_export_2.png', 'release_260_message_audio_export_3.png'], 'release-260-public-workspace-display-name': ['release_260_public_workspace_display_name_1.png', 'release_260_public_workspace_display_name_2.png', 'release_260_public_workspace_display_name_3.png'],