toBe($expected); })->with([ 'workspace overview' => ['/admin', AdminSurfaceScope::WorkspaceWideSurface], 'workspace chooser exception' => ['/admin/choose-workspace', AdminSurfaceScope::WorkspaceChooserException], 'tenant chooser' => ['/admin/choose-environment', AdminSurfaceScope::WorkspaceScoped], 'retired tenant resource detail' => ['/admin/tenants/tenant-123', AdminSurfaceScope::WorkspaceScoped], 'retired tenant panel route' => ['/admin/t/tenant-123', AdminSurfaceScope::WorkspaceScoped], 'workspace environment detail' => ['/admin/workspaces/acme/environments/tenant-123', AdminSurfaceScope::EnvironmentBound], 'baseline compare environment route' => ['/admin/workspaces/acme/environments/tenant-123/baseline-compare', AdminSurfaceScope::EnvironmentBound], 'baseline profiles list' => ['/admin/baseline-profiles', AdminSurfaceScope::WorkspaceOwnedAnalysisSurface], 'baseline profiles detail' => ['/admin/baseline-profiles/42', AdminSurfaceScope::WorkspaceOwnedAnalysisSurface], 'baseline profiles edit' => ['/admin/baseline-profiles/42/edit', AdminSurfaceScope::WorkspaceOwnedAnalysisSurface], 'baseline profiles compare matrix' => ['/admin/baseline-profiles/42/compare-matrix', AdminSurfaceScope::WorkspaceOwnedAnalysisSurface], 'baseline snapshots list' => ['/admin/baseline-snapshots', AdminSurfaceScope::WorkspaceOwnedAnalysisSurface], 'baseline snapshots detail' => ['/admin/baseline-snapshots/42', AdminSurfaceScope::WorkspaceOwnedAnalysisSurface], 'my findings inbox' => ['/admin/findings/my-work', AdminSurfaceScope::WorkspaceOwnedAnalysisSurface], 'findings intake' => ['/admin/findings/intake', AdminSurfaceScope::WorkspaceOwnedAnalysisSurface], 'findings hygiene' => ['/admin/findings/hygiene', AdminSurfaceScope::WorkspaceOwnedAnalysisSurface], 'cross-environment compare' => ['/admin/cross-environment-compare', AdminSurfaceScope::WorkspaceOwnedAnalysisSurface], 'environment evidence detail' => ['/admin/workspaces/acme/environments/tenant-123/evidence/123', AdminSurfaceScope::EnvironmentBound], 'evidence overview' => ['/admin/evidence/overview', AdminSurfaceScope::WorkspaceWideSurface], 'customer review workspace' => ['/admin/reviews/workspace', AdminSurfaceScope::WorkspaceWideSurface], 'review register' => ['/admin/reviews', AdminSurfaceScope::WorkspaceWideSurface], 'governance decisions' => ['/admin/governance/decisions', AdminSurfaceScope::WorkspaceWideSurface], 'alerts' => ['/admin/alerts', AdminSurfaceScope::WorkspaceWideSurface], 'provider connections' => ['/admin/provider-connections', AdminSurfaceScope::WorkspaceWideSurface], 'workspace home overview' => ['/admin/workspaces/acme/overview', AdminSurfaceScope::WorkspaceWideSurface], 'onboarding index' => ['/admin/onboarding', AdminSurfaceScope::OnboardingWorkflow], 'onboarding draft' => ['/admin/onboarding/42', AdminSurfaceScope::OnboardingWorkflow], 'operations index' => ['/admin/workspaces/acme/operations', AdminSurfaceScope::WorkspaceWideSurface], 'retired operation run detail' => ['/admin/operations/44', AdminSurfaceScope::WorkspaceScoped], 'operation run detail' => ['/admin/workspaces/acme/operations/44', AdminSurfaceScope::CanonicalWorkspaceRecordViewer], ]); it('keeps workspace owned analysis surfaces tenantless without query hint or remembered environment restore', function (): void { $surface = AdminSurfaceScope::WorkspaceOwnedAnalysisSurface; expect($surface->allowsQueryEnvironmentHints())->toBeFalse() ->and($surface->allowsRememberedEnvironmentRestore())->toBeFalse() ->and($surface->allowsEnvironmentlessState())->toBeTrue() ->and($surface->forcesEnvironmentlessShellContext())->toBeTrue() ->and($surface->requiresExplicitEnvironment())->toBeFalse() ->and($surface->lane())->toBe(TenantInteractionLane::StandardActiveOperating); });