chore: initialize qiming workspace repository

This commit is contained in:
Codex
2026-05-29 14:22:48 +08:00
commit bfd67a0f2c
10750 changed files with 1885711 additions and 0 deletions

View File

@@ -0,0 +1,303 @@
# 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_