Skip to content

Sidebar footer shows fake "Username" avatar and hardcoded "Connected" status (no user system; status not bound to real connection state) #52

Description

@yikkuro

Summary

The bottom-left sidebar footer (SidePanel.vue) shows a user avatar, a "Username" label, and a green "Connected" status dot. However, the app has no user/account/login system at all, and this footer is entirely static/hardcoded — making it misleading in two ways.

Findings (from desktop/renderer/src/components/SidePanel.vue)

  1. "Username" is a hardcoded literal, not real data. It renders the static i18n string sidebar.userName (= "Username"), not any user/profile value.
  2. The avatar is a static placeholder SVG — a generic person glyph on a grey circle (#8a9ba8), not a real avatar image.
  3. The footer has no @click handler — it is intentionally non-interactive, so the avatar/username imply an account feature that does not exist.
  4. The "Connected" status is also hardcoded. The green dot (<span class="sp-status-dot"></span>) and the sidebar.connected label are static — not bound to chatStore.wsConnected. Everywhere else in the app connection UI is driven by chatStore.wsConnected (see App.vue, ChatView.vue), but this footer is not. As a result it will always display "Connected" even when the gateway WebSocket is actually disconnected.

Confirmed via a full grep of desktop/renderer/src: there is no auth/account system. The only login/account references are unrelated (WeChat channel login, model API-key setup, gateway WebSocket session, plugin accounts — all using accountId: "default").

Impact

  • The avatar + "Username" imply a signed-in user / account system that does not exist (confusing UX).
  • The always-green "Connected" indicator is actively misleading — it never reflects real connection state, so users get no signal when the gateway drops.

Repro

  1. Launch MicroClaw and look at the bottom-left of the sidebar.
  2. Observe the person avatar, "Username", and green "Connected" dot.
  3. Click it → nothing happens (no menu, no profile, no settings).
  4. Code: desktop/renderer/src/components/SidePanel.vue (footer, ~lines 154–181); contrast with chatStore.wsConnected usage in App.vue / ChatView.vue.

Suggested fix (pick one)

  • Remove the footer entirely, since it implies a feature (user accounts) that does not exist; or
  • Repurpose it: make it a real entry point (e.g. to Settings/About) and bind the status dot + label to chatStore.wsConnected so it reflects genuine Connected/Disconnected state.

Regardless of the above, the status dot should be wired to real connection state — the hardcoded "Connected" is the more concrete defect.


Found during a UI walkthrough of the desktop app.

Screenshots

The static Username avatar and hardcoded green Connected status (highlighted in red, bottom-left of the sidebar):

Sidebar footer highlighted — Username / Connected

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions