Skip to content

v0.250.001

Latest

Choose a tag to compare

@paullizer paullizer released this 25 Jun 19:32
ff80591

New Features

  • Azure OpenAI and Model Endpoint Setup Guidance

    • Added setup guidance for legacy Azure OpenAI model discovery, runtime data-plane calls, Foundry providers, managed identity, service principal RBAC, and API-key inference limits.
    • (Ref: Azure OpenAI setup guide, model endpoint modal, Admin Settings model endpoints)
  • Tabular Semantic Kernel Large Result Pagination

    • Added continuation metadata, row payload trimming, return_columns preservation, and larger computed-result handoff guardrails for row-returning tabular tools.
    • Inspired by and adapted from PR #894 by @vivche.
    • (Ref: tabular_processing_plugin.py, route_backend_chats.py)
  • Beta Branch Development Governance Integration

    • Prepared beta capabilities for Development governance, custom pages, user settings cache changes, agent catalog customization, file sync, workflows, workspace identities, and Data Management.
    • (Ref: Development merge resolution, governance integration)
  • User Settings Cache Optimization

    • Added request-scoped user settings memoization and a lightweight UI settings cache for Redis and no-Redis deployments.
    • (Ref: functions_settings.py, app_settings_cache.py, dark-mode.js, sidebar.js)
  • Custom Pages

    • Added administrator-managed custom pages with static assets, optional Python-backed extensions, authenticated host routes, Admin Settings controls, examples, documentation, and fail-closed coverage.
    • (Ref: route_custom_pages.py, functions_custom_pages.py)
  • Governance Controls for Endpoints, Agents, and Actions

    • Added feature policies, delegated item policies, review workflows, backend enforcement, and Admin Settings allowlists for personal, group, and global endpoints, agents, and actions.
    • (Ref: governance policies, Admin Settings Governance tab)
  • Governance and App Settings Cache Versioning

    • Added cache-version coordination so settings and governance policy changes invalidate stale worker caches while preserving hot-path performance.
    • (Ref: app settings cache, governance cache versioning)
  • Pull Request Preparation Prompt

    • Added a reusable Copilot prompt for preparing SimpleChat branches for pull requests into Development, including validation, release-note checks, and guarded push or PR creation.
    • (Ref: .github/prompts/prepare-for-pull-request.prompt.md)
  • Tableau Action

    • Added a read-only Tableau action with discovery, configuration, workspace identity support, validation, schemas, and Semantic Kernel loader integration.
    • (Ref: tableau_plugin.py, tableau_plugin_factory.py, functions_tableau_operations.py, TABLEAU_ACTION.md)
  • Snowflake Action

    • Added a read-only Snowflake action with tailored authentication, query limits, structured responses, Key Vault secret handling, governance labels, schemas, documentation, and coverage.
    • (Ref: SnowflakePlugin, SnowflakePluginFactory, SNOWFLAKE_ACTION.md)
  • Workflow Per-Document Analysis and Generated Office Exports

    • Added Analyze mode for per-document workflow execution plus SimpleChat tools for generated Word and PowerPoint exports.
    • (Ref: functions_workflow_runner.py, functions_simplechat_operations.py, WORKFLOW_PER_DOCUMENT_ANALYSIS_AND_EXPORTS.md)
  • Group Workflows

    • Added group-scoped workflow definitions, run history, per-document run items, APIs, assignment gates, admin controls, group workspace UI, and shared activity support.
    • (Ref: functions_group_workflows.py, route_backend_workflows.py, GROUP_WORKFLOWS.md)
  • Voice-Assisted Form Inputs and Agent Instruction Drafting

    • Added speech-to-text controls to supported forms and an agent Instruction Brief workflow that drafts editable Markdown instructions through the configured model.
    • (Ref: form-voice-input.js, agent_modal_stepper.js, VOICE_ASSISTED_FORM_INPUTS.md)
  • Microsoft Graph Send Mail Action

    • Microsoft Graph actions can now create drafts, prepare delayed-delivery drafts, or send mail from the signed-in user's mailbox with runtime validation and Graph scopes.
    • (Ref: MSGraphPlugin.send_mail, plugin_modal_stepper.js, MSGRAPH_SEND_MAIL_ACTION.md)
  • Workspace-Backed Chat Uploads

    • Eligible chat uploads now queue or reuse personal workspace documents as the source of truth while preserving chat attachment behavior, progress display, tags, metadata, and fallback flow.
    • (Ref: route_frontend_chats.py, route_backend_chats.py, functions_documents.py, CHAT_UPLOAD_PERSONAL_WORKSPACE_HANDOFF.md)
  • Document Intelligence PDF and Image Extraction Modes

    • Added Read/Layout/Auto extraction controls, sample-page Auto detection, extraction-mode metadata, upload source preservation, and PDF reprocess actions across workspaces.
    • (Ref: functions_content.py, functions_documents.py, DOCUMENT_INTELLIGENCE_PDF_IMAGE_EXTRACTION_MODE.md)
  • Cosmos Throughput Automation and Native Autoscale

    • Added RU monitoring, manual scale actions, background automation, per-container policies, global policy enforcement, native autoscale conversion, guarded thresholds, and deployment RBAC metadata.
    • (Ref: functions_cosmos_throughput.py, Admin Settings Scale tab, Cosmos throughput docs)
  • Workflow File Sync Triggers and Batch Resume

    • Workflows can trigger File Sync before runs, monitor sync changes, dynamically target changed synced documents, and resume failed Analyze items.
    • (Ref: functions_workflow_runner.py, functions_file_sync.py, WORKFLOW_FILE_SYNC_TRIGGERS.md)
  • Cloud Drive and File Sync Sources

    • Added OneDrive, Azure Files, SMB sync support, provider browsing, source selection, remote change-token handling, reusable identities, scheduled/manual sync, history, tags, filters, and admin source controls.
    • (Ref: functions_file_sync.py, workspace-file-sync.js, ONEDRIVE_FILE_SYNC.md, AZURE_FILES_FILE_SYNC.md, FILE_SYNC.md)
  • Global Cloud Drive Connector Identities

    • Admins can now manage File Sync cloud-drive connector credentials separately from personal user sync choices, including global connector fallback behavior.
    • (Ref: functions_workspace_identities.py, workspace-identities.js, WORKSPACE_IDENTITIES.md)
  • Conversation Feed Pagination

    • Chat startup now loads pinned, unread, and first-page recent conversations with load-more and backend title search instead of loading every accessible conversation.
    • (Ref: route_backend_conversations.py, functions_conversation_feed.py, chat-conversations.js)
  • Group File Share Approval Notifications

    • Added notifications and approval workflow for personal and group document shares, including recipient review actions and protected owner-group documents.
    • (Ref: route_backend_group_documents.py, functions_notifications.py, GROUP_FILE_SHARE_APPROVAL_NOTIFICATIONS.md)
  • Stats Time Windows and CSV Exports

    • Added 7-day, 30-day, 90-day, and custom windows plus CSV exports for personal, group, and public stats.
    • (Ref: functions_stats_windows.py, profile/group/public stats routes)
  • Personal Workflow Access Governance

    • Added personal workflow enablement, optional WorkflowUser app-role enforcement, route gating, and deployer app-role definitions.
    • (Ref: workflow access control, PERSONAL_WORKFLOWS.md, WORKFLOW_ACCESS_CONTROL_FIX.md)
  • Azure Commercial Databricks Action

    • Added Databricks SQL Statement Execution action with read-only enforcement, configuration, reusable identities, factory loading, schemas, docs, and coverage.
    • (Ref: DatabricksPlugin, DatabricksPluginFactory, DATABRICKS_ACTION_CONFIGURATION.md)
  • Model Context Protocol Actions

    • Added MCP action support with transport, authentication, timeout, tool allowlist, cached metadata, discovery, runtime invocation, and admin-only stdio restrictions.
    • (Ref: functions_mcp_operations.py, mcp_plugin.py, MCP_ACTION_CONFIGURATION.md)
  • Layered Message Masking

    • Users can layer full-message and selected-text masks independently across personal and group conversations with shared event updates.
    • (Ref: functions_message_masking.py, chat-messages.js, chat-collaboration.js)
  • Workspace and Global Identities

    • Promoted reusable identities into personal, group, public, and global identity management surfaces for File Sync, actions/plugins, model endpoints, and future integrations.
    • (Ref: functions_workspace_identities.py, route_backend_workspace_identities.py, workspace-identities.js)
  • Visio and Outlook MSG Ingestion

    • Added .vsdx and .msg ingestion, searchable Visio page chunks, citation previews, original downloads, and email-message document processing.
    • (Ref: functions_visio.py, functions_content.py, functions_documents.py, VISIO_INGESTION.md)
  • Assigned Knowledge for Agents

    • Agent creators can bind agents to governed workspace sources, documents, and tags, and chat enforces assigned search scope server-side.
    • (Ref: functions_assigned_knowledge.py, route_backend_agents.py, chat-agents.js)
  • Deep Research and Source Review Enhancements

    • Added optional Source Review, JavaScript rendering, Load More handling, model-assisted link planning, bounded deep traversal, SSRF protections, admin controls, audit details, and prompt-injection isolation.
    • (Ref: functions_source_review.py, route_backend_chats.py, SOURCE_REVIEW.md)
  • Conversation Charts and Workflow Tabular Reuse

    • Added core chat chart generation, reusable workflow tabular analysis imports, and Semantic Kernel auto tool invocation in the model-only fallback path.
    • (Ref: semantic_kernel_loader.py, functions_tabular_analysis.py, functions_workflow_runner.py)
  • Generated Markdown Artifact Viewer

    • Added View MD for generated Markdown artifacts and sanitized rendered Markdown citation previews.
    • (Ref: chat-messages.js, chat-citations.js, GENERATED_ARTIFACT_MARKDOWN_VIEW.md)
  • Tabular Related Document Evidence

    • Row-level tabular analysis can now resolve related non-tabular documents and include supporting excerpts in chat and generated structured exports.
    • (Ref: route_backend_chats.py, functions_search_service.py, TABULAR_RELATED_DOCUMENT_EVIDENCE.md)
  • Generated Artifact Workspace Promotion Approval

    • Added Add to Workspace for generated analysis artifacts with immediate personal queueing and group/public approval workflows.
    • (Ref: route_enhanced_citations.py, group/public document routes, chat-messages.js)
  • Chat Clipboard Paste Uploads

    • Users can paste images and browser-exposed files directly into chat, using the existing upload, consent, and processing path.
    • (Ref: chat-input-actions.js, CHAT_CLIPBOARD_PASTE_UPLOADS.md)
  • Staging UI Test CI/CD and Playwright Workspaces

    • Added protected Staging deployment workflow, Azure Developer CLI staging bootstrap, live UI smoke coverage, and Azure-hosted Playwright Workspace support.
    • (Ref: .github/workflows/staging-azd-ui-tests.yml, ui_tests/playwright-workspaces/)
  • Service Principal Authentication for CI UI Tests

    • Added disabled-by-default /ci-auth/session support for creating staging UI test sessions from Entra access tokens.
    • (Ref: functions_authentication.py, route_frontend_authentication.py, ENABLE_CI_BEARER_SESSION_AUTH)
  • Profile Sidebar Toggle Style Preference

    • Added a profile preference for large versus compact sidebar hide controls across full and compact sidebar templates.
    • (Ref: profile.html, sidebar templates, sidebar.css)

