Files
beaver_project/docs/ui-ux/pages/marketplace.md
steven_li 2c5205b06e feat: 添加MinIO文件系统支持并优化外部连接器功能
- 添加MinIO用户文件系统配置选项(BEAVER_MINIO_ROOT_USER等)
- 更新外部连接器配置结构,包括BASE_URL和认证令牌设置
- 改进connector provider支持更多类型(official, feishu_bot等)
- 实现Mistral模型推理模式支持reasoning_effort参数
- 增强外部连接器策略配置和运行时配置管理
- 添加connector bridge事件验证和安全保护机制
- 优化任务路由逻辑,区分simple_chat和new_task场景
- 更新初始技能工具提示配置,分离authoring admin功能
2026-06-05 11:46:40 +08:00

107 lines
6.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 主应用:市场页 UI/UX
## 1. 页面定义
| 项目 | 内容 |
| --- | --- |
| 页面名称 | 技能市场 |
| 路由 | `/marketplace` |
| 页面实现 | `app-instance/frontend/app/(app)/marketplace/page.tsx` |
| 关键组件 | `MarketplacePage``SkillDetailView``Tabs``Card``Button``Input` |
| 核心任务 | 搜索 SkillHub 技能、排序筛选、打开详情、查看说明/文件/版本、安装或更新技能 |
| 测试状态 | 已修复并复测通过;本地与 `terminaltest` 生产实例均通过 |
## 2. 信息架构与组件层级
```text
AppShell
└── main.pt-16
└── /marketplace
├── Page Header
│ ├── h1 Marketplace
│ └── 页面说明
├── Search Form
│ ├── 搜索输入框
│ └── Search
├── Error Card
├── Search Results
│ ├── Sort Buttons
│ ├── Starred only Filter
│ ├── Skill Button Cards
│ └── Pagination
└── Skill Detail
├── Back to search
├── Detail Header
│ ├── namespace/download/star/version badges
│ ├── title/summary
│ └── Install/Reinstall
├── Overview Tab
├── Files Tab
│ ├── file list
│ └── file preview
└── Versions Tab
└── version rows
```
## 3. 布局与响应式规则
- 页面外层使用 `max-w-7xl`,移动端内边距为 `16px`,桌面端为 `24px`
- 搜索区在移动端垂直排列,桌面端输入框和 Search 按钮横向排列。
- 结果卡片使用真正的 `button` 语义,而不是仅给 Card 绑定 click键盘和读屏器都能识别为可操作项。
- 技能名、namespace、版本号、文件路径、README markdown 和代码预览都允许在容器内断行。
- 详情页文件列表和文件预览在桌面端左右分栏,移动端垂直排列。
- Tabs、按钮、输入框和分页操作均满足 `44px` 触控目标。
- Markdown 中的长代码、表格和链接不会撑出页面;表格在内容区内横向滚动。
## 4. 操作与 UX 逻辑
| 操作 | 触发方式 | 状态变化与反馈 | UX 目的 | 当前结果 |
| --- | --- | --- | --- | --- |
| 搜索技能 | 输入关键词后点击 Search 或提交表单 | 调用 SkillHub search列表刷新 | 快速定位技能 | 正常 |
| 切换排序 | 点击 Relevance/Downloads/Newest | 当前排序按钮进入选中态并重新加载 | 支持按不同意图浏览 | 正常 |
| 只看收藏 | 点击 Starred only | 本地筛选 starCount 大于 0 的结果 | 聚焦已收藏技能 | 正常 |
| 打开技能详情 | 点击技能卡片按钮 | 加载 detail、version list、SKILL.md | 进入安装前审阅 | 正常 |
| 返回搜索 | 点击 Back to search | 清空详情状态并回到结果列表 | 提供明确退出路径 | 正常 |
| 切换说明/文件/版本 | 点击 tab | 同页切换内容区 | 让审阅信息分层 | 正常 |
| 打开文件 | Files tab 点击文件路径 | 加载并预览文件内容 | 审核技能代码或文档 | 正常 |
| 切换版本 | Versions tab 点击版本行 | 加载指定版本详情和 README | 安装前比较版本 | 正常 |
| 安装技能 | 点击 Install/Reinstall | 调用 install API按钮 loading成功后显示 installed | 完成技能接入 | 正常 |
| 加载/安装失败 | API 返回错误 | 显示错误卡片,文本断行 | 明确失败原因并保留当前上下文 | 正常 |
## 5. 响应式测试矩阵
测试日期2026-06-04。浏览器Playwright Chromium。环境本地 dev server `http://127.0.0.1:3080` 与生产实例 `terminaltest`API 使用模拟数据,真实浏览器执行点击、输入、详情打开、文件预览、安装和截图。
| 页面/状态 | 视口 | 横向越界 | 小触控目标 | 关键结论 |
| --- | --- | --- | --- | --- |
| 搜索结果 + 详情 | `320×568` | 无 | 0 | 长 skill 名、namespace 和 summary 不撑破页面 |
| 搜索结果 + 详情 | `390×844` | 无 | 0 | 可搜索、打开详情、切换文件并安装 |
| 搜索结果 + 详情 | `844×390` 横屏 | 无 | 0 | 横屏内容可滚动,不产生页面级横向滚动 |
| 搜索结果 + 详情 | `768×1024` | 无 | 0 | 平板详情布局稳定 |
| 搜索结果 + 详情 | `1365×900` | 无 | 0 | 桌面分栏和卡片布局正常 |
### 关键量化证据
- 本地与 `terminaltest` 市场/配置组合 QA 自动化用例均 `4 passed`,其中覆盖市场流。
- 覆盖搜索、详情、文件 tab、长路径文件预览、安装请求和响应式。
- 实测 `320×568``390×844``844×390``768×1024``1365×900` 均无页面级横向越界。
- 所有实测视口可见小触控目标数为 `0`
- 本地截图保存在 `/tmp/beaver-market-settings-qa-local-shots`,生产截图保存在 `/tmp/beaver-market-settings-qa-prod-shots`
## 6. 已修复问题
| 等级 | 问题 | 修复 |
| --- | --- | --- |
| P1 | 结果卡片只有 Card click没有按钮语义键盘和辅助技术不可稳定操作 | 改为真实 `button` 卡片 |
| P1 | 技能详情里的文件路径、版本号、markdown 代码块可能撑破移动端 | 增加 `min-w-0``break-all``break-words` 和 markdown 预览约束 |
| P2 | 页面缺少清晰 `h1`,市场页身份不明确 | 增加语义化标题和说明 |
| P2 | 搜索表单在窄屏可能挤压 | 移动端改为纵向布局 |
| P2 | Tabs 触控高度不足 44px | 基础 `TabsTrigger` 调整为 `44px` |
| P2 | 排序、筛选、返回、安装、分页等操作触控尺寸不统一 | 基础按钮和页面操作统一提升到 `44px` |
| P3 | 长 namespace 和版本 badge 只截断或可能撑宽 | 改为容器内断行 |
## 7. 剩余观察项
- 本轮使用模拟 SkillHub 数据;真实市场里若存在复杂 HTML/Markdown 表格或超大文件,仍需持续抽样检查。
- 当前安装成功后停留在详情页并更新 installed 状态,后续可考虑增加轻量 toast增强成功反馈。