code: def _handle_status(self, msg):
          
          state = msg['content'].get('execution_state', '')
          msg_type = msg['parent_header'].get('msg_type', '')
          if state == 'starting':
              # This is needed to show the time a kernel
              # has been alive in each console.
              self.ipyclient.t0 = time.monotonic()
              self.ipyclient.timer.timeout.connect(self.ipyclient.show_time)
              self.ipyclient.timer.start(1000)
  
              # This handles restarts when the kernel dies
              # unexpectedly
              if not self._kernel_is_starting:
                  self._kernel_is_starting = True
          elif state == 'idle' and msg_type == 'shutdown_request':
              # This handles restarts asked by the user
              if self.namespacebrowser is not None:
                  self.set_namespace_view_settings()
                  self.refresh_namespacebrowser()
              self.ipyclient.t0 = time.monotonic()
          else:
              super(NamepaceBrowserWidget, self)._handle_status(msg)
docs: Reimplemented to refresh the namespacebrowser after kernel
          restarts