# dsh-agent-teams-fish v0.3.1

0.3.0 之后的**分发修复版**：厂商头像素材改为**随包分发**，跨机器不再依赖某台机器上的外部目录。

## 修的是什么

`artworkDir` 一直被当成「自定义目录」描述，厂商素材（9 厂商 × 8 岗位 + 厂商通用 + 立绘 + 队长 + 商标）实际只存在于**当初那台机器的绝对路径**下：

- npm 包只带 15 张内置鲸鱼图，`package.json` 的 `files` 里没有任何厂商图；
- 仓库里也没有它们（`git ls-files` 一条都没有）；
- profile 补丁里的 `artworkDir` 是**本机绝对路径**，换机器或换用户名即失效。

于是换一台机器后，宿主端候选链（`vendor+role → role → vendor → 随包素材`）在自定义目录里全部落空，界面回落成内置鲸鱼图 —— 看起来就是「厂商头像没生效」。

## 本版改动

- **108 张厂商素材进包**（`assets/agent-teams/`，约 8 MB）：72 张厂商 × 岗位图、9 张厂商通用图、9 张 512×512 立绘、9 张队长立绘、9 个商标 SVG；内置 15 张基线不变。
- **导入脚本**（`scripts/import-vendor-artwork.mjs`，`pnpm import:artwork --from <目录> [--apply]`）：包内目录**只认候选链里的名字**（带 `-v2`），脚本统一补后缀、跳过 `.md` 与 1×1 占位图、不覆盖内置队长基线。手工复制不带后缀会出现「文件在包里、请求却永远落空」。
- **门禁收紧**：`pnpm verify` 不再要求素材目录「恰好 15 个名字」，改为两条更严的断言 —— 内置 15 张必须仍在场、目录只接纳已知美术族；并逐条断言 9 厂商 × 8 岗位的**首选候选**必须随包、尺寸为 256×256（立绘 512×512）8-bit RGBA、商标 SVG 离线自洽。厂商素材缺失这类事故以前会被降级链掩盖（第二跳命中岗位通用图，门禁照样通过），现在会直接失败。
- **文档**：README / NOTICE 说明素材已随包及其版权边界；`artworkDir` 降级为可选的整套覆盖层。

## 安装

```bash
# 单独安装（聚合包依赖 ^0.3.0 已涵盖本版，无需改依赖范围）
dsh plugin --profile <profile> add dsh-agent-teams-fish

# 或安装自建聚合包，会一并带出本插件
dsh plugin --profile <profile> add @fish-under-sea/dsh-fish
```

装完**重启 DSH**（宿主插件代码不热重载）。0.3.1 之前配了 `artworkDir` 的机器可以直接删掉那一行 —— 留着也仍然优先。