Skip to content

Reorder workspace section tabs into a consistent order of operations #1255

Description

@paullizer

Summary

Workspace section tabs are ordered inconsistently across surfaces, and the current order doesn't communicate any order of operations. Users and admins tell us they don't understand that Identities feed both Sync and Actions, that Actions belong to Agents, or that Workflows consume Agents.

Current state

Surface Order
Personal tabs (workspace.html) Documents, Sync, Identities, Prompts, Agents, Actions, Workflows, Endpoints
Personal Section dropdown Documents, Sync, Identities, Prompts, Agents, Actions, Workflows, Endpoints
Personal sidebar submenu Documents, Prompts, Workflows, Agents, Actions, Endpoints, Sync, Identities
Group tabs (group_workspaces.html) Documents, Sync, Identities, Prompts, Workflows, Agents, Actions, Endpoints
Group Section dropdown Documents, Sync, Identities, Prompts, Workflows, Agents, Actions, Endpoints
Group sidebar submenu Documents, Prompts, Agents, Actions, Endpoints, Sync, Identities (no Workflows link at all)
Public browse (public_workspaces.html) Documents, Prompts

Proposed canonical order

Adopt one build-up order everywhere a workspace section list is rendered. Sections still only appear when their existing feature gates are enabled — this is a pure reorder.

  1. Documents — the knowledge you bring in
  2. Prompts — the instructions you reuse
  3. Identities — the credentials Sync and Actions both resolve against
  4. Sync — uses Identities to pull Documents in
  5. Endpoints — the models Agents and Workflows run on
  6. Actions — governed tools, using Identities and Endpoints
  7. Agents — assemble Documents, Prompts, Actions, Endpoints
  8. Workflows — run Agents on a schedule or trigger

Applies to all three section-listing surfaces: the top nav-tabs bar, the collapsed/mobile Section <select>, and the left-hand sidebar submenus, for personal, group, and public workspaces.

Sidebar gating bugs found while scoping

These are fixed as part of this change, because otherwise the "only enabled sections show up, in this order" rule doesn't actually hold:

Item Today Should be
Personal "Your Agents" per_user_semantic_kernel and enable_semantic_kernel + allow_user_agents
Personal "Your Actions" per_user_semantic_kernel and enable_semantic_kernel + allow_user_agents and allow_user_plugins
Personal "Identities" file_sync_enabled or enable_semantic_kernel or enable_multi_model_endpoints file_sync_enabled or enable_semantic_kernel (match tab gate)
Group "Group Agents" allow_group_agents and enable_semantic_kernel + per_user_semantic_kernel
Group "Group Actions" allow_group_agents and enable_semantic_kernel + per_user_semantic_kernel and allow_group_plugins
Group "Identities" file_sync_enabled or enable_semantic_kernel or enable_multi_model_endpoints file_sync_enabled or enable_semantic_kernel (match tab gate)
Group "Workflows" missing entirely add link, gated by allow_group_workflows

Each mismatch means a sidebar link can point at a tab that was never rendered.

Scope decisions

  • Tab panes are not reordered. Bootstrap resolves panes by id / data-bs-target and inactive panes are hidden, so DOM order has no visual or accessibility effect. Leaving them keeps the diff reviewable (the group template is ~389 KB).
  • Documents stays first, so class="nav-link active" and the "first sidebar link is active" logic in workspace_sidebar_nav.js keep working unchanged.
  • Public workspaces already conform — the browse page is Documents then Prompts, and manage_public_workspace.html already lists Identities before Sync. Audit only.
  • Guided tutorial is out of scope — it still walks Documents → Prompts → Agents → Actions. Its selectors are id-based, so nothing breaks.

Files affected

  • application/single_app/templates/workspace.html
  • application/single_app/templates/group_workspaces.html
  • application/single_app/templates/_sidebar_nav.html
  • application/single_app/config.py (version bump)
  • functional_tests/test_endpoints_tab_order_visibility.py (updated)
  • functional_tests/test_workspace_section_order.py (new)
  • docs/explanation/features/v0.250.209/WORKSPACE_SECTION_ORDER.md (new)
  • docs/explanation/release_notes.md

Follow-ups (not in this change)

  • Visual grouping of sections. Reordering is the groundwork; a further pass could add dividers or group labels (e.g. Content / Connections / Automation) so the relationships read as cohesive rather than just sequential.
  • Orphan tab pane. group_workspaces.html contains a #group-settings-tab pane with no corresponding nav button anywhere in the codebase — dead markup that should be removed or wired up.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions