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,99 @@
# Electron 相关方案留存2026-03
本文档固化若干**已落地或评审通过**的设计与修复,便于后续合并分支、排查回归时对照。实现位置以 `qiming-agent` 主仓库为准;独立 worktree 中的实验以「附录」说明。
---
## 1. FirstTokenTrace 请求级采样(均匀分布)
### 问题
`requestId` 的 MD5 前 8 个十六进制字符得到 32 位无符号整数,若除以 `0xFFFFFFFF`(即 \(2^{32}-1\)),则最大哈希对应比值为 **1.0**,严格说不属于半开区间 \([0, 1)\),且与「将 \(2^{32}\) 个整点均匀映射到单位区间」的常规定义不一致,在 `sampleRate` 接近 1 时会产生可观测偏差。
### 方案
- 除数使用 **\(2^{32}\)**,即十六进制字面量 `0x100000000`(或等价 `2 ** 32`)。
- 判定仍为 `v < sampleRate`,其中 `v ∈ [0, 1)`
### 代码位置
- `src/main/services/engines/perf/firstTokenTrace.ts``shouldSample()`
### 与性能报告的关系
首条消息/首 token 相关分析见 `docs/optimization/MACOS-FIRST-MESSAGE-PERF-REPORT-2026-03-31.md` 等;采样用于控制磁盘与日志量,不影响功能正确性,但影响统计代表性。
---
## 2. `sync-oss.sh` 与 GitHub Actions 运行记录
### 背景
脚本在**本机**通过 `gh` 触发 **目标仓库**(默认 `qiming-ai/qimingclaw`)的 `sync-electron-to-oss.yml`,此前存在两类风险:
1. **`gh run list --limit 1`**:取的是「列表中最新一条」,并发或他人刚触发的 run 会导致**跟错 run**。
2. **未指定 `--repo`**`gh` 默认指向当前 checkout 的仓库;若在 `qiming-agent` 目录执行而实际 dispatch 到 `qimingclaw`,会列到**错误仓库**的 run。
### 方案
1. 在发起 `workflow_dispatch` 的 HTTP 请求**之前**,记录 `START_EPOCH`(当前 UTC 时间戳减约 10 秒,抵消客户端与 GitHub 时钟差)。
2. 触发成功后轮询 `gh run list --repo "$REPO" --workflow=sync-electron-to-oss.yml`,在结果中筛选:
- `event == "workflow_dispatch"`
- `createdAt` 解析为 epoch 后 **`START_EPOCH`**
- 取其中按时间**最新**一条的 `databaseId`
3. 所有 `gh run view` / 输出日志 URL 均带 **`--repo "$REPO"`**。
4. 若在超时轮询内仍无法解析 run脚本失败并提示用户用 `gh run list --repo "$REPO"` 人工核对。
### 残余边界
同一秒内对**同一仓库**多次 `workflow_dispatch`,仍可能歧义;若未来需要,可在 workflow `inputs` 中增加显式关联 ID。
### 相关文档
- `docs/QIMINGCLAW-WORKFLOW-DISPATCH.md`:在 qimingclaw 侧启用 workflow、Secrets、一次性复制路径说明。
---
## 3. CI 中版本号校验POSIX `grep` 与 `ripgrep`
### 问题
`ubuntu-latest` 上若使用 `rg -q``x.y.z` 校验,**默认镜像未必安装 ripgrep**,校验步骤可能静默失败或整条 step 失败与「MVP 仅允许纯数字三段版本」的意图不符。
### 方案
在 shell 中使用 **`grep -Eq '^[0-9]+\.[0-9]+\.[0-9]+$'`**,依赖 POSIX 环境即可,与 `sync-electron-to-oss.yml` / `release-electron.yml` 中生成 `latest.json` 的版本字段策略一致。
### 落地说明
`channel`stable/beta与上述校验的 workflow 变更可能位于独立分支或 worktree合并到主分支后**qiming-agent 与 qimingclaw 两侧 workflow 文件应保持同步**(以实际执行 release/OSS 的仓库为准)。
---
## 4. 附录stable / beta 更新通道(规划/分支)
目标与 OSS 路径约定(先 beta 再 stable、beta 不写 `latest/latest.json` 等)见独立说明文档草案;若已合入主仓库,路径为:
- `docs/RELEASE-CHANNELS.md`(若不存在,可参考 worktree `feat/stable-beta-update-channel` 内同名文件)
客户端侧要点(实现以合入后的代码为准):
- SQLite `update_channel` 决定拉取的 `latest.json` URLstable 与 beta 不同路径)。
- 旧版客户端仅读 `latest/`,行为保持不变。
---
## 5. 文档索引
| 主题 | 路径 |
|------|------|
| OSS 仅同步 workflow 启用说明 | [../QIMINGCLAW-WORKFLOW-DISPATCH.md](../QIMINGCLAW-WORKFLOW-DISPATCH.md) |
| 自动更新架构 | [../architecture/auto-update.md](../architecture/auto-update.md) |
| qimingcode 二进制签名说明 | [../QIMINGCODE-BINARY-SIGNING-2026-03-28.md](../QIMINGCODE-BINARY-SIGNING-2026-03-28.md) |
| macOS 首条消息性能报告 | [../optimization/MACOS-FIRST-MESSAGE-PERF-REPORT-2026-03-31.md](../optimization/MACOS-FIRST-MESSAGE-PERF-REPORT-2026-03-31.md) |
---
*文档状态:留存归档;若实现迁移或策略变更,请在本文件顶部更新「最后修订」并保留变更摘要。*
**最后修订2026-03-31**