Bug Fixes

  • Azure OpenAI Model Discovery Identity Split

    • Legacy model discovery now uses the configured management-plane credential while inference keeps the runtime data-plane identity or key path.
    • (Ref: route_backend_models.py, deployer OpenAI RBAC, AZURE_OPENAI_MODEL_DISCOVERY_IDENTITY_FIX.md)
  • Chat Model Icon Avatars

    • Saved endpoint icons now appear on model-only assistant responses while preserving agent avatar priority.
    • (Ref: route_backend_chats.py, chat-messages.js)
  • Tabular SK Python 3.13 Compatibility

    • Updated public tabular kernel parameters so Semantic Kernel parsing works on Python 3.12 and 3.13; adapted from PR #892 by @vivche.
    • (Ref: test_tabular_kernel_parameter_annotations.py)
  • Python 3.12 CI and XSS Guardrail Cleanup

    • Updated CI to Python 3.12 and adjusted changed rendering paths to satisfy XSS guardrails without broad suppressions.
    • (Ref: Python 3.12 CI, Admin Settings, group workspace delete modal, profile hero image)
  • PR Readiness Guardrail Cleanup

    • Removed trailing whitespace, unnecessary |safe, UTF-8 BOM content, and documented reviewed plugin authorization boundaries for PR validation.
    • (Ref: PR readiness, XSS and BAC guardrails)
  • Governance Admin Rendering XSS Hardening

    • Rebuilt changed governance, endpoint, agent, and plugin table rendering with DOM APIs and text nodes.
    • (Ref: governance admin UI, model endpoint table, plugin table rendering)
  • Group Workflow Assignment Cleanup

    • Invalid nested JSON assignment payloads are dropped and group workflow assignment settings now preserve only valid group UUIDs.
    • (Ref: functions_settings.py, admin_settings.js, GROUP_WORKFLOW_ASSIGNMENT_CLEANUP_FIX.md)
  • Workflow Activity Navigation and Group Activity Gate

    • Workflow Activity actions now keep the current tab open and group workflow activity views use group-specific authorization instead of the personal workflow feature flag.
    • (Ref: workspace_workflows.js, workflow-activity.js, group workflow activity docs)
  • Tabular Inline Chart Handoff

    • Successful grouped CSV/XLSX results now create deterministic SimpleChat inline chart citations for streaming and non-streaming responses.
    • (Ref: route_backend_chats.py, functions_chart_operations.py, TABULAR_INLINE_CHART_HANDOFF_FIX.md)
  • Document Intelligence Upload Normalizer Import

    • Fixed extraction-mode normalizer resolution to avoid upload failures and startup circular imports.
    • (Ref: functions_content.py)
  • Cosmos Autoscale and Metrics Fixes

    • Fixed native autoscale migration, background cadence, REST metadata parsing, container metric dimensions, cached status rendering, save-button activation, refresh logging, and throughput refresh performance.
    • (Ref: functions_cosmos_throughput.py, background_tasks.py, admin_settings.js, Cosmos autoscale fix docs)
  • Advanced Conversation Search Matching

    • Advanced Search now covers legacy and collaborative stores with explicit match modes and normalized chat-type filters.
    • (Ref: route_backend_conversations.py, chat-search-modal.js, ADVANCED_CONVERSATION_SEARCH_FIX.md)
  • Visio Preview Fidelity Fixes

    • Improved Visio preview rendering for arcs, paths, master geometry, nested coordinates, connector lines, labels, embedded media, and runtime simplification.
    • (Ref: functions_visio.py, Visio preview fix docs)
  • Source Review Traversal and Citation Fixes

    • Source Review now receives full web-search citation seeds, balances seed and child pages, prioritizes relevant archive links, supports one more bounded hop, and exposes richer audit details.
    • (Ref: functions_source_review.py, route_backend_chats.py, Source Review tests/docs)
  • Authenticated Request Login Activity Tracking

    • Passive authenticated visits now contribute to login activity with throttling while preserving explicit OAuth login signals.
    • (Ref: functions_activity_logging.py, app.py, AUTHENTICATED_REQUEST_LOGIN_ACTIVITY_FIX.md)
  • Safety Violation Remediation Workflow

    • Warn, suspend, and block actions now create notifications, apply matching access restrictions, and route through approvals when required.
    • (Ref: route_backend_safety.py, functions_safety_remediation.py, admin-safety-violations.js)
  • Group and Public Workspace Hero Color Editing

    • Hero color selections now save, preview, and return through workspace branding APIs correctly.
    • (Ref: manage_group.js, manage_public_workspace.js, workspace routes)
  • Chat-Scoped Generated Tabular Exports

    • Large generated JSON and CSV exports stay attached to the active chat and are cleaned up with conversation lifecycle rules when applicable.
    • (Ref: route_backend_chats.py, functions_simplechat_operations.py, chat-messages.js)
  • Fact Memory Delete Confirmation Layering

    • Delete confirmation now opens above the Manage Fact Memories editor so users can confirm without closing the editor.
    • (Ref: profile.html, test_profile_fact_memory_editor.py)
  • Live Tabular Analysis Thought Progress

    • Long-running tabular analysis now streams tool progress into the thoughts panel while the answer is being prepared.
    • (Ref: route_backend_chats.py, chat-thoughts.js, tabular progress tests)
  • Workspace Search Document Action Gating

    • Review and Compare modes are ignored when Workspace Search is disabled, preventing stale document-selection warnings.
    • (Ref: chat-messages.js, test_chat_document_action_workspace_toggle.py)
  • Chat File Upload Client Enablement

    • Effective per-user chat upload settings now serialize to browser upload guards.
    • (Ref: chats.html, CHAT_FILE_UPLOAD_CLIENT_FLAG_FIX.md)
  • Document Auto Metadata Extraction Consistency

    • All supported upload types now run the same final automatic metadata extraction flow, including corrected public media chunk scoping.
    • (Ref: functions_documents.py, DOCUMENT_AUTO_METADATA_EXTRACTION_FIX.md)
  • Chat Stream Lifecycle Observability

    • Added backend and frontend diagnostics for active, detached, completed, errored, aborted, and recovered chat streams.
    • (Ref: route_backend_chats.py, chat-streaming.js, CHAT_STREAM_LIFECYCLE_OBSERVABILITY_FIX.md)
  • Stored XSS Hardening

    • Hardened uploaded-file previews, public tag colors, agent template actions, share/activity/masking surfaces, chat scope and conversation details, citation and file modal filenames, agent display names, workspace member rendering, Control Center public workspace members, admin rendering, and related Graph filter literals.
    • (Ref: XSS fix docs, chat-messages.js, workspace JS files, admin JS/templates, route helpers)
  • Chat Selected Document Metadata Authorization (f046)

    • Chat and tabular selected-document metadata now resolves only through authorized personal, group, and public workspace paths.
    • (Ref: route_backend_chats.py, CHAT_SELECTED_DOCUMENT_METADATA_AUTHORIZATION_FIX.md)
  • Plugin Logging Authorization Fixes

    • Recent invocation feed and destructive clear-log endpoint now require admin access while preserving unauthenticated and non-admin response contracts.
    • (Ref: route_plugin_logging.py, plugin logging authorization tests/docs)
  • Public Workspace Details Projection Hardening (f034)

    • Non-members now receive a minimal public summary instead of the full public workspace document.
    • (Ref: route_backend_public_workspaces.py, manage_public_workspace.js, PUBLIC_WORKSPACE_DETAILS_DISCLOSURE_FIX.md)
  • Approval Route Authorization Guard Consolidation (f033)

    • Admin and non-admin approval routes now share the same authorization helper before exposing approval data or executing actions.
    • (Ref: route_backend_control_center.py, functions_approvals.py)
  • Feedback Submission Ownership Enforcement (f038)

    • Feedback submissions now require conversation and message targets inside the authenticated user's own conversation before persisting data.
    • (Ref: route_backend_feedback.py, FEEDBACK_AND_PLUGIN_LOG_ACCESS_CONTROL_FIX.md)
  • Authorization State Confusion Settings Hardening

    • Public workspace selection and prompt operations now validate active workspace state server-side, and generic user-settings updates drop unsupported keys.
    • (Ref: functions_public_workspaces.py, route_backend_users.py, AUTHORIZATION_STATE_CONFUSION_SETTINGS_FIX.md)
  • Key Vault Plugin Secret Scope Enforcement (f013)

    • Plugin secret save, runtime resolution, connection tests, and cleanup now verify secret references match expected scope and source.
    • (Ref: functions_keyvault.py, semantic_kernel_loader.py, KEY_VAULT_PLUGIN_SECRET_SCOPE_ENFORCEMENT_FIX.md)
  • Log Analytics Query History User Scope Enforcement (f016)

    • Query history now binds to the authenticated user server-side and shared user-settings access denies cross-user reads/writes by default.
    • (Ref: log_analytics_plugin.py, functions_settings.py, LOG_ANALYTICS_PLUGIN_USER_SCOPE_ENFORCEMENT_FIX.md)
  • Personal Conversation Authorization Fixes

    • Hardened personal conversation deletion, message/image reads, file-content retrieval, frontend rendering, and error handling for forbidden or missing message loads.
    • (Ref: conversation routes, chat-messages.js, personal conversation authorization docs)
  • Broken Access Control IDOR Hardening

    • Enforced personal conversation ownership, canonicalized group/public scope, bound tabular blob and fact-memory access to the authorized request context, and escaped search filters.
    • (Ref: route_backend_chats.py, plugin helpers, BROKEN_ACCESS_CONTROL_IDOR_HARDENING_FIX.md)
  • Web Search Data Egress Hardening

    • Bing-grounded web search now sends only the current user message, with updated consent copy and reduced outbound invocation metadata.
    • (Ref: route_backend_chats.py, functions_settings.py, web search tests/docs)
  • Search, Groups, Approvals, and History Authorization Hardening

    • Revalidated active group selection, group prompts, approval actions, and history-grounded fallback reuse before proceeding with caller-supplied or stored identifiers.
    • (Ref: functions_search.py, functions_group.py, route hardening docs)
  • SQL ODBC Driver 18 Container Support

    • Installed and registered ODBC Driver 18 in container deployments and retried saved Driver 17 strings only when the missing-driver error applies.
    • (Ref: Dockerfile, SQL plugin files, test_sql_odbc_driver_18_support.py)
  • Entra Application Deployment Stability

    • Hardened Entra app registration scripts for MFA or conditional-access prompts and persisted app registration outputs into the selected AZD environment.
    • (Ref: Initialize-EntraApplication.ps1, Entra deployment tests)
  • Public Workspace Manage Script Syntax Fix

    • Fixed pending request handlers and delegated member-search selection initialization parser errors.
    • (Ref: manage_public_workspace.js)
  • Chat Document Dropdown Viewport Fit Fix

    • Grounded-search document dropdowns now stay inside short and mobile-influenced viewports.
    • (Ref: chat-documents.js)

