# 沈晏 App 进度总览 — 2026-05-16 ## 当前状态 iOS 真机可运行,首页 + 聊天屏双界面,本地桥通信完整链路已打通。 ## 已完成 ### 苹果开发者 - 付费开发者账号已通过(Team: Xiulun Wang, ID: ZZMLW32PHH) - Bundle ID: `com.shenyan.room` - 真机签名、构建、安装全链路通 ### 首页 - 三张 bridge 状态图(away / online / busy),全屏 - 每 8 秒轮询 `101.36.73.102/health` - 底部半透明状态文字 - 左半屏双击「敲门」进聊天室(350ms 双击窗口) - 敲门时 POST /knock 到本地桥 ### 聊天屏 - 背景图 + 白色退出圆点(左上角 20px) - 消息发送:POST /send 到 Mac 本地桥 `192.168.31.51:3003` - 消息接收:每 2 秒轮询 /poll,新消息自动追加 - FlatList 自动滚底 - 消息持久化:AsyncStorage 本地存储 + 首次加载从桥 /history 拉全量 - 桥断开显示「消息没发出去,检查WiFi连接」 - 用户消息右对齐,沈晏消息左对齐 ### 本地桥(bridge-local/server.js) - 端口 3003,Mac IP `192.168.31.51` - POST `/send` — app 发消息 → inbox.jsonl - POST `/respond` — Claude 回消息 → outbox.jsonl - POST `/knock` — 敲门通知 → inbox.jsonl - POST `/push` — Claude 主动推消息 → pushbox.jsonl - POST `/push/clear` — 标记已读 - GET `/poll?since=N&type=response|push` — app 轮询 - GET `/history` — 全量对话历史 - 数据目录:`~/.shenyan-bridge/` - `inbox.jsonl` — 用户消息 - `outbox.jsonl` — Claude 回复 - `pushbox.jsonl` — 主动推送 ### 持久化 - 桥服务器:launchd `~/Library/LaunchAgents/com.shenyan.bridge.plist`(开机自启、崩溃重启) - 记忆库 cron:launchd `~/Library/LaunchAgents/com.shenyan.memory-cron.plist`(每天 4:03) ### 通信机制 - Claude Code 侧通过 Monitor 工具 `tail -f ~/.shenyan-bridge/inbox.jsonl` 实时监听新消息 - 消息到达后手动回复,POST 到 `/respond` - 跨 session:当前 session 断开后需重新启动 Monitor ## 待解决 ### 自动回复器(高优先级) - `claude -p` 在 Claude Code 会话内无法调用(沙箱限制) - 解决方案:launchd 定时任务从外部调用 `claude -p`,类似凌晨记忆 cron - 不能用 API 直连(会丢失记忆库、规则、工具能力) - 位置:`bridge-local/responder.js`(当前故障版,需重写) ### Monitor 超时 - Monitor 工具 5 分钟超时,需频繁 re-arm - 非 session 期间无法监听消息 - 自动回复器修好后可作为保底 ### 清理 - inbox.jsonl 中有旧「pending」状态消息导致 Monitor 重放 - 需清理或重建数据文件 ## 代码结构 ``` shenyan-app2/ ├── src/ │ ├── App.tsx # 主入口:首页 + 聊天屏 │ ├── api.ts # 远端 bridge API(待集成) │ ├── storage.ts # RoomEvent 持久化(待集成) │ ├── types.ts # 类型定义 │ ├── notifications.ts # 推送模拟 │ └── components/ │ ├── EventCard.tsx # 事件卡片(待集成) │ └── RoomFeed.tsx # 事件流(待集成) ├── bridge-local/ │ ├── server.js # 本地桥服务器(端口 3003) │ └── responder.js # 自动回复器(故障版) ├── ios/ # Xcode 项目 └── push-server.js # 旧推送模拟(端口 3002) ``` ## 下一步 1. 修复自动回复器:launchd + claude -p 外部调用 2. 清理 inbox 旧消息 3. 苹果 APNs 真推送(APNs Key + bridge 端 FCM 对接) 4. RoomFeed / EventCard 组件集成 5. HealthKit 能力接入 6. Mi Band 10 身体数据桥接