Skip to content

Feat/UI optimize 0809 - #279

Merged
jsyqrt merged 6 commits into
mainfrom
feat/ui-optimize-0809
Aug 10, 2026
Merged

Feat/UI optimize 0809#279
jsyqrt merged 6 commits into
mainfrom
feat/ui-optimize-0809

Conversation

@jsyqrt

@jsyqrt jsyqrt commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

No description provided.

jsyqrt added 6 commits August 9, 2026 20:11
- 提取 MarkdownComponents.tsx 作为共享渲染组件层
- MarkdownMessage.tsx 瘦身至高阶组装(think/复制菜单),复用共享组件
- ArtifactDetail.tsx RenderedMarkdown 接入共享组件
- 修复:资产页 README/ROLE 文件中外部链接不再劫持 Electron 窗口,改为系统浏览器打开
- 附带:资产页 Markdown 渲染支持图片预览、图表渲染、实体 Chip、LaTeX 公式等
1. skills.ts: 图片上传后回显接口 Cache-Control 改为 no-cache,避免浏览器缓存旧图
2. ArtifactDetail.tsx:
   - publish 流程 fetch 图片时加 cache: no-store,确保拿到磁盘最新文件
   - <img> 标签图片地址带 ?v= cache busting 参数,强制刷新浏览器图片缓存
3. AgentBuilder.tsx: 列表页图片同样加 cache busting

根因:<img> 标签有独立的浏览器缓存层,不受 fetch() 缓存策略控制。
压缩/替换磁盘文件后,浏览器仍显示旧缓存,导致看起来图片损坏。
- TeamDetailPanel: 从组织中移除前加 askConfirm 确认弹窗
- ChatTeamSidebar: handleRemoveFromOrg 接收 teamId,删除后导航到团队群聊
- Team.tsx: auto-select useEffect 优先检查 markus_nav_after_remove 意图
- AgentBuilder: 修复 BuilderArtifact 不存在 localVersion 的 type error
- builder-service.ts installAgent(): 从 manifest.icon 读取图标,设置 agent.avatarUrl
  - 远程 URL → 直接使用
  - 本地 images/ 路径 → 构造 /api/builder/artifacts/… URL
  - emoji/命名图标 → 跳过(UI 回落 glyph)
- api-server.ts downloadAndInstall(): Hub 下载时自动将远程图标
  下载到本地 images/ 目录,更新 manifest 指向本地文件
- 覆盖路径:Hub 商店安装、本地 Builder 安装、package_install CLI

Resolves: 安装后资产页图标不显示,Hub 图标未被消费
- sqlite-storage: add avatar_url column to teams table + teamRepo.updateAvatarUrl()
- org.ts: add avatarUrl to Team interface
- skills/types.ts: add icon field to SkillManifest
- builder-service: resolveAvatarUrl supports 'skill'; installTeam adds team-level avatar + copies member images/ + sets member agent avatarUrl; installSkill parses icon → skillRegistry.register
- team-building SKILL.md: add images/ to directory template + manifest example + deployment table
- skill-building SKILL.md: add images/ template + icon example

All changes backward-compatible: old DB migrates safely, old packages without icon/images skip gracefully.

fix: team member avatar display + team-building SKILL.md clarity

- backend: add GET /api/builder/artifacts/:type/:name/members/:member/images/:filename route for member avatars
- frontend: TeamTabs shows member avatar images instead of first-letter circles (graceful fallback on load error)
- frontend: ArtifactDetail passes folderName to TeamTabs for avatar URL construction
- docs: team-building SKILL.md — add CRITICAL warning box for manifest field rules (team.members nesting, role enum, count requirement, category whitelist)

fix: three avatar/icon display issues

1. Team detail page: member avatar now shows in overview cards + member detail header
2. L1 sidebar: team uses real avatarUrl instead of hardcoded SVG icon
3. InstalledStore: relative icon paths resolved to /api/builder/artifacts/... URLs

Fixes:
- ArtifactDetail.tsx: add avatar img to member overview cards and detail header
- shared/types/org.ts + web-ui/api.ts: TeamInfo gets avatarUrl field
- org-service.ts: listTeamsWithMembers returns team.avatarUrl
- ChatTeamSidebar.tsx: renderTeamRow checks team.avatarUrl first
- InstalledStore.tsx: resolve relative icon paths to API URLs

fix: three avatar/icon display issues

1. Team detail page: member avatar now shows in overview cards + member detail header
2. L1 sidebar: team uses real avatarUrl instead of hardcoded SVG icon
3. InstalledStore: relative icon paths resolved to /api/builder/artifacts/... URLs

Fixes:
- ArtifactDetail.tsx: add avatar img to member overview cards and detail header
- shared/types/org.ts + web-ui/api.ts: TeamInfo gets avatarUrl field
- org-service.ts: listTeamsWithMembers returns team.avatarUrl
- ChatTeamSidebar.tsx: renderTeamRow checks team.avatarUrl first
- InstalledStore.tsx: resolve relative icon paths to API URLs

minor
@jsyqrt
jsyqrt merged commit 61c571a into main Aug 10, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant