From dc49f80d231aa019e754261dcb775a72d16cb2d6 Mon Sep 17 00:00:00 2001 From: Probe Test Date: Thu, 23 Jul 2026 03:55:33 -0300 Subject: [PATCH] fix(dashboard): keep Compression Studio last after the exclusions page was added Base-red slice 5. #8034/#8064 (per-model/endpoint compression exclusion filter) appended the new `compression-exclusions` sidebar item to the END of the compression group, after `compression-studio`. That broke the deliberate "Compression Studio is the last item of the compression group" invariant asserted by two tests (sidebar-engine-items "Studio must be last" and sidebar-visibility's exact-order array, whose expected list places compression-studio immediately before cli-code). Rather than weaken the invariant, moved `compression-exclusions` ABOVE `compression-studio` in sections.ts (new pages go above the Studio showcase) and added the new item to sidebar-visibility's expected order. Both tests, plus the other four sidebar suites (reorg / back-compat / tools / engine-items), stay green. --- .../constants/sidebarVisibility/sections.ts | 20 ++++++++++--------- tests/unit/sidebar-visibility.test.ts | 1 + 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/shared/constants/sidebarVisibility/sections.ts b/src/shared/constants/sidebarVisibility/sections.ts index 3f817e246243..c2c168c350d1 100644 --- a/src/shared/constants/sidebarVisibility/sections.ts +++ b/src/shared/constants/sidebarVisibility/sections.ts @@ -188,15 +188,6 @@ export const COMPRESSION_CONTEXT_GROUP: SidebarItemGroup = { subtitleFallback: "Context-as-image", icon: "grain", }, - { - id: "compression-studio", - href: "/dashboard/compression/studio", - i18nKey: "compressionStudio", - labelFallback: "Compression Studio", - subtitleKey: "compressionStudioSubtitle", - subtitleFallback: "Live engine cascade", - icon: "monitoring", - }, { id: "compression-exclusions", href: "/dashboard/compression/exclusions", @@ -206,6 +197,17 @@ export const COMPRESSION_CONTEXT_GROUP: SidebarItemGroup = { subtitleFallback: "Per-model/endpoint bypass", icon: "block", }, + // Compression Studio stays the final showcase item of the compression group + // (sidebar-engine-items "Studio must be last" invariant); new pages go above it. + { + id: "compression-studio", + href: "/dashboard/compression/studio", + i18nKey: "compressionStudio", + labelFallback: "Compression Studio", + subtitleKey: "compressionStudioSubtitle", + subtitleFallback: "Live engine cascade", + icon: "monitoring", + }, ], }; diff --git a/tests/unit/sidebar-visibility.test.ts b/tests/unit/sidebar-visibility.test.ts index 721e00e29ba7..eb6896c39227 100644 --- a/tests/unit/sidebar-visibility.test.ts +++ b/tests/unit/sidebar-visibility.test.ts @@ -57,6 +57,7 @@ test("primary sidebar items place limits after cache", () => { "context-aggressive", "context-ultra", "context-omniglyph", + "compression-exclusions", "compression-studio", "cli-code", "cli-agents",