Files
qiming/qimingcode/CHANGELOG-qimingcode.md

304 lines
10 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Changelog - feat/qimingcode 分支
本文档总结了 `feat/qimingcode` 分支相对于主分支的主要更改。
## v1.2.1 (2026-05-17)
> 仅 GitHub Release`git tag v1.2.1` → `build-release.yml`**不发 npm**。
### ✨ 新特性
- **Sandbox≥1.2.0**: 原生 OpenCode `config.sandbox`strict / compat / permissive工具层同步 path guard与 Qimingclaw Electron 客户端对接。
### 🐛 修复
- 避免向旧版注入 `OPENCODE_CONFIG_CONTENT.sandbox` 导致 `Unrecognized key: sandbox` 崩溃。
---
## v1.1.99 (2026-05-13)
### 🐛 修复
- **ACP / System Prompt**: 增加 `session/new``systemPrompt` 多来源兼容解析(`_meta.systemPrompt``_meta.system_prompt`、顶层同名字段),避免不同客户端字段命名差异导致 system prompt 丢失。
- **ACP / 日志**: 保留轻量关键日志(来源 + 是否命中),避免高频/重日志影响主流程可读性。
---
## v1.1.98 (2026-05-13)
### 修复
- **ACP**: 恢复 `session/new``params._meta.systemPrompt` 的读取与保存,并在普通 `prompt` 调用中映射为 `session.prompt``system` 字段(与历史 claude-code-acp 约定及先前 1.1.x 行为一致)。
---
## v1.1.68 (2026-03-31)
### 🐛 修复
- **ACP/MCP 初始化**: `non_blocking` 模式下 MCP 初始化超时后会清理等待句柄,避免后续 prompt 重复等待同一超时窗口导致首字延迟累积。
- **MCP 批量加载**: `addBatch` 增加单 server 异常隔离,`create()` 抛错时不会中断整批加载,并补充 `create_threw` summary 日志便于排障。
---
## v1.1.67 (2026-03-31)
### ✨ 新特性
- **Logging**: ACP 全链路日志增强,补充 request/session 关联信息与端到端排障观测字段,便于定位首包与 MCP 初始化链路问题。
---
## v1.1.66 (2026-03-30)
### 🔄 优化
- **MCP 懒加载**: ACP `newSession` 不再同步等待 MCP 服务器连接建立,改为 fire-and-forget 后台初始化,首次 `prompt` 时按需等待。`acp.session.create` 耗时从 ~2890ms 降至 ~10ms与 claude-code 一致。
- **CI 标准化**: 新增 tag 触发的 `build-release.yml` 工作流,单 runner 通过 Bun 跨平台编译构建全部 11 个目标darwin/linux/windows 含 baseline、musl 变体),自动创建 GitHub Release 并上传全部 13 个平台资产。
---
## v1.1.62 (2026-01-25)
### 🐛 修复
- **Session**: 修复 `SessionProcessor` 无限重试导致的僵尸进程问题 (防止无限循环,限制最大重试次数为 10)。
---
## v1.1.61 (2026-01-25)
### 🔄 优化
- **Performance**: 实现 **TUI 懒加载**。移除了 ACP 模式下对 React/Blessed 等重型 UI 库的静态导入,显著降低了 headless 模式下的内存开销(~70%)和容器启动时间(~50%)。
- **Latency**: ACP 冷启动速度由之前的分钟级降低至 **26s** 左右。
---
## v1.1.60 (2026-01-25)
### 🔄 优化
- **MCP**: 实现 **MCP Batch API**。在 ACP 会话初始化时,通过一个批处理调用同时连接多个 MCP 服务器,将 HTTP 往返开销由 O(N) 降低至 O(1)。
- **Throughput**: 极大提升了在高并发环境下的连接复用速度(典型热启动耗时缩短至 **30s** 左右,相比之前提升 ~200%)。
---
## v1.1.59 (2026-01-25)
### 🔄 优化
- **MCP**: 实现 **MCP Tools 缓存** (5s TTL)。避免在单次 prompt 处理中重复调用昂贵的 `listTools()` RPC。
- **MCP**: 实现 **MCP 连接池 (Connection Pooling)**。支持根据配置哈希复用已存在的 MCP 客户端,避免重复启动子进程。
- **Initialization**: 并行化 `loadSessionMode` 中的配置加载逻辑providers/agents/commands 并行获取)。
---
## v1.1.56 (2026-01-23)
### 🐛 修复
- **ACP**: 修复接收 `question.asked` 事件时请求权限导致的无限阻塞问题。
---
## v1.1.55 (2026-01-23)
### ✨ 新特性
- **Config**: 支持 `max_context_tokens` 配置选项。
### 🐛 修复
- **Provider**: 修复自定义加载器中 provider 未定义的边缘情况。
---
## v1.1.54 (2026-01-23)
### ✨ 新特性
- **Config**: 支持通过配置项和环境变量设置 `max_tokens`
---
### 🐛 修复
- **Config**: 支持在 Linux 上读取固定路径 `/root/.config/opencode/opencode.json` 的配置文件。
---
## v1.1.52 (2026-01-22)
### 🐛 修复
- **Logging**: 修复日志初始化过晚导致早期日志泄漏到终端的问题,实现同步早期初始化。
- **MCP**: 修复本地 MCP 服务器启动时因 stderr 流不兼容导致的 `TODO: stream.Readable stdio @ 2` 错误。
- **Debug**: 增强 MCP 工具加载调试日志,包含详细的启动命令、环境信息及工具列表追踪。
- **Dependencies**: 修复 `optionalDependencies` 版本同步逻辑。
---
## v1.1.51 (2026-01-22)
### 🔄 优化
- **Logging**: 更新日志文件名格式,包含具体时间 (HHmmss) 以提高区分度。
---
## v1.1.50 (2026-01-22)
### 🐛 修复
- **Dependencies**: 修复 `optionalDependencies` 版本不同步的问题,确保所有平台二进制包版本一致。
---
## v1.1.49 (2026-01-22)
### ✨ 新特性
- **Logging**: 新增初始化性能追踪 (`bun.install`, `plugin.load`, `provider.state`),帮助诊断启动耗时。
- **ACP**: `acp.message.part` 事件现在记录双向消息(用户输入与模型回复),提供完整会话视图。
- **Config**: 增强配置日志,`system.env``config.load` 现在包含完整的(已脱敏)配置状态。
### 📝 文档
- **CONFIGURATION**: 更新中文配置文档,新增 "Observability & Log Reference" 章节,详细列出所有日志事件及其含义。
---
## v1.1.48
### 🐛 修复
- **ACP Model Selection**: 修复 Title Agent 错误使用 `gpt-5-nano` 的问题。
- **Prompts**: 更新 prompts 中的品牌名称。
---
## v1.1.47
### 🔄 优化
- **Logging**: 优化日志文件名,添加随机后缀以确保每次会话生成独立的日志文件。
---
## 🎉 主要变更
### 项目重命名
- 将项目从 `opencode` 重命名为 `qimingcode`
- 移除 `@xagi` 命名空间,包名改为 `qimingcode`
- 更新 TUI 和 CLI 品牌标识为 'qiming' 风格
### 版本发布
- 当前版本: **v1.1.45**
- 主要版本迭代: v1.1.27 → v1.1.45
---
## ✨ 新特性
### 环境变量配置支持
- **`OPENCODE_MODEL`**: 支持通过环境变量配置模型
- **`OPENCODE_LOG_DIR`**: 支持通过环境变量配置日志目录
- **`OPENCODE_API_BASE`**: 支持自定义 API 基础地址
- **`OPENCODE_API_KEY`**: 支持通过环境变量配置 API 密钥
- **Anthropic 环境变量**: 独立支持 Anthropic 相关环境变量配置
### 动态模型加载器
- 添加 OpenAI-compatible 动态模型提供器
- 添加 Anthropic 动态加载器支持
- 添加 Anthropic-compatible 动态加载器支持
### 日志系统增强
- 支持通过 `--log-dir` 参数指定日志目录
- 实现每日日志文件命名规则
- 添加日志目录配置、每日轮换、显式刷新功能
- 支持记录系统提示词 (System Prompt)
- 默认禁用文件日志,除非配置了 log-dir
### ACP 功能增强
- 支持通过 `_meta` 在 ACP 会话创建时传递系统提示词
- 添加 ACP 系统提示词测试
- 将系统提示词传递给 agent 调用
### 构建与发布
- 添加 Linux musl libc 支持
- 更新发布工作流
---
## 🐛 修复
- 修复 OpenAI-compatible 提供器动态加载问题
- 修复 'require is not defined' 错误 (将入口点转换为 ESM)
- 修复 `catalog:` 协议导致的安装失败问题 (替换为具体版本号)
- 隔离 Anthropic 环境变量与通用 opencode API 变量
- 修复构建依赖问题
- 修复 `AI_APICallError` 401: 移除 `opencode` provider 的 `gpt-5-nano` 自动回退
---
## 📝 文档
- 添加安装说明
- 添加配置指南
- 更新中文配置文档
- 添加 Zed 调试说明
- 添加环境变量配置说明(独立章节)
- 添加旧版环境变量兼容性说明
---
## 🔧 其他更改
- 添加 `.agent``.gitignore`
- 升级 Bun 到 1.3.6
- 更新各项依赖
- 添加环境变量配置测试
---
## 📋 提交列表
| Commit | 描述 |
| ----------- | ---------------------------------------------------------------- |
| `d1b4ffd09` | docs: 更新中文配置文档 |
| `60a8e8737` | docs: 更新中文配置文档,添加 qimingcode 更新日志 |
| `5460ee74a` | feat: 移除 `@xagi` 命名空间,添加 musl libc 支持,更新发布工作流 |
| `65909a003` | docs: 添加安装说明 |
| `202fc626c` | fix: 支持 openai/anthropic 兼容模型并更新文档 |
| `b2aa930b3` | feat: 添加 anthropic-compatible 动态加载器支持 |
| `1d58132b9` | feat: 添加 anthropic 动态加载器支持 |
| `3432fd729` | fix: 解决 openai-compatible 提供器动态加载问题 |
| `58fe4c7e5` | refactor: 重命名项目为 qimingcode更新元数据 |
| `cde6e3c9b` | feat: 添加动态 OpenAI-compatible 模型提供器 |
| `6e1babf0d` | test: 添加环境变量配置测试 |
| `cad247ab8` | feat: 支持通过环境变量配置模型和日志目录 |
| `7f3c369b8` | feat: 支持 anthropic 环境变量配置 |
| `56c046702` | feat: 支持 OPENCODE_API_BASE 和 OPENCODE_API_KEY |
| `caedaf621` | feat: 支持 OPENCODE_MODEL 环境变量 |
| `7dbf78cd4` | fix: 默认禁用文件日志 |
| `5028d2a15` | feat: 支持 OPENCODE_LOG_DIR 环境变量 |
| `8cbea8543` | feat: 记录系统提示词,版本升级至 v1.1.39 |
| `a77897b26` | feat: 增强日志管理系统 |
| `f5e1c585a` | feat: 支持 --log-dir 参数 |
| `5942b827a` | feat: 支持通过 ACP \_meta 传递系统提示词 |
| `fbb501fd8` | refactor: 重命名 opencode 为 qimingcode |
| `653450621` | feat: 重命名并添加 ACP meta systemPrompt 支持 |
---
_生成日期: 2026-01-21_