2.3 KiB
ADDED Requirements
Requirement: Console exposes required pages
The platform web console SHALL provide 首页、服务器管理、插件市场、用户管理、AI 提供商管理 as first-party pages.
Scenario: Authenticated user opens console
- WHEN an authenticated user opens platform_web
- THEN the primary navigation MUST include 首页、服务器管理、插件市场、用户管理、AI 提供商管理
Requirement: Server management uses routed or modal details
Server management SHALL avoid fixed left-list/right-detail master-detail layouts and MUST use routed details, modal details, or drawers for server detail flows.
Scenario: User opens a server
- WHEN a user selects a server from the server list
- THEN platform_web MUST navigate to a detail route or open an overlay detail surface rather than permanently occupying a right-side detail pane
Requirement: Plugin page is hosted through platform context
Plugin page SHALL run inside a platform-controlled host that supplies theme tokens, server instance context, safe API access, AI invocation, log queries, artifact references, and job operations.
Scenario: Plugin page loads
- WHEN a user opens an authorized plugin page for a server instance
- THEN the host MUST pass only safe context and MUST not expose platform auth storage, AI keys, run credentials, or host paths
Requirement: Frontend definitions are centralized
platform_web SHALL keep API clients, route definitions, page contracts, bridge contracts, shared component types, schemas, and validation helpers in dedicated directories.
Scenario: New API call added
- WHEN a frontend change adds a platform API call
- THEN the call and related request/response types MUST live in the API/contract area rather than inside a view component
Requirement: Logs and files are separate user flows
The frontend SHALL treat log history/tail views and file/artifact operations as separate workflows so file operations do not imply log stream interruption.
Scenario: User uploads a file while viewing logs
- WHEN a user uploads or downloads a server file from a plugin or file page
- THEN active log history or tail views MUST continue to query or subscribe through the platform log APIs independently