# 0.9.17 · 2026-09-18

- 工商与简介新增 14 项一企一行字段：省市区及地区代码、四级国标行业、四级企查查行业、主营产品、企业规模；不改变默认选择。
- 兼容行业由文本改为对象的返回结构，保留旧文本且不推测缺失层级，避免输出对象字符串；主营产品按源顺序合并一格。
- 向导与工作台同步字段目录、别名搜索、层级/规模说明及动态数量，保留原列回填和客户结果/任务报告分层。

# 0.9.16 · 2026-09-15

- UX-49：仅清洗入口新建的独立 Session，通过 Host 原生草稿接口预填一次；空草稿、附件/引用、输入就绪、IME、草稿版本与晚到竞态二次核验，不自动发送、建业务任务或展开工作台。
- 用户编辑/主动清空、旧会话、刷新、重挂载和切回不补回、不清理草稿；保留 UX-48 接纳后开台与 settling→hero 品牌修复。
- 初始引导采用稳定模板 ID/版本和精确文本指纹；向导排除未改模板，修改后的内容不整体忽略，已有草稿提供替换/追加/取消，异步回填前重新核验。
- 未补占位符或缺名单/待补字段，在清洗业务 Skill 中优先澄清，不调 OAuth/OCR/MCP 或创建 workflow；不拦截 DSH 全局发送。

# 0.9.15 · 2026-09-14

- 保留 0.9.14 的 Host 驱动单向工作流、导航保护、导入核验和紧凑状态区功能。
- 修正发布测试的时区依赖，按运行环境验证界面本地时间，不再假定 CI 使用中国时区。
- UI 回归使用与生产一致的 UUID commandId，并覆盖提交接纳去重、手动收起、任务历史重开和结果下载。
- UTC 下 290 项自动化测试、10 组 Chromium 布局矩阵和 3 组制品预览回归通过。

# 0.9.14 · 2026-09-14

- 由 Host `flow` 投影统一五步业务流程状态，Client 仅维护当前查看节点；刷新、后台推进和单次高层执行跨阶段时保持一致。
- 未来节点保留可点击的锁定反馈，历史节点可查看但不挂载业务写操作；当前版本不引入回退 Tool、任务版本或新的事件系统。
- 导入后保留完整名单核验，并在表格底部确认进入规则与体检；紧凑状态区补充来源、时间、任务范围和明确的结果计数。
- 保留 0.9.13 的提交接纳边界：草稿或失败发送不展开工作台，后台会话不抢焦点，手动收起不被轮询撤销。
- 290 项自动化测试通过；旧 Session 迁移不在本版本验收范围，升级后请新建清洗会话验证。

# 0.9.13 · 2026-09-14

- 实际提交被 Host 接纳后自动展开所属会话工作台，草稿回填及失败发送不展开。
- 同会话任务凭证及接纳回调去重，手动收起后不被轮询再次拉开；后台会话不抢占当前界面。
- 保留 0.9.12 统一首页及品牌隔离修复。

# 0.9.12 · 2026-09-14

- Remove home subtitle and its spacing, retain native controls.
- Keep launcher naming stable and prevent duplicate launches.
- Preserve other agents’ branding and surfaces; clarify recorded progress and synchronization failures.
- Adopt DSH-UX-001 v1.5.4; 277 checks and 10 isolated browser scenarios pass.

# Changelog

