5.3 KiB
ADDED Requirements
Requirement: User actions have visible lifecycle feedback
The platform web application SHALL show visible lifecycle feedback for user-triggered operations.
Scenario: Button enters pending state
- WHEN a user submits an operation from a button or form
- THEN the initiating control shows a pending or loading state and prevents accidental duplicate submission until the operation state is known
Scenario: Operation success is visible
- WHEN a submitted operation completes successfully
- THEN the UI shows a success result and provides relevant next actions such as viewing logs or operation history when available
Scenario: Operation failure is visible
- WHEN a submitted operation fails
- THEN the UI shows a failure result with an error reason and relevant retry or diagnostic actions when available
Requirement: Operations are traceable
The platform web application SHALL expose a traceable operation or job identity for operations that affect platform, run, plugin, server, or LLM systems.
Scenario: Operation detail includes trace data
- WHEN an operation is created or retrieved
- THEN the UI can display its operation/job ID, target, requester, status, timestamps, and error reason when available
Scenario: Failure includes diagnostic identifier
- WHEN an operation or data load fails with a diagnostic identifier
- THEN the UI displays the identifier or provides a copyable diagnostic summary for debugging
Requirement: One user intent maps to one visible business operation
The platform web application SHALL present each user-triggered action as one visible business operation even if the backend performs multiple internal steps.
Scenario: Complex action is tracked as one operation
- WHEN a user triggers a complex action such as restart server, send gift, apply plugin control, or write configuration
- THEN the UI displays one operation lifecycle for the user intent and tracks progress or result through one operation/job context
Scenario: Multi-step backend failure is debuggable
- WHEN an internal step of a complex action fails
- THEN the operation result identifies the failing stage or error reason when that information is available
Requirement: Empty states are actionable
The platform web application SHALL show actionable empty states instead of blank pages for expected no-data conditions.
Scenario: Server list is empty for server administrator
- WHEN a server administrator has no manageable servers
- THEN the server list shows an empty state explaining that no manageable servers are available and provides a refresh action
Scenario: Platform overview has no servers
- WHEN a platform administrator opens the platform overview and no server instances exist
- THEN the overview shows an empty state with a management-oriented next action rather than a blank page
Requirement: Loading states are scoped
The platform web application SHALL use scoped loading states so one slow module does not blank unrelated content.
Scenario: Dashboard module loads independently
- WHEN one platform overview module is loading slowly
- THEN the UI shows a loading state for that module while keeping already loaded modules visible
Scenario: Server card metrics load independently
- WHEN server metrics are still loading
- THEN the server card remains visible with stable placeholders for pending metrics
Requirement: Errors identify affected scope
The platform web application SHALL display errors with enough scope and recovery information for operators to act.
Scenario: Module load error is localized
- WHEN a dashboard module or server detail section fails to load
- THEN the error is shown within the affected module or section with retry and diagnostic information when available
Scenario: Full-page error preserves navigation
- WHEN a full-page error prevents rendering the requested workspace
- THEN the application preserves usable global navigation or a safe route back to an authorized workspace
Requirement: Dangerous actions require confirmation
The platform web application SHALL require explicit confirmation for destructive or disruptive operations.
Scenario: Restart or stop requires confirmation
- WHEN a user initiates a disruptive server action such as stop or restart
- THEN the UI asks for confirmation before submitting the operation
Scenario: Configuration write requires diff confirmation
- WHEN a user initiates a configuration write from manual edits or LLM output
- THEN the UI requires the user to review and confirm the diff before submission
Requirement: AI and run safety boundaries are preserved
The platform web application SHALL preserve platform AI provider and run communication safety boundaries in all redesigned interactions.
Scenario: AI keys are never exposed to frontend
- WHEN platform_web uses AI provider health or LLM assistance features
- THEN raw AI keys and provider secrets are not exposed to platform_web or plugin pages
Scenario: Run internals are not exposed to frontend
- WHEN platform_web displays server operations, logs, artifacts, or diagnostics
- THEN host paths, raw credentials, and direct run sockets are not exposed to platform_web or plugin pages