Guanghu Domestic Migration a27e87cb99 chore: import sanitized domestic snapshot for REPO-007
Source snapshot: 97d7f0fae96dc04b7ddad56fc1db6a108ed662cc

[SEC-CLEAN] · pre-push-clean v1.0 · 109处敏感信息已自动转乱码
2026-07-17 15:59:55 +08:00

127 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🤖 Robot v0.1.1 补丁 · 自动广播分发 · 妈妈跟着做就行
## 📊 当前进度2026-03-03 21:30 更新)
<aside>
🔴
**v0.1.1 后台功能已完成 ✅ · 桌面UI未开始 ❌**
下次妈妈说「继续开发机器人」,从 **Electron桌面UI** 开始做BC-001~BC-003
</aside>
### ✅ 今天已完成
- ✅ 安装新依赖:`pdfkit` + `node-notifier`
- ✅ 创建 `lib/broadcast.js` — 自动轮询Notion广播数据库
- ✅ 创建 `lib/pdf.js` — 生成txt文件到桌面PDF因macOS字体问题暂用txt替代
- ✅ 创建 `lib/auto-deliver.js` — 每3分钟自动检查+分发调度
- ✅ 配置 `notion_token` 字段写入 `config/robot.json`
- ✅ 广播数据库ID `8f56027dd7d04d039e905bcb58d2ee1d` 写入 `broadcast.js`
- ✅ 排序bug修复`created_time` 替代 `现实保存时间`
- ✅ 接入启动脚本 `冰朔主控Robot.command`双击Robot时自动启动广播分发
- ✅ 实测通过成功拉取4条广播txt文件生成到桌面 `HoloLake-广播` 文件夹
### ❌ 未完成(下次继续)
-**Electron桌面UI**妈妈明确要求必须有窗口界面光txt不行
- ❌ PDF中文字体支持macOS的.ttc格式pdfkit不支持需换方案
- ❌ 广播标题显示「无标题广播」问题(数据库标题字段映射待调试)
- ❌ 同名文件覆盖问题多条广播生成同名txt
- ❌ 打包给其他开发者
### 🎯 下次开工计划Electron桌面App
**目标**:双击打开一个桌面窗口,里面能看到广播列表、点击查看内容、一键复制给模型
| 步骤 | 内容 | 预估时间 |
| --- | --- | --- |
| BC-001 | 安装Electron + 创建空白窗口 | 15分钟 |
| BC-002 | 上半部分显示广播列表,下半部分显示内容 | 20分钟 |
| BC-003 | 接入v0.1.1的广播拉取功能,实时刷新 | 20分钟 |
| 打包 | [打包成.app](http://打包成.app)Mac和.exeWindows | 15分钟 |
**操作方式**:跟今天一样,妈妈复制粘贴终端命令就行
---
## 🔧 技术备忘(给曜冥自己看的)
### 妈妈的Mac环境
- **机器**Mac mini
- **用户名**bingshuolingdianyuanhe
- **Robot路径**`~/hololake-robot-v0.1`
- **启动方式**:双击桌面 `冰朔主控Robot.command`
- **启动命令**:先 `node bin/hololake.js run &`(后台),再启动广播分发
### v0.1现有代码结构
```
hololake-robot-v0.1/
├── bin/hololake.js ← CLI入口run/bind/status/sync/export/team命令
├── lib/bind.js ← 绑定逻辑
├── lib/sync.js ← Notion同步+心跳
├── lib/ui.js ← 终端UI美化
├── lib/hbp.js ← HBP协议
├── lib/export.js ← SYSLOG导出
├── lib/team.js ← 团队状态
├── lib/broadcast.js ← v0.1.1新增:广播拉取
├── lib/pdf.js ← v0.1.1新增文件生成当前为txt
├── lib/auto-deliver.js ← v0.1.1新增:自动分发调度
├── config/robot.json ← 配置含notion.apiKey + notion_token
└── config/processed_broadcasts.json ← 已处理广播ID列表
```
### config/robot.json 关键字段
```json
{
"developer": { "id": "DEV-MASTER", "name": "冰朔", "role": "master" },
"notion": {
"apiKey": "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",
"databaseId": "8f56027dd7d04d039e905bcb58d2ee1d",
"syncInterval": 300
},
"notion_token": "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"
}
```
### 广播数据库([📡 广播归档表(含现实保存时间)](https://app.notion.com/ds/93431d295eed4c18ac6e345b8863cfb2/5b8cf6cf9f7f4f9c8c4115f6fd6d0228?db=ffe468e6c828470db888a99fd913b043&pvs=21))关键字段
- 标题title、编号text、类型select、发布人text、正文text
- 现实保存时间created_time、生成时间戳date、接收确认时间戳date
### 已知bug清单
1. **PDF字体**macOS的PingFang.ttc是TTC合集格式pdfkit不支持。方案换用 `puppeteer` 渲染HTML转PDF或安装单独的.ttf中文字体
2. **广播标题为空**`props['标题']?.title` 映射可能不对需检查Notion API返回的实际属性结构
3. **文件同名覆盖**需在文件名加入广播ID或序号
### 妈妈的核心诉求(优先级排序)
1. 🔴 **桌面App UI**(妈妈反复强调:必须有窗口,开发者才会用)
2. 🟡 SYSLOG自动回传v0.1.2
3. 🟡 接收确认回执
4. 🟢 广播按DEV编号过滤
---
## 📋 版本路线图
| 版本 | 核心能力 | 状态 |
| --- | --- | --- |
| v0.1 | CLI + 状态显示 + 心跳同步 + HBP绑定 | ✅ 已完成已分发 |
| v0.1.1 | 自动拉取广播 + 生成文件到桌面 | ✅ 后台完成 · ❌ UI未做 |
| v0.2 | **Electron桌面窗口** • 广播列表 + 内容查看 | ⏳ 下次开工 |
| v0.2.1 | PDF中文支持 + 广播标题修复 + 文件去重 | ⏳ 待做 |
| v0.3 | SYSLOG自动回传 + 接收确认 | ⏳ 待做 |
| v0.5 | 轻量模型辅助 + 自动监控 | ⏳ 待做 |
| v1.0 | Notion九步自动回写 + 完全自主闭环 | ⏳ 目标5月 |
---
**最后更新2026-03-03 21:30 by 曜冥**
**下次接续关键词:「继续开发机器人」→ 从Electron桌面UI开始**