本文件记录 `dsh-data-cleaning-agent` 的版本变更。格式遵循 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/)，版本号遵循 [SemVer](https://semver.org/lang/zh-CN/)。

## [Unreleased]

## [0.9.11] - 2026-09-13

- 修正真实 Host 首页判断：Session 并不提供 composerPhase；改为观察当前清洗会话 DOM 的真实 data-phase，确保标题替换实际启用。
- 回归夹具移除虚构 composerPhase 字段，覆盖 settling/hero/active、普通会话隔离与卸载恢复。

## [0.9.10] - 2026-09-13

- 修复首页先挂载于 settling 阶段导致 Logo 与标题替换被跳过的问题；监听宿主阶段及文本节点变化，显示“数据清洗补全智能体”。
- 兼容“探索未知之境”文案，保留 0.9.9 同级标题分支适配；不再降级到 document.body 全局改写。
- 新增延迟 Hero 挂载、标题刷新和离开会话恢复回归；真实 DSH 页面仍需登录后验收。

## [0.9.9] - 2026-09-13

- 原生首页标题桥接适配新版 Host 的 composer sibling slot；菜单进入数据清洗补全后稳定显示“数据清洗补全智能体”，不再回退为“探索未至之境”。
- 保持桥接可逆并补充第三方插件共存回归，避免误改其它业务智能体的标题、提示区或输入框。

## [0.9.8] - 2026-09-13

- DC-SCOPE-P0：持久保存任务来源 Session/Workspace 与安全展示名称；v2 旧记录采用附加字段兼容读取，不猜测来源、不批量改写历史。
- Profile 历史改为独立只读详情；打开来源会话按宿主能力降级，不覆盖当前任务、规则、名单或命令。保留客户 XLSX 与次要任务报告分层。
- 当前绑定恢复、迟到刷新及 HTTP 写入/命令准备校验来源；跨会话请求拒绝，版本冲突仍由 Host revision 控制。
- 审计增加 Provider 六类状态区分；完成态迟到更新、A/B、旧记录、重启和来源导航补充回归。真实 DSH Web 未认证，真实宿主与 Provider 未验证。

## [0.9.7] - 2026-09-11

- 优化数据清洗补全工作台的区域间距、信息层级与明暗主题响应式布局，重构导入清单、字段映射、质量体检和主体匹配页面。
- 字段映射改为按维度分组的单选网格；搜索维度名称时展示该维度全部子字段，并保持既有选择与匹配规则。
- 导入成功后隐藏文件、图片和粘贴入口，完成态保留“重新导入”与下一步两个底部动作；替换失败时保留编辑区供重试。
- 扩充桌面、窄屏及明暗主题 UI 回归，发布前通过 269 项自动化测试与 10 组 Chromium 布局矩阵。

## [0.9.6] - 2026-09-11

- 任务结果报告降为统计卡片后的次要下载链接，不再与客户主结果并列展示文件卡片或预览按钮；窄侧栏自动换行。

## [0.9.5] - 2026-09-11

- 主结果 XLSX 仅保留客户原列和选定补全字段；执行状态、来源及诊断信息改为独立任务结果报告，状态中文化。
- 来源记录实际调用的企查查 MCP server / 工具；历史缺失来源明确标注，不推断补造。
- 新任务只生成 XLSX，下载区按文件将预览与明确的下载按钮相邻展示，异常清单仅在有异常时提供。

## [0.9.4] - 2026-09-10

- 文件预览采用 CSV 式单行表格，长文本不再撑高整行；独立双向滚动区域固定表头与序号列，下载保持完整原值。

## [0.9.3] - 2026-09-10

- 图片向导保留独立缩略图与来源元数据，识别前显示待识别而非表格零行。
- 明确发送授权后，图片高层工具沿用确认版本自动完成识别、体检、匹配、补全及新 XLSX 交付；不再要求第二次发送。歧义、超限及过期配置阻断企业查询，重复调用保持幂等。
- 文件预览优先复用当前会话的侧栏预览 Tab，下载及无侧栏浏览器回退保持独立。

## [0.9.2] - 2026-09-10

- Better Sidebar 改为可选 peer；缺失侧栏不阻断基础安装、原生会话和本地清洗/补全/画像工具。
- 基础预检与 `--workbench` 预检分离；已安装的已知不兼容组合仍明确阻断。
- 工作台缺失提示明确可用边界，保留草稿与任务，不创建私有抽屉。
- 隔离真实 Host 验证无侧栏工具执行、兼容侧栏 XLSX 闭环及已知不兼容阻断；真实计费 MCP、OCR 与四产品共存不在本次验收范围。

## [0.9.1] - 2026-09-10

- 新宿主 uiWorkspace 生命周期适配：新会话不再复用清洗空会话，普通草稿与菜单隔离。
- 修复纯本地清洗完成后结果下载被外部补全状态门禁阻断。
- 安装前只读组合预检，精确阻断已知双向不兼容；安装脚本须从完整包运行。
- 260 项检查通过；新组合真实隔离 XLSX 导入、映射、清洗、导出、预览与普通会话验证通过。真实 MCP/OCR 和四产品共存尚未验证。

## [0.9.0] - 2026-09-10

- 工作台迁移到 Better Sidebar Session 单例 Tab；移除自有固定抽屉、宽度拖拽、展开/关闭按钮和中央会话让位逻辑。
- 按 Session 隔离任务视图；关闭或折叠 Tab 不取消任务，五流程入口复用同一 Tab。
- 可选 Provider 生命周期探测，缺失时提示安装/升级，不回退到旧抽屉；需要 targetedOpen 和 stateSubscription。
- 完整 256 项测试及 10 组隔离 React/Chromium 回归通过；真实 DSH 四插件组合联调尚未完成，详见 docs/UI-V1.5.0-ADOPTION.md。

## [0.8.23] - 2026-09-09

- 工作台顶部仅保留产品标题和展开、关闭按钮，移除重复状态与技术标识。
- 完整任务状态保留在进度卡；约束标题收缩，避免窄屏时与按钮重叠。
- 246 项测试与 10 组深浅主题、不同视口布局回归通过。

## [0.8.22] - 2026-09-09

- 表格预览保留可读列宽、横向滚动和固定表头，避免多列挤压成竖排。
- 结果文件操作分行并留白，长文件名换行；失败计数单独展示，避免零补全被标绿。
- 失败行导出保留规范化错误码和工具名，不输出原始上游响应或凭据。
- 修复自动展开后关闭／切换会话时，排队中的尺寸回调重新写入布局留白的竞态。
- 延续 0.8.21 的实际 Host 文件地址和执行自动展开功能。

## [0.8.21] - 2026-09-09

- 从实际 Host 请求获取文件地址的协议和主机；修复本地 HTTP 链接被补成 HTTPS 的问题。
- 工具卡片支持同源完整文件地址，继续拒绝非同源链接。
- 已确认任务开始执行时自动展开工作台一次并跟随处理步骤；生成说明不触发，关闭后不反复弹出。
- 246 项测试及 10 组浏览器回归通过，无付费查询。

## [0.8.20] - 2026-09-09

- 普通无记录／未披露字段保留为无数据说明，尊重共享契约 reviewRequired=false，不再误计为待核验。
- 当前任务刷新同步任务历史，拒绝旧版本历史摘要覆盖新状态。
- 增加彩色主体处理进度条；结果计数未产生时显示统计中，避免 undefined。
- 当前任务和历史复用文件名、行数、创建时间生成的展示名；任务编号收纳至详情。
- 246 项测试与 10 组浏览器回归通过。旧任务结果不自动改写，不重复调用 QCC。

## [0.8.19] - 2026-09-09

- 受益人与主营业务收入增加待确认候选，明确首条限制及财务口径差异，不自动替换。
- 映射依次展示搜索、大类、可见字段列表；组合筛选保留已有映射。
- 区分去重主体处理数与输入行补全数，结果卡片和工作台提供原生预览入口。
- 零异常时不展示空异常清单；有待核验记录时保留下载。
- 245 项测试及 10 组浏览器布局回归通过；实际 DSH 宿主点击链路仍需升级后验收。

## [0.8.18] - 2026-09-09

- 新增受益所有人首条名称及首报告期营业总收入、利润总额、总资产，共 136 个字段；共享契约 0.2.0。
- 映射支持大类与关键词联合筛选，统一十一类排序，保留既有选择。
- 执行期间同步 Host 任务状态和已处理主体数，展示来源、条目数与补全字段数；状态徽标仅反映当前任务。
- 工具结果返回真实 XLSX 预览/下载入口，绑定 taskId；安全预览前 50 行，不修改源文件、不重复收费查询。

## [0.8.17] - 2026-09-08

### Fixed
- 提示词向导和工作台统一生成 Host 执行凭证；发送已确认范围后不再重复询问额度、源文件路径或写回确认。
- Host 在高层工具内完成工作流与新 XLSX/异常清单交付，不依赖对话模型编写脚本或页面持续轮询；原始文件不覆盖。
- 独立清洗会话切换、刷新可恢复业务归属；侧栏入口重开当前工作台，保存任务绑定以访问下载。持久化绑定仅包含会话 ID 与任务 ID。
- 版本冲突阻止旧说明再次查询，命令重放幂等；候选歧义仍需人工选择，部分失败提供下载并允许显式重试。
- 修复后台刷新覆盖任务历史导航，并覆盖 DSH root/session 分离实例的事件交接。

## [0.8.16] - 2026-09-08

### Changed
- 表格提示词向导展示完整解析清单与空白单元格数，并与右侧工作台统一原列映射、人工候选确认及补全范围。
- 映射用绿色（自动通过/已确认）、琥珀色（待人工确认）、红色（未匹配）和文字共同标识；已映射字段自动进入补全范围，额外字段选择默认折叠。
- 允许多个原列经确认映射同一非主体字段，只补空白、保留非空原值；企业名称、信用代码、注册号各保留唯一匹配主列。

### Fixed
- 修复 Host 草稿回传将新映射的补全范围重置为默认五字段的问题。
- 生成任务说明前检查前后端协议能力，旧 Host 配新页面时显示中文升级与安全重启指引；不伪造额度确认，不提前执行查询。

## [0.8.15] - 2026-09-08

- 改善搜索元数据、安装说明、能力边界与四产品互链；无运行时或依赖变更。

## [0.8.14] - 2026-09-07

### Changed
- 质量体检后可直接生成可编辑任务说明，移除手动连接检测、手动调用估算和草稿阶段额度勾选。
- Host 统一检查所选工具、去重主体及调用上界；中文草稿显示执行范围与账号提示。生成不查询，用户发送后才通过 Agent-owned 工具执行。
- 候选确认与失败重试保留显式继续查询确认；执行时重新校验工具与范围，保留幂等及原列补空保护。

## [0.8.13] - 2026-09-07

### Added
- 通过共享 `qcc-field-contracts` 接入实际控制人名称、直接持股比例、总持股比例、表决权比例；新增实控人别名搜索与原列补空。多名、分页和异常不自动选第一人，字段级原因随结果和异常清单导出。

## [0.8.12] - 2026-09-07

### Fixed
- 导入页以已解析数据集显示当前来源、文件名与行数，不再依赖可能重建的原生文件选择框。文件选择后自动解析；文本按钮仅处理新粘贴内容，避免成功上传后误报「请粘贴或上传数据」。
- 支持重新选择同一文件，失败替换保留现有数据；新粘贴内容需先解析或清空，避免带着未生效输入进入下一步。仅有历史摘要而无明细时明确要求重新导入。

## [0.8.11] - 2026-09-07

### Fixed
- 补全结果按已确认映射填入原列空白单元格，保留非空值和列顺序；工作台预览、CSV/XLSX 和异常清单一致，不再为已映射列追加「（补全）」副列。首次调用及候选续跑均保护原表英文键的非空值。
- 字段映射覆盖当前 128 个可补全字段的标准中文名、英文键和明确别名；移除未知首列强制映射企业名称的兜底。
- 参照 AI 填表的推荐确认方式，为多义表头提供推荐、折叠分组选择和搜索；重复目标需人工选列，保留已有选择及输出字段范围。
- CSV/XLSX 重复表头生成唯一列键，防止法定代表人等同名列相互覆盖。旧任务已丢失的原值需重新导入原文件恢复。

## [0.8.10] - 2026-09-07

### Changed
- 依据共享 DSH-UX-001 v1.3.0 / UX-39，为自有右侧工作台补充左侧连续拖拽分隔条、方向键和 Home/End 调宽、双击复位、拖动取消、手动宽度恢复；中央会话按实际面板宽度同步让位。
- 按宿主会话区域实际可用宽度约束上下限，空间不足时全屏降级；关闭、切换或卸载恢复自有布局变量并清理监听，不改变 Host 任务、QCC 调用或发送机制。

### Tests
- 补充实际拖拽、取消、展开转手动、键盘调宽、关闭重开、宿主区域尺寸变化及让位清理回归；发布前通过 214 项检查测试与 10 组隔离 Chromium UI 回归。

## [0.8.9] - 2026-09-07

### Changed
- 按共享 DSH-UX-001 v1.1.2 对齐招投标工作台的阶段菜单：单行五个等宽分栏、上图标下短标题、分隔线及选中蓝色底线；取消数字前缀和横向滚动布局。说明与状态仅保留在内容区和工作台头部。
- 窄屏缩小图标与字号，长标题在分栏内省略并保留完整可访问名称和悬停提示；阶段导航、质量体检子视图及 Host 工作流保持不变。

### Tests
- 增补五阶段图标/标题结构断言与隔离 Chromium 深浅色布局回归，覆盖 320px 窄屏、普通/展开工作台、长标题防溢出，以及切换阶段不修改 Host 任务。

## [0.8.8] - 2026-09-06

### Changed
- 按共享 DSH-UX-001 v1.1.0 企查查蓝方案调整自有界面，统一浅色/深色颜色令牌、紧凑分区、浅蓝表头和键盘焦点；不更改宿主原生输入框、模型及发送机制。
- 入口、首页、会话头和工作台采用统一数据库线性图标；首页 LOGO 与名称同排。会话级可恢复 Bridge 不注册全局单例品牌槽位，离开首页恢复宿主标题、图标和预览标识。
- 当前任务/任务历史使用下划线管理标签，五步流程为横向可滚动紧凑导航；快捷菜单仍在原生输入框外下方。
- 向导与工作台按维度展示字段勾选网格，支持中文字段/维度/工具名称搜索，搜索不会丢失已选字段。维度全选/清空作用于完整维度，不受搜索过滤影响；128 字段与 Host 工作流不变。

### Tests
- 增补数据库图标、字段过滤、全局槽位隔离与真实 React/Chromium 同排排版、深浅色按钮、字段选择保持、回填发送和宿主图标恢复检查。具体边界见 `docs/QCC-BLUE-UI-ACCEPTANCE.md`。

## [0.8.7] - 2026-09-06

### Changed
- 中央首页移除大型宣传/流程/最近任务卡片，保留简短业务说明；五个快捷菜单通过自有 Portal 挂在原生输入框外、正下方，不重排共享槽位。
- 工作台分为当前任务与任务历史；五步统一为导入与核验、规则与体检、主体匹配、字段补全、结果下载。质量报告归入规则阶段，缺少前置条件时显示指引而不启动调用。
- 提示词生成改为视口居中模态向导，窄屏全屏；正文独立滚动，标题和操作区固定。支持 Escape、Tab 焦点循环、回填后聚焦原生输入框，不自动发送。
- 任务历史的新建入口统一打开提示词向导；帮助说明折叠收纳于工作台。桌面工作台普通/展开模式为输入框让位，图片放大通过独立 Portal 保持可见。

### Tests
- 新增菜单 DOM 生命周期与流程前置条件回归；新增隔离真实 React/Chromium 布局脚本，覆盖深浅色及四种窗口尺寸，不调用 QCC。

## [0.8.6] - 2026-09-06

### Fixed
- 上传/OCR 核验页使用完整原始清单，每页 20 行可翻页，显示序号与全列；不再把前 5 行摘要当成核验视图。
- 匹配结果共用全量分页和中文字段展示，不再截断为前 8 行/列。
- 核验阶段支持全量 CSV 和原值 JSON 下载，不触发 QCC 调用；CSV 对公式及长编号作文本保护。明细未完整载入时禁用核验下载。
- OCR 完成后的引导明确真实核验路径、规则/体检/匹配步骤及自动回填，无需人工复制 dcq- 凭证，不将识别清单误报为匹配结果。

## [0.8.5] - 2026-09-06

### Fixed
- 清洗入口恢复使用 workspaceId 创建独立会话，修复仅 cwd 导致 DSH 首页缺少工作区、图片任务回填后发送按钮和模型控件持续禁用的问题。
- 增加可卸载的新会话兼容 Bridge：仅在清洗业务激活期间通过原生 create/open 创建普通会话，避免复用空白清洗会话；普通会话仍使用原生动作。
- 创建失败保留原会话和草稿，连续点击合并；等待期间切换其它智能体不被迟到的创建结果抢回页面。

### Tests
- 增加 DSH 原生 Hero 工作区禁用表达式回归、工作区关联和新会话生命周期测试；这些为代码/契约测试，不等于真实 QCC OCR 已通过。

## [0.8.4] - 2026-09-06

### Fixed
- 向导数据来源页在文本模式也接管图片粘贴，避免 Modlens 图片路径被当成企业名称；文本名单明确拒绝本地图片路径。
- 右侧上传允许 PNG/JPEG/WebP，并通过同会话事件桥转交图片向导；接收失败保留工作台并说明原因。
- 回填前检查原生输入机提交状态，回填后核对草稿；输入机未接收时保留向导并提示，不强制启用发送按钮。
- 移除通过全局捕获点击和按钮文案推测导航的逻辑，改为订阅真实会话选择，目标打开失败时保留清洗首页、工作台和草稿。
- 兼容无回调参数的 Store 通知；成功退出时只清理插件默认文案，保留用户自写草稿。
- 新清洗会话在准备和选择成功后才激活，避免提前撤销旧会话归属。

## [0.8.3] - 2026-09-06

### Fixed
- 「新会话」不再复用数据清洗入口的空白会话：入口从 `sessions.create({ workspaceId, sessionId })` 改为 `sessions.create({ cwd, sessionId })`，仅以工作区路径创建、不再挂进工作区 `sessionIds`，DSH「新会话」的空白会话复用因此跳过它，恢复默认 DSH 标准页；只有点击「数据清洗补全」才进入带标题的工作台初始页。

## [0.8.2] - 2026-09-06

### Fixed
- 单一会话所有权：入口改用 `sessions.create({ workspaceId, sessionId })` 显式创建带 `session-dsh-data-cleaning-agent-` 前缀的独立原生会话，不再复用空白会话（否则会与「招投标」「访前尽调」共享同一会话，导致标题与右侧工作台面板归属冲突）。
- 图片暂存与 OCR 连接检查解耦：尚未连接本地文档解析时仍显示缩略图，允许继续选规则、字段并生成完整说明；执行 OCR 时仍严格检查连接，不调用远端 URL 接口读取本地文件。
- 图片连接状态随轮询更新；15 分钟暂存期内补齐连接后可直接使用原图片任务。
- Composer 和向导图片粘贴同时兼容剪贴板 `files` 与 `items`，拖入共用相同取图逻辑。

## [0.8.1] - 2026-09-05

### Changed
- 图片企业名单识别切换为企查查智能文档解析：本地图片只通过官方 `qcc-document-mcp`
  `parse_document(file_path)` 提交，并仅在异步处理中按返回的 `task_id` 查询 `get_parse_result`。
- 提示词向导不再要求先发送 OCR 专用说明；用户可一次完成图片、匹配规则、清洗动作和补全字段选择，
  再向原生对话框回填一段完整、可读、可编辑的中文任务说明。
- 识别完成后名单直接进入同一 taskId 工作台人工核对，继续现有主体匹配、字段补全和导出流程。

### Security
- Host 仍以 0700 目录和 0600 文件临时保存图片，成功、失败、取消或 TTL 到期后删除；原图不进入
  `storageDomain`、任务元数据、模型上下文或导出制品。
- 远端 `qcc-document` 只接受公网 `file_url`，不能读取本机临时图片；仅连接远端服务时明确 fail closed，
  不自动上传图片、不暴露本地路径，也不回退到聊天模型视觉能力。
- 文档解析与后续企业补全均使用当前用户自己连接的企查查账号和额度；插件不读取、保存或分发凭据。

### Fixed
- 文本模型（包括不支持图片的 DeepSeek 模型）不再收到原生图片附件，避免在执行清洗任务前被模型能力门拒绝。
- 统一解析企查查文档任务状态、Markdown 结果与认证失败，支持处理中轮询、超时和安全错误提示。

## [0.8.0] - 2026-09-05

### Added
- 新增企业名单图片接入：数据清洗补全会话 Composer 可直接粘贴图片，提示词向导支持 PNG/JPEG/WebP 粘贴、拖入与选择。
- 图片使用 DSH 原生 draft attachment，向导显示 64px 缩略图、文件信息、移除操作和可点击放大的预览。
- Host 暂存完成后，回填识别说明前自动释放 Composer 图片附件，避免文本模型因不支持图片而拒绝执行。
- 新增 Agent-owned `data_cleaning_extract_image_companies` 高层工具与 `/data-cleaning/api/images/*` Host 指令/状态契约；运行时探测 `modlens_read_image` 并以 nested execution 识别企业名称和统一社会信用代码。
- 识别结果自动回传原四步向导供人工核对，然后进入既有 taskId 字段选择、主体匹配、QCC 补全和导出流程。

### Security
- 图片上限 8 MiB，按 PNG/JPEG/WebP 魔数验证；Host 临时目录为 0700、文件为 0600，成功、失败、取消或 TTL 到期后删除。
- 原图不进入 `storageDomain`、模型任务 KV 或导出制品；识别指令仅暴露随机 commandId，不包含 Host 文件路径。
- Provider 未安装时 fail closed；图片识别阶段不调用 QCC，后续匹配补全仍受客户自有 QCC 账号确认门保护。

## [0.7.0] - 2026-09-05

### Added
- 数据清洗补全字段目录从 30 项扩展到 128 项：第一批开放联系方式、上市信息、税务开票、进出口信用 40 字段；第二批开放企业自身与关联风险扫描 58 字段。
- 新增 6 个一企一行 Host 适配器、风险因子稳定透视与目录漂移审计；电话/邮箱/网址全集、海关资质、风险明细和关联方列表继续排除。
- UI 按 8 个来源工具展示字段；同工具多字段每企只调用一次，Host 按实际来源工具在调用前校验 300 次预算上限。

### Changed
- 所有新增字段贯通任务草稿、Agent-owned 命令、候选续跑、结果预览和中文 CSV/XLSX；缺失值保留空列，股票代码、税号、电话和银行账号保持文本。

## [0.6.3] - 2026-09-05

### Fixed
- 无表头、每行一家企业的粘贴名单改按「主体标识」逐行解析，不再把第一家企业误识为 CSV 表头。
- 已完成或已确认规则的任务再录入名单时自动创建新 taskId，避免新数据继承旧任务的锁定状态、默认字段或运行结果。
- 匹配补全预览的内部字段键改为中文表头，并改善窄工作台下的列宽和横向滚动。
- 缩小桌面端右侧工作台宽度，打开时让中央会话区留出同宽空间，并固定头部操作组、在窄屏隐藏次要状态，避免输入框被遮挡或关闭按钮被挤出可见区。

### Changed
- 首次主体匹配不再立即发送内部 JSON 命令；改为向中央对话框回填可阅读、可编辑的中文任务说明，关闭右栏后由用户显式发送才执行 Agent-owned QCC 高层工具。

## [0.6.2] - 2026-09-04

### Fixed
- 清洗补全结果 CSV/XLSX 的插件字段与状态字段统一导出为中文表头，并按任务字段选择保留空值列，
  不再因企查查未返回某一字段而从制品中静默丢列。
- 将任务选择的补全字段贯穿中央工作台、Agent-owned 命令、G5 Host Bridge、任务恢复与耐久制品；
  工商详情补充注册地址、行政区划、经营范围、行业、营业期限和企业规模映射，企业简介等画像字段按需
  调用 `get_company_profile`，且不把未声明层级的“企查查行业”猜测为一级/二级行业。

## [0.6.1] - 2026-09-04

### Fixed
- 修复 DSH Code Mode 下同源 Web 路由直接调用动态 QCC 工具会被 ToolRuntime 拒绝的问题：新增
  `data_cleaning_qcc_run` Agent-owned 高层工具，工作台仅在 Host 暂存明细并向原生会话发送不含企业
  名单的 commandId；真实 QCC 调用以父执行 token/Session 的 nested execution 运行。
- 当宿主不提供工具注册能力时 fail closed，并在 capabilities 中报告
  `agentCommandToolRegistered:false`，不会暂存或误执行付费任务。
- 历史任务恢复下载页改为读取 Host 持久化的匹配/补全摘要；进程重启后不再把已补全数和待核验数
  显示为“—”。

### Verified
- DSH `0.1.1-rc.2` 真实连接环境完成一次且仅一次主体检索：唯一精确匹配
  `企查查科技股份有限公司`（统一社会信用代码 `91320594088140947F`）；未查询工商详情、未重试。
- 同一公开主体通过工作台完整执行 Agent-owned 批次：实际 2 次 QCC 调用，1/1 精确补全，回填
  信用代码、法定代表人、注册资本、成立日期与登记状态；0 待核验、0 失败、无重试。
- 结果 CSV/XLSX 与异常清单 CSV/XLSX 四件套均生成成功，下载后 checksum 与 Host 元数据一致，
  XLSX 结构校验通过；重启 DSH Host 后任务、统计和四件套仍可从任务历史恢复。
- `npm run check` 通过，174/174 自动化测试全绿。

## [0.6.0] - 2026-09-04

### Added
- 启动 v2 五步工作流：上传数据、规则确认、数据匹配、清洗补全、下载数据；新增共享字段目录、
  映射锚点和可审计匹配状态契约。
- 新增 `dc_workflows_v2` Host 元数据存储与同源 `/data-cleaning/api/workflow/*` API，支持 taskId
  隔离、revision 并发保护、任务恢复及阶段推进。
- 上传/粘贴解析、数据预览、自动字段映射、任务目标、匹配规则与字段选择正式接入 taskId 工作流；
  规则确认后自动生成本地质量体检并推进匹配阶段。
- 提示词生成器升级为数据来源、匹配规则、清洗与补全、确认描述四步向导，并把解析数据和任务草稿
  通过会话事件桥安全传入同一 Host 任务。
- 增加中央七阶段业务首页、最近任务恢复、输入框下五能力入口，以及 taskId 驱动的右侧五步工作台。
- 新增 Host 耐久制品层：每个任务生成清洗补全结果与异常清单的 CSV/XLSX 四个文件，提供列表、生成、
  checksum 校验下载 API；XLSX 为可由 Excel/SheetJS 读取的真实工作簿。
- 新增 v2 升级/迁移/回滚说明和 T6～T9 双基线、视觉、恢复及发布准备验收文档。

### Changed
- Client 原始数据按 taskId 隔离，不再使用跨任务模块级共享 session；同一会话并发创建与写操作分别
  通过 coalescing 和串行队列避免重复任务及 revision 冲突。
- 当前基础企业匹配、补全、预览和 CSV 下载复用 G5 Host Bridge，并保留零调用估算、客户自带 QCC
  账号确认、幂等键与调用上限门。
- 下载页改为读取 Host 四类耐久制品；已经完成的历史任务无需恢复浏览器原始行即可跨 Host 重启下载。
- 本地确定性清洗可从规则确认/质量体检直接进入 `export_ready`，不会为零 QCC 调用强造匹配步骤。

### Fixed
- 修复中央业务首页条件调用组件导致真实 DSH 页面出现 React #310 的 Hooks 顺序问题。
- 修复提示词数据集与任务草稿事件并发时可能创建两个 Host taskId 的竞态。
- 修复规则按钮文案承诺“运行质量体检”但只切换页面的问题；现在规则确认后立即生成并持久化摘要。
- 修复 `partial` 任务在显式重试后无新候选时走入非法匹配状态的问题；现在可继续补全并回到
  `export_ready`。
- 修复从中央首页最近任务打开工作台时只传阶段、未携带 taskId，导致误创建新草稿的问题。

### Verified
- `npm test` 165/165 通过；DSH `0.1.1-rc.2` 隔离 Host 43182 实际渲染 T3～T5，并完成
  2 行 CSV 的上传、自动映射、规则确认与质量体检，任务达到 `diagnosed / match`。
- 最新 tarball 在 rc.2（43190）与 alpha.2（43191）均完成四类制品创建、真实 XLSX 反向解析和
  跨 Host 重启恢复；rc.2 完成浅色、深色和 820×900 窄屏视觉回归。未执行真实 QCC 调用。

### Security
- v2 Host KV 只保存任务元数据、数字汇总和制品引用，不持久化原始企业名单、候选详情、QCC 原始响应或凭据。
- 工作流契约和任务元数据 API 不执行 QCC 工具；真实补全继续受零调用估算、用户付费确认、幂等键和调用上限保护。
- 制品 ID 与路径严格校验，文件名去除控制字符，单制品限 32 MiB；下载前验证 SHA-256，运行制品目录
  已从 Git 和 npm 包排除。
- CSV 导出会中和以 `= + - @` 开头的外部文本，防止 Excel/LibreOffice 公式注入；XLSX Base64
  读取上限覆盖编码后的 4/3 体积膨胀，解码后仍执行 32 MiB 硬限制。

## [0.5.3] - 2026-09-03

> UI 二次对齐版本；不改变 Host/QCC 工具契约或计费安全门。

### Added
- 为插件创建的 blank 会话增加「数据清洗补全智能体」业务首页、产品说明、四阶段工作流与安全边界说明。
- 在原生输入框左上角增加提示词生成器：支持粘贴企业名/统一社会信用代码、解析 Excel/CSV/JSON、
  附加图片、选择清洗动作和补全维度，并将自然语言任务描述回填原生输入框供人工修改。
- 表格由本地同源解析端点处理，完整数据经 session→root 事件桥载入工作台；提示词仅带主体预览，
  避免把整表无边界写入模型上下文。

### Changed
- 侧栏菜单由「数据清洗」改为「数据清洗补全」，点击后先进入中央业务首页，不再自动拉开右侧工作台。
- 五个流程入口从输入框内部 `conversation.input.left` 迁到公开 `conversation.input.dock`，并仅移动
  本插件 cell 到输入框下方；普通 DSH 会话不显示业务首页、提示词按钮或流程入口。

### Compatibility
- DSH 没有公开 Hero headline 替换槽位；0.5.3 使用精确匹配中英文原生标题、卸载时恢复的隔离 DOM Bridge。
- 图片接入只在运行时探测到 `conversation.createDraftImages` 与 `input.shell().addImages` 后启用；
  不硬编码未验证的企查查智能文档解析工具名，任务描述只要求模型使用当前已连接且可用的能力。

## [0.5.2] - 2026-09-03

> DSH 原生 UI 对齐版本；不改变 QCC 工具范围、OAuth、计费确认或数据契约。

### Added
- 在 DSH 原生输入框工具行增加上传清洗、质量体检、匹配核验、字段补全和任务历史五个能力入口。
- 在原生会话头增加「清洗工作台」恢复入口，任务历史页复用 Host `/mvp/jobs` 状态。

### Changed
- 左栏入口采用与 MCP连接器一致的兼容方式：公开 `sidebar.footer.action` 仅托管生命周期和降级，
  实际按钮 Portal 到 `sidebar.workspaces` 前，显示在「新会话」与「工作区」之间。
- 点击左栏入口通过 DSH `workspaces` / `sessions` / `conversation` 服务打开中央原生会话并预填清洗提示词。
- 工作台由 980px 模态遮罩改为默认 510px 的非模态右侧面板；中央原生会话保持可见，移动端仍安全降级为全宽面板。

### Fixed
- 修复应用入口错误显示在侧栏底部、点击后只出现大尺寸右侧遮罩而没有中央原生对话的问题。
- 修复 DSH 禁止同一 store handle 跨 root/session scope 复用导致的运行时挂载错误；会话按钮通过同页事件桥接根工作台状态。
- 右栏打开时按实际重叠量左移输入框能力栏，避免窄桌面视口中「匹配核验」「字段补全」「任务历史」被遮挡。
- 为 alpha.2 的 `uiWorkspace.connectWorkspace` 与 rc.2 的 `workspaces.connectWorkspace` 增加能力探测 Bridge，避免预发布版本入口只打开工作台却无法预填原生会话。

## [0.5.1] - 2026-09-03

> 文档与发布流程修正版本；无运行时、QCC 工具契约或 API 变化。

### Fixed
- 准备 0.5.1 文档补丁，使下一份 npm tarball 的中英文 README 正确反映最新已发布版本。

### Changed
- 发布工作流启用严格文案 Gate：`v*` 标签只有在中英文 README 均切换到当前正式版本时才能进入
  `npm publish`，防止候选状态再次进入不可变 npm 包。
- `docs:check` 增加普通分支/标签发布双模式与三项回归测试；运行时能力、QCC 工具契约和 API 均不变。

## [0.5.0] - 2026-09-03

> 风险 / 知产 / 经营三域批量补全与 Mockup 对齐工作台；已通过 npm OIDC Trusted Publishing
> 发布并生成 GitHub Release。

### Added
- 冻结三域 91 工具契约：风险 38、知识产权 18、经营 35；兼容 canonical、OAuth 0.1.7 legacy 与短名，
  明确 90 个 `searchKey` 工具和裁判文书详情的 `documentId` 依赖。
- `Phase3BatchService` 与 `Phase3RunStore`：主体去重、精确/多候选/未匹配分流、调用上限、并发上限、
  部分成功、30 分钟 Host 内存恢复、多候选续跑与只重试失败工具。
- 同源 `/data-cleaning/api/phase3/{capabilities,estimate,enrich,resolve,retry,run}`；estimate 零调用，
  计费端点强制 `confirmPaidCalls:true` + 唯一幂等键，结果和复核队列分别导出 CSV。
- 默认关闭的 `e2e:phase3` Runner：仅允许回环 Host；preflight 要求 91/91 工具 ready 且验证零调用估算；
  enrich 模式还要求显式付费确认、经批准夹具和正数 `maxCalls`，报告为 `0600` 且脱敏。

### Changed
- GitHub Actions 升级到 `actions/checkout@v7`、`actions/setup-node@v7` 与
  `softprops/action-gh-release@v3`，移除托管 Runner 的 Node 20 action runtime 弃用警告。
- 明确 QCC 采用客户自带连接/账号（BYO QCC）：客户自行承担其账号额度或合同费用，插件不共享 Key、
  不代理结算、不代付；`confirmPaidCalls` 仅表示当前用户确认使用自己的 QCC 账号额度。
- 应用内工作台升级为四步：上传与映射 → 数据体检 → 匹配核验 → 补全与导出；支持三域选择、
  调用估算/二次确认、候选复核、失败重试、任务恢复与双 CSV。
- 本地清洗接受显式字段映射；中文“企业名称/联系电话”等表头会按映射清洗，不再套用默认 `name/phone` 误删。
- `enterprise-enrichment` Skill 增加风险/知产/经营域组，并保持多候选暂停、来源原值保真与权限/无数据/限流降级。
- 同步修正 0.4.0 tarball README 的历史状态文案；已发布 0.4.0 仍为不可变快照。

### Fixed
- 修复真实 DSH React 渲染中，工作台关闭态在部分 store hooks 前返回导致首次打开报 React #310 的问题。

### Verified
- `npm run check`：125/125 测试通过；lint、双语版本、marketing 与 pack 白名单全绿。
- DSH `0.1.1-rc.2` / `0.1.2-alpha.2` 隔离 Host 零调用冒烟共 24/24 通过；生产端口 43120 未触碰。
- rc.2 实际渲染完成上传映射、体检和中文字段清洗闭环。
- 2026-09-03 以维护者测试账号完成最小真实 Phase-3 E2E：1 家公开主体、1 个风险工具，
  估算/实际调用均为 2，补全 1 行、待复核 0、错误 0；知产与经营域未做付费实调。
- Release workflow `33708528501` 通过，npm provenance 为 SLSA v1；公共 Registry 全新安装与 ESM 导入通过。

## [0.4.0] - 2026-09-02

> 工商全景与历史工商二期、QCC Host Bridge 和完整安全验收版本；已通过 npm OIDC Trusted Publishing
> 发布并生成 GitHub Release。

### Added
- 0.4.0 二期第一切片：新增可测的 QCC 工商全景契约（16 个工商工具 + 4 个历史工商工具）；
  `enterprise-enrichment` 按 `panorama` / `ownership` / `governance` / `history` 组按需调用，
  强制来源标记、历史权限降级与付费批次约束。
- 0.4.0 验收评估器与默认关闭的 `e2e:phase2` Runner：强制 20 企业 / 每企业 ≥15 维、
  源工具匹配、字段原值一致、历史账号门，并显式拒绝合成证据充当真实 E2E。
- 只读 `/data-cleaning/api/phase2/capabilities` 预检：报告 16+4 工具注册状态，
  不调用 QCC，并将历史工具可用性与账号权限验证明确分开。
- G5-1 QCC Host Bridge（`lib/qcc.js`）：通过公共 `ctx.tools.execute()` 程序化调用动态 MCP 工具，
  支持允许列表、超时/取消、OAuth 重注册窗口、企业去重批处理、多候选暂停与部分失败隔离。
- 同源 Web 端点 `/data-cleaning/api/g5/capabilities` 与 `/data-cleaning/api/g5/enrich`；
  计费调用前强制 `confirmPaidCalls:true`，单批最多 100 行。
- G5 Mock/Contract 测试已覆盖主路径；真实 OAuth/QCC 主路径、token 自然到期刷新与故障注入均已验收。
- G5-2 安全闭环：默认关闭且仅允许回环 Host 的 E2E Runner、日志/报告脱敏、请求幂等、
  Host 内存 run 状态、多候选人工确认续跑、retryable 失败人工重试和安全调用审计。
- 上游错误细分为授权、权限、限流、配额、超时、工具刷新、服务不可用和契约拒绝；
  错误响应不再复述可能包含敏感内容的上游原始 message。

### Changed
- QCC Host Bridge 兼容 `qcc-dsh-mcp-oauth@0.1.7` 实测注册的
  `mcp__company__*` / `mcp__history__*` legacy serverName，同时保留
  `mcp__qcc-company__*` / `mcp__qcc-history__*` 作为规范名称；capabilities 同时报告规范名与实际运行时名。

### Verified
- 在隔离 DSH `0.1.1-rc.2` Host 完成真实 OAuth、授权跨重启恢复与 20 家公开企业的 400 次 QCC 调用；
  严格历史域验收通过：20/20 主体已解析、每企业当前工商最低 15 维、历史工商 4 维。
- 原始证据与脱敏报告仅保存在 Git 忽略的 `.phase2-e2e/`，权限为 `0600`；未触碰生产端口。
- 自然过期 access token 的真实 refresh、动态工具恢复与续期后最小真实调用已通过；
  401/429/配额耗尽故障注入确认无自动重试、人工重试门正确且审计不泄密。
- 公共 npm Registry 全新安装和 ESM 导入通过，导出 `apply / inject / name`。

## [0.3.0] - 2026-09-01

> 企查查 MCP 接入 · 方案 A（模型中介式企业名单补全）首个版本。

### Added
- 内嵌 Skill `enterprise-enrichment`（`lib/skill-enrich.js`）：引导模型复用
  `qcc-dsh-mcp-oauth` 已上架的工具面（`qcc_oauth_status` / `mcp__qcc-company__*` /
  `mcp__qcc-risk__*`），逐个企业完成「消歧 → 工商详情 → 风险标签」补全。
- `docs/QCC-ENRICHMENT-DESIGN.md`：QCC 能力设计（方案 A 模型中介式 + v1 字段契约）。
- 文档：`docs/USER-GUIDE.md` 增补企业名单补全一节；`docs/COMPATIBILITY.md` 补共存说明。

## [0.2.1] - 2026-09-01

> OIDC 可信发布链路验证版本，无功能变更。

### Changed
- 发布流程：接入 npm OIDC Trusted Publishing（`release.yml` + `--provenance`），`v*` tag 自动发布并生成 GitHub Release。

## [0.2.0] - 2026-09-01

> 首个开源社区版本。包名由 `@qcc/dsh-data-cleaning-agent`（私有 scope）改为 `dsh-data-cleaning-agent`（无 scope），
> 以便社区 fork / PR / npm 公开安装。

### Added
- 开源社区化工程骨架（README 双语、LICENSE、CONTRIBUTING、install.sh、marketing 元数据、CI/Release workflow）。
- MVP 全量能力：CSV/XLSX/JSON 解析、清洗（trim / 手机号规范化 / 缺失剔除 / 负金额剔除 / 去重）、
  确定性补全、概览画像、CSV 回写（`lib/engine.js`）。
- 三个模型工具：`data_clean_rows` / `data_complete_rows` / `data_profile`（`lib/tools.js`）。
- 内嵌 Skill `data-cleaning`（`lib/skill.js`）。
- 异步任务状态机 + 持久化存储（`lib/jobs.js`，`ctx.jobs` + `ctx.storageDomain`）。
- web 半区路由与 UI（`lib/web.js`），同源 `/data-cleaning/` 前缀。
- Client 半区 seam（`lib/client.js`）。
- 引擎单元测试 13 例（`test/engine.test.js`）。

### Changed
- 包名：`@qcc/dsh-data-cleaning-agent` → `dsh-data-cleaning-agent`。
- 补全 `license` / `repository` / `homepage` / `bugs` / `keywords` / `engines`。

## [0.1.0-mvp] - 2026-08-31

> 内部 MVP 基线，双基线（0.1.1-rc.2 + 0.1.2-alpha.2）验证通过。不对外发布。
