# 变更记录 本文件记录 dsh-iris 的用户可见变化。 ## [Unreleased] ## [0.2.7] - 2026-10-22 0.2.7 修复宿主截图集成,并提供宿主无关的图片流程、本地 API 与显式 Core Skill 安装器。DSH 沿用 12 个准确版本;独立 Web 仍是面向 0.3.0 的源码演示,尚未连接真实执行入口。英文发布说明附中文摘要,见 [0.2.7](docs/releases/0.2.7.md)。 - 增加显式 `skills install/status/uninstall`:从当前 npm 包复制 `iris-core` 到 Kimi 或自定义扫描目录,记录版本/摘要并保护本地修改;升级与卸载保留根外备份,状态只读,安装/卸载支持 `--dry-run`。不添加 npm 自动安装钩子,不改 DSH Skill 注册或模型/MCP 配置。见 [Skill 安装](docs/CORE_SKILLS.md#显式安装检查与卸载)。 - 增加宿主无关的 `iris-core` Skill:英文正文附中文标题,指导图片导入、生成、续作、任务查询与作品导出,通过现有 CLI 执行,配套参考随候选包分发。DSH 原有三项 Skill 与注册保持;不代表正式 MCP 或独立 UI 已接入。见 [Core Skill](docs/CORE_SKILLS.md)。 - DSH 的 Core 装配接入实例应用队列:工具、动作和工作台显式使用插件实例,连接解析引用、任务观察与启动接管归实例持有。卸载取消并等待在途操作和租约释放,失败保留现场;原根、数据格式、协议和计费规则保持,legacy 存储另行迁移。见 [DSH 实例运行时](docs/DSH_RUNTIME.md)。 - 增加显式本地创建 API:新空 Flow 根执行 `api init` 后,`api serve --allow-local-writes` 可上传静态图片和创建 Run;同 Key 使用持久意图/预留身份接回原结果,不重复创建。请求/业务提交共用一次 writer,补齐未完成引用与 writer 版本检查,成功作品显式删除后不自动复活。默认只读,未开放生成/取消接口,不迁移原根。见 [本地创建](docs/LOCAL_CREATION.md)。 - 增加显式 `api serve` 默认只读本地入口:固定回环监听、独立 Bearer 与 Host/Origin 边界,提供模型/流程白名单投影、受控图片及已选择作品下载。会话 Token 写入新建的根外私有文件,不进入 stdout 或 URL;GET/HEAD 不写 Core、不调用 Provider,执行/取消尚未开放。Demo 保留原样。见 [只读 API](docs/LOCAL_API.md)。 - 源码树保留面向 0.3.0 的独立 Web Demo,展示选图、状态、并排/叠图比较、选择与下载,运行详情默认折叠;界面与交互细节留到 0.3.0 阶段统一润色。当前仅使用内存演示和内置样图,不连接模型、不计费、不写 Core,也未接入只读 API;写操作契约仍待实现。见 [Demo 说明](docs/WEB_PROTOTYPE.md)和 [API 契约](docs/LOCAL_API_CONTRACT.md)。 - 增加显式 CLI 固定改图流程:专用数据根、私有输入、稳定步骤/Task 绑定、继续执行、比较、选择和导出;同步保护 Flow 引用,缓存原任务的完成结果并复用预留作品 ID。未知受理不重新生成,旧根不自动迁移,尚未接入真实 Web 执行入口。见 [图片流程](docs/IMAGE_FLOW.md)。 - 0.3 前置:增加实例级写队列与操作级取消/释放,CLI 图片生成、导入、比较、作品查询/导出和单项任务查询开始共用内部应用运行时;命令参数与既有 Task/Artifact 格式保持。 - 宿主 HTML 截图优先使用显式 `DSH_WEB_BASE`,否则从公开的监听 host/port/protocol 取得实际地址;兼容动态端口和通配监听地址。旧宿主没有可靠地址时仍回落到 3080 并在诊断中提示,公开媒体链接保持原基址约定。 - 宿主诊断区分浏览器接口存在与截图实测,新增主动“截图自检”、取消、错误说明及折叠预览;自检复用 HTML action 生成一张本地作品,不调用模型,默认诊断和刷新仍不打开浏览器。 - 修复 DSH HTML 截图与浏览器保存目录限制的冲突:显式请求 PNG 并接收返回的图片数据,经现有 Core 保存作品,不再要求浏览器写入 Iris 数据根。 - 修正浏览器调用的取消参数,补齐打开会话期间取消后的关闭与临时目录清理;导航、截图失败时保留原始错误。 - 宿主截图返回数据须为有效 PNG/base64,最多 64 MiB;实际尺寸沿用独立 Chromium 后端的单边 16384、4000 万像素上限。HTML 沙箱与资源限制保持。 ## [0.2.6] - 2026-10-19 0.2.6 的重点是减少重复配置,并让模型候选与当前连接保持一致:复用 DSH 连接、可选功能自动池、按需目录同步和能力检测。旧名单、空配置及任务恢复边界保持。升级后需重载 DSH 服务端并刷新页面,见 [发布说明](docs/releases/0.2.6.md)。 ### Added - DSH供应商连接引用:工作台可选择已有连接,地址和API Key在操作时由宿主解析,避免重复保存密钥;协议、模型用途及功能策略仍需明确确认。支持公开API Key凭据来源,缺少宿主接口、OAuth或自定义认证时说明限制。见 [连接复用](docs/DSH_PROVIDER_CONNECTIONS.md)。 - 六类功能可选择自动池、仅用所选模型或停用。自动池按稳定顺序使用已确认用途的合格模型,明确未受理时安全切换;显式指定只调用该项,未增加跨请求轮转。旧名单与缺失/空分配保持原行为。见 [功能模型池](docs/FUNCTION_MODEL_POOLS.md)。 - 首次配置可在确认模型用途时同时启用所选功能的自动池,免去二次分配;工作台展示候选数和配置缺口。后续发现条目待确认,不静默扩池;配置与候选预览不发起生成。 - 功能池切换采用页面内确认与逐项保存反馈;慢响应时防止重复提交,保存结果不明时可只读核对。识别尚未加载新策略的服务端并暂停切换,避免旧接口返回成功却未启用自动池。 - 工作台新增“能力状态与检测”:六项能力卡、中文检测直达入口、只读配置检查与单模型实测详情;页面内确认、逐项进度、防重复提交和未知结果提示。视频、音乐、转写引导到真实任务,适配深浅主题及手机布局。见 [能力健康](docs/PROVIDER_HEALTH.md)。 - 工作台统一分区卡片、标题、按钮及表单样式,收紧卡片留白和控件间距,保留手机点击尺寸。能力检测默认折叠保留摘要,功能池、创作工具、偏好、诊断和历史默认收起,入口显示“展开/收起”。检测跳转自动展开目标分区,折叠期间保留正在执行的请求和结果。 - 模型目录采用完整快照,自动请求前按需刷新、成功缓存 10 分钟,失败保留旧目录。工作台新增默认折叠的同步摘要与变更信息;新增模型仍需确认用途,不删除旧模型。见 [目录与候选规则](docs/FUNCTION_MODEL_POOLS.md#目录更新与候选可用性)。 ### Fixed - 工作台折叠提示改为只渲染当前状态的一条文案,关闭显示“展开”、打开显示“收起”;重新加载客户端时原位更新旧样式,修复旧样式残留导致两个提示同时显示的问题。 - TTS 不再把已知实时语音及尚未接入的语音系列当作普通 HTTP 模型检测或自动选用;缺少专用音色的复刻/设计模型跳过空样本检测,保留历史证据。`Model not exist` 提示具体模型、请求域名及地域/协议排查方向;不自动修改个人模型或重试。 - 当前连接明确返回模型不存在后,按模型与能力隔离后续候选,保留历史成功和手工配置,支持单项实测恢复。CLI、DSH 与 Agent 共用判断;目录发现不再把视频混合音频或音频理解误判为独立 TTS/转写能力。 ### Security - 媒体 Provider Adapter 在错误截断前移除本次已知 API Key,覆盖无厂商前缀的密钥及错误码回显,避免进入公开错误与任务记录。 - `sharp` 最低版本升至 `0.35.5` 并同步锁文件,处理预编译 librsvg 的高危公告 [GHSA-wq5f-xc86-pv6w](https://github.com/lovell/sharp/security/advisories/GHSA-wq5f-xc86-pv6w)。自定义系统库的部署仍需单独检查。 ## [0.2.5] - 2026-10-16 ### Changed - 恢复当前功能在旧DSH上的支持:准确覆盖0.1.2-rc.1、0.1.5-rc.1/rc.2/rc.3、0.1.7-rc.1/rc.2、0.2.0-rc.1/rc.2及0.2.1-alpha.1/alpha.2/alpha.3/alpha.4;同步engines、可选客户端peers与Doctor。旧宿主共用当前Core、Music、图片导入和原生Qwen改图,Node最低仍为22。见 [兼容矩阵与验证范围](docs/DSH_COMPATIBILITY.md)。 ### Fixed - 默认视觉按宿主接口能力启用精确路由,修复旧SDK已有相同API却被版本号判断送入历史路径、可能返回空结果或忽略失败终态的问题。 ## [0.2.4] - 2026-10-15 ### Added - 图片持久导入:工作台“导入图片”、`iris_import_image`及CLI `artifact import`共用本地命令,保存最多20 MiB的静态PNG/JPEG/WebP,保留原字节与源文件。导入ID可继续看图、改图和导出,不调用模型。见 [图片导入](docs/IMAGE_IMPORT.md)。 - DashScope 原生 Qwen 改图:复用生图名单、Core 原图及来源关系,支持 Qwen edit/max/plus、2.0/pro 系列与日期快照;CLI、Agent和工作台均可使用,发送副本遵守账号/模型预算。模型在具体账号及地域是否可用仍以上游响应为准。见 [Artifact 改图](docs/CLI_MANAGEMENT.md#artifact-聊天改图)。 ### Changed - DSH支持范围扩为 `0.2.0-rc.2 || 0.2.1-alpha.4`,顶层engines、现有嵌套声明、五项可选客户端peer和Doctor使用相同范围。Node.js最低22.0.0,未新增生产依赖。见 [版本兼容](docs/DSH_COMPATIBILITY.md)。 - 六类媒体/视觉功能统一为严格有序分配名单;空名单不再自动使用模型池,临时指定也须已分配。升级后依赖自动选型的功能需要明确分配,已有名单及个人配置不自动改写。见 [功能模型分配](docs/FUNCTION_MODEL_ASSIGNMENTS.md)。 - DSH默认视觉改为可排序的显式资源,指定模型失败不再回退到宿主;手动实测与旧任务恢复仍独立于新请求分配。 - 工作台改为“清空分配”,生成与改图选择器只展示所属功能名单。 ## [0.2.3] - 2026-10-14 ### Added - 独立音乐生成,支持模型分配、Chat Completions 内嵌MP3/WAV、CLI/Agent工具/API和工作台试听下载;可配置有限502重试,重发保留独立任务关系。见 [音乐生成](docs/MUSIC.md)。 - 随包 `iris-use`,指导单步媒体操作、音乐、任务查询与作品交付;三项Skill共用能力和产物说明。 - 同步媒体结果的私有交付缓存。本地交付失败可沿原任务重新交付,不重新生成;完整字节可离线恢复,多产物中断复用已有作品。见 [同步交付恢复](docs/SYNC_DELIVERY_RECOVERY.md)。 ### Changed - 音乐协议选项采用通用名称“Chat Completions(内嵌音频)”,保留现有配置标识。 - 媒体编排按创作目标选择步骤,配乐保持可选;UI验收补充失败结论,移除固定调用次数限制。宿主诊断包含16工具与三项Skill。 - 用户文档补齐音乐配置、任务恢复与三项Skill,统一安装和升级说明;个人网关实验与审计记录保留在内部资料中。 ### Fixed - 提示词再次优化失败或取消时保留旧预览和手工编辑,成功迟到不覆盖等待期间的新编辑。单片段忠实整理无需模型调用,预览可查看实际指令。 - 改写使用正文交付协议,拒绝可识别的新增JSON外壳、外层围栏或整体序列化字符串,保留原稿中的合法格式。 - 显示文本模型选择原因;无效显式路由、元数据查询失败或明确缺少文本输入能力在生成前拒绝。 - 配置异常与被忽略的字段给出明确反馈。“仅恢复默认指令”保留模型、生成参数和入口开关;恢复全部设置说明完整范围,读取异常时保护原文件。见 [提示词优化](docs/PROMPT_OPTIMIZER.md)。 ### Security - 交付缓存仅保存在私有数据根,签名URL和媒体正文不进入公开Task/Artifact响应或普通日志;缓存随显式任务隔离和恢复管理。 ## [0.2.2] - 2026-10-11 0.2.2 的重点是**可控提示词编辑与媒体运行可靠性**:一般功能支持忠实整理、明确改写和独立建议,Core 保留中断恢复证据,生图错误区分本地未受理与网络/正文故障。功能候选来自明确配置或可信能力元数据。Node.js ≥ 22.0.0、DSH `0.2.0-rc.2`、配置版本和生产依赖保持;详见 [0.2.2 发布说明](docs/releases/0.2.2.md)。 ### Changed - 功能候选池只采用明确模型标签、旧能力字段绑定或供应商返回的能力元数据;移除裸 DashScope 账号全能力和默认模型目录兜底,模型名称不再自动赋能。已有明确配置(含空标签)优先,分配顺序、安全 failover、复合模型身份和已受理任务绑定保持。 - 工作台与 CLI 发现保留未标注模型供手动设置,省略能力的手动添加保持未标注;工作台新增“设置功能”入口,将模型明确加入画图、视频、语音、转写或视觉功能池。未来未知能力不会被名称或通用模态推断误归入已有功能。 - Core writer 创建前原子发布 owner 意图,释放时整体退役目录,显式恢复保留可续办的记录链与原始审计证据;强杀中断不再让新租约丢失 PID。普通 writer 不自动抢占,活跃/未知/损坏或旧无 owner 的现场仍拒绝,CLI 参数与业务存储版本保持。 - 视频、音频及文本交付复用 Artifact 文件接收和分块哈希,减少 staging 到落库的整文件内存读入;本地复制失败继续保留远端成功,重交付不重新生成。 - 提示词优化系统的一般功能使用可折叠卡片,提供通用、画图、改图、视频与数字人用途、草稿预览和指令查看;默认 Prompt 按 Skills 的目标/输入/约束/输出组织。新增 `image-edit` 目标,修正 S2V 内置模板误写为首尾帧的语义;旧自定义 v1 配置保留,新目标只在内存补缺,特殊功能后续安排。 - 真实文本模型补测后强化原稿细节/否定条件保留及“只编辑、不执行”的指令;拒绝原稿和明确规则未授权的新链接、媒体 data URL 或 Markdown 媒体输出,不再作为成功预览,原文保留且不自动重试。已有合法引用、含网址的文字指令与原样组装保持。 - 一般功能默认“忠实整理”:原文片段完整、固定顺序分组,由程序拼回;明确选择“改写表达”才执行改写规则。补充建议与待确认项单独获取,默认不进入正文,支持逐条选择、采纳及撤回;手动编辑与迟到/取消保护保持。补齐正文混入媒体链接的拒绝,保留已有合法引用;旧 API 文字协议与 v1 配置兼容,模型路由不变。 ### Fixed - 生图尺寸按当前协议归一分隔符;DashScope 多模态按已确认的总像素范围校验,合法长边尺寸不再被单边上限误拒绝。本地尺寸错误明确为未受理,避免未发 HTTP 却提示受理未知。 - 生图请求和响应正文读取的网络异常保留阶段与可用的底层错误码,区分 DNS、TLS、连接/响应超时和正文中断;原生取消/超时保持原异常类型,HTTP 鉴权/参数/额度保持各自分类,DSH 即时错误显示脱敏原因。受理未知仍禁止自动重提,不凭连接报错推断长连接或擅自建议切换模型。 - 租约强杀和文件交付回归采用对应平台的退出结果与路径分隔符,避免 POSIX 假设导致 Windows CI 误判。 - 修正租约中断夹具以未规范化路径匹配 Runtime 真实路径的问题,覆盖根目录别名并统一 owner 文件名判定,避免 Windows 短路径/分隔符导致断点漏触发。 ## [0.2.1] - 2026-10-09 0.2.1 的更新重点是 **完成 OpenAI 兼容图片与视觉工作流**:生成图片 → Core Artifact → 按 ID 看图/OCR → 聊天改图 → 新 Artifact,CLI 与 DSH 工作台共用同一链路。模型发现与能力分类、模型级图片协议、视觉输入和作品管理共同支持这套流程。要求仍为 Node.js ≥ 22.0.0,DSH 插件仅支持 `0.2.0-rc.2`;包名、配置版本和生产依赖保持不变。完整范围见 [0.2.1 发布说明](docs/releases/0.2.1.md)。 ### Added - 生图模型可独立设置 `imageProtocol`,分别选择 DashScope、OpenAI Images、聊天生图或 Responses 生图;省略或 `auto` 时继承账号默认。同账号的模型可使用不同接口,生成、实测和恢复按实际协议绑定,不扫描接口或自动探测。 - 聊天生图兼容非流式 Chat Completions 图片消息;Responses 支持同步单图、已完成的 `image_generation_call` 及网关图片消息。生成结果按真实字节保存为 PNG/JPEG/WebP Core Artifact,MIME、后缀和内容哈希一致。纯文字 200、缺图或未完成响应不会宣称成功或自动重提。 - Artifact ID 聊天改图:DSH `iris_edit_image`、Core 图片卡“改图”与 CLI `run image` 的 `source_artifact_id` 共用 `openai-chat-images`。修改版另存为新 Artifact,记录 `derived-from` 及来源引用,原图保留;编辑池只选择聊天生图模型。详见 [Artifact 聊天改图](docs/CLI_MANAGEMENT.md#artifact-聊天改图)。 - 独立视觉 CLI:`vision look / locate / ocr / summarize`,支持严格显式模型选择、JSON/文本、结果文件和摘要拼图输出;DSH 与 CLI 复用共享视觉业务。纯视觉不创建 Task/Artifact,主动音轨转写使用 Core。 - 看图、定位和 OCR 支持 `artifact_id`;视频摘要支持 `frame_artifact_ids`。只读核验 Core 原字节、MIME 和哈希,不要求原文件或临时导出;已有视频帧无需再次抽帧或 ffmpeg。 - 账号与模型可配置 `visionInput.maxBytes/maxDimension`,模型逐字段覆盖账号,默认发送预算 8 MiB。工作台和 CLI `models vision-input` 可设置或恢复继承;看图、OCR 分块、定位和聊天改图按实际候选准备发送副本,Core 原图、下载与哈希不变。 - 工作台统一 Core/旧版图片、视频、音频和文本,每页 24 项,支持媒体、来源和产物类型过滤、真实匹配计数。Core 图片卡直接看图/OCR/改图,识别结果可取消、复制和下载,并明确 OCR 部分完成。 - 作品详情、显式跨页选择、ID 复制与混合来源 ZIP 下载,单次最多 200 项、下载上限 128 MiB。Core 删除先预览,再确认移入可恢复回收区;恢复不覆盖冲突文件。详见 [工作台作品管理](docs/WORKBENCH_ARTIFACTS.md)。 - CLI 补齐 S2V 数字人视频、HTML 截图、账号/模型/能力分配管理、模型发现与显式实测、有界 `task wait`、分页过滤、批量查询/导出,以及 JSON 文件和 stdin 输入。 - CLI `core delete/cleanup/transactions/restore` 提供默认预览、引用和活跃任务保护、明确选择后的隔离、哈希核对恢复及失败补偿;不提供永久 purge。 - 对话泡泡增加本次改写规则、原样前缀/后缀、“只组装”、可编辑结果和原文/改动对照。规则按次传入,v1 配置保持不变;未扩展后续独立提示词优化系统。 ### Changed - 提示词优化、单图看图/重看、OCR、定位、视频拼图摘要及生成后自述迁入共享 Text/Vision Model Ports。准备与候选共用整体预算,严格检查正常终态;取消、超时、截断或协议错误停止后续生成,超长正文明确失败。 - OCR 整次操作最多 32 块、64 次生成、120 秒;先按转正后的长图切片,再按候选预算处理每块,记录实际发送尺寸与字节数,缩小时提示细字风险,区分完成、部分完成和失败。 - 定位显式要求模型返回 0–1000 归一化坐标,依据实际发送尺寸和 EXIF 方向换算回原图像素,向外取整供裁剪;接受经核验的 DSH 附件规范化,不猜测返回坐标域。 - 模型路由区分短时限流和明确耗尽。短时 429 按 `Retry-After`(默认 60 秒)冷却,以琥珀色显示;到期只恢复候选资格,不自动验证。明确免费额度或预算耗尽以红色持续停用至手动实测成功,重启后仍跳过。DSH、CLI、OCR 共用账号 × 模型规则。 - S2V 首帧与音频迁入共享 Core Attempt 上传链,各候选使用自己的账号;HTML 截图经独立 Chromium Browser Port 或 DSH 宿主保存 Core PNG。配置写入使用私有备份、原子替换和竞争写保护。 - 修改模型图片协议只使对应生图验证失效,不解除限流或耗尽停用;发现保留手工能力、协议覆盖和输入预算。原图引用参与 Core 删除与清理保护。 ### Fixed - 修复 4K 生图响应的 base64 校验触发调用栈溢出,保留原字节交付与字符、padding 校验。 - 修复视觉探针图片过小造成的能力误判,改用 128×128 红色 PNG。 - 修复 OCR 显式 `overlap: 0` 被入口默认值覆盖,以及失败块导致后续原段号丢失。 - 修复视频摘要时间戳标签未绘制、十帧以上按文件名字典序排列造成的时序错乱;交付与模型输入使用同一张拼图。 - 保护提示词写回时的新草稿、忙碌状态和结构化引用,旧请求迟到结果不覆盖新操作;不支持的显式 reasoning effort 在生成前拒绝。 - 修正跨平台 CLI 测试的文件 URL、路径、权限与信号断言;缺少可选 ffmpeg/ffprobe 时只跳过相应视频段。 ### 已知限制 - 浏览器/移动端完整作品管理,以及真实异步任务重启后的 CLI 接管尚未完成验收;已有本地测试和 rc.2 服务隔离检查不替代这些验证。 - Responses 当前仅同步单图;聊天改图不支持 mask、多参考图或连续编辑历史。独立 Images 编辑与原生 Gemini/Fal 协议未在本版接入。 ### 后续方向 - 继续适配其他协议,并规划 Music 音乐生成功能;均属于后续工作,不纳入 0.2.1。详见 [路线图](docs/ROADMAP.md#后续功能方向)。 ## [0.2.0] - 2026-10-01 Iris 0.2.0 要求 Node.js ≥ 22.0.0,DSH 插件仅支持 `0.2.0-rc.2`;旧宿主继续固定安装 `@mokuyoaxis/dsh-iris@0.1.4`。包名与仓库名保留,第二个真实 Host Adapter 完成后再更名。 ### Added - 增加中英文 [Agent 简要 Prompt](docs/AGENT_QUICKSTART.md),按宿主版本选择固定 npm 0.2.0 或 0.1.4,并明确 CLI、profile 与任务观察的使用边界。 - 增加 [Text/Vision Model Port v0 内部契约](docs/MODEL_PORT_CONTRACT.md),约定共享输入、完整终态、取消/预算、安全错误与逐项迁移门禁;真实 DSH/CLI 消费者尚未切换。 - 实现 Text/Vision M1 纯契约与调用控制,包含单次/整体预算、显式候选策略、取消与晚到结果处理,并补 test-only Fake Port 和共用离线 conformance;真实适配器、提示词优化及视觉消费者尚未接入,未新增公开 export。 - 增加像素块几何母题的 IRIS 标志与图形标(彩色/单色/反白共 6 个 SVG),由 `scripts/gen-logo.mjs` 从设计矩阵可复现生成,含最小尺寸、留白与配色规范(`docs/assets/logo/`);初始泡泡采用同源内联像素图形标,后续曲线替换见下方 Changed;0.1.x 渐变临时字标不再使用,源码文件暂留作历史兼容。 - 增加 Core 任务的注意力处置(Host 偏好式,与 legacy 体验对齐):工作台 attention 行(失败/取回失败/受理未知)提供「不再提醒」与「移除」,已受理行提供「恢复提醒」,高级诊断保留完整记录并标注处置状态、可「恢复显示」。处置存于 `$DSH_HOME/iris/v1/core-attention.json`(0600、原子写、损坏降级为无偏好),**零 Core 写入**——任务与产物记录绝不删除。重试成功自动静默:若某 attention 任务存在 `retriedFrom` 指向它的后继且后者已成功交付,则旧任务从任务区自动静默(纯事实派生,刷新不回归;后继后续失败则静默随之撤销)。CLI 无提醒概念,不受影响。 - 发布 Headless CLI:无需加载 DSH 即可执行本地裁剪、图片 diff、视频抽帧及图片/视频/语音/转写任务,并跨进程观察任务、检查和导出 Artifact。 - Headless CLI 增加只读的 `providers list`、`capabilities list` 与显式数据根 Core Doctor;异常退出后可经 Doctor 核对并回显陈旧 owner PID,使用 `runtime recover` 写私有审计后释放租约。活跃或证据不完整时拒绝恢复,不自动解锁。 - 增加实例化 Core Runtime,提供显式数据根、单写者租约、reader、取消和有序释放。 ### Changed - 0.2.0 的 Node.js 最低要求统一为 22.0.0,npm 元数据、Doctor、README、用户指南与 CI 同步。Node 22 已包含上游退出阶段 FinalizationRegistry 无限循环修复(nodejs/node#51290);补充确定性退出回归及最低版本重复退出验证,移除临时 GDB 取证步骤。已发布 0.1.4 的历史要求不变。 - 0.2.0 的 DSH engines、五项可选客户端 peers 和 Host Doctor 收敛到准确的 `0.2.0-rc.2`,不再声明旧 DSH 支持;已发布 Iris 0.1.4 的历史范围不变,README 和用户指南补充 `@mokuyoaxis/dsh-iris@0.1.4` 固定安装与 npm tarball 下载方式。 - 悬浮泡泡以曲线鸢尾花 SVG 替换像素块剪影,采用紫色花瓣、金色花心与青绿叶片;提供透明矢量源和按钮概念预览,保留现有健康状态与交互。 - 适配 DSH `0.2.0-rc.2`,通过真实安装服务隔离验收;未推定其他 0.2 版本兼容,已发布 npm 0.1.4 包不包含这些后续修改。验证范围见 [rc.2 适配说明](docs/DSH_RC2_ADAPTATION.md)。 - CLI、DSH 与知情重试共用四类生成的参数规范化:文本修剪、图片数量、视频时长及 size/voice 长度使用同一规则,非法参数在提交前拒绝。DSH 的 diff/抽帧工具和工作台动作消费已有 Core Command,结果保存为 Artifact 并可经 CLI 导出;宿主继续负责附件展示。 - 协议工厂改用内部注册表;媒体协议与视觉类型分别处理。导入和重载保留用户显式配置,未知协议在联网前返回稳定错误;未知端点的自动 OpenAI Images 兼容回退带 `protocolInferred` 标记,并在供应商管理区提示确认。 - CLI 与 DSH 共用配置模型解析,均接受裸模型名与供应商复合引用;运行时不再注入厂商默认模型。旧裸账号的兼容目录改为在配置写入时物化,CLI 读取不迁移配置;显式空模型池仍保持为空。 - 模型发现改为合并更新:手工项优先、保留远端未再返回的旧项、按 ID 去重,编辑已有模型也会标记为手工配置。 - CLI 与 DSH 的供应商可用性及旧分配对象解析共用规则:未声明 `enabled` 时默认启用,缺少端点或必要凭据时不进入候选链;旧 `{providerId, id}` 分配格式在两入口一致生效。 - 临时文件上传统一经过 Provider Adapter 的可选 `prepareInput` 能力;DashScope 由协议闭包持有凭据与端点,OpenAI Images 在上传前明确拒绝。上传错误统一脱敏为未受理分类,但 Core 转写的准备失败不伪造已落盘的 Task/Attempt。 - 精简 README、路线图和 Core/Host 契约,把版本施工记录留在 CHANGELOG 与验收文档。 - DSH 继续加载同一个 npm 插件入口;Core 与 Host Adapter 分离,不引入额外 daemon。 - 阿里云百炼支持独立 Workspace `mediaBaseUrl`、官方模型目录分页与能力元数据;模型池保持有序安全 failover,并保护用户手工能力覆盖。 ### Fixed - 修复 Model Port 使用超大合法 timeout 时,deadline 浮点舍入放大剩余预算而导致端口误判为非法输入的问题;剩余预算不超过原始输入,并补确定性边界回归。 - 修复 DSH 会话附件扫描丢失字节数和尺寸导致真实 `readImage()` 完整性检查失败;rc.2 默认视觉候选明确绑定 Provider/模型并先确认图片能力;客户端支持主视图持有者和无参数快照通知,并随插件卸载释放会话订阅。 - 修复 Core 知情重试直接透传外部字段的问题:转写的 `audio_url` 和图生视频的 `img_data_url` 现在分别转换为 Adapter 所需字段,保留重新提供的音频地址与首帧;未知参数不会静默丢弃。 - 关闭 Runtime 时,已接纳的操作会先收到取消信号并完成收束,避免操作尚未建立上下文就被释放。 - Artifact 导出不覆盖已有文件,检查会拒绝缺失或大小不一致的对象。 - CLI 对可捕获的 SIGINT/SIGTERM 会中止在途请求并释放写者租约;`auth:'none'` 的媒体请求不再发送空的 Bearer 头或沿用旧 Key,缺省 bearer 配置仍要求 Key。 - 修复显式租约恢复在中途 I/O 失败时引用未定义状态变量的问题;失败仍返回稳定的恢复错误码,并尽力保留原租约与审计证据。 - 明确 0.2.0 的 Core 生命周期末端边界:DSH 工作台现有删除、清空与孤儿清理只作用于 legacy `outputs/`,DSH 与 Headless CLI 都不删除 Core Task/Artifact;Doctor 只报告孤立对象、未提交 Manifest 和未解析条目。Core 删除与清理继续列入 0.2.x,不建议手工改动 `core-v0`。 ### Security - 同一物理数据根只允许一个 writer;reader 不创建、修复或迁移数据。 - Headless Command 结果和错误不返回输入文件或数据根的绝对路径。 ## [0.1.4] - 2026-09-10 ### Added - 冻结 Host Adapter v0 的命名端口、能力快照、缺能力错误和 Command × Host Port 矩阵,并加入零网络纯契约测试。 - 深化两项随包 Skill:增加显式用户/模型调用策略、DSH `/name` 示例、渐进参考资料和 10 条零费用行为契约。 - 增加 test-only Local Host fixture:在无 DSH、无网络下运行确定性图片动作、Task 查询与提醒确认,并固定缺 Host Port 和未迁移动作的错误边界。 - 增加 DSH Host Adapter:集中探测并映射工具、路由、附件、会话、Browser、文本/视觉模型、Skill 和客户端 Slot 九类能力,区分能力缺失与接口不兼容。 - 增加 Provider Adapter v0 完整生命周期与零网络 conformance runner;DashScope/OpenAI Images 的发现、提交、轮询、下载和错误映射统一声明,未验证的取消能力显式标为 unsupported。 - 增加零网络 Host Doctor 与工作台诊断卡:从安全能力快照、成功注册账本和受限浏览器握手检查 DSH 版本、插件、14 个工具、2 项 Skill、4 组路由、可选 Host 能力及 4 个 UI Slot;不调用 Browser、模型或 Provider。 - 增加 Provider × Model × Capability 持久健康证据与四色 UI:灰色未配置、蓝色待验证、绿色 7 天内成功、暗红色明确认证/权限失败;真实任务与显式实测共用证据,记录脱敏来源和时间且不做后台探测。 - 增加独立作品库 v0:新产物自动入库,升级时接回已有 `outputs/`,支持分页浏览、重新索引和独立删除;清任务历史后工作台与泡泡仍能访问作品。 ### Changed - 将公开路线图切换到 0.1.4:聚焦 Host/Provider 适配边界、Host Doctor、现有两项 Skill 的 Agent 易用性深化与最小作品库;不在本版扩充 Provider、完整 Artifact Manifest 或 standalone 范围。 - 将动作、工作台 API、提示词优化、视觉后端和注册生命周期改为消费 Host Port;非空原始 DSH `ctx` 不能再作为 Command 输入。HTML Browser 渲染同时补齐 `AbortSignal` 取消与清理边界。 - 将图片、视频、转写、TTS、模型发现、能力实测、任务恢复和重新交付的供应商生命周期调用收口到 Provider Adapter;canonical `unknown` 与 `canceled` 分别保持未知事实和远端确认取消,禁止退化为普通失败。 - 健康状态按当前 failover 候选保守汇总:任一近期成功即绿色,有待验证路径即蓝色,只有全部候选明确认证失败才为暗红;429、网络、5xx、内容安全、取消和未知受理不覆盖近期成功。汇总时间只取决定当前颜色的候选证据;模型或能力移除会裁掉旧绿灯,空成功说明不再误写为失败文案。 - 收紧手机端泡泡面板的真实视口宽高与四边约束,补充 `pointercancel` 位置持久化,并加入实际执行工作台、进度条和泡泡组件树的运行级回归测试。 - 分离任务历史与作品生命周期:清历史只移除任务事实和 Prompt;删除单件作品、清空作品库与删除孤儿文件分别确认。作品最小索引不保存 Provider、Model 或任务关系。 - 将 DSH 支持窗口从单一 `>=0.1.2-rc.1 <0.1.3-0` 扩展为同时声明已实测的 `0.1.5-rc.1`;Host Doctor、README、用户指南、公开路线图与市场声明同步,其余预览版继续保持不宣称兼容。 ## [0.1.3] - 2026-09-08 ### Added - 新增公开的 Task/Attempt v2 语义契约,以及零网络纯函数真值表;冻结受理、自动 failover、观察、取消、产物交付、旧状态兼容和移动端用户状态的不可违反规则。 - 新增最小 Provider 提交契约、脱敏错误分类、写前持久化 Hook、零网络 Fake Provider 和旧任务纯规范化器;普通提交异常默认归为受理未知,只有明确 `not_accepted` 才能自动切换候选。 - 新增 Task v2 复制落盘与单调 revision 原语,并覆盖图片、视频、转写和 TTS:一次用户请求只创建一个 Task,每次候选在 HTTP 请求前写入 Attempt;视频和转写进一步区分上传与提交 stage。明确 4xx 拒绝才允许 failover,5xx、网络异常及缺失必要响应会以受理未知停止。 - 新增图片故障注入测试,覆盖 429 后异步/同步混合候选安全切换、500/网络失败/缺远端 ID 后零重复提交、API Key 不落任务文件、同步与异步生成成功后交付失败不重新生成、未知取消及提交中断恢复。 - 图片、视频、转写和 TTS Agent 工具开始读取 v2 事实轴:交付失败会明确表述为“生成成功但交付失败”,受理或结果未知会停止等待并要求人工确认。 - 新增 Task v2 运行时故障矩阵,覆盖盯守超时、连续轮询异常、远端明确失败、重启恢复、供应商缺失、交付中断、SSE 慢消费者和人工接管;全部使用本地 Fake/fixture,不发送计费请求。 - 新增无需安装或启动 DSH 的离线 `doctor()`、`dsh-iris doctor` CLI 与 `--json` 输出;检查运行时、依赖、私有存储、配置、模型、任务、临时文件和产物,使用稳定的 0/1/2 退出码。 - 新增公开架构、安全边界和故障注入矩阵文档。 ### Changed - 将 v0.1.3 聚焦为“防重复计费与事实可信”:离线 Doctor v0 与最薄 CLI 保留在本版,完整 Host Adapter、Provider conformance 和依赖 DSH 运行时的 Doctor 扩展顺延到 0.1.4。 - 工作台、泡泡和任务详情开始消费 v2 派生用户态:排队/运行仍属于活动任务,观察暂停、受理或结果未知、生成成功但交付失败进入独立“需要处理”分区;旧任务继续按原四态显示。 - 状态快照新增进程 epoch 与单调 revision,客户端拒绝迟到快照;SSE 对慢消费者只保留最新待发状态。 - 任务详情新增重新观察、重新交付与知情重试:前两者禁止新生成提交;知情重试必须确认可能重复计费,并用新旧 Task 关系保留审计线索。 - 待处理任务新增“标为已读/恢复提醒”;知情重试创建新任务后自动归档原提醒并展示关联,避免同一异常重复占用泡泡角标。只有明确的 Task v1 才显示“旧任务 · 只读”,热更新字段缺失不再误标新任务。 ## [0.1.2] - 2026-09-06 ### Changed - 提示词优化器不再默认继承主会话的 High/Low thinking 档位;新增 `generation.reasoningEffort` 策略,默认在模型元数据明确支持时关闭推理,并在面板显示思考策略与输出预算,降低推理 token 挤占正文和意外增费的风险。 - 提示词优化器按 DSH `modelSelection.current` 投影读取当前会话模型,避免界面已有选择时仍误回退为“DSH 默认模型”。 - 对外展示名使用 “Iris Media for DSH”,npm 包名继续保留为 `@mokuyoaxis/dsh-iris`,安装文档始终使用完整 scoped 名称。 ### Added - 新增独立于 Iris 工作台的 DSH 对话框提示词优化器:输入区只保留无边框、无文字的 🫧 入口,进入带背景模糊和柔和光影的半透明玻璃悬浮窗;窄屏自动切换为安全区自适应、可内部滚动的底部面板。支持通用、图片、视频和首尾帧视频目标,默认使用当前会话模型,先预览后写回且绝不自动发送。 - 新增独立的 `prompt-optimizer.json` 配置:面板可导入/导出 JSON、固定其他 DSH provider/model、一键恢复 Iris 默认 Prompt,并可单独关闭对话入口;入口关闭后工作台、Agent 工具和任务后台继续运行。 - 插件启用时通过 DSH Skill registry 自动注册随包的 `iris-verify-ui` 与 `iris-compose-media`;用户无需克隆本仓库或把会话工作目录切到 Iris。 - README 首屏新增一张可追溯到供应商、模型与提示词的真实 Iris 生成图片。 - 新增 Android 16 真机截图画廊,记录通用提示词优化、图片 Prompt 优化、写回、任务成功和实际产物;公开副本统一移除 EXIF/XMP/IPTC 元数据。中英文 README 直接展示三张关键截图,根目录 `screenshots.json` 为插件市场声明四张精选素材。 - README 新增三张示意图:插件架构总览、生成任务生命周期与受理边界,以及「看图 → 重绘 → 自检」组合工作流示例(附 SVG 与可编辑 drawio 源文件)。 - 新增英文版 `README.en.md` 并在两份 README 顶部互设语言切换链接;npm 包清单纳入英文版。 - 新增 `scripts/gen-diagrams.mjs`:README 三张示意图由单一脚本再生成,每次运行同步产出 PNG、SVG 与可编辑 drawio 源文件。 ### Fixed - 泡泡快捷任务不再混入失败、取消或无产物的旧记录,只显示当前运行任务与最近成功产物;完整历史和错误仍保留在 Iris 工作台。 - 常用区与 Iris 工作台的功能状态灯改为挂载后直接读取共享供应商状态:启用的 API 且具备相应能力时常驻绿色,不再要求逐张点开卡片;当前执行报错后立即变暗。 - Cordis 运行时行 ID 改为唯一的 `mokuyoaxis-dsh-iris`,避免与另一款 `dsh-iris` 插件同装时按短 ID 相互覆盖;文档说明手动 profile 覆盖的迁移方式。 ### Security - 随包 Skill 直接从已安装的 Iris 包读取,不扫描额外项目或用户目录,也不改变默认 filesystem Skill provider 配置。 ## [0.1.1] - 2026-09-05 ### Changed - 明确 ai-paint 是维护者未公开的本地前身而非用户依赖;插件默认启动不再读取其固定路径,仅在用户显式设置 `IRIS_IMPORT_WORKBENCH_CONFIG` 时由宿主本地一次性导入,已有供应商时跳过。 - `npm test` 使用 Node.js 调度器,移除 POSIX Shell 循环,保留逐文件进程隔离和失败即停。 - 对齐公开路线图与 `v0.1.0` 标签,区分当前 DSH 插件能力和未来宿主无关 Core/CLI/工作台。 - 工作台新增安全的媒体协议自动判断与显式选择;模型实测改为按能力触发,真实调用前确认,视频与转写不再提交空样本探针。 - 测试临时目录改用系统 API 并自动清理;`ffmpeg` 探测不再依赖 POSIX `which`。 - 增加 Linux/Windows × Node.js 20.10/22 CI 矩阵和发布前完整测试钩子。 - 新增标签驱动的 Release 工作流:推送 `vX.Y.Z` 标签即自动跑全量测试、校验标签与 package.json 版本一致、创建附 tarball 的 GitHub Release 并发布 npm(含 provenance;未配置 `NPM_TOKEN` 时仅跳过 npm 发布)。 - Node.js 最低版本调整为 20.10;20.9 无法解析当前图片依赖使用的 JSON import attributes。 ### Fixed - 修复 DSH 0.1.2+ Web 客户端按完整 npm 包名校验时,Iris 仍以旧短名注册而导致整个插件组合包加载失败的问题;同时将客户端依赖声明对齐新版的 Renderer/Session 服务。 - 旧配置为 `null` 或供应商凭据字段类型错误时,跳过无效内容而不使导入崩溃。 - 语法合法但根节点、供应商、模型、任务或分配结构错误的持久化文件现在会被隔离并安全重建,不再静默丢失后续更新。 - 大媒体下载改为流式原子落盘,避免把完整视频一次性载入内存,并清理失败的临时文件。 - Windows CI:Skill 测试先归一化 CRLF 再解析 frontmatter,并新增 `.gitattributes` 强制所有平台以 LF 检出(Windows runner 默认 `core.autocrlf=true` 曾致 `npm test` 失败)。 - Windows CI:`tests/pixels.mjs` 改用 `fileURLToPath` 解析模块路径;`URL.pathname` 在 Windows 上返回 `/D:/...`,拼出的非法临时目录路径使该测试进程直接崩溃。 - 上传接口竞态:写入流改为惰性创建、`.part` 清理等待 fd 关闭,空上传或提前失败的请求不再可能残留孤儿 `.part` 文件。 ### Security - DashScope 凭据在网络请求发出前绑定到阿里云官方 HTTPS 域名,阻止错误协议配置把 API Key 发给第三方端点。 - POSIX 上统一以 `0700` 目录和 `0600` 文件保存 Iris 配置、任务、上传及产物;启动时收紧既有 Iris 树且不跟随符号链接。 - `/iris/*` 默认只接受回环 Host;LAN/反向代理需显式配置 `IRIS_TRUSTED_HOSTS`,公开文档明确该列表不替代身份认证。 ## [0.1.0] - 2026-09-04 ### Added - 增加文生图、文生视频、图生视频和 S2V 数字人视频能力。 - 增加文本转语音和独立的音频转写能力。 - 增加看图问答、附件重看、长图 OCR、目标定位、图片裁剪和像素差异分析。 - 增加视频抽帧和多模态视频摘要;缺少 `ffmpeg` 时只影响相关工具。 - 增加 Iris 工作台及悬浮泡泡入口,可管理供应商、能力分配、文件输入和任务历史。 - 增加浏览器上传与会话附件选择,支持在不同文件系统之间传递输入文件。 - 增加异步任务跟踪、重启恢复、状态事件推送和带授权令牌的音视频播放。 - 为图生视频和 S2V 动作补充回归测试。 - 增加仓库级 `iris-verify-ui` 与 `iris-compose-media` Skills:前者执行可重复的 UI 视觉验收,后者编排多步骤媒体工作流。 - 增加面向安装、供应商、模型池、能力分配和文件输入的 `user_guide.md`。 ### Changed - npm 发布包改用 `@mokuyoaxis/dsh-iris`,避开已被其他项目占用的无 scope 包名;运行时插件 ID 和工具名保持不变。 - 模型引用升级为 `providerId::modelId`,避免不同供应商下的同名模型发生碰撞。 - 图像、视频、语音、转写和视觉能力分别配置,不再复用含义不同的能力槽位。 - 工作台和 Agent 的视频生成统一使用同一套动作实现和参数校验。 - 生成类故障转移只发生在上传、提交或同步生成失败时;远端受理后不再自动重提。 - 供应商更新采用字段级合并,未提交的字段会保留原值。 - npm 包显式包含 README、用户指南、变更记录和 `docs/`,Node.js 版本要求调整为 `>=20.9.0`。 ### Fixed - 修复新版 Qwen Image、Wan 2.6/2.7 和 Z-Image 被错误发送到旧文生图端点的问题,并兼容新版图片结果结构。 - 纯图像编辑模型不再被自动分配给文生图能力。 - 修复文件转写使用错误模型与请求字段、未下载 `transcription_url` 结果的问题。 - 修复局部更新供应商配置时覆盖已有配置的问题。 - 修复旧任务附件在索引裁剪或重启后无法正确查找的问题。 - 修复上传中断遗留临时文件、过期上传未及时回收和文件权限不一致的问题。 - 修复取消信号未完整传递到上传、生成等待和后台轮询的问题。 - 修复 SSE 测试依赖固定等待时间而偶发失败的问题。 - 修复工作台与 Agent 视频参数和返回结果不一致的问题。 ### Security - HTML 截图页面改为不具备同源权限的沙箱环境,页面脚本无法访问 Iris 或宿主 API。 - 上传采用流式限额、临时 `.part` 文件和原子落盘,失败时会清理未完成文件。 - 修改状态的路由拒绝明确的跨站请求,媒体文件继续使用随机能力令牌访问。 [Unreleased]: https://github.com/mokuyoaxis/dsh-iris/compare/v0.2.7...HEAD [0.2.7]: https://github.com/mokuyoaxis/dsh-iris/compare/v0.2.6...v0.2.7 [0.2.6]: https://github.com/mokuyoaxis/dsh-iris/compare/v0.2.5...v0.2.6 [0.2.5]: https://github.com/mokuyoaxis/dsh-iris/compare/v0.2.4...v0.2.5 [0.2.4]: https://github.com/mokuyoaxis/dsh-iris/compare/v0.2.3...v0.2.4 [0.2.3]: https://github.com/mokuyoaxis/dsh-iris/compare/v0.2.2...v0.2.3 [0.2.2]: https://github.com/mokuyoaxis/dsh-iris/compare/v0.2.1...v0.2.2 [0.2.1]: https://github.com/mokuyoaxis/dsh-iris/compare/v0.2.0...v0.2.1 [0.2.0]: https://github.com/mokuyoaxis/dsh-iris/compare/v0.1.4...v0.2.0 [0.1.4]: https://github.com/mokuyoaxis/dsh-iris/compare/v0.1.3...v0.1.4 [0.1.3]: https://github.com/mokuyoaxis/dsh-iris/compare/v0.1.2...v0.1.3 [0.1.2]: https://github.com/mokuyoaxis/dsh-iris/compare/v0.1.1...v0.1.2 [0.1.1]: https://github.com/mokuyoaxis/dsh-iris/compare/v0.1.0...v0.1.1 [0.1.0]: https://github.com/mokuyoaxis/dsh-iris/releases/tag/v0.1.0