Live Dashboard Updates, Mobile Chat Reconnect, and the Chrome Extension Catches Up (v2.1.13 + v2.1.14)

Share
Live Dashboard Updates, Mobile Chat Reconnect, and the Chrome Extension Catches Up (v2.1.13 + v2.1.14)

Yesterday's release gave you a live status board for your AI team. The catch (which we knew about, and were already working on) was that "live" was a stretch. You still had to refresh the page to see anything new.

v2.1.13 fixed that for the web dashboard. v2.1.14, shipped a few hours later, extends the same live status work into the Chrome extension and cleans up a handful of rough edges the extension had been quietly carrying. Both releases together: the dashboard now updates in real time, your phone reconnects to chat in under three seconds, the extension popup mirrors the dashboard's status the moment anything changes, and the hover overlay no longer shows you internal system tokens or upload metadata.

The dashboard now updates in real time

The mechanics are simple to describe. A new dedicated WebSocket connection sits between your browser and our backend, just for dashboard updates. Whenever any of your AI employees changes state (busy to idle, idle to busy, new prompt received, response captured), the backend pushes that update immediately. No polling, no refresh.

A few things you'll notice that you didn't have to do anything to get:

  • The "since X" timer ticks up live, not just when you refresh. A card that says "Busy, since 2 min" rolls over to "3 min" while you're watching, like a real clock.
  • The hover overlay updates as new prompts come in. If you're hovering over an employee card and they receive a new message in the middle, the prompt text on the overlay updates without you doing anything.
  • Cards smoothly reorder when sorted by busy state. If you've set the dashboard to "Busy first" and an idle employee becomes busy, you'll see their card glide to the top of the grid rather than jumping. Same in reverse when they go idle and slide back down.

The reorder animation uses framer-motion under the hood, which means it's GPU-accelerated and stays smooth even when several cards change state at once.

A scale note

The "live status" feature was designed for instances running 50 to 100 AI employees, which is on the higher end of what most teams currently run but represents where serious deployments are heading. Three things keep the dashboard fast at that scale: a single shared timer for the whole page (instead of one timer per badge), conditional re-sorts (only when the active mode actually depends on busy state), and position-only animations (skipping the per-frame size measurement).

None of this is visible from the outside. It's the kind of work that ensures the dashboard still feels fast when you grow the team.

The mobile chat fix

The second feature in this release is one of those bugs that's hard to describe in a changelog because it isn't dramatic, just constantly mildly annoying. You're on your phone, having a conversation with one of your AI employees. You lock the phone, switch to another app, take a call. Two minutes later you come back. The chat seems frozen. You type something. It doesn't go through. You wait 10 or 20 seconds. Eventually it reconnects.

The root cause was that mobile browsers don't reliably tell the WebSocket layer when the tab has been backgrounded and resumed. The connection silently dies and the existing reconnect logic (with exponential backoff capped at 30 seconds) was sometimes mid-backoff when you returned. Worst case: 30 seconds.

The fix is a small, visibility-aware probe. When the page comes back into focus, the app immediately checks whether the WebSocket is actually alive. If no pong comes back within 2.5 seconds, the connection is treated as dead, any pending backoff is wiped, and a fresh connection is opened immediately. Net effect: under 3 seconds, usually instant. Same probe covers desktop tab switching and coming back online after losing signal.

The Chrome extension catches up

Right after v2.1.13 went out, a dogfooding session on the Chrome extension revealed that the extension had been quietly lagging behind the web app on several fronts. v2.1.14 closes those gaps.

The Stop button actually stops now. The extension was sending one message type, the backend was listening for another. The click looked fine but nothing happened, and the streaming UI would re-arm itself half a second later because in-flight messages were still draining. Fixed by aligning the message types and adding a proper guard so late drainage events can't re-enable the stop button.

Live status reaches the extension popup. The extension now subscribes to the same /ws/dashboard WebSocket the web dashboard uses. The moment an employee's is_busy flag flips (from a Stop in the web Chat, from the dashboard, from another tab, from anywhere) the extension popup updates instantly. The status indicator and streaming UI now stay in sync across every surface where the same employee is open.

Interrupted prompts say so. Before, if you stopped an AI employee mid-prompt, the dashboard hover overlay would just keep showing the previous reply. Confusing. Now it shows "Interrupted by user" so you can tell at a glance which conversations were stopped versus completed.

The hover overlay is finally clean. This was the most visible regression from v2.1.13's "what is this employee working on" feature. Because the last_user_input field was being written from every prompt that hit an employee (not just chat messages), the overlay started showing things like raw [BROWSER_AUTOMATION_SETUP] tokens with credentials, raw [WHATSAPP_MESSAGE] envelopes, and full upload-metadata blobs from file attachments. None of that should ever have been user-visible. A new formatter now:

  • Drops system tokens entirely (so nothing leaks).
  • Prettifies channel envelopes ("WhatsApp from Sarah: I need to reschedule" instead of [WHATSAPP_MESSAGE:+15551234:Sarah]I need to reschedule).
  • Collapses file uploads to a short "Image" or "File" label instead of the full metadata blob.

Lazy-loaded chat history in the extension. The extension popup used to render the entire transcript every time you opened a chat. For employees with a few hundred messages, that was a visible hang. The extension now renders the last 32 messages on open and loads 32 more when you scroll up, matching the web Chat pattern. As a side effect of the rewrite we caught two history-duplication bugs that had been quietly accumulating in the old "rebuild the DOM every time" model.

MFA modes and a proper OTP input

A configuration bug: instance admins could set the MFA mode globally to authenticator-app (TOTP), but the extension login was hard-coded to send an email code anyway. Fixed. The extension now branches the same way the web app does: off, email, or TOTP. If the instance is in TOTP mode but the user hasn't set up an authenticator yet, the extension prompts them to do so in the web app first (a TOTP setup flow inside the extension is on the follow-up list).

While we were in the MFA code path, we replaced the old single-input "type your six digit code here" field with a proper 6-box OTP input. Auto-advance, backspace navigation, paste support that fans the digits out across the boxes, auto-verify when the last digit lands. Works for both email codes and authenticator codes. Small change. Surprisingly satisfying once you use it.

One last UI polish

The dashboard loading state was still showing an hourglass emoji from somewhere deep in the codebase, which violated our own rule about using lucide-react icons everywhere instead of emojis. Replaced with a proper spinning Loader2 icon, matching the rest of the UI.

A note for extension users

If you're updating from a previous version, re-download the Chrome extension from the in-app link and reload it from chrome://extensions/ (the ↻ icon on the GetATeam extension). Clicking the in-browser reload alone only re-evaluates the locally-cached files. A built-in version check is on the follow-up list.

What this means together

If you were using the dashboard yesterday, it now feels different in a way that's hard to explain until you experience it. The static directory is gone. The grid of cards visibly reacts to what your AI team is doing, second by second, no input from you required. The same is true in the extension popup. The same is true on your phone. The hover overlay is no longer cluttered with internals. Stop actually stops. The whole product feels more coherent across surfaces than it did 24 hours ago.

Want to test the most advanced AI employees? Try it here: https://Geta.Team

Read more