User Interface Enhancements

  • Workflow Analyze Mode and Conversation Navigation

    • Added per-document Analyze switch, new-tab workflow history and alert conversation actions, and Word/PowerPoint upload toggles for SimpleChat action and agent builders.
    • (Ref: workflow UI, notifications, action and agent modals)
  • Personal Workflow Labeling

    • Renamed the existing workspace workflow surface to Personal Workflows across navigation, modal headings, primary actions, and documentation.
    • (Ref: workspace.html, workspace_workflows.js, PERSONAL_WORKFLOWS.md)
  • Custom Workspace Hero Color Swatches

    • Group and public workspace manage pages now support custom hero colors with live preview and saved custom swatch selection.
    • (Ref: manage workspace templates and JS, GROUP_PUBLIC_WORKSPACE_CUSTOM_HERO_COLORS.md)
  • Selectable Conversation-Linked Workspace Document Deletion

    • Conversation delete now lists linked workspace documents and lets users choose which to remove with the conversation.
    • (Ref: chat-conversations.js, conversation/document routes)
  • Document Intelligence Extraction Terminology and Badges

    • Renamed Read/Layout choices to Standard/Enhanced, added explanatory hover text, and moved extraction badges out of top-level document rows while preserving detail views.
    • (Ref: Admin Settings Search & Extract, workspace document views)
  • Cosmos Throughput Table Clarity and Container Policies

    • Simplified the Cosmos container table, added tooltips and setup guide test flow, preserved unavailable metrics accurately, and added a Containers modal for per-container automation policies.
    • (Ref: admin_settings.html, admin_settings.js, Cosmos throughput docs)
  • File Sync Source Configuration Flow

    • Reworked the sync source modal around selected paths, subfolders, filters, provider browsing, and OneDrive global connector guidance.
    • (Ref: workspace-file-sync.js)
  • Control Center Group Token Totals

    • Added all-time group token usage totals to the Control Center table, modal, and CSV export.
    • (Ref: route_backend_control_center.py, control-center.js, control_center.html)
  • Workspace Identity Modal Workflow

    • Replaced inline identity forms with Add, View, and Edit modals grouped around real consumers and authentication details.
    • (Ref: workspace-identities.js, functions_workspace_identities.py)
  • Deep Research Allowed-User Management Modal

    • Replaced inline user policy controls with a Manage Users modal and switched runtime behavior to allow-only access.
    • (Ref: admin_settings.html, admin_settings.js, functions_source_review.py)
  • Assistant Follow-Up Prompt Actions

    • Assistant responses can render next-step options as prompt buttons with a cancelable send countdown.
    • (Ref: chat-messages.js, chats.css)
  • Workspace Document Cards and Folder-Card Views

    • Added public workspace document cards, aligned view controls across workspaces, and improved multi-select and visible-only select-all behavior.
    • (Ref: workspace JS/CSS, workspace templates)
  • Control Center Management Pagination

    • Added page-size selectors and server-driven pagination for User, Group, and Public Workspace Management.
    • (Ref: route_backend_control_center.py, control_center.html, control-center.js)
  • Workspace Branding Heroes and Shortcuts

    • Group and public workspaces now support logo upload, active workspace hero cards, owner metadata, optional logos, and direct manage shortcuts.
    • (Ref: functions_workspace_branding.py, workspace templates and tests)
  • GitHub Pages Documentation Redesign

    • Redesigned the documentation shell with fixed top navigation, curated sidebar, mobile drawer, search, and right-side page rail.
    • (Ref: docs layouts, includes, assets, index, UI tests)
  • Chat and Sidebar Icon-Only Controls

    • Refined the chat conversation info button and compact sidebar toggle as quiet icon-only controls with accessible focus states.
    • (Ref: chats.html, _sidebar_nav.html, _sidebar_short_nav.html, sidebar.css, test_chat_sidebar_toggle_controls.py)