127 lines
5.2 KiB
Markdown
Raw Permalink Normal View History

# 🤖 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开始**