e45ec26892
Co-authored-by: Cursor <cursoragent@cursor.com>
1726 lines
68 KiB
Markdown
1726 lines
68 KiB
Markdown
# 历史分支处置登记
|
||
|
||
## `feature/news-morning-wechat-history-snippet`
|
||
|
||
**状态:已提交 / 已进入 main / 禁止再次引用。该分支保留仅用于只读追溯,不是待合并开发分支;未创建远端功能分支。**
|
||
|
||
审计日期:2026-09-24
|
||
基线:`origin/main` `2afe7df4`(merge `--no-ff` 合入)
|
||
|
||
### 交付内容
|
||
|
||
- `dbb16f06` 微信公众号草稿 inline 正文默认附带 3 条精简版「历史上的今天」(`renderHistorySection`,兼容 `li.history-item`)
|
||
|
||
### 验证摘要
|
||
|
||
- `wechat-daily-news-inline.test.mjs` 18/18;发布前测试 195/195
|
||
- 0924 生产页 inline 实测 `contentLength=19721`(≤20000),含 1789/1931/1957 三条
|
||
- 2026-09-24 快速发布 Portal `20260924-113251-98f79b6a`;`forcePushOnce` 重推草稿成功
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名仅用于审计追溯。
|
||
- 不要从该分支继续开发、merge、cherry-pick 或构建 runtime/artifact。
|
||
|
||
## `fix/mindspace-guards-canary-post-rollout`
|
||
|
||
**状态:已提交 / 已进入 main / 禁止再次引用。该分支保留仅用于只读追溯,不是待合并开发分支;未创建远端功能分支。**
|
||
|
||
审计日期:2026-09-23
|
||
基线:`origin/main` `5e2f27d6`(快进合入)
|
||
|
||
### 交付内容
|
||
|
||
- `e64cf52f` 修复 `verify:mindspace-publish-guards:full`(SEO 落盘断言、双 doctype);103 金丝雀 `users` 模式保留 9 路池;事故文档补 Portal/goosed 上线记录
|
||
|
||
### 验证摘要
|
||
|
||
- `verify:mindspace-publish-guards:full`、`verify:h5-session-patches`、相关单测通过
|
||
- 2026-09-23 快速发布 Portal `20260923-172809-5e2f27d6` 后本分支合入并再发 Portal(见 release manifest)
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名仅用于审计追溯。
|
||
- 不要从该分支继续开发、merge、cherry-pick 或构建 runtime/artifact。
|
||
|
||
## `feature/goose-v149-prod-log-fixes`
|
||
|
||
**状态:已提交 / 已进入 main / 禁止再次引用。该分支保留仅用于只读追溯,不是待合并开发分支;未创建远端分支。**
|
||
|
||
审计日期:2026-09-23
|
||
基线:`origin/main` `69c8ce75`(快进合入)
|
||
|
||
### 交付内容
|
||
|
||
- `afeafa1d` harness mysql2 CLI shim(随 Portal runtime 发布;本批未发布 Portal,103 harness 记忆由 goosed 熔断兜底)
|
||
- `e181daf4` goosed `ulimit -n 65536` + 103 goosed 池加固脚本 `scripts/goose-v149-pool-hardening-103.sh`
|
||
- `3155b580` 可选会话回复空闲超时 `MEMIND_SESSION_REPLY_IDLE_TIMEOUT_MS` + `session_finished.finishReason`
|
||
- `8bdf4f3c` 103 v1.49 日志审计与 cutover 状态文档(`docs/incidents/2026-09-23-goose-v149-prod-log-audit.md`)
|
||
- 配套 Goose 分叉提交:`tkmind/tkmind_go` 分支 `fix/v149-prod-log-fixes`(`e622befc3`..`4aea5abf2`)
|
||
|
||
### 验证摘要
|
||
|
||
- Portal 回归 243/243、新增 31/31;`verify:h5-session-patches`、`verify:mindspace-publish-guards`、`verify:mindspace-page-sync-guards` 通过
|
||
- `verify:mindspace-publish-guards:full` 与 `release-goosed-remount-guard.test.mjs` 失败,均在基线 `69c8ce75` 同样失败(main 既有问题,另开分支修复)
|
||
- 103 加固脚本 `--dry-run` 只读预演:launchd maxfiles 软限制 256,harness 仍指向旧 shim
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名仅用于审计追溯。
|
||
- 不要从该分支继续开发、merge、cherry-pick 或构建 runtime/artifact。
|
||
|
||
## `fix/news-morning-repair-not-block`
|
||
|
||
**状态:已提交 / 已进入 main / 禁止再次引用。该分支保留仅用于只读追溯,不是待合并开发分支;远端分支已删除。**
|
||
|
||
审计日期:2026-09-23
|
||
分支 HEAD:`57a9aadf`
|
||
`origin/main` 对应提交:`57a9aadf`(快进合入)
|
||
|
||
### 交付内容
|
||
|
||
- `57a9aadf` 早报生成与推送改为「修复不阻断」:news002 配图/结构检查不再抛错,删空栏目后以现有内容出稿;推草稿时去掉未上传成功的配图而非拒推;`forceGenerateOnce` 执行前清除、失败恢复原稿;降级页重生成每天最多一次;成人低俗词表与吃瓜/黑料站点补齐
|
||
|
||
### 验证与发布
|
||
|
||
- 早报相关单测 105 项中 103 通过,2 项为 main 既有失败(`wechat-news-morning-images.test.mjs`);发布前测试 177/177;`check-release-ready.sh` 通过
|
||
- 2026-09-23 快速发布到 103:release_id `20260923-134014-57a9aadf`;健康检查、登录 401、goosed 18006–18014、关键环境变量、日志关键词、真实页面创建(201 + hasThumbnail)均通过
|
||
- 发布前已清洗 103 上 `daily-news-0923.html` 中 1 张低俗卡片,原文件保留为 `_archived-daily-news-0923-unsafe-20260923T0540Z.html`
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名仅用于审计追溯。
|
||
- 不要从该分支继续开发、merge、cherry-pick 或构建 runtime/artifact。
|
||
- 收尾分支 `docs/news-morning-repair-closeout`(本登记)随本登记一并快进合入 main,同样禁止再次引用。
|
||
|
||
## `feature/news-morning-content-safety`
|
||
|
||
**状态:已提交 / 已进入 main / 禁止再次引用。该分支保留仅用于只读追溯,不是待合并开发分支;远端分支已删除。**
|
||
|
||
审计日期:2026-09-23
|
||
分支 HEAD:`c136f068`
|
||
`origin/main` 对应提交:`c136f068`(快进合入)
|
||
|
||
### 交付内容
|
||
|
||
- `c136f068` 早报内容安全底线闸门:`news-content-safety-rules.mjs` + `wechat-news-morning-content-safety.mjs`,覆盖成人、未成年保护、法律合规、人文伦理;命中只过滤条目/图片,不阻断生成与发布
|
||
|
||
### 验证与发布
|
||
|
||
- 相关单测 177/177 通过;`check-release-ready.sh` 通过
|
||
- 2026-09-23 快速发布到 103:release_id `20260923-102959-c136f068`;发布后健康检查、登录 401、goosed 18006–18014、关键环境变量、日志关键词、真实页面创建(201 + hasThumbnail)均通过
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名仅用于审计追溯。
|
||
- 不要从该分支继续开发、merge、cherry-pick 或构建 runtime/artifact。
|
||
- 收尾分支 `docs/news-morning-closeout`(本登记 + `AGENTS.md` 生产测试账号 + portal-release 技能 3.4 说明)随本登记一并快进合入 main,同样禁止再次引用。
|
||
|
||
## `chore/wip-closeout-20260923`
|
||
|
||
**状态:禁止再次引用。改动随本登记一并合入 `origin/main`,该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-09-23
|
||
`origin/main` 对应提交:本登记与以下提交一并快进合入 main
|
||
|
||
### 交付内容
|
||
|
||
- `028bb18d` 单条新闻页生成(`news-item-templates.mjs` + `scripts/news-item-*.mjs`);定时任务在预期 HTML 落盘稳定后提前收尾(`waitForExpectedPageFile`)
|
||
- `e5cbe806` 105 微信出站代理放宽到 `/cgi-bin/*`、监听 `10.10.0.1`、超时 120s;新增 `wechat-egress-fetch.mjs`(尚未接入调用方)
|
||
- 补登记下列 5 个历史本地分支,以及 `docs/seo-geo-umami-disposition` 原有的 SEO/GEO 登记内容
|
||
|
||
### 验证摘要
|
||
|
||
- `node --test scheduled-task-executor.test.mjs`:19 passed
|
||
- `news-item-*`、`wechat-egress-fetch.mjs` `node --check` 通过;`wechat-egress-proxy-105.py` `py_compile` 通过
|
||
- 未做任何 103/105 发布;105 代理改动需单独部署
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名仅用于审计追溯。
|
||
- 不要从该分支继续开发、merge、cherry-pick 或构建 runtime/artifact。
|
||
|
||
## `feature/wechat-intent-phase0-fixes`
|
||
|
||
**状态:禁止再次引用(已作废)。提交未进入 `main`;该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-09-23
|
||
分支 HEAD:`ed4fed77`
|
||
`origin/main` 对应提交:无(审计时 `origin/main` @ `c36558e0`)
|
||
|
||
### 未进入 main 的提交
|
||
|
||
- `390617bb` feat(wechat): Phase 0/1 intent fixes and V2 LLM shadow router
|
||
- `3f728485` feat(wechat): Phase 2 lastDeliveredPage and Phase 3 V2 primary routing
|
||
- `bc14c03c` fix(wechat): allow uploaded-image page flow without generate_image gate
|
||
- `b9a70d4b` fix(wechat): pass disabled image mode into Cursor run metadata
|
||
|
||
(`ed4fed77` MCP 路径修复已以等价补丁进入 main。)
|
||
|
||
### 作废原因
|
||
|
||
main 之后已用频道前缀显式路由重做微信聊天 / 改页 / 定时任务分流(见 `feature/wechat-intent-channel-separation`),与本分支 V2 路由在 `wechat-mp.mjs` 等处大面积冲突。用户于 2026-09-23 确认作废。
|
||
|
||
### 最终处置
|
||
|
||
- 不要 merge、cherry-pick 该分支提交或从该分支构建 runtime/artifact。
|
||
- 若仍需 V2 LLM 路由,必须以最新 `origin/main` 重新开分支移植。
|
||
|
||
## `feature/wechat-news-morning-draft`
|
||
|
||
**状态:禁止再次引用。5 个提交均已以等价补丁进入 `origin/main`,该分支保留仅用于只读追溯。**
|
||
|
||
审计日期:2026-09-23
|
||
分支 HEAD:`010e2771`(`git cherry origin/main` 全部为 `-`)
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名仅用于审计追溯;远端同名分支已删除。
|
||
- 不要 merge、cherry-pick 或从该分支继续开发。
|
||
|
||
## `fix/wechat-restore-tkmind-menu`
|
||
|
||
**状态:禁止再次引用。菜单名 `TKMind` 已在 `origin/main` 的 `scripts/wechat-mp-menu.mjs` 中,该分支保留仅用于只读追溯。**
|
||
|
||
审计日期:2026-09-23
|
||
分支 HEAD:`342a9577`
|
||
|
||
### 最终处置
|
||
|
||
- 不要 merge、cherry-pick 或从该分支继续开发。
|
||
|
||
## `feature/h5-balance-quota-detail`
|
||
|
||
**状态:禁止再次引用。余额弹窗额度明细已由 `origin/main` 的 `e85b9b98`(show subscription quota totals in balance popover)替代实现,该分支保留仅用于只读追溯。**
|
||
|
||
审计日期:2026-09-23
|
||
分支 HEAD:`1e28521b`
|
||
|
||
### 最终处置
|
||
|
||
- 不要 merge、cherry-pick 或从该分支继续开发。
|
||
|
||
## `docs/seo-geo-umami-disposition`
|
||
|
||
**状态:禁止再次引用。其登记内容(下方 `feature/seo-geo-umami-catalog` / `feature/seo-geo-umami-dashboard`)已随 `chore/wip-closeout-20260923` 手工并入 main,该分支保留仅用于只读追溯。**
|
||
|
||
审计日期:2026-09-23
|
||
分支 HEAD:`b20951d5`
|
||
|
||
### 最终处置
|
||
|
||
- 不要 merge、cherry-pick 或从该分支继续开发。
|
||
|
||
## `feature/seo-geo-umami-catalog`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `main`,该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-09-17
|
||
分支 HEAD:`0de33ad5`
|
||
`main` 对应提交:`0de33ad5`
|
||
103 发布 artifact:`memind-portal-runtime-20260917-151803-0de33ad5`
|
||
|
||
### 交付内容
|
||
|
||
- SEO/GEO 管理目录(`mindspace-seo-geo-admin-catalog.mjs`)筛选期内合并 Umami `memind-pages` 统计(总访问/SEO/GEO 取 MySQL 与 Umami 较大值)
|
||
- 新增 `mindspace-seo-geo-umami-stats.mjs`:按 URL 路径匹配 MindSpace 直链;无发布记录的 `public/*.html` 工作区页从 Umami 追加到目录
|
||
- 搜索扩展至 `workspace_relative_path` / `summary`;同分次级排序 `publishedAt` 降序
|
||
|
||
### 验证摘要
|
||
|
||
- `node --test mindspace-seo-geo-umami-stats.test.mjs mindspace-seo-geo-admin-catalog.test.mjs`:10/10 通过
|
||
- `node --test db.test.mjs capabilities.test.mjs llm-providers.test.mjs wechat-mp.test.mjs`:187 项通过(快速发布前)
|
||
- 生产 Umami 探针:0916/0917 早报 SEO 各 4;103 快速发布 + 8081 健康 `ok`
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名仅用于审计追溯。
|
||
- 不要从该分支继续开发、merge、cherry-pick 或构建 runtime/artifact。
|
||
- 发布依据使用 `main` @ `0de33ad5` 或 artifact `memind-portal-runtime-20260917-151803-0de33ad5`。
|
||
- 配套 memind_adm 看板 UI/API 见同目录登记 `feature/seo-geo-umami-dashboard`。
|
||
|
||
## `feature/seo-geo-umami-dashboard`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 memind_adm `main`,Memind 侧登记本分支仅作跨仓审计索引,不是待合并开发分支。**
|
||
|
||
审计日期:2026-09-17
|
||
仓库:memind_adm
|
||
分支 HEAD:`eba3764`
|
||
`main` 对应提交:`eba3764`
|
||
103 发布 artifact:`memind-adm-20260917-154133-eba3764`(`memind_git_head=0de33ad5`)
|
||
|
||
### 交付内容
|
||
|
||
- SEO/GEO 看板(`SeoGeoAnalyticsPage.tsx`)默认按发布时间降序;搜索 300ms 防抖
|
||
- `/admin-api/analytics/seo-geo-catalog` 传入 `analyticsConfig` + `env`,供 Memind catalog 拉 Umami
|
||
- 页头展示 Umami 接入状态(`umami.available` / `reason`)
|
||
|
||
### 验证摘要
|
||
|
||
- 103 发布:`release_id=20260917-154133-eba3764`;8085/5174 健康 200
|
||
- live `memind-lib/mindspace-seo-geo-umami-stats.mjs` 存在
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名仅用于审计追溯。
|
||
- 不要从该分支继续开发、merge、cherry-pick 或构建 md.tkmind.cn artifact。
|
||
- 发布依据使用 memind_adm `main` @ `eba3764` 或 artifact `memind-adm-20260917-154133-eba3764`。
|
||
|
||
### 已抛弃的本地 WIP(勿恢复、勿 cherry-pick)
|
||
|
||
- **memind_adm `WechatPage.tsx` 早报预览「正文模式」`page_html` 文案**(2026-09-17 Cursor 会话内未提交 diff):仅为预览区增加 `contentMode === 'page_html'` 展示分支;**已由 studio 开发接手早报管理 UI,本地改动已 `git restore` 丢弃,禁止再次引用或提交。**
|
||
|
||
## `feature/news002-searxng-fallback`
|
||
|
||
**状态:禁止再次引用。已 fast-forward 并入 `origin/main`。**
|
||
|
||
审计日期:2026-09-22
|
||
分支 HEAD:`58003e88`
|
||
`origin/main` 对应提交:`58003e88`
|
||
|
||
### 交付内容
|
||
|
||
- news002 agent 输出偏薄时 SearXNG fallback 补栏/换卡
|
||
- 弱图与不可达配图过滤、头条卡自动晋升、推送闸门放宽
|
||
- 与 main 侧 news002 本地化/缺图文字卡/微信左上角小图布局整合
|
||
|
||
---
|
||
|
||
## `feature/searxng-news-morning-throttle`
|
||
|
||
**状态:禁止再次引用。已 fast-forward 并入 `origin/main` 并完成 103 Portal 快速发布。**
|
||
|
||
审计日期:2026-09-22
|
||
分支 HEAD:`b74ab4ec`
|
||
`origin/main` 对应提交:`b74ab4ec`
|
||
|
||
### 交付内容
|
||
|
||
- news002 微信草稿与静态页统一左上角小图(72~92px 缩略图)
|
||
- 远程配图本地化到当日 MindSpace `public/`,缺图保留文字卡、禁止默认占位小图
|
||
- SearXNG 预取与配图 enrichment 链路收紧
|
||
|
||
### 103 发布记录
|
||
|
||
- Portal runtime:`20260922-074006-b74ab4ec`(快速发布,`STUDIO_HOST=10.10.0.2`)
|
||
- git_head:`b74ab4ec46924be05c6928438816de5163079dc9`
|
||
- 发布后:Portal 200;`/auth/login` 401;105 隧道端口 19081 健康
|
||
|
||
---
|
||
|
||
## `feature/wechat-push-secret-codes`
|
||
|
||
**状态:禁止再次引用。已 fast-forward 并入 `origin/main` 并完成 103 Portal 快速发布。**
|
||
|
||
审计日期:2026-09-20
|
||
分支 HEAD:`bb6aa75b`
|
||
`origin/main` 对应提交:`bb6aa75b`
|
||
|
||
### 交付内容
|
||
|
||
- 暗号「美丽心情」:自动开通早安问候并回复已开启
|
||
- 暗号「新闻早报」:即时推送当日新闻早报正文
|
||
|
||
### 103 发布记录
|
||
|
||
- Portal runtime:`20260920-191100-bb6aa75b`(快速发布,`STUDIO_HOST=10.10.0.2`)
|
||
- full_backup:`/Users/john/Project/backups/memind/memind-full-20260920-191100-bb6aa75b-before.tar.gz`
|
||
- persist_backup:`/Users/john/Project/backups/memind/memind-persisted-20260920-191100-bb6aa75b-before.tar.gz`
|
||
- archived_source:`/Users/john/Project/archives/Memind-source-before-20260920-191100-bb6aa75b`
|
||
- 发布后:Portal 200;`/auth/login` 401;bundle 含暗号逻辑;日志无 error keywords
|
||
|
||
---
|
||
|
||
## `feature/wechat-push-subscription-release`
|
||
|
||
**状态:禁止再次引用。已 fast-forward 并入 `origin/main` 并完成 103 Portal 快速发布。**
|
||
|
||
审计日期:2026-09-20
|
||
分支 HEAD:`830f8a40`
|
||
`origin/main` 对应提交:`830f8a40`
|
||
|
||
### 交付内容
|
||
|
||
- 微信服务号 10 项数字订阅闭环(开通/改时间/取消/查状态/到点推送)
|
||
- 早报封面生图链路扩展 + `scripts/push-wechat-news-morning-draft.mjs` 一键推草稿
|
||
- 订阅推送与早报 Worker 同批上线
|
||
|
||
### 103 发布记录
|
||
|
||
- Portal runtime:`20260920-162911-830f8a40`(快速发布,`STUDIO_HOST=10.10.0.2`)
|
||
- full_backup:`/Users/john/Project/backups/memind/memind-full-20260920-162911-830f8a40-before.tar.gz`
|
||
- persist_backup:`/Users/john/Project/backups/memind/memind-persisted-20260920-162911-830f8a40-before.tar.gz`
|
||
- archived_source:`/Users/john/Project/archives/Memind-source-before-20260920-162911-830f8a40`
|
||
- 发布后:Portal/goosed 全 200;`/auth/login` 401;日志无 error keywords
|
||
|
||
---
|
||
|
||
## `feature/chat-intent-stage-a`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `main`,该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-09-19
|
||
分支 HEAD:`a30b62b9`
|
||
`main` 对应提交:`a30b62b9`
|
||
|
||
### 交付内容
|
||
|
||
- 阶段 A:`intent_routed` 稳定 `observation`,`npm run check:chat-intent-baseline`
|
||
- 阶段 D:上一轮 `direct_chat_completed` 后短句纠偏(含日期 session / `h5direct_`),默认关 + canary
|
||
- C-2 过激收窄:「先聊聊 / 先讨论」留在 `direct_chat`;同句生成页面或「你去执行」仍升 Agent
|
||
|
||
### 验证摘要
|
||
|
||
- `node scripts/run-memind-tests.mjs --mode changed --base origin/main`:通过
|
||
- 本地 5173 → 8086 john:先聊聊车载冰箱走 direct;再说「不对,你去执行」升 Agent
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名仅用于审计追溯。
|
||
- 不要从该分支继续开发、merge、cherry-pick 或构建 runtime/artifact。
|
||
- 发布依据使用 `main` @ `a30b62b9`(或后续从 `main` 打出的 runtime manifest)。
|
||
- 生产聊天路由 flag 仍默认关,未授权发布。
|
||
|
||
## `feature/news-morning-template-v2-local`
|
||
|
||
**状态:禁止再次引用。独立 commit 未进入 `origin/main`,等价能力已由主线后续 news-morning 提交覆盖;该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-09-19
|
||
分支 HEAD:`9acd3b84`
|
||
`origin/main` 对应提交:`82811d7b`
|
||
|
||
### 原始用途
|
||
|
||
早报模板增加 Google / X / 高校 / 全球股市等英文友好栏目,并扩展 SearXNG 预取。
|
||
|
||
### 未作为祖先进入 main 的原因
|
||
|
||
`9acd3b84` 不是 `origin/main` 的祖先。当前 `main` 已包含同主题栏目与检索(`wechat-news-morning-search.mjs` 的 google/x/universities,以及 draft 模板里的 Google/X/高校/全球股市栏目)。
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名仅用于审计追溯。
|
||
- 不要从该分支继续开发、merge、cherry-pick 或构建 runtime/artifact。
|
||
- 若仍要改早报栏目,必须以最新 `origin/main` 重新开分支。
|
||
|
||
## `fix/wechat-schedule-delivery-false-success`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `main`,该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-09-16
|
||
分支 HEAD:`d820247a`
|
||
`main` 对应提交:`d820247a`
|
||
103 发布 artifact:`memind-portal-runtime-20260916-213838-d820247a`
|
||
|
||
### 交付内容
|
||
|
||
- 修复 schedule reminder worker 将微信 deferred/skipped 客服消息误标为 success 的问题;失败走 `markReminderFailed` 重试
|
||
- scheduled task worker:`notifyChannel=wechat` 时 deferred 失败;`both` 时保留 web 通知
|
||
- 新增只读巡检脚本 `scripts/check-schedule-reminder-health-103.mjs`(`npm run check:schedule-reminder-health-103`)
|
||
|
||
### 验证摘要
|
||
|
||
- schedule-reminder-worker / scheduled-task-worker / notification-dispatcher 单测通过
|
||
- `verify-schedule-reminder-create` 15/15、`verify-schedule-reminder-routing` 8/8
|
||
- `db.test.mjs` + `capabilities.test.mjs` + `wechat-mp.test.mjs` 141 项通过
|
||
- 103 快速发布 + 8081 健康检查 `ok`;发版后 SQL 巡检 overdue=0、delivery success 24h=5
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名仅用于审计追溯。
|
||
- 不要从该分支继续开发、merge、cherry-pick 或构建 runtime/artifact。
|
||
- 发布依据使用 `main` @ `d820247a` 或 artifact `memind-portal-runtime-20260916-213838-d820247a`。
|
||
|
||
## `feature/baidu-seo-push`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `main`,该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-09-16
|
||
分支 HEAD:`85609667`
|
||
`main` 对应提交:`61a594f1`(含 PR #48 SEO + PR #49 CI fixture 修复)
|
||
|
||
### 交付内容
|
||
|
||
- m.tkmind.cn 百度站长 HTML/文件验证(`codeva-32NHQfJ8qL`)
|
||
- 服务端首页与 SPA fallback 注入验证 meta;`/baidu_verify_*.html` 路由
|
||
- sitemap 同 `page_id` 去重,优先 `/u/`,降权 `_archived`
|
||
- 百度批量推送脚本、103 每日 01:00 LaunchAgent(token 已配 103 `.env`)
|
||
|
||
### 验证摘要
|
||
|
||
- `node scripts/run-memind-tests.mjs --mode quick`:101 项通过
|
||
- Gitea CI(PR #48/#49):通过
|
||
- 103 热修:验证 meta、推送 token、定时任务已生效(发版前)
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名仅用于审计追溯。
|
||
- 不要从该分支继续开发、merge、cherry-pick 或构建 runtime/artifact。
|
||
- 发布依据使用 `main` @ `61a594f1`(或后续从 `main` 打出的 runtime manifest)。
|
||
|
||
## `feature/wechat-news-morning-inline-v2`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `main`,该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-09-16
|
||
分支 HEAD:`b8bcbcb7`
|
||
|
||
### 交付内容
|
||
|
||
- 微信早报草稿改用内联模板(去 Hero logo、热门旅游城市天气、新卡片版式)
|
||
- 自动生成任务要求天气卡写热门旅游城市,禁止用区域预报顶替
|
||
- 模板版本 `2026-09-16`
|
||
|
||
### 验证摘要
|
||
|
||
- `node scripts/run-memind-tests.mjs --mode changed`:ok
|
||
- 143 管理后台手动推送已验收(去 logo、旅游城市天气栏)
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名仅用于审计追溯。
|
||
- 不要从该分支继续开发、merge、cherry-pick 或构建 runtime/artifact。
|
||
- 发布依据使用 `main` 上包含本分支提交的 commit。
|
||
|
||
## `feature/seo-geo-universal`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `main`,该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-09-16
|
||
分支 HEAD:`357e26ab`
|
||
`main` 对应提交:`8d475087`(含 `fix/wechat-draft-test-fixture` 发布阻断修复)
|
||
|
||
### 交付内容
|
||
|
||
- 落盘/交付自动补齐 `mindspace-geo`(Finish sync、delivery writeBack、health-report)
|
||
- 全页面 SEO/GEO 回填工具链、`storage publications` 扫描、143 生产回填脚本
|
||
- Plaza/平台静态页 SEO 注入与统一审计
|
||
|
||
### 验证摘要
|
||
|
||
- `npm run verify:seo-geo`:46 项通过
|
||
- `npm run verify:mindspace-publish-guards`:ok
|
||
- 143 存量回填:2683 页,0 错误 / 0 警告
|
||
- 103 快速发布:`20260916-103611-8d475087`(Portal 8081 健康 200)
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名仅用于审计追溯。
|
||
- 不要从该分支继续开发、merge、cherry-pick 或构建 runtime/artifact。
|
||
- 发布依据使用 `main` @ `8d475087`(或后续从 `main` 打出的 runtime manifest)。
|
||
|
||
## `feature/learn-standalone-pages`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `main`,该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-09-16
|
||
分支 HEAD:`63f1b8ee`
|
||
`main` 对应提交:`01b9a8c1`
|
||
|
||
### 交付内容
|
||
|
||
- `/learn` 独立静态页(Page Data 驱动)与 Portal 静态路由挂载
|
||
- 后台页面列表同步改走 `listSync` 轻量 `pageSyncService`,避免 remote `syncAndDeliver` 60s 超时拖慢 Portal
|
||
|
||
### 验证摘要
|
||
|
||
- `npm run verify:mindspace-page-sync-guards`:ok
|
||
- `node --test server/portal-mindspace-page-core-routes.test.mjs server/portal-static-delivery-routes.test.mjs`:ok
|
||
- 103 快速发布:`20260916-090102-63f1b8ee`(Portal 8081 / goosed 18006–18014 健康 200)
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名仅用于审计追溯。
|
||
- 不要从该分支继续开发、merge、cherry-pick 或构建 runtime/artifact。
|
||
- 发布依据使用 `main` @ `01b9a8c1`(或后续从 `main` 打出的 runtime manifest)。
|
||
|
||
## `feature/news-morning-force-archive`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入本地 `main`,该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-09-15
|
||
分支 HEAD:`b89b74f2`
|
||
`main` 对应提交:`b89b74f2`
|
||
|
||
### 交付内容
|
||
|
||
- `forceGenerateOnce` 先把当日 `daily-news-MMDD.html` 归档为 `_archived-*`,再跑生成,避免沿用旧稿
|
||
|
||
### 验证摘要
|
||
|
||
- `node scripts/run-memind-tests.mjs --mode changed`:ok
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名仅用于审计追溯。
|
||
- 不要从该分支继续开发、merge、cherry-pick 或构建 runtime/artifact。
|
||
- 发布依据使用 `main` @ `b89b74f2`。
|
||
|
||
## `feature/news-morning-searxng-prefetch`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入本地 `main`,该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-09-15
|
||
分支 HEAD:`34ab59e0`
|
||
`main` 对应提交:`34ab59e0`
|
||
|
||
### 交付内容
|
||
|
||
- 早报生成前并行预取 SearXNG(国内/国际/热门事件/财经科技/天气)
|
||
- 任务要求 `tkmind_search(type=news)` 与 `web_search` 补漏,禁止只靠 web_search
|
||
- SearXNG 适配器支持 `categories` / `language`
|
||
|
||
### 验证摘要
|
||
|
||
- `node scripts/run-memind-tests.mjs --mode changed`:ok
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名仅用于审计追溯。
|
||
- 不要从该分支继续开发、merge、cherry-pick 或构建 runtime/artifact。
|
||
- 发布依据使用 `main` @ `34ab59e0`。
|
||
|
||
## `feature/news-morning-fresh-daily`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入本地 `main`,该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-09-15
|
||
分支 HEAD:`4fc488ad`
|
||
`main` 对应提交:`4fc488ad`
|
||
|
||
### 交付内容
|
||
|
||
- 新闻早报生成必须联网搜索当日内容,禁止复制历史 `daily-news-*.html` 正文
|
||
- `pushDraft` 默认拒绝非当日页面
|
||
- `forceGenerateOnce` + `scripts/force-wechat-news-morning-generate.mjs` 用于发版后强制重生成
|
||
|
||
### 验证摘要
|
||
|
||
- `node scripts/run-memind-tests.mjs --mode changed`:ok
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名仅用于审计追溯。
|
||
- 不要从该分支继续开发、merge、cherry-pick 或构建 runtime/artifact。
|
||
- 发布依据使用 `main` @ `4fc488ad`。
|
||
|
||
## `feature/wechat-draft-long-page-errors`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `origin/main`,该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-09-12
|
||
分支 HEAD:`014c3b79`
|
||
`origin/main` 对应提交:`014c3b79`
|
||
|
||
### 交付内容
|
||
|
||
- 公众号草稿超过 2 万字时先给「阅读原文 / 关注区」留额度,再截正文
|
||
- 公开页失败弹窗展示服务端真实原因,不再误报需要登录 MindSpace
|
||
- 登记 `feature/learn-assistant` 为禁止再次引用
|
||
|
||
### 验证摘要
|
||
|
||
- `npm run verify:mindspace-wechat-mp`:40 passed
|
||
- `node scripts/run-memind-tests.mjs --mode changed`:ok
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名仅用于审计追溯。
|
||
- 不要从该分支继续开发、merge、cherry-pick 或构建 runtime/artifact。
|
||
- 远端功能分支删除;发布依据使用 `main` @ `014c3b79`。
|
||
|
||
## `feature/learn-assistant`
|
||
|
||
**状态:禁止再次引用。学习助手相关提交尚未进入 `main`;该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-09-12
|
||
分支 HEAD:`ee8677cc`
|
||
`origin/main` 对应提交:`ce2a4b0e`
|
||
|
||
### 原始用途
|
||
|
||
家庭学习助手 API / 公开页,以及学习页跳过 Plaza 分享组件。另含 143 双机开发 runbook、以及随后已由主线覆盖的部分文档登记。
|
||
|
||
### 未进入 main 的提交
|
||
|
||
- `348e1928` feat(learn): add family learning assistant API routes and public pages
|
||
- `6e7a75a7` docs: add 143 Memind-dev dual-machine development runbook
|
||
- `ee8677cc` fix(learn): skip plaza share widget on learning assistant pages
|
||
- `b285fe24` docs: register wechat-mp-cursor-timeout-takeover branch disposition
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名仅用于审计追溯。
|
||
- 不要从该分支继续开发、merge、cherry-pick 或构建 runtime/artifact。
|
||
- 若仍要做学习助手,必须以最新 `origin/main` 重新开分支移植,不得续用本分支。
|
||
|
||
## `feature/wechat-news-morning-draft-worker`
|
||
|
||
**状态:禁止再次引用。已 fast-forward 并入 `origin/main` 并完成 103 Portal + memind_adm 发布。**
|
||
|
||
审计日期:2026-09-11
|
||
Memind HEAD:`1f6e8c9b` · memind_adm HEAD:`799afd1`
|
||
|
||
### 交付内容
|
||
|
||
- Portal:`wechat-news-morning-draft-worker` 定时生成当日 `daily-news-MMDD.html` 并自动推微信草稿箱
|
||
- 管理后台:今日早报状态卡片 + 自动预览当天页面与草稿
|
||
|
||
### 103 发布记录
|
||
|
||
- Portal runtime:`20260911-090522-1f6e8c9b`(快速发布,`STUDIO_HOST=10.10.0.2`)
|
||
- memind_adm:`20260911-092700-799afd1`
|
||
- 发布后日志:`WeChat news morning draft worker enabled`
|
||
|
||
---
|
||
它是分支复用、合并、cherry-pick 和清理前的必查清单。
|
||
|
||
## `feature/memfuse-recall-benchmark`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `origin/main`,该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-09-02
|
||
分支 HEAD:`f6c82182`
|
||
`origin/main` 对应提交:`f6c82182`
|
||
|
||
### 原始用途
|
||
|
||
MemFuse 检索优化与 bench 基线、Experience V1(schema / reflect / 检索加权 / metrics)、Experience reflect worker(env 门控)、会话历史 sidebar 刷新 merge 顺序修复、本地 MindSpace 交付链接规则与 reflect 验收脚本。
|
||
|
||
### 验证摘要
|
||
|
||
- `node scripts/run-memind-tests.mjs --mode guards`:176 passed
|
||
- `node scripts/run-memind-tests.mjs --mode release`:176 passed
|
||
- `node --test db.test.mjs capabilities.test.mjs llm-providers.test.mjs wechat-mp.test.mjs`:176 passed
|
||
- `npm run verify:experience-reflect-local`:OK
|
||
- `memory-v2-runtime.test.mjs` pgvector 参数断言修复:21 passed
|
||
- 103 快速发布 `memind-portal-runtime-20260902-151408-f6c82182.tar.gz`,Portal 8081 + goosed 18006–18014 全部 200
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名用于审计追溯。
|
||
- 不要从该分支继续开发、merge、cherry-pick 或构建 runtime/artifact。
|
||
|
||
## `feature/wechat-intent-channel-separation`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `origin/main`,该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-08-31
|
||
分支 HEAD:`8f88eec2`
|
||
`origin/main` 对应提交:`8f88eec2`
|
||
|
||
### 原始用途
|
||
|
||
微信服务号聊天、改页、定时任务分流:频道前缀强制路由、【改页】prompt 钉原文件、改页/URL 强制新会话,避免误进 Goose 聊天烧 token。
|
||
|
||
### 验证摘要
|
||
|
||
- `npm run verify:intent-transaction-layer`:63 passed
|
||
- 103 发布 `memind-portal-runtime-20260831-141716-8f88eec2.tar.gz`,8081 健康
|
||
- 103 已为唐启用 WeChat LLM Intent Router shadow(`custom_deepseek` + `deepseek-v4-flash`,canary openid)
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名用于审计追溯。
|
||
- 不要从该分支继续开发、merge、cherry-pick 或构建 runtime/artifact。
|
||
|
||
## `feature/scheduled-task-wechat-delivery-fix`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `origin/main`,该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-08-17
|
||
分支 HEAD:`1ca06e58`
|
||
`origin/main` 对应提交:`1ca06e58`
|
||
|
||
### 原始用途
|
||
|
||
修复唐用户定时新闻任务微信链接被 guard 误杀、页面未落盘即推送、以及 reconcile 后未补发微信的问题。
|
||
|
||
### 验证摘要
|
||
|
||
- `node --test scheduled-task-executor.test.mjs scheduled-task-worker.test.mjs notification-dispatcher.test.mjs`:22 passed
|
||
- `node --test wechat-mp.test.mjs`:100 passed(含 verifiedHtmlUrls 用例)
|
||
- 103 快速发布绑定 `1ca06e58`
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名用于审计追溯。
|
||
- 不要从该分支继续开发、merge、cherry-pick 或构建 runtime/artifact。
|
||
|
||
## `feature/production-inspection-fixes`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `origin/main`,该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-08-16
|
||
分支 HEAD:`843e4d10`
|
||
`origin/main` 对应提交:`843e4d10`
|
||
|
||
### 原始用途
|
||
|
||
103 生产巡检后续修复:定时任务去重、orphan 交付契约 reconcile(HTML 缺失 mark failed)、MindSpace remote 超时 30s、103 数据/Goosed harness 修复脚本。
|
||
|
||
### 验证摘要
|
||
|
||
- `node --test scheduled-task-executor.test.mjs scheduled-task-service.test.mjs`:29 passed
|
||
- 103 快速发布 `memind-portal-runtime-20260816-085224-843e4d10`,Portal 8081 健康
|
||
- 103 数据修复:取消唐用户 4 个重复/废弃定时任务,保留 5:30 新闻 + 8:00 天气各 1 个
|
||
- Goosed `run-goosed-native.sh` PATH 已修补,18007–18014 plist PATH 已更新
|
||
- memind_adm LaunchAgent 脚本已部署,8085/5174 健康
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名用于审计追溯。
|
||
- 不要从该分支继续开发、merge、cherry-pick 或构建 runtime/artifact。
|
||
|
||
## `feature/scheduled-task-page-delivery-fix`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `origin/main`,该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-08-16
|
||
分支 HEAD:`7c0ed58a`
|
||
`origin/main` 对应提交:`7c0ed58a`
|
||
|
||
### 原始用途
|
||
|
||
修复唐用户每日新闻定时任务推送链接后页面 409(交付契约卡在 `preparing`)的问题:定时任务路径补齐契约 prepare/release、有限重试、推送前门禁,以及 worker 扫描 reconcile。
|
||
|
||
### 验证摘要
|
||
|
||
- `node --test scheduled-task-executor.test.mjs scheduled-task-worker.test.mjs`:14 passed
|
||
- `node scripts/run-memind-tests.mjs --mode changed`:通过
|
||
- 发包前测试 `db/capabilities/llm-providers/wechat-mp`:171 passed
|
||
- 103 快速发布 `memind-portal-runtime-20260816-082806-7c0ed58a`,Portal 8081 健康,新闻页 200
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名用于审计追溯。
|
||
- 不要从该分支继续开发、merge、cherry-pick 或构建 runtime/artifact。
|
||
|
||
## `feature/gate-data01-delivery-keywords`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `origin/main`,该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-08-14
|
||
分支 HEAD:`293ac69a`
|
||
`origin/main` 对应提交:`293ac69a`
|
||
|
||
### 原始用途
|
||
|
||
DATA-01 提示要求不要停在方案确认,却仍断言回复包含「方案/确认」。改为断言「问卷/后台」交付,并登记微信 image_url 分支处置。
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名用于审计追溯。
|
||
- 不要从该分支继续开发、merge、cherry-pick 或构建 runtime/artifact。
|
||
|
||
## `feature/wechat-image-url-session-rotate`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `origin/main`,该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-08-14
|
||
分支 HEAD:`41f245c8`
|
||
`origin/main` 对应提交:`41f245c8`(其后主线继续快进了图片额度回填提交)
|
||
|
||
### 原始用途
|
||
|
||
Goose native 对历史图片清洗返回 PUT 405,DeepSeek 下一轮拒绝 `image_url`。微信「解读详细报告,做成页面」跟进应换新会话并重新附上报告图,且 VL 后不再把 `imageUrls` 传给文本模型。
|
||
|
||
### 验证摘要
|
||
|
||
- `node --test wechat-mp.test.mjs`:94 passed
|
||
- `node --test chat-image-turn-scope.test.mjs tkmind-proxy-vision.test.mjs tkmind-proxy.test.mjs`:53 passed
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名用于审计追溯。
|
||
- 不要从该分支继续开发。
|
||
- 不要 merge、cherry-pick 该分支提交或从该分支构建 runtime/artifact。
|
||
- 后续开发必须从最新 `origin/main` 新建分支。
|
||
|
||
## `fix/image-quota-migration-backfill`
|
||
|
||
**状态:禁止再次引用。改动已提交并将随本分支合入 `origin/main`,该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-08-14
|
||
代码修复:`8cf1c772`
|
||
`origin/main` 对应提交:本登记与代码修复一并快进合入 main
|
||
|
||
### 原始用途
|
||
|
||
- 补建免费套餐时写入套餐目录图片额度,避免 `period_images_limit = 0` 被当成无限
|
||
- 启动时回填「上限为 0、但目录额度有限」的有效订阅
|
||
- 记录 2026-08-14 柯彤无限图片额度事故
|
||
|
||
### 验证摘要
|
||
|
||
- `node --test billing-subscription.test.mjs`:27 passed
|
||
- 生产已回填 33 条误标无限的有效免费订阅;柯彤剩余 6 / 总计 10
|
||
|
||
## 处置规则
|
||
|
||
- 标记为“禁止再次引用”的分支只允许用于只读历史追溯。
|
||
- 不得从这类分支继续开发,不得 merge、cherry-pick、打包或发布。
|
||
- 不得把旧 worktree 中的未提交文件直接覆盖到当前主线;应先与最新 `origin/main` 逐文件比较。
|
||
- 若确需恢复历史代码,必须重新评估当前 `main`,在最新主线上建立新分支,并重新执行对应测试和 verify。
|
||
- 已提交、已合入并已进入 `origin/main` 的开发分支可以保留本地分支名;保留只用于审计和追溯,不代表还有待合并工作。
|
||
- 远端功能分支默认在闭环后删除;发布和审计依据使用 `main` commit、tag、CI 记录或 runtime manifest,不使用功能分支名。
|
||
- 这类保留分支必须在本文件登记清楚:分支名、最终 HEAD、进入 `origin/main` 的提交、验证摘要,以及“禁止再次引用”的状态。
|
||
|
||
## `feature/md-admin-domain`(Memind + memind_adm)
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `origin/main`,该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-08-11
|
||
分支 HEAD:`8716885`(Memind)、`0da7f04`(memind_adm)
|
||
`origin/main` 对应提交:同上
|
||
|
||
### 原始用途
|
||
|
||
- 管理后台公网域名从 `gadm.tkmind.cn` 更正为 `md.tkmind.cn`
|
||
- 文档与 nginx 示例明确 **105 反代 → 103 memind_adm**(5174/8085)
|
||
- memind_adm 默认 `VITE_BASE_PATH=/`,使 `/analytics/seo-geo` 在根路径可访问
|
||
|
||
### 生产发布
|
||
|
||
| 仓库 | release_id |
|
||
|------|------------|
|
||
| memind_adm | `20260810-173922-0da7f04` |
|
||
| 105 nginx | `md.tkmind.cn.conf` 已 reload |
|
||
|
||
### 验证摘要
|
||
|
||
- `https://md.tkmind.cn/analytics/seo-geo` → 200
|
||
- 103 `8085/health` → ok;5174 `base=/`
|
||
- `/ops/analytics/seo-geo` → 301 到 `/analytics/seo-geo`
|
||
|
||
## `feature/fix-rybbit-publication-tracking`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `origin/main`,该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
> **2026-08 补充**:该分支引入的 Rybbit tracking 已于 2026-08 全量下线并自代码库移除;当前访问统计 **仅 Umami**,见 [analytics-platform.md](analytics-platform.md)。勿再从本分支恢复 Rybbit 相关实现。
|
||
|
||
审计日期:2026-07-27
|
||
分支 HEAD:`90ee4c3`
|
||
`origin/main` 对应提交:`90ee4c3`
|
||
|
||
### 原始用途
|
||
|
||
该分支用于补齐 `m.tkmind.cn` 发布页 Rybbit tracking:
|
||
|
||
- 在 `/u/:owner/pages/:slug` 与 `/MindSpace/:user/public/...` 发布页 HTML / shell 注入 Rybbit tracker。
|
||
- Portal bootstrap 在 Rybbit env secret 缺失时复用 `mindspace_config` 中存储的 MindSpace analytics secret。
|
||
- 补充发布页交付、domain bootstrap 与 Rybbit 配置测试。
|
||
|
||
### 已进入 `main` 的提交
|
||
|
||
| 提交 | 内容 |
|
||
|---|---|
|
||
| `c7718c6` | 注入 Rybbit tracking 到发布页交付链路 |
|
||
| `90ee4c3` | 修复空字符串 env secret 阻断存储 secret fallback |
|
||
|
||
### 验证摘要
|
||
|
||
本分支闭环前已通过:
|
||
|
||
- `node --test mindspace-analytics.test.mjs mindspace-analytics-discovery.test.mjs server/portal-domain-services-bootstrap.test.mjs server/portal-published-page-delivery.test.mjs server/portal-publication-shell.test.mjs`(历史验证含 `mindspace-rybbit.test.mjs`,Rybbit 已移除)
|
||
- `npm run verify:chat-finish-sync`
|
||
- `npm run verify:mindspace-publish-guards`
|
||
- `npm run verify:mindspace-publish-guards:full`
|
||
- `npm run verify:mindspace-page-sync-guards`
|
||
- `npm run verify:h5-session-patches`
|
||
- `npm run build`
|
||
- `npm test`
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名用于审计追溯。
|
||
- 远端功能分支如曾创建,应在确认 `origin/main` 包含对应提交后删除;发布依据是 `90ee4c3` 及后续 main/tag/manifest,不是该功能分支名。
|
||
- 不要从该分支继续开发。
|
||
- 不要 merge、cherry-pick 该分支提交或从该分支构建 runtime/artifact。
|
||
- 后续开发必须从最新 `origin/main` 新建分支。
|
||
|
||
## `codex/fix-portal-canary-backup-ssh`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `origin/main`,该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-07-27
|
||
分支 HEAD:`7ba63a8`
|
||
`origin/main` 对应提交:`7ba63a8`
|
||
|
||
### 原始用途
|
||
|
||
该分支用于修复 Portal canary 生产发布脚本在 103 完整备份阶段的 SSH 中断问题:
|
||
|
||
- 将 103 full stable backup 与 persisted-data backup 拆到候选安装前的独立 SSH 步骤。
|
||
- 保留 full/persisted 备份硬闸门,后续 canary 安装远程脚本只复核已生成备份的 sha、gzip 与 `.env` 内容。
|
||
- 避免长 here-doc 发布脚本在大备份阶段被远端关闭连接后无法继续发布。
|
||
|
||
### 已进入 `main` 的提交
|
||
|
||
| 提交 | 内容 |
|
||
|---|---|
|
||
| `7ba63a8` | 拆分 Portal canary 发布前 103 备份步骤 |
|
||
|
||
### 验证摘要
|
||
|
||
本分支闭环前已通过:
|
||
|
||
- `bash -n scripts/release-portal-canary-prod.sh`
|
||
- `node scripts/build-portal-runtime.mjs`
|
||
- `ALLOW_MAIN_RELEASE=1 bash scripts/release-portal-canary-prod.sh --dry-run --yes`
|
||
- Portal production Gate:187/187 通过,report commit `7ba63a83b1b52add4536a9391e3f3ea7869e569f`
|
||
- `ALLOW_MAIN_RELEASE=1 bash scripts/release-portal-canary-prod.sh --yes`
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名用于审计追溯。
|
||
- 不要从该分支继续开发。
|
||
- 不要 merge、cherry-pick 该分支提交或从该分支构建 runtime/artifact。
|
||
- 后续开发必须从最新 `origin/main` 新建分支。
|
||
|
||
## `codex/product-quality-p0`
|
||
|
||
**状态:禁止再次引用。功能已进入 `main`,该分支不是待合并开发分支。**
|
||
|
||
审计日期:2026-07-17
|
||
历史分支基线:`6ef3ea8`
|
||
历史分支 HEAD:`ebfdc21`
|
||
审计时相对 `main`:分支侧 6 个提交、主线侧 53 个提交
|
||
|
||
### 原始用途
|
||
|
||
该分支用于 Memind 产品质量 P0 审计与修复,内容包括:
|
||
|
||
- 修复用户可见的聊天 routing/skill 前缀、旧 Page Data prompt 和部分 MindSpace/语音交互问题。
|
||
- 修复页面发布确认状态与过期未确认页面的 `owner_only` 回退。
|
||
- 将 `src/api/client.ts` 拆分为 MindSpace、发布、Page Data、Agent Jobs 等模块。
|
||
- 在 worktree 中继续处理聊天 Finish 顺序、消息按 ID 合并和发布 HTML 的预览 CSP 清理。
|
||
|
||
### 已进入 `main` 的提交
|
||
|
||
原分支提交已经在更新后的主线基线上重新落地,不能因为 commit hash 不同而再次引用:
|
||
|
||
| 原分支提交 | `main` 对应提交 | 内容 |
|
||
|---|---|---|
|
||
| `f7a9c21` | `77f1ea8` | 产品交互加固 |
|
||
| `db17691` | `f2d0c99` | 旧 prompt 与发布确认兼容 |
|
||
| `ad3c5bf` | `f6dcf5b` | MindSpace API 模块拆分 |
|
||
| `3504ee0` | `8ac159a` | 发布 API 模块拆分 |
|
||
| `456ec54` | `ddb3a33` | Page Data API 模块拆分 |
|
||
| `ebfdc21` | `6250b59` | Agent Jobs API 模块拆分 |
|
||
|
||
`456ec54` 与 `ddb3a33` 的 patch-id 不同,是因为主线重新落地时原有 Page Data 路径已经从
|
||
`/page-data` 更新为 `/admin/page-data`。两边最终的 `src/api/page-data.ts` 内容一致;
|
||
`ddb3a33` 是适配更新后主线的正确落点,不是遗漏提交。
|
||
|
||
### 遗留 worktree 的五文件修改
|
||
|
||
`/Users/john/Project/Memind-product-quality-p0` 曾保留以下五个未提交文件:
|
||
|
||
- `chat-finish-sync.mjs`
|
||
- `chat-finish-sync.test.mjs`
|
||
- `mindspace-public-delivery.mjs`
|
||
- `mindspace-public-delivery.test.mjs`
|
||
- `src/utils/message.ts`
|
||
|
||
这些修改已在 `933466c`(`fix: preserve chat order and published page scripts`)进入 `main`。
|
||
2026-07-17 复核结果:其中四个 worktree 文件与 `main` 字节级一致;
|
||
`chat-finish-sync.test.mjs` 的 `main` 版本额外包含两组回归测试,因此主线版本更完整。
|
||
|
||
### 最终处置
|
||
|
||
- 不要 merge `codex/product-quality-p0`。
|
||
- 不要 cherry-pick 该分支的 6 个提交。
|
||
- 不要从其脏 worktree 复制上述五个文件覆盖主线。
|
||
- 不要从该分支或 worktree 构建任何 runtime/artifact。
|
||
- 后续开发必须从最新 `origin/main` 新建分支。
|
||
|
||
该分支及 worktree 是否删除,属于独立清理动作;删除前仍需用户明确批准。
|
||
|
||
## `codex/retain-completed-branch-history`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `origin/main`,该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-07-28
|
||
分支 HEAD:`3de116d`
|
||
`origin/main` 对应提交:`3de116d`
|
||
|
||
### 原始用途
|
||
|
||
该分支用于在长图导出时隐藏平台操作控件,并补充对应回归测试。
|
||
|
||
### 验证摘要
|
||
|
||
- Git 祖先检查确认分支 HEAD 已进入 `origin/main`。
|
||
- 实现与回归测试分别落在 `mindspace-long-image.mjs` 和
|
||
`mindspace-long-image.test.mjs`。
|
||
- 本次仅补录历史处置事实,没有重新引用该分支或重跑历史发布。
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名用于审计追溯。
|
||
- 不要从该分支继续开发。
|
||
- 不要 merge、cherry-pick 该分支提交或从该分支构建 runtime/artifact。
|
||
- 后续开发必须从最新 `origin/main` 新建分支。
|
||
|
||
## `feature/relax-release-gate-pending-ci`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `origin/main`,该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-07-28
|
||
分支 HEAD:`a95681e`
|
||
`origin/main` 对应提交:`a95681e`
|
||
|
||
### 原始用途
|
||
|
||
该分支用于在候选提交已与 `origin/main` 同步时处理 Gitea CI 长时间保持
|
||
pending 的发布闸门判定,并补充 CI 状态回归测试。
|
||
|
||
### 验证摘要
|
||
|
||
- Git 祖先检查确认分支 HEAD 已进入 `origin/main`。
|
||
- 规则实现和回归测试分别落在 `release-gate/ci-status.mjs` 和
|
||
`release-gate/ci-status.test.mjs`。
|
||
- 本次仅补录历史处置事实,没有重新引用该分支或重跑历史发布。
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名用于审计追溯。
|
||
- 不要从该分支继续开发。
|
||
- 不要 merge、cherry-pick 该分支提交或从该分支构建 runtime/artifact。
|
||
- 后续开发必须从最新 `origin/main` 新建分支。
|
||
|
||
## `feature/relax-release-gate-rel-checks`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `origin/main`,该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-07-28
|
||
分支 HEAD:`82b74d7`
|
||
`origin/main` 对应提交:`82b74d7`
|
||
|
||
### 原始用途
|
||
|
||
该分支用于调整常规 Portal 发布的 REL 检查,包括忽略本地 runtime 产物、
|
||
同步主线时的 CI 状态判定,以及通过两次干净构建验证 artifact 可复现性。
|
||
|
||
### 验证摘要
|
||
|
||
- Git 祖先检查确认分支 HEAD 已进入 `origin/main`。
|
||
- 变更包含 `release-gate/ci-status.test.mjs`、
|
||
`release-gate/runner.test.mjs` 和 artifact 可复现脚本。
|
||
- 本次仅补录历史处置事实,没有重新引用该分支或重跑历史发布。
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名用于审计追溯。
|
||
- 不要从该分支继续开发。
|
||
- 不要 merge、cherry-pick 该分支提交或从该分支构建 runtime/artifact。
|
||
- 后续开发必须从最新 `origin/main` 新建分支。
|
||
|
||
## `codex/wechat-page-data-delivery-guard`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `origin/main`,该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-07-28
|
||
功能提交:`8bfb795`
|
||
`origin/main` 对应提交:`8bfb795`
|
||
|
||
### 原始用途
|
||
|
||
该分支用于为微信 Page Data 生成与修复增加独立 Aider 发送前审核,借鉴 Tool Gateway
|
||
能力但不写入 `h5_agent_runs`,并通过用户级开关和不可变用户标识限制灰度范围。
|
||
|
||
### 验证摘要
|
||
|
||
- 全量 Node 测试 `1399/1399` 通过。
|
||
- Page Data 专项验证 `78/78` 通过。
|
||
- 生产发布守门员单测 `90/90` 通过。
|
||
- Portal runtime 构建、运行时语法检查和 MindSpace 附件链接检查通过。
|
||
- Git 祖先检查确认功能提交已进入 `origin/main`。
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名用于审计追溯。
|
||
- 不要从该分支继续开发。
|
||
- 不要 merge、cherry-pick 该分支提交或从该分支构建 runtime/artifact。
|
||
- 后续开发必须从最新 `origin/main` 新建分支。
|
||
|
||
## `codex/wechat-page-data-canary-config`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `origin/main`,该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-07-28
|
||
功能提交:`1e91195`
|
||
`origin/main` 对应提交:`1e91195`
|
||
|
||
### 原始用途
|
||
|
||
该分支用于把微信 Page Data Aider 审核开关和唐用户不可变 UUID 注入 103 候选
|
||
Portal,避免在线修改稳定 `.env`,并确保稳定 8081 与其他用户不进入审核链路。
|
||
|
||
### 验证摘要
|
||
|
||
- 全量 Node 测试 `1399/1399` 通过。
|
||
- 生产发布守门员单测 `90/90` 通过。
|
||
- 灰度发布脚本、候选启动脚本和远端 heredoc shell 语法检查通过。
|
||
- Git 祖先检查确认功能提交已进入 `origin/main`。
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名用于审计追溯。
|
||
- 不要从该分支继续开发。
|
||
- 不要 merge、cherry-pick 该分支提交或从该分支构建 runtime/artifact。
|
||
- 后续开发必须从最新 `origin/main` 新建分支。
|
||
|
||
## `codex/wechat-page-data-canary-aider-bin`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `origin/main`,该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-07-28
|
||
功能提交:`8cd85a9`
|
||
`origin/main` 对应提交:`8cd85a9`
|
||
|
||
### 原始用途
|
||
|
||
该分支用于修复 launchd 候选进程无法从系统 `PATH` 定位 Aider 的问题,将
|
||
`/opt/homebrew/bin/aider` 纳入 103 灰度预检、LaunchAgent 环境和候选启动校验。
|
||
|
||
### 验证摘要
|
||
|
||
- 全量 Node 测试 `1399/1399` 通过。
|
||
- 生产发布守门员单测 `90/90` 通过。
|
||
- 候选启动测试确认稳定 `.env` 无法覆盖受控 Aider 绝对路径。
|
||
- Git 祖先检查确认功能提交已进入 `origin/main`。
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名用于审计追溯。
|
||
- 不要从该分支继续开发。
|
||
- 不要 merge、cherry-pick 该分支提交或从该分支构建 runtime/artifact。
|
||
- 后续开发必须从最新 `origin/main` 新建分支。
|
||
|
||
## `codex/release-gate-impact-only`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `origin/main`,该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-07-28
|
||
功能提交:`7a381db`
|
||
`origin/main` 对应提交:`7a381db`
|
||
|
||
### 原始用途
|
||
|
||
该分支用于将生产发布 Gate 调整为按 Git 影响域自动选择核心和受影响场景,
|
||
取消每次生产发布自动执行 187 项全量回归;无法识别影响范围或基线异常时硬阻断发布。
|
||
|
||
### 验证摘要
|
||
|
||
- 全量 Node 测试 `1399/1399` 通过。
|
||
- 生产发布守门员单测 `92/92` 通过。
|
||
- 对当前稳定 103 基线执行影响域选择,命中 `126/187`,无未映射文件。
|
||
- Git 祖先检查确认功能提交已进入 `origin/main`。
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名用于审计追溯。
|
||
- 不要从该分支继续开发。
|
||
- 不要 merge、cherry-pick 该分支提交或从该分支构建 runtime/artifact。
|
||
- 后续开发必须从最新 `origin/main` 新建分支。
|
||
|
||
## `feature/h5-llm-router-canary`
|
||
|
||
**状态:禁止再次引用。分支核心功能已提交并进入 `origin/main`,且已随 `main` 发布到 103 生产;该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-08-03
|
||
分支 HEAD:`0ea72f4`
|
||
`origin/main` 对应提交:`5ead1ab`(103 生产 release `20260802-214434-5ead1ab`)
|
||
|
||
### 原始用途
|
||
|
||
该分支用于 H5 LLM Intent Router 灰度验证,以及同一开发周期内的 WeChat 页面交付、缩略图、
|
||
45047/45015 延迟发送等修复。
|
||
|
||
### 为何不再使用该分支
|
||
|
||
1. **LLM Router 核心功能已在 `main` 中**,关键提交包括:
|
||
- `e45c930` — LLM intent router、direct chat execution、Memory V2 light intervention
|
||
- `43bc8bb` — H5 LLM intent router admin controls and shadow verification
|
||
- `91e140d` — WeChat admin-pluggable LLM intent router
|
||
2. **103 生产已从 `main` 发布**,当前 manifest 指向 `5ead1ab`(2026-08-02),已包含上述能力。
|
||
3. 分支 HEAD `0ea72f4` **不在** `origin/main` 历史中;分支上与 `main` 同消息的 9 个 WeChat
|
||
修复为平行重写(不同 SHA),`git cherry` 判定 patch 不等价;合并会在 `wechat-mp.mjs` 等处
|
||
产生冲突,并可能回退 `main` 上更新的 page-data 交付修复(`7e26b45`、`7624538`、`5ead1ab` 等)。
|
||
4. 分支相对 `main` **缺少**上述 page-data / release 修复,**不应**作为合并来源或发布来源。
|
||
|
||
### 验证摘要
|
||
|
||
- Git 祖先检查确认 Router 功能提交(`43bc8bb` 等)已进入 `origin/main`。
|
||
- 103 生产 `.release-manifest.txt` 确认 `git_head=5ead1ab`、`git_branch=main`。
|
||
- 分支工作区已干净;无未提交独有功能待并入 `main`。
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名 `feature/h5-llm-router-canary` 仅用于审计追溯。
|
||
- **后续不再使用该分支进行任何开发、合并、cherry-pick、打包或发布。**
|
||
- 不要 merge 该分支到 `main`;不要从该分支构建 runtime/artifact。
|
||
- 新功能必须从最新 `origin/main` 新建分支(推荐 `bash scripts/new-branch.sh feature/xxx`)。
|
||
|
||
## `feature/image-quota-admin`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `origin/main`(Memind + memind_adm),该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-08-03
|
||
分支 HEAD(Memind):`946d875`
|
||
分支 HEAD(memind_adm):`a4d46f2`
|
||
`origin/main` 对应提交:`946d875`(Memind)、`a4d46f2`(memind_adm)
|
||
|
||
### 原始用途
|
||
|
||
图片生成额度(image_make)计费与管理:
|
||
|
||
- Memind:订阅 bonus 字段、额度流水、生图前校验与扣费、Admin API、Portal 余额弹窗展示
|
||
- memind_adm(5174):套餐默认额度、流水、用户详情充值 UI(禁止在 Memind `ops/` 扩展)
|
||
|
||
### 验证摘要
|
||
|
||
- `billing-subscription.test.mjs` + `mindspace-image-generation.test.mjs`:37/37 通过
|
||
- memind_adm `npm run build` 通过
|
||
- 本地 Admin API 联调脚本 `verify-image-quota-local.mjs` 通过
|
||
- Portal `/auth/me` 联调脚本 `verify-image-quota-portal.mjs` 通过
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名仅用于审计追溯。
|
||
- 不要从该分支继续开发、merge、cherry-pick 或发布。
|
||
- 后续管理后台 UI 只能在 memind_adm 5174 开发。
|
||
|
||
## `codex/flux-schnell-workflow-kind`
|
||
|
||
**状态:禁止再次引用。分支未并入 `main`;103 曾短暂从该分支发布 `ea5b732` 后已回退到 `main` 整包发布。**
|
||
|
||
审计日期:2026-08-04
|
||
分支 HEAD(已删除):`ea5b732`
|
||
`origin/main` 对应提交:`6a48e0a`(103 生产 release `20260804-204137-6a48e0a`)
|
||
|
||
### 原始用途
|
||
|
||
为 Portal admin 配置 ComfyUI `flux_schnell` workflowKind;103 曾从该功能分支单包发布。
|
||
|
||
### 最终处置
|
||
|
||
- Flux 服务已下线;本地分支已删除。
|
||
- **不要** merge、cherry-pick 或从 `ea5b732` 构建 runtime/artifact。
|
||
- 103 生产 manifest 已回到 `main` @ `6a48e0a`。
|
||
|
||
## `feature/billing-session-cost-priority`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `origin/main`,103 已发布,该分支保留仅用于只读追溯。**
|
||
|
||
审计日期:2026-08-05
|
||
分支 HEAD:`e7f0627`
|
||
`origin/main` 对应提交:`44121df`(103 生产 release `20260805-095542-44121df`)
|
||
|
||
### 原始用途
|
||
|
||
修复计费回退 Token 估价导致 DeepSeek 上游成本严重超扣;优先使用 Goose session `accumulated_cost`;新增 8 月 4 日起用户补偿脚本并在 103 执行补偿。
|
||
|
||
### 验证摘要
|
||
|
||
- `node --test billing-token-state.test.mjs billing.test.mjs`
|
||
- `node --test db.test.mjs capabilities.test.mjs llm-providers.test.mjs wechat-mp.test.mjs`
|
||
- 103 补偿脚本 dry-run + apply(4 用户,合计 ¥94.11)
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名用于审计追溯。
|
||
- **不要** merge、cherry-pick 或从该分支构建 runtime/artifact。
|
||
- 103 生产依据 `44121df` / release manifest `20260805-095542-44121df`。
|
||
|
||
## `feature/analytics-release-docs`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `origin/main`,该分支保留仅用于只读追溯。**
|
||
|
||
审计日期:2026-08-11
|
||
分支 HEAD:`8348ce3`
|
||
`origin/main` 对应提交:`8348ce3`
|
||
|
||
### 原始用途
|
||
|
||
补充 Analytics / SEO·GEO 跨仓库发布文档:105 Umami 原生 artifact + systemd 拓扑、发布顺序、Memind 与 memind_adm 链接。
|
||
|
||
### 验证摘要
|
||
|
||
- 文档-only;无 runtime 变更
|
||
- memind-analytics 文档已 push 至 `main` @ `24f67b0`
|
||
- memind_adm 文档已 merge 至 `main` @ `a67d5a1`
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名用于审计追溯。
|
||
- **不要** merge、cherry-pick 或从该分支继续开发。
|
||
- 后续 Analytics 发布以 `docs/analytics-release-runbook.md` 为准。
|
||
|
||
## `feature/subscription-usage-records`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `origin/main`,该分支保留仅用于只读追溯。**
|
||
|
||
审计日期:2026-08-12
|
||
分支 HEAD:`6b586e0`
|
||
`origin/main` 对应提交:`dedf883`(merge)
|
||
|
||
### 原始用途
|
||
|
||
订阅额度全额覆盖 token 消耗时,仍写入 usage record,便于审计与对账。
|
||
|
||
### 验证摘要
|
||
|
||
- `node --test user-auth.test.mjs`:19/19 通过
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名用于审计追溯。
|
||
- **不要** merge、cherry-pick 或从该分支继续开发。
|
||
|
||
## `feature/2026-08-12-dev`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `origin/main`,该分支保留仅用于只读追溯。**
|
||
|
||
审计日期:2026-08-13
|
||
分支 HEAD:`421e204`
|
||
`origin/main` 对应提交:`421e204`
|
||
|
||
### 原始用途
|
||
|
||
MindSpace 成果展示:分页管理、统计聚合、Achievements 面板 UI 与 Portal API。
|
||
|
||
### 验证摘要
|
||
|
||
- Git 祖先检查确认分支 HEAD 已进入 `origin/main`。
|
||
- `node --test mindspace-page-achievement-list.test.mjs mindspace-page-achievement-stats.test.mjs`:5/5 通过。
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名用于审计追溯。
|
||
- **不要** merge、cherry-pick 或从该分支继续开发。
|
||
- 后续交付修复见 `fix/achievements-delivery-release`(已进入 `origin/main` @ `53b0d2c`)。
|
||
|
||
## `feature/wechat-memind-menu`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `origin/main`,该分支保留仅用于只读追溯。**
|
||
|
||
审计日期:2026-08-13
|
||
分支 HEAD:`e9ea55c`
|
||
`origin/main` 对应提交:`e9ea55c`
|
||
|
||
### 原始用途
|
||
|
||
微信公众号自定义菜单文案由 TKMind 更名为 Memind(`scripts/wechat-mp-menu.mjs`)。
|
||
|
||
### 验证摘要
|
||
|
||
- Git 祖先检查确认分支 HEAD 已进入 `origin/main`。
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名用于审计追溯。
|
||
- **不要** merge、cherry-pick 或从该分支继续开发。
|
||
|
||
## `fix/runtime-profile-packaging`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `origin/main`,该分支保留仅用于只读追溯。**
|
||
|
||
审计日期:2026-08-13
|
||
分支 HEAD:`6542a43`
|
||
`origin/main` 对应提交:`6542a43`
|
||
|
||
### 原始用途
|
||
|
||
Portal runtime 打包纳入 `memind-runtime-profile`,修复 WeChat 菜单脚本在 105/103 发布链路中缺少 runtime profile 的问题。
|
||
|
||
### 验证摘要
|
||
|
||
- Git 祖先检查确认分支 HEAD 已进入 `origin/main`。
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名用于审计追溯。
|
||
- **不要** merge、cherry-pick 或从该分支继续开发。
|
||
|
||
## `feature/seo-geo-admin-catalog`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `origin/main`,该分支保留仅用于只读追溯。**
|
||
|
||
审计日期:2026-08-13
|
||
分支 HEAD:`fdc234e`
|
||
`origin/main` 对应提交:`fdc234e`
|
||
|
||
### 原始用途
|
||
|
||
管理后台 SEO/GEO 收录目录与爬虫统计(`mindspace-seo-geo-admin-catalog.mjs`);管理 UI 在 memind_adm 5174,Memind 侧为共享业务模块与 API。
|
||
|
||
### 验证摘要
|
||
|
||
- Git 祖先检查确认分支 HEAD 已进入 `origin/main`。
|
||
- `node --test mindspace-seo-geo-admin-catalog.test.mjs`:3/3 通过。
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名用于审计追溯。
|
||
- **不要** merge、cherry-pick 或从该分支继续开发。
|
||
|
||
## `fix/achievements-delivery-release`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `origin/main`,该分支保留仅用于只读追溯。**
|
||
|
||
审计日期:2026-08-13
|
||
分支 HEAD:`53b0d2c`
|
||
`origin/main` 对应提交:`53b0d2c`
|
||
|
||
### 原始用途
|
||
|
||
成果展示交付跟进:Finish 时在 `finally` 释放静态 HTML 交付契约,避免重编辑页面卡在 HTTP 409;成果面板按 Asia/Shanghai 日历日分组,消除重复日期标题。
|
||
|
||
### 验证摘要
|
||
|
||
- Git 祖先检查确认分支 HEAD 已进入 `origin/main`。
|
||
- `node --test mindspace-delivery-contract.test.mjs`:3/3 通过。
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名用于审计追溯。
|
||
- **不要** merge、cherry-pick 或从该分支继续开发。
|
||
|
||
## `feature/h5-queued-chat-submit`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `origin/main`,该分支保留仅用于只读追溯。**
|
||
|
||
审计日期:2026-08-13
|
||
分支 HEAD:`558c4ef`
|
||
`origin/main` 对应提交:`558c4ef`
|
||
|
||
### 原始用途
|
||
|
||
H5 主会话在 waiting/streaming/connecting/loading 时静默丢弃后续消息;改为立即展示用户指令、提示排队,并在 composer 回到 idle 后自动提交。
|
||
|
||
### 验证摘要
|
||
|
||
- `node --test chat-agent-run-gate.test.mjs`:13/13 通过
|
||
- `node scripts/run-memind-tests.mjs --mode changed`:通过
|
||
- `node scripts/run-memind-tests.mjs --mode guards`:通过
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名用于审计追溯。
|
||
- **不要** merge、cherry-pick 或从该分支继续开发。
|
||
|
||
## `feature/memind-health-p0`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入本地 `main`(待 push `origin/main`),该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-09-09
|
||
分支 HEAD:`2baf29b3`
|
||
本地 `main` 对应提交:`2baf29b3`
|
||
|
||
### 原始用途
|
||
|
||
Memind P0 健康频道:加密健康区、观测 API、baseline 引擎与成熟度流水线、Page Data 绑定、MindSpace/H5/微信频道集成。
|
||
|
||
### 验证摘要
|
||
|
||
- `node --test health-*.test.mjs server/portal-health-routes.test.mjs`:87 passed
|
||
- `npm run verify:wechat-channel-isolation`:OK
|
||
- `node --test chat-skills.test.mjs`:33 passed(rebase 冲突合并后)
|
||
|
||
### 最终处置
|
||
|
||
- 已删除开发 worktree `Memind-health-p0`。
|
||
- 保留本地分支名用于审计追溯。
|
||
- **不要** merge、cherry-pick 或从该分支继续开发。
|
||
|
||
## `feature/context-runtime-shadow-offline`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `origin/main`,该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-09-09
|
||
分支 HEAD:`478c3337`
|
||
`origin/main` 对应提交:`478c3337`
|
||
|
||
### 原始用途
|
||
|
||
Context Runtime 离线 shadow 开发:`context-runtime-profile.mjs` 事件模拟、`run-context-runtime-offline.mjs` 零 LLM 验证、本地自测文档。
|
||
|
||
### 验证摘要
|
||
|
||
- `node scripts/run-context-runtime-offline.mjs`:OK
|
||
- `node scripts/run-goosed-v149-phase3-offline.mjs`:OK
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名用于审计追溯。
|
||
- **不要** merge、cherry-pick 或从该分支继续开发。
|
||
|
||
## `feature/goose-v149-real-llm-gate`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `origin/main`,该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-09-09
|
||
分支 HEAD:`2fa95235`
|
||
`origin/main` 对应提交:`2fa95235`
|
||
|
||
### 原始用途
|
||
|
||
默认阻断无人值守的 v1.49 真实 LLM smoke(phase2/phase3/all),避免 DashScope 日耗 1 亿+ token;提供 `run-goosed-v149-phase3-offline.mjs` 零 LLM 合并验证。
|
||
|
||
### 验证摘要
|
||
|
||
- `node --test scripts/goose-v149-real-llm-gate.test.mjs`:4 passed
|
||
- `node scripts/run-goosed-v149-phase3-offline.mjs`:OK
|
||
- `node scripts/run-goosed-v149-phase3.mjs`(无 opt-in):exit 2 BLOCKED
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名用于审计追溯。
|
||
- **不要** merge、cherry-pick 或从该分支继续开发。
|
||
|
||
## `feature/mcp-result-compactor`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `origin/main`,该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-09-09
|
||
分支 HEAD:`60a42861`
|
||
`origin/main` 对应提交:`60a42861`
|
||
|
||
### 原始用途
|
||
|
||
Context Runtime Phase 1-B:MeMind 自有 MCP 工具结果压缩(`mcp-result-compactor.mjs`),shadow/active 模式接入 `tkmind-search-mcp` / `tkmind-excel-mcp`,active 模式暴露 `ctx_fetch`。
|
||
|
||
### 验证摘要
|
||
|
||
- `node --test mcp-result-compactor.test.mjs`:6 passed
|
||
- `node scripts/check-mcp-compactor-local.mjs`:OK
|
||
- `node scripts/run-memind-tests.mjs --mode changed`:通过
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名用于审计追溯。
|
||
- **不要** merge、cherry-pick 或从该分支继续开发。
|
||
|
||
## `feature/goose-v149-local-canary`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `origin/main`,该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-09-09
|
||
分支 HEAD:`26ce1241`
|
||
`origin/main` 对应提交:`e5dfd875`(merge)
|
||
|
||
### 原始用途
|
||
|
||
Goose v1.49 本地 canary 收口、Context Runtime + Agent Harness 融合 Phase 1–3:headroom provider proxy(off/shadow/active)、context-budget shadow、recall-fusion + zvec-workspace、dsh executor 骨架,以及 phase2/phase3 验证脚本与 baseline。
|
||
|
||
### 验证摘要
|
||
|
||
- `node scripts/run-memind-tests.mjs --mode changed`:101 passed
|
||
- `node --test memind-headroom-policy.test.mjs context-budget.test.mjs recall-fusion.test.mjs memind-zvec-workspace.test.mjs`:21 passed
|
||
- `node scripts/run-headroom-active-portal-e2e.mjs`:OK(goosed pong via headroom;Portal live 事件需重启 Portal 带 `MEMIND_HEADROOM_MODE=active`)
|
||
- Phase3:`portal-resume` PASS;phase2 `portal-smoke`/`page-e2e` 受本地 relay 欠费影响 FAIL(与 headroom 无关)
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名用于审计追溯。
|
||
- **不要** merge、cherry-pick 或从该分支继续开发。
|
||
|
||
## `feature/codebase-memory-mcp-setup`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `origin/main`,该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-09-10
|
||
分支 HEAD:`47d0d2ac`
|
||
`origin/main` 对应提交:`938f6d6d`
|
||
|
||
### 原始用途
|
||
|
||
fusion-plan §6.6 本机开发工具:`codebase-memory-mcp` 本地安装验证脚本与文档;索引数据在 `~/.cache/codebase-memory-mcp/`,不进入 103 运行时。
|
||
|
||
### 验证摘要
|
||
|
||
- `codebase-memory-mcp --version`:0.10.8
|
||
- `node scripts/check-codebase-memory-mcp-local.mjs`:`CODEBASE_MEMORY_MCP_OK`(23,965 nodes / 89,856 edges)
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名用于审计追溯。
|
||
- **不要** merge、cherry-pick 或从该分支继续开发。
|
||
|
||
## `feature/dsh-executor-local-setup`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `origin/main`,该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-09-10
|
||
分支 HEAD:(见 merge commit)
|
||
`origin/main` 对应提交:`f3348f45`
|
||
|
||
### 原始用途
|
||
|
||
`@deepseek-ai/dsh@0.1.1-rc.2` 本机安装、check 脚本、Tool Gateway headless E2E;Context Runtime shadow Portal E2E(events-only 省 token)。
|
||
|
||
### 验证摘要
|
||
|
||
- `dsh --version`:0.1.1-rc.2
|
||
- `node scripts/check-dsh-executor-local.mjs`:`DSH_EXECUTOR_CLI_OK` / dry-run OK
|
||
- `MEMIND_DSH_RUN_LIVE_SMOKE=1` headless:OK(列 3 文件)
|
||
- `MEMIND_TOOL_GATEWAY_DSH_ENABLED=1 node scripts/test-dsh-executor-gateway-e2e.mjs`:`DSH_GATEWAY_E2E_OK`
|
||
- Shadow Portal(`force_deep_reasoning`,run `2ca8be7b…`):`headroom_context_observed` + `context_budget_resolved`,`mode=shadow`
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名用于审计追溯。
|
||
- **不要** merge、cherry-pick 或从该分支继续开发。
|
||
|
||
## `cursor/v149-merge-prep-gates`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `origin/main`,该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-09-10
|
||
分支 HEAD:`695911d1`
|
||
`origin/main` 对应提交:`695911d1`
|
||
|
||
### 原始用途
|
||
|
||
Goose v1.49 合并前准备:修复 `build-goosed-v149-local.sh` 路径、刷新 phase3 baseline evidence、phase3 连续两次 `GOOSE_V149_PHASE3_OK`、更新 closeout 闸门 1–3。
|
||
|
||
### 验证摘要
|
||
|
||
- `node scripts/run-goosed-v149-phase3-offline.mjs` → `GOOSE_V149_PHASE3_OFFLINE_OK`
|
||
- `GOOSE_V149_ALLOW_REAL_LLM=1 node scripts/run-goosed-v149-phase3.mjs` → 两次 `GOOSE_V149_PHASE3_OK`(run2/run3 日志)
|
||
- `node scripts/compare-goose-v149-memory-manifest.mjs` → `GOOSE_V149_MEMORY_DRIFT_OK`
|
||
- `npm run verify:mindspace-publish-guards:full` → 176 passed
|
||
- `tkmind_go-v149` → `6648c4bfb` on `tkmind/upgrade/v1.49-tkmind`
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名用于审计追溯。
|
||
- **不要** merge、cherry-pick 或从该分支继续开发。
|
||
|
||
## `feature/goose-v149-wechat-gate-runbook`
|
||
|
||
**状态:禁止再次引用。改动已提交并进入 `origin/main`,该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||
|
||
审计日期:2026-09-10
|
||
分支 HEAD:`570ecbd1`
|
||
`origin/main` 对应提交:`baff51e2`(merge commit)
|
||
|
||
### 原始用途
|
||
|
||
微信定时任务意图优先于 page.generate;WX-01..13 gate evidence 脚本;Goose v1.49 103 cutover runbook;本地 v1.49 launchd 安装脚本。
|
||
|
||
### 验证摘要
|
||
|
||
- `node scripts/run-wechat-gate-evidence.mjs` → `WECHAT_GATE_EVIDENCE_OK`
|
||
- `node --test wechat/handlers/scheduled-task.test.mjs` → 11 passed
|
||
- 103 只读预演:`test/_103_baselines/pre-v149-20260910/`(九路 goosed ok,Portal ok,尚无 `tkmind_go-v149`)
|
||
|
||
### 最终处置
|
||
|
||
- 保留本地分支名用于审计追溯。
|
||
- **不要** merge、cherry-pick 或从该分支继续开发。
|
||
|