Files
memind/docs/branch-disposition.md
T
john 5e2f27d622
Memind CI / Test, build, and release guards (push) Failing after 15m3s
docs: register goose-v149-prod-log-fixes branch
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-23 14:42:37 +08:00

66 KiB
Raw Blame History

历史分支处置登记

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。勿再从本分支恢复 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 或从该分支继续开发。