Product Changelog
Write changelogs and release notes that users read and care about via inference.sh CLI.
Quick Start
CODEBLOCK0
Install note: The install script only detects your OS/architecture, downloads the matching binary from dist.inference.sh, and verifies its SHA-256 checksum. No elevated permissions or background processes. Manual install & verification available.
Entry Format
The Anatomy of a Good Entry
CODEBLOCK1
Structure: Category label -> User-facing title -> What you can do now -> How -> What changed -> Visual
User-Facing Language
CODEBLOCK2
Rules:
- - Write what the user can DO, not what you BUILT
- Start with "You can now..." / "Reports now..." / "Fixed an issue where..."
- Include the benefit, not just the mechanism
- Use present tense
Categories
Standard Categories
| Category | Color | Icon | Use For |
|---|
| New | Green | ✨ or 🆕 | Entirely new features or capabilities |
| Improved |
Blue | ⚡ or 🔧 | Enhancements to existing features |
|
Fixed | Yellow/Orange | 🐛 or 🔨 | Bug fixes |
|
Removed | Red | 🗑️ or ⚠️ | Deprecated or removed features |
|
Security | Purple | 🔒 | Security patches |
Categorization Rules
- - New = something users couldn't do before at all
- Improved = something users could do, now it's better/faster/easier
- Fixed = something that was broken, now works correctly
- Don't use "Updated" — it's meaningless. Was it improved or fixed?
Version Numbering
Semantic Versioning (SemVer)
CODEBLOCK3
| Component | Increment When | Example |
|---|
| MAJOR | Breaking changes, major redesign | 2.0.0 -> 3.0.0 |
| MINOR |
New features, backward-compatible | 3.1.0 -> 3.2.0 |
| PATCH | Bug fixes, small improvements | 3.2.0 -> 3.2.1 |
Date-Based Versioning
CODEBLOCK4
Best for SaaS products with continuous deployment.
Changelog Page Structure
CODEBLOCK5
Visual Changelogs
When to Add Visuals
| Change Type | Visual |
|---|
| New UI feature | Screenshot of the new feature |
| UI redesign |
Before/after comparison |
| New workflow | Step-by-step screenshots or short video |
| Performance improvement | Chart showing improvement |
| Complex feature | Animated GIF or video demo |
Generating Visuals
CODEBLOCK6
Breaking Changes
Breaking changes need special treatment:
CODEBLOCK7
Distribution Channels
| Channel | Format | When |
|---|
| Changelog page | Full detail, all entries | Every release |
| In-app notification |
1-2 line summary | New features, breaking changes |
|
Email | Curated highlights, visuals | Major releases (monthly/quarterly) |
|
Blog post | Deep dive with context | Big launches |
|
Social media | Single feature highlight | Notable features |
|
Slack/Discord | Brief announcement | If you have a community |
Social Media Snippet Format
CODEBLOCK8
Writing Tips
Do
- - Group related changes together
- Lead with the biggest/most requested change
- Link to documentation for complex features
- Include who requested it ("By popular request:")
- Show migration paths for breaking changes
- Date every entry
Don't
- - Don't say "various bug fixes" — list specific fixes or skip them
- Don't include internal references (PR numbers, ticket IDs, branch names)
- Don't use "Updated [feature]" without saying how
- Don't list changes nobody cares about (dependency bumps, internal refactors)
- Don't commit-dump — one changelog entry may represent many commits
Changelog Frequency
| Product Type | Frequency | Notes |
|---|
| SaaS (continuous deploy) | Weekly batch | Group a week of changes |
| SaaS (major features) |
Per feature launch | With blog post |
| Versioned software | Per version release | Tied to semver |
| API | Per version + deprecation notices | Include migration guides |
| Mobile app | Per app store release | Match store listing "What's New" |
Common Mistakes
| Mistake | Problem | Fix |
|---|
| Developer language | Users don't understand | Write what users can do |
| "Bug fixes and improvements" |
Zero information | List specific fixes |
| No dates | Can't tell what's new | Date every entry |
| No visuals | Users skip text | Screenshot major features |
| Breaking changes buried | Users discover too late | Prominent warning + timeline |
| Commit log as changelog | Noisy, unhelpful | Curate and rewrite |
Related Skills
CODEBLOCK9
Browse all apps: INLINECODE1
产品更新日志
通过 inference.sh CLI 编写用户真正会阅读和关心的更新日志与发布说明。
快速开始
bash
curl -fsSL https://cli.inference.sh | sh && infsh login
生成功能公告视觉图
infsh app run falai/flux-dev-lora --input {
prompt: clean product UI screenshot mockup, modern dashboard interface showing a new analytics chart feature, light mode, minimal design, professional SaaS product,
width: 1248,
height: 832
}
安装说明: 安装脚本仅检测您的操作系统/架构,从 dist.inference.sh 下载匹配的二进制文件,并验证其 SHA-256 校验和。无需提升权限或后台进程。也可手动安装与验证。
条目格式
优秀条目的构成要素
markdown
新增:报表批量导出 📊
现在您可以从任意报表视图一次性导出最多 10,000 行数据。
选择您的行,点击导出,然后选择 CSV 或 Excel 格式。
此前每次导出仅限 500 行。

