diff --git a/etc/status/public_html/jquery.zuul.js b/etc/status/public_html/jquery.zuul.js
index 01f8bd3..5d155af 100644
--- a/etc/status/public_html/jquery.zuul.js
+++ b/etc/status/public_html/jquery.zuul.js
@@ -50,7 +50,7 @@
         }, options);
 
         var collapsed_exceptions = [];
-        var current_filter = read_cookie('zuul_filter_string', current_filter);
+        var current_filter = read_cookie('zuul_filter_string', '');
         var $jq;
 
         var xhr,
@@ -111,6 +111,7 @@
                     );
                 }
 
+                $job_line.append($('<div style="clear: both"></div>'));
                 return $job_line;
             },
 
@@ -266,9 +267,21 @@
 
                 var $change_link = $('<small />');
                 if (change.url !== null) {
-                    $change_link.append(
-                        $('<a />').attr('href', change.url).text(change.id)
-                    );
+                    if (/^[0-9a-f]{40}$/.test(change.id)) {
+                        var change_id_short = change.id.slice(0, 7);
+                        $change_link.append(
+                            $('<a />').attr('href', change.url).append(
+                                $('<abbr />')
+                                    .attr('title', change.id)
+                                    .text(change_id_short)
+                            )
+                        );
+                    }
+                    else {
+                        $change_link.append(
+                            $('<a />').attr('href', change.url).text(change.id)
+                        );
+                    }
                 }
                 else {
                     $change_link.text(change_id);
diff --git a/requirements.txt b/requirements.txt
index eabcef3..50726c0 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -14,8 +14,6 @@
 voluptuous>=0.7
 gear>=0.5.4,<1.0.0
 apscheduler>=2.1.1,<3.0
-python-swiftclient>=1.6
-python-keystoneclient>=0.4.2
 PrettyTable>=0.6,<0.8
 babel>=1.0
 six>=1.6.0
diff --git a/test-requirements.txt b/test-requirements.txt
index 99ada89..5192de7 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -6,7 +6,9 @@
 docutils==0.9.1
 discover
 fixtures>=0.3.14
+python-keystoneclient>=0.4.2
 python-subunit
+python-swiftclient>=1.6
 testrepository>=0.0.17
 testtools>=0.9.32
 sphinxcontrib-programoutput
diff --git a/zuul/model.py b/zuul/model.py
index 1a99650..b03bbb0 100644
--- a/zuul/model.py
+++ b/zuul/model.py
@@ -1121,9 +1121,10 @@
 
         # refs are ORed
         matches_ref = False
-        for ref in self.refs:
-            if ref.match(event.ref):
-                matches_ref = True
+        if event.ref is not None:
+            for ref in self.refs:
+                if ref.match(event.ref):
+                    matches_ref = True
         if self.refs and not matches_ref:
             return False
 
