129 lines
8.6 KiB
Markdown
129 lines
8.6 KiB
Markdown
# Changelog
|
||
|
||
本文档记录面向使用者和维护者的重要变更。版本号以 `package.json` 为准。
|
||
|
||
## 0.2.1 - 2026-08-10
|
||
|
||
### Fixed
|
||
|
||
- Base64 解码现在拒绝 `TQ=`、`TWE==` 等长度不完整的显式填充,同时继续接受规范的无填充 Base64 URL 输入。
|
||
- XML 校验改为识别浏览器专用解析错误命名空间,合法的 `<parsererror>` 用户元素不再被误判为解析失败。
|
||
- favicon、Web App Manifest 和其他稳定文件名资源不再使用一年不可变缓存;只有带构建指纹的 `dist/assets/` 文件使用长期 `immutable` 缓存。
|
||
|
||
### Security
|
||
|
||
- 带 Fetch Metadata 的导航配置写入现在只接受 `Sec-Fetch-Site: same-origin`,同时拦截 `same-site` 与 `cross-site` 浏览器跨源请求。无该请求头的非浏览器客户端仍受支持,因此隐藏设置路径仍不构成身份认证。
|
||
|
||
### Verification
|
||
|
||
- 120 条 Vitest 测试通过,新增 Base64 显式填充、XML `parsererror` 合法元素、静态资源缓存分类和 same-site 跨源写入回归覆盖。
|
||
- Vue/TypeScript 类型检查、Vite 生产构建、Git 差异规范检查和 Windows PowerShell 启动脚本语法检查通过。
|
||
- 11 个页面在 1440×900、900×900 和 390×844 三种视口完成真实浏览器回归;深浅主题无横向溢出或控制台警告/错误。
|
||
|
||
## 0.2.0 - 2026-08-09
|
||
|
||
### Added
|
||
|
||
- AES-CMAC 增加 AES-192 和 AES-256 密钥长度,保留 AES-128 默认值,并增加 NIST SP 800-38B 已知向量。
|
||
- 服务端为每个响应生成独立的 128 位 CSP nonce,使 Cloudflare JavaScript Detections 无需 `'unsafe-inline'` 便可与严格 CSP 兼容。
|
||
|
||
### Changed
|
||
|
||
- 安全随机数默认长度从 8 字节调整为 16 字节,并集中管理默认值和资源上下限。
|
||
- CRC 自定义参数和结果表头改为中文在前、英文在后的双语标签;`RefIn`/`RefOut` 明确为输入/输出位反转,宽屏参数区不再压缩长标签换行。
|
||
- CRC 与固件 Hash 的文件上传框统一悬浮、拖拽及键盘聚焦状态,并增加与后续控件的固定间距。
|
||
- RSA 仅在 Web Crypto 不可用或失败时动态加载 `node-forge` 回退,降低现代 HTTPS 浏览器首次打开 RSA 工具时的下载量。
|
||
- UTF-8 / Hex 的工具 ID、组件、字段前缀和固定路径统一为 `utf8-hex` 与 `/tools/utf8-hex`;旧导航配置中的 `ascii-hex` 会原位迁移,保留分类和排序。
|
||
- 侧边栏移除无功能编号,品牌副标题改为“本地工具箱”,共享控件统一键盘焦点环和禁用态。
|
||
- 工具管理路径调整为 `/tools/setting`;所有表单字段补充唯一 `id` 和稳定 `name`。
|
||
|
||
### Security
|
||
|
||
- 随机数增加最小/最大长度、安全随机源缺失及随机源异常的失败关闭测试,不使用普通伪随机回退。
|
||
- CSP 仍禁止任意内联脚本和第三方脚本;Cloudflare Web Analytics 保持为部署层可选功能,不加入应用代码。
|
||
- RSA 密钥生成增加异步请求版本保护,组件卸载或状态失效后,旧结果不会覆盖当前页面状态。
|
||
|
||
### Verification
|
||
|
||
- 116 条 Vitest 测试通过,覆盖 AES-128/192/256 标准向量、安全随机源失败关闭、RSA 动态回退、CSP nonce 强度及唯一性、固定工具路径、导航 ID 迁移、默认分类顺序、Intel HEX 有效数据分配上限、并发导航写入、CRC 参数防御和表单字段标识约束。
|
||
- Vue/TypeScript 类型检查、Vite 生产构建和 Windows PowerShell 启动脚本语法检查通过。
|
||
- 11 个页面在 1440×900、900×900 和 390×844 三种视口完成真实浏览器检查;深浅主题无横向溢出或控制台警告/错误。
|
||
|
||
## 0.1.0 - 2026-08-09
|
||
|
||
### Added
|
||
|
||
- 增加统一页面介绍,不列出具体工具或生成路由专属内容。
|
||
|
||
### Documentation
|
||
|
||
- 明确标准 HTML description 和同文的 `og:description` 分享兼容性契约,不设置自定义分享图、其他 Open Graph、平台抓取器、平台专用字段或包含用户数据的动态内容。
|
||
|
||
### Verification
|
||
|
||
- 87 条 Vitest 测试通过,页面元数据测试覆盖标准 description、唯一允许的 `og:description`、Manifest 描述、favicon 回退入口和无自定义分享图约束,并增加发布版本跨文件一致性检查。
|
||
- Vue/TypeScript 类型检查和生产构建通过。
|
||
|
||
## 0.0.6 - 2026-08-08
|
||
|
||
### Added
|
||
|
||
- 增加与侧边栏品牌一致的浏览器图标体系:SVG、内含 16/32/48 像素帧的 ICO、180 像素 Apple 图标、192/512 像素 Web App 图标、512 像素 maskable 图标及 Web App Manifest。
|
||
- 增加统一的 Windows PowerShell 启动与更新脚本,提供固定的生产配置、Git 快进更新、锁定依赖重装和构建后启动流程。
|
||
- 增加 Windows Server 非 Docker 部署、启动和更新说明。
|
||
- 增加独立的固件 Hash 工具,计算 Intel HEX 总有效数据和各 block 的 SHA-256 / SHA-512。
|
||
- 增加 8 字节二进制 Block 校验头模式,头部包含 32 位绝对起始地址和 32 位数据长度,默认 Big Endian,并支持 Little Endian。
|
||
|
||
### Fixed
|
||
|
||
- 修复 Docker 构建未复制 `public/` 资源的问题,并为 `.webmanifest` 增加标准响应类型。
|
||
- Intel HEX 解析器增加全部非空记录上限、显式 uint32 地址空间检查和无符号扩展地址运算,拒绝越过 `0xFFFFFFFF` 的数据。
|
||
- 固件 Hash 在普通 HTTP 局域网访问时增加本地 SHA-256/SHA-512 回退,不再依赖 `SubtleCrypto` 必须可用。
|
||
- 生产服务在监听端口前检查 `dist/index.html`,缺少构建产物时立即给出构建命令,不再启动后按请求重复返回 500。
|
||
- 修复固件 Hash 和安全随机数模式选择框宽度过大,以及 801-1040 像素中间宽度下 CRC 参数区可能横向溢出的问题。
|
||
- 修复 Windows 脚本无参数运行时直接启动旧 `dist`、容易被误认为已完成更新的问题;现在交互启动会明确选择启动、更新并启动、仅更新或退出。
|
||
|
||
### Documentation
|
||
|
||
- 明确应用图标资源契约,并记录不启用 Service Worker、离线缓存和冗余旧平台图标的边界。
|
||
- 补充 `dist/index.html` 缺失、Node 进程未重启、浏览器页面未刷新和前台 PowerShell 退出等启动故障排查说明。
|
||
- 将 Node、Docker Compose、容器健康检查、Windows 脚本和示例配置的生产默认端口统一为 `9000`。
|
||
- 增加通用 `README.md` 入口并强化 `AGENTS.md` 新会话接手流程,便于其他 AI 在不依赖历史对话的情况下继续维护。
|
||
- 完善英文项目入口与中文权威文档,补充核心工具行为、异步竞态、版本文件、Windows 单 EXE 评估和发布边界。
|
||
- 扩充 `AGENTS.md` 的工具扩展、Intel HEX 安全、响应式 UI、部署发布和 Git 操作约束。
|
||
|
||
### Verification
|
||
|
||
- 85 条 Vitest 测试通过,新增标准 SHA 向量、Block 头大小端、地址绑定、最高 uint32 地址、地址溢出、控制记录边界、无 Web Crypto 回退、生产构建预检、部署配置一致性和应用图标完整性覆盖。
|
||
- Vue/TypeScript 类型检查和生产构建通过。
|
||
|
||
## 0.0.5 - 2026-08-07
|
||
|
||
### Changed
|
||
|
||
- CRC 文件读取、Intel HEX 解析和 CRC 计算统一放入独立 Web Worker,页面只保留文件摘要和结果。
|
||
- 设置页排序操作提取为可测试的纯函数,并增加加载就绪状态。
|
||
- 工具目录、默认导航、图标注册和懒加载组件增加运行时及自动化一致性检查。
|
||
- Node.js 最低版本明确为 22.12.0,增加 `typecheck` 和统一的 `npm run check` 门禁。
|
||
- 补全生产依赖版本与许可证说明。
|
||
|
||
### Fixed
|
||
|
||
- 修复 CRC 更换文件、重新计算及旧 Worker 响应覆盖当前状态的竞态问题。
|
||
- Intel HEX 增加文件、记录数和 block 数限制,并降低记录合并时的内存占用。
|
||
- PNG 在浏览器解码前校验签名、IHDR、文件大小、尺寸和总像素;清空或更换图片后忽略旧转换结果。
|
||
- ICO 在创建 Canvas 前校验并规范化尺寸。
|
||
- 修复设置页首次加载时保存按钮可能被错误启用的问题。
|
||
- 修复缺失 JS/CSS 被错误返回 `index.html` 和 200 状态的问题。
|
||
- 修复导航原子写入失败后可能残留临时文件的问题。
|
||
- Base64 解码拒绝非规范尾部填充位。
|
||
- 大型 JSON/XML 结果在语法 token 过多时降级为纯文本,避免创建过量 DOM 节点。
|
||
- 移动端菜单增加正确的展开状态、动态标签和路由切换自动关闭行为。
|
||
|
||
### Verification
|
||
|
||
- 49 条 Vitest 测试通过,覆盖算法、边界、目录一致性、排序逻辑和真实 HTTP 服务。
|
||
- Vue/TypeScript 类型检查和 Vite 生产构建通过。
|
||
- npm 依赖审计结果为 0 个已知漏洞。
|
||
- 桌面端和 390 x 844 移动端完成浏览器验收,9 个工具路由无横向溢出或控制台错误。
|