结构: 分类标签 -> 面向用户的标题 -> 现在可以做什么 -> 操作方式 -> 变更内容 -> 视觉展示
面向用户的语言
❌ 内部语言:
为导出服务实现了批处理队列
重构了 ReportExporter 类以支持分页
修复了 CSV 序列化中的错误(PR #4521)
✅ 面向用户的语言:
现在您可以从任意报表一次性导出最多 10,000 行数据
筛选大型数据集时,报表加载速度提升 3 倍
修复了导出的 CSV 文件缺少列的问题
规则:
- - 描述用户能做什么,而非你构建了什么
- 以现在您可以... / 报表现在... / 修复了...的问题开头
- 包含收益,而非仅描述机制
- 使用现在时态
分类
标准分类
| 分类 | 颜色 | 图标 | 用途 |
|---|
| 新增 | 绿色 | ✨ 或 🆕 | 全新的功能或能力 |
| 改进 |
蓝色 | ⚡ 或 🔧 | 对现有功能的增强 |
|
修复 | 黄色/橙色 | 🐛 或 🔨 | 错误修复 |
|
移除 | 红色 | 🗑️ 或 ⚠️ | 已弃用或移除的功能 |
|
安全 | 紫色 | 🔒 | 安全补丁 |
分类规则
- - 新增 = 用户之前完全无法做到的事情
- 改进 = 用户之前可以做到,现在更好/更快/更简单
- 修复 = 之前有问题的功能,现在正常工作
- 不要使用更新——这毫无意义。是改进了还是修复了?
版本编号
语义化版本控制(SemVer)
主版本.次版本.补丁版本
3 . 2 . 1
| 组件 | 何时递增 | 示例 |
|---|
| 主版本 | 破坏性变更、重大重新设计 | 2.0.0 -> 3.0.0 |
| 次版本 |
新功能,向后兼容 | 3.1.0 -> 3.2.0 |
| 补丁版本 | 错误修复、小改进 | 3.2.0 -> 3.2.1 |
基于日期的版本控制
2026-02-08 或 2026.02.08 或 2026 年 2 月 8 日
最适合持续部署的 SaaS 产品。
更新日志页面结构
markdown
更新日志
2026 年 2 月 8 日
新增
- - 报表批量导出 — 一次性导出最多 10,000 行数据。了解更多 →
- 深色模式 — 从设置 > 外观切换深色模式。
改进
- - 仪表盘加载 — 大型数据集上仪表盘加载速度提升 3 倍。
- 搜索 — 搜索结果现在包含已归档项目。
修复
- - 修复了导出的 CSV 文件缺少列标题的问题。
- 修复了日期选择器显示错误时区的问题。
2026 年 2 月 1 日
新增
- - API Webhooks — 当您的账户中发生事件时获得通知。
修复
视觉化更新日志
何时添加视觉元素
| 变更类型 | 视觉元素 |
|---|
| 新 UI 功能 | 新功能的截图 |
| UI 重新设计 |
前后对比 |
| 新工作流程 | 分步截图或短视频 |
| 性能改进 | 显示改进的图表 |
| 复杂功能 | 动画 GIF 或视频演示 |
生成视觉元素
bash
功能截图(如果应用正在运行,使用代理浏览器)
infsh app run infsh/agent-browser --input {
url: https://your-app.com/new-feature,
action: screenshot
}
前后对比
infsh app run infsh/stitch-images --input {
images: [before-screenshot.png, after-screenshot.png],
direction: horizontal
}
带标注的截图
infsh app run bytedance/seededit-3-0-i2i --input {
prompt: add a red circle highlight around the export button in the top right area,
image: screenshot.png
}
功能公告横幅
infsh app run falai/flux-dev-lora --input {
prompt: clean modern product announcement banner, gradient blue to purple background, abstract geometric shapes, professional SaaS aesthetic, wide format,
width: 1248,
height: 832
}
破坏性变更
破坏性变更需要特殊处理:
markdown
⚠️ 破坏性变更:API v2 端点已弃用
变更内容: API v1 端点将于 2026 年 3 月 15 日停止工作。
您需要做什么:
- 1. 将您的 API 调用更新为使用 v2 端点(迁移指南 →)
- 将身份验证更新为使用 Bearer 令牌而非 API 密钥
- 在 3 月 15 日之前测试您的集成
时间线:
- - 现在:v2 端点可用,v1 仍可工作
- 3 月 1 日:v1 返回弃用警告
- 3 月 15 日:v1 停止工作
如果您需要迁移帮助,请联系 support@company.com。
分发渠道
| 渠道 | 格式 | 时机 |
|---|
| 更新日志页面 | 完整详情,所有条目 | 每次发布 |
| 应用内通知 |
1-2 行摘要 | 新功能、破坏性变更 |
|
电子邮件 | 精选亮点、视觉元素 | 重大发布(每月/每季度) |
|
博客文章 | 深入解析与背景 | 大型发布 |
|
社交媒体 | 单个功能亮点 | 值得关注的功能 |
|
Slack/Discord | 简短公告 | 如果您有社区 |
社交媒体片段格式
🆕 [产品] 新增:[功能名称]
[1-2 句描述您现在可以做什么]
[截图或演示视频]
立即尝试 → [链接]
写作技巧
应该做
- - 将相关变更分组
- 以最大/最受请求的变更开头
- 为复杂功能链接到文档
- 包含谁请求的(应广泛要求:)
- 为破坏性变更显示迁移路径
- 为每个条目标注日期
不应该做
- - 不要说各种错误修复——列出具体修复或跳过
- 不要包含内部引用(PR 编号、工单 ID、分支名称)
- 不要使用更新了[功能]而不说明如何更新
- 不要列出没人关心的变更(依赖升级、内部重构)
- 不要提交日志转储——一个更新日志条目可能代表多个提交
更新日志频率
| 产品类型 | 频率 | 说明 |
|---|
| SaaS(持续部署) | 每周批量 | 汇总一周的变更 |
| SaaS(主要功能) |
每次功能发布 | 附带博客文章 |
| 版本化软件 | 每次版本发布 | 与语义化版本对应 |
| API |