# 发布指南 - NanoPencil v1.1.0

## 发布前检查清单

- [x] 代码已测试
- [x] 版本号已更新 (1.0.0 → 1.1.0)
- [x] 变更日志.md 已更新
- [x] package.json 已更新
- [ ] 构建测试通过
- [ ] Git 提交并打标签
- [ ] 发布到 npm

## 发布步骤

### 1. 构建项目

```bash
# 安装依赖
npm install

# 构建 TypeScript
npm run build

# 验证构建产物
ls -la cli.js core/*.js modes/**/*.js utils/**/*.js
```

### 2. 测试构建结果

```bash
# 本地测试
node cli.js --version

# 或者使用 npm link
npm link
nanopencil --help
npm unlink
```

### 3. Git 提交

```bash
# 查看更改
git status

# 添加所有更改
git add .

# 提交更改
git commit -m "Release v1.1.0: Add API key management and optimize tools manager

- Add /apikey command for updating API keys
- Optimize tools manager with caching mechanism
- Fix repeated tool download prompts on Windows
- Update documentation"

# 创建版本标签
git tag v1.1.0

# 推送到远程仓库
git push origin main
git push origin v1.1.0
```

### 4. 发布到 npm

```bash
# 登录 npm (如果未登录)
npm login

# 发布包
npm publish

# 或者使用 --access public (首次发布 scoped 包)
npm publish --access public
```

### 5. 验证发布

```bash
# 等待几分钟后，测试安装
npm install -g @pencil-agent/nano-pencil@latest

# 检查版本
nanopencil --version

# 或者查看远程版本
npm view @pencil-agent/nano-pencil version
```

## 本次更新内容

### 新功能 ✨
- **API Key 管理**: 添加 `/apikey` 命令，无需重启即可更新 API Key
- **工具管理器优化**: 实现缓存机制，减少约 75% 的文件系统 I/O

### 问题修复 🐛
- 修复用户输入 API Key 后无法修改的问题
- 修复 Windows 上每次启动都显示工具下载提示的问题

### 性能提升 🚀
- Windows 启动性能提升（减少重复检查）

## 注意事项

1. **npm token**: 确保有 npm 发布权限的 token
2. **包名**: 包名是 `@pencil-agent/nano-pencil` (scoped)
3. **首次发布**: scoped 包需要 `--access public` 参数
4. **构建**: 确保 `prepublishOnly` 钩子会自动运行 `npm run build`

## 回滚计划

如果发现问题需要回滚：

```bash
# 撤销标签
git tag -d v1.1.0
git push origin :refs/tags/v1.1.0

# 发布新版本修复
npm version patch  # 1.1.1
npm publish
```

## 发布后

- [ ] 在 GitHub/GitLab 创建 Release
- [ ] 更新文档网站
- [ ] 通知用户更新
