# 🤖 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）和.exe（Windows） | 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开始**