Skip to content

User Story: Station Bot dashboard portlet with guild status and expand-to-admin flow #245

@GitAddRemote

Description

@GitAddRemote

User Story

As a guild owner or guild admin, I need a Station Bot dashboard portlet that tells me whether the Discord bot is installed and healthy for my guild so that I can see its current state at a glance and jump directly into the full Station-Bot administration experience when needed.

Definition of Done

  • Station displays a Station Bot dashboard portlet only for users who administer at least one mapped guild and have permission to view Station-Bot administration
  • The portlet shows the current/default guild context and a high-signal status badge for that guild’s Station-Bot state
  • The portlet supports the same expand/fullscreen interaction pattern used by the inventory portlet and opens the full Station-Bot admin shell
  • The portlet clearly distinguishes healthy, degraded, not-installed, and read-only states using concise copy and color/status treatment
  • The portlet does not expose detailed configuration controls directly; it is a summary-and-entry surface only
  • Users without Station-Bot admin access do not see the portlet
  • Tests cover visibility rules, status rendering, and expand-to-fullscreen navigation behavior
  • pnpm typecheck passes

Acceptance Criteria

  • A guild_owner or guild_admin who administers at least one mapped guild sees a Station Bot portlet on the dashboard
  • A guild_member who lacks Station-Bot admin access does not see the portlet
  • The portlet displays a clear state such as:
    • Active
    • Installed, Needs Configuration
    • Read Only
    • Disconnected
    • Authentication Error
    • Not Installed
  • When the bot is installed, reachable, and healthy for the guild, the portlet shows a green Active state
  • Clicking the expand/fullscreen affordance opens the full Station-Bot admin experience for the current guild, matching the inventory portlet interaction model
  • The portlet never acts as a mini settings editor; it remains a health/discoverability entry point

Technical Elaboration

This story introduces the primary dashboard entry point for guild-scoped Station-Bot administration.

Recommended portlet content:

  • Guild name
  • Status badge
  • Short state explanation
  • Optional last successful status check / sync time
  • Optional single warning summary such as Verification incomplete or Manufacturing not configured
  • Expand/fullscreen affordance

Recommended visibility rules:

  • Show for users who have Station-Bot admin visibility for at least one mapped guild
  • Hide for users with no guild-scoped Station-Bot admin access
  • If desired, station_super_admin may receive a different support/operator presentation later, but this story is focused on the guild-owner/guild-admin dashboard experience

Recommended status semantics:

  • Active: mapped guild exists, Station can authenticate to Station-Bot, Station-Bot reports the guild is reachable/known, and no blocking degraded state prevents admin use
  • Installed, Needs Configuration: bot is present but required domain configuration is incomplete
  • Read Only: bot is healthy enough to inspect but currently not accepting normal mutations
  • Disconnected: mapped but not currently reachable
  • Authentication Error: Station cannot authenticate to Station-Bot for this integration
  • Not Installed: no active bot installation / mapping for the guild

Implementation notes:

  • The portlet should consume a lightweight summary/health payload from the Station-Bot admin backend contract rather than bootstrapping the entire admin UI payload for first paint
  • The expand behavior should route into the full Station-Bot shell with the relevant guild context preselected
  • The interaction pattern should intentionally mirror the inventory portlet to keep dashboard behavior consistent across Station

Design Elaboration

This portlet should be small, clear, and high-signal.

Its job is not to let admins configure the bot from the dashboard. Its job is to answer: Do I have the bot, is it healthy, and how do I jump into full administration? If the portlet does that well, discoverability and confidence both improve without cluttering the dashboard.


Parent Epic: #231
Depends on: #232, #233, #241, #242

Metadata

Metadata

Assignees

Labels

configConfiguration and feature flagsenhancementNew feature or requestfrontendFrontend app and dashboardui-uxUser interface and experienceuser-storyEnd-user facing feature story

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions