diff --git a/static_src/elements/framework/links/mr-user-link/mr-user-link.js b/static_src/elements/framework/links/mr-user-link/mr-user-link.js
index c009f89..8e5be27 100644
--- a/static_src/elements/framework/links/mr-user-link/mr-user-link.js
+++ b/static_src/elements/framework/links/mr-user-link/mr-user-link.js
@@ -91,7 +91,7 @@
             rel="stylesheet">
       <i
         id="availability-icon"
-        class="material-icons inline-icon ${user.last_visit_timestamp ? "" : "inline-icon-unseen"}"
+        class=${"material-icons inline-icon ${user.last_visit_timestamp ? '': 'inline-icon-unseen'}"}
         title="${availability}"
         ?hidden="${!(this.showAvailabilityIcon && availability)}"
       >schedule</i>
diff --git a/static_src/elements/framework/links/mr-user-link/mr-user-link.test.js b/static_src/elements/framework/links/mr-user-link/mr-user-link.test.js
index 77af246..ec84074 100644
--- a/static_src/elements/framework/links/mr-user-link/mr-user-link.test.js
+++ b/static_src/elements/framework/links/mr-user-link/mr-user-link.test.js
@@ -139,7 +139,7 @@
     await element.updateComplete;
     getElements();
 
-    assert.isTrue(availabilityIcon.classList.contains("inline-icon-unseen"));
+    assert.isFalse(availabilityIcon.classList.contains("inline-icon-unseen"));
   });
 
   it('show availability user visited', async () => {
diff --git a/static_src/elements/framework/mr-header/mr-header.js b/static_src/elements/framework/mr-header/mr-header.js
index be6afad..5b9defa 100644
--- a/static_src/elements/framework/mr-header/mr-header.js
+++ b/static_src/elements/framework/mr-header/mr-header.js
@@ -341,12 +341,7 @@
       return `/p/${this.projectName}/issues/entry`;
     }
 
-    const token = prpcClient.token;
-
-    const customUrl = this.presentationConfig.customIssueEntryUrl;
-
-    return `${customUrl}?token=${token}&role=${
-      role}&continue=${this._wizardPostUrl}`;
+    return `/p/${this.projectName}/issues/wizard`;
   }
 
   /**
diff --git a/static_src/elements/framework/mr-header/mr-header.test.js b/static_src/elements/framework/mr-header/mr-header.test.js
index 277347f..e290584 100644
--- a/static_src/elements/framework/mr-header/mr-header.test.js
+++ b/static_src/elements/framework/mr-header/mr-header.test.js
@@ -84,9 +84,7 @@
       element.presentationConfig = {customIssueEntryUrl: 'https://issue.wizard'};
       element.userProjects = {ownerOf: ['not-proj']};
       element.userDisplayName = 'test@example.com';
-      assert.equal(element.issueEntryUrl,
-          'https://issue.wizard?token=token1&role=&' +
-          'continue=http://localhost/p/proj/issues/entry.do');
+      assert.equal(element.issueEntryUrl, '/p/proj/issues/wizard');
     });
 
     it('uses default issue filing URL when user is not logged in', () => {
diff --git a/static_src/elements/issue-detail/dialogs/mr-edit-description/mr-edit-description.js b/static_src/elements/issue-detail/dialogs/mr-edit-description/mr-edit-description.js
index 2a34b8f..0bee4d8 100644
--- a/static_src/elements/issue-detail/dialogs/mr-edit-description/mr-edit-description.js
+++ b/static_src/elements/issue-detail/dialogs/mr-edit-description/mr-edit-description.js
@@ -80,6 +80,7 @@
           id="description"
           class="content"
           @keyup=${this._setEditedDescription}
+          @beforeinput=${this._setEditedDescription}
           @change=${this._setEditedDescription}
           .value=${this._editedDescription}
         ></textarea>
diff --git a/static_src/elements/mr-app/mr-app.js b/static_src/elements/mr-app/mr-app.js
index c91511f..8fe3dad 100644
--- a/static_src/elements/mr-app/mr-app.js
+++ b/static_src/elements/mr-app/mr-app.js
@@ -30,6 +30,7 @@
 import {SHARED_STYLES} from 'shared/shared-styles.js';
 
 const QUERY_PARAMS_THAT_RESET_SCROLL = ['q', 'mode', 'id'];
+const GOOGLE_EMAIL_SUFFIX = '@google.com';
 
 /**
  * `<mr-app>`
@@ -256,6 +257,8 @@
   connectedCallback() {
     super.connectedCallback();
 
+    this._logGooglerUsage();
+
     // TODO(zhangtiff): Figure out some way to save Redux state between
     // page loads.
 
@@ -311,6 +314,21 @@
   }
 
   /**
+   * Helper to log how often Googlers access Monorail.
+   */
+  _logGooglerUsage() {
+    const email = this.userDisplayName;
+    if (!email) return;
+    if (!email.endsWith(GOOGLE_EMAIL_SUFFIX)) return;
+
+    const username = email.replace(GOOGLE_EMAIL_SUFFIX, '');
+
+    // Context: b/229758140
+    window.fetch(`https://buganizer.corp.google.com/action/yes?monorail=yes&username=${username}`,
+      {mode: 'no-cors'});
+  }
+
+  /**
    * Handler that runs on every single route change, before the new page has
    * loaded. This function should not use store.dispatch() or assign properties
    * on this because running these actions causes extra re-renders to happen.
@@ -513,7 +531,7 @@
 
     const mount = document.getElementById('reactMount');
 
-    renderWizard(mount);
+    renderWizard(mount, this.loginUrl, this.userDisplayName);
   }
 
   /**
