# dsh-agent-teams-fish v0.4.0

**第二轮美术素材**：厂商命名空间 9 → 15、岗位桶 8 → 10，随包素材 123 → **280 个文件 / 约 28.6 MB**；同时新增「点击放大的高清族」，原先 512×512 的 PNG 立绘被 1024×1024 的 WebP 取代。

为了让客户端沿用原来的 `.png` 请求名也能命中随包的 `.webp`，宿主端给**包内**素材加了按扩展名探测（`findPackagedArtwork()`）——这是本版唯一的运行时行为变化，其余都是素材与词表。

## 素材

- **厂商 15 个**：`deepseek` `qwen` `glm` `kimi` `claude` `gemini` `grok` `gpt` `hunyuan` `minimax` `meta` `mistral` `rwkv` `seed` `ernie`。
  前 10 个有「厂商 × 岗位」全套图（岗位头像 + 高清 + 厂商通用图 + 立绘高清 + 队长图）；后 5 个只有厂商通用图与立绘高清，岗位请求沿 `member-<vendor>-v2.png` 兜底（降级链第 3 跳，不会 404）。
- **岗位 10 个**：`engineer` `qa` `security` `researcher` `designer` `docs` `data` `operator` `audio` `video`。
  `audio` / `video` 此前只在 0.1.27 登记、一直没有出图，本版补齐 10 个厂商。
- `assets/agent-teams/` 明细：**140 个 PNG（9.2 MB）+ 125 个 WebP（19.4 MB）+ 15 个 SVG** = 280 个文件 / 28.6 MB。
  含 15 张上游内置鲸鱼基线（队长 / 8 岗位 / 6 动作）与 265 张厂商素材。

**高清族为什么用 WebP**：同一个 1024×1024 画面，无损 PNG 约 0.9 MB，整套 110 张要 ~125 MB；质量 92 的 WebP 约十分之一，浏览器读的是同一个 `<img>` 槽位。列表小图仍是 256×256 PNG（体积小、解码快）。

## 本版改动

- **`ARTWORK_VENDORS` 9 → 15**（`src/artwork-source.ts`）：新增 `minimax` `meta` `mistral` `rwkv` `seed` `ernie`。
- **`ARTWORK_ROLES`**：`audio` / `video` 的注释从「已登记但美术尚未出图」改为「已有 10 个厂商的岗位图，其余沿 vendor 通用图兜底」。
- **新增 `findPackagedArtwork()`**：包内素材也像自定义目录那样按扩展名探测（`CUSTOM_EXTENSIONS` 顺序：`.png` → `.webp` → …），所以客户端请求 `member-qwen-qa-full-v2.png` 能命中随包的 `member-qwen-qa-full-v2.webp`。`resolveArtwork()` 不再直接 `readFile` + 写死扩展名。
- **`ArtworkFile` 成为统一接口**：原 `CustomArtwork` 保留为**类型别名**，自定义目录的调用点无需改动。
- **客户端厂商识别**（`src/client/artwork.ts`）：`VENDOR_ART` 追加 6 组正则 —— `minimax`（含 `abab`）、`meta`（含 `llama`）、`mistral`（含 `mixtral` / `codestral` / `devstral`）、`rwkv`、`seed`（含 `doubao` / `豆包` / `bytedance` / `volcengine`）、`ernie`（含 `wenxin` / `文心` / `baidu` / `qianfan` / `千帆`）。**一律追加在表尾**，既有 token 的命中优先级不变。
- **导入与门禁**：`scripts/import-vendor-artwork.mjs`、`scripts/verify.mjs` 与相关单测随新素材更新（整套完整性、尺寸、媒体类型）。
- **`NOTICE.md`**：更新素材清单（265 张 / 约 28.6 MB / 合计 280 个文件）与商标来源（`minimax` / `meta` / `mistralai` 取自 simple-icons，`rwkv` / `bytedance` / `wenxin` 取自 LobeHub icons）。

## 兼容

- 老的 `artworkDir` 自定义目录**不受影响**：只放 `.png` 依旧生效，扩展名探测顺序里 `.png` 仍在最前。
- 客户端请求的名字没变（仍是 `member-…-v2.png` / `team-lead-…-v2.png`），所以换素材不需要动面板代码。
- 不再随包分发 512×512 的 PNG 立绘；`-full` 请求由 1024×1024 WebP 应答（缺失时仍退化为列表小图，不会留空框）。

## 升级

```bash
pnpm update dsh-agent-teams-fish
```

装完重启 DSH。若撞上 pnpm 的供应链静置期（新发布 24h 内），升法见 [v0.3.1](v0.3.1.md) 里的说明 —— 重建 lock 后 `pnpm install --config.minimumReleaseAge=0`。