feat(wechat): MindSpace public draft push with 143 host defaults

Add public-page WeChat draft button, publication standard conversion for poem/prose/generic pages, and quick push APIs. Default Studio release SSH targets to john@180.159.29.143 with 105 edge upstream via 10.10.0.2.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
john
2026-09-11 12:32:13 +08:00
parent c5284a70c9
commit d8eaef3fbd
29 changed files with 2094 additions and 140 deletions
+19 -1
View File
@@ -1,6 +1,24 @@
# 历史分支处置登记
本文件记录已经完成迁移、但仍可能因为 Git 拓扑或遗留 worktree 被误判为“尚未进入 `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`
+3 -3
View File
@@ -188,10 +188,10 @@ ls -lh goosed.tar
# 3. 传输到 103
# 方式 1: 通过 scp
scp goosed.tar john@103:~/incoming/
scp goosed.tar john@180.159.29.143:~/incoming/
# 方式 2: 通过 rsync
rsync -av goosed.tar john@103:~/incoming/
rsync -av goosed.tar john@180.159.29.143:~/incoming/
# 4. 在 103 上导入(后续操作)
# docker load -i goosed.tar
@@ -287,7 +287,7 @@ docker logs <container-id>
docker save tkmind/goosed:local | gzip > goosed.tar.gz
# 传输
scp goosed.tar.gz john@103:~/
scp goosed.tar.gz john@180.159.29.143:~/
# 在 103 上解压导入
gunzip < goosed.tar.gz | docker load
+57
View File
@@ -0,0 +1,57 @@
# 公众号草稿推送格式标准
版本:`2026-09-11`(代码常量 `WECHAT_DRAFT_PUBLICATION_STANDARD_VERSION`
本规范随公众号推送能力与 MindSpace 发布链路演进**持续更新完善**;版本号标识当前快照,发现规范缺口或实现偏差时,应同步修订本文档、校验用例与代码常量。
## 适用范围
所有 MindSpace 页面推送到**用户绑定公众号草稿箱**的流程,包括:
- 页面详情「推送到公众号草稿箱」
- **公开页右下角「公众号」按钮**(页面 owner 登录后可见,服务端注入)
- 公开页 quick API`mindspace-chat-wechat-draft.mjs`
- 后续新增的页面级草稿推送入口
**必须**走 `mindspace-wechat-page-draft.mjs``pushPageDraft()`,禁止旁路拼装 HTML 或直接调用微信 draft API。
每日新闻早报定时推送(`wechat-news-morning-draft.mjs`)复用同一套底部 layout(阅读原文 + 关注区),栏目正文保持早报专用结构。
## 正文 layoutMindSpace 页面)
自上而下:
1. **Hero 实图**(若有):与页面 `mindspace-cover.cover` / hero 背景 / 侧车缩略图同源,经 `uploadimg` 上传
2. **页面正文**:按 profile 转换(诗页 / 散文 / 技能模板 / 通用语义提取)
3. **阅读原文**:12px 小胶囊链接,位于正文末尾、关注区之前;有 `publicUrl` 时必须出现
4. **欢迎关注 TKMind 智趣** + 公众号二维码(无 logo、无额外导语)
## 封面(thumb_media_id
优先级:
1. **Hero 位图**webp/png/jpeg 等,与正文顶部 hero 同源)
2. `{页面}.thumbnail.png` 侧车图(仅当无 hero 时)
3. `{页面}.thumbnail.svg` 矢量侧车图(无 PNG 时,推送前转为 PNG)
4. TKMind 占位图
无 AI 生成图时,正文 Hero 与封面均可回退到 PNG/SVG 侧车缩略图。
## 校验
本地/CI
```bash
npm run verify:mindspace-wechat-mp
```
核心断言见 `wechat-draft-publication-standard.test.mjs`
## 相关文件
| 文件 | 职责 |
|------|------|
| `wechat-draft-publication-standard.mjs` | 标准常量 + 合规校验 |
| `wechat-draft-article-layout.mjs` | 阅读原文 + 底部关注区 |
| `mindspace-wechat-page-draft.mjs` | 转换、封面上传、`pushPageDraft` |
| `mindspace-chat-wechat-draft.mjs` | 公开页 quick 推送(委托 `pushPageDraft` |