HANDOFF/ 项目进度
🎯 Goal · 目标
交付一个真正可日常使用的聚鲸文章上传器:
- 自动绑定指定后台账号,不要求用户每次手工登录。
- 支持四个频道:
- 一事一议:`typeid=3`
- 收盘说两句:`typeid=5`
- 政策解码:`typeid=2`
- 鲸选深读:`typeid=4`
- 拖入频道文件夹后,只选择修改时间最新的一篇 HTML。
- 自动使用 HTML 首图或同名 JPG/PNG/WebP 作为封面。
- 没有封面时必须拦截,不能盲目上传。
- 提交后必须查询后台文章列表,按“精确标题 + 频道”确认真实记录已经出现。
- 软件内每 6 秒刷新后台真实文章总数、频道、标题、状态和创建时间。
- 如果同标题、同频道文章已经存在,必须显示“后台已存在”并禁止重复提交。
- 提供按钮直接打开后台真实文章列表。
- 完成测试后重新打包 Apple Silicon Mac App。
---
📍 Current Progress · 当前进度
### 已有实证、可视为完成
1. 后台白屏问题已定位并处理:
- 原因是后台更新 webpack 静态资源后,Electron 持久缓存可能混用旧 HTML 和新 chunk。
- 当前启动会禁用 HTTP 缓存并清理后台缓存。
2. 自动登录已实现:
- App 启动后自动登录上述账号。
- 已实测出现“后台已自动绑定 186****8313”。
3. 四频道映射已实测:
- 一事一议 `3`
- 收盘说两句 `5`
- 政策解码 `2`
- 鲸选深读 `4`
4. “功能自检”已实测通过:
- 验证登录。
- 验证四频道字典。
- 上传 1×1 测试封面。
- 填充后台文章表单。
- 不调用最终提交。
5. 自检未误发文章:
- 自检后查询文章接口,后台总数仍是 `115`。
- 标题包含“上传器自检”的文章数量为 `0`。
6. 后台实时状态已实现并实测:
- 软件显示后台共 `115` 篇。
- 能显示最新文章的频道、标题、启停状态和创建时间。
- “打开后台文章列表”能打开真实后台列表,页面显示“共115条”。
7. 四个真实素材目录已读取并走过与拖拽相同的处理入口:
- 一事一议:45 个 HTML。
- 收盘说两句:48 个 HTML
✅ What Worked · 有效方法
1. 不操纵后台 DOM 登录表单,直接调用登录接口并保存 Token,稳定性更好。
2. 后台页面逻辑通过 `src/injected.js` 暴露的 `window.__jujingCore` 复用:
- `findArticleEditVm()`
- `fillForm(payload)`
- `submitArticle()`
- `getDictionaries()`
- `uploadFile(...)`
3. 封面优先从 HTML 文本中识别首图,不依赖临时预览 DOM。
4. 提交后的真正确认应查询 `/api/news/list/`,不能只相信 toast。
5. 真实文章列表窗口与上传引擎共用 `persist:jujing`,可以自动登录。
6. 固定目录测试使用主进程读取文件,再在渲染进程构造 File 和目录 entry,最终仍走:
- `handleDrop`
- `collectEntry`
- `loadChannelFiles`
7. Electron 无开发者证书时,Apple Silicon 构建可以用 ZIP 交付;首次运行可能需要右键“打开”。
---
⚠️ What Didn't Work · 无效方法
1. 只打开已安装在 `/Applications/聚鲸文章上传器.app` 的旧版本,会造成“明明改了代码却没覆盖”的错觉。
- 测试前必须确认版本和实际运行路径。
- 替换时先彻底退出旧 App,再删除或覆盖 `/Applications` 中的旧版本。
2. 仅看上传器前端提示无法证明文章真的写入后台。
- 必须以 `/api/news/list/` 或真实 `/article/list` 页面为准。
3. 四篇现有最新文章已经在后台,不能拿它们再次测试真实提交,否则会生成重复文章。
4. 政策解码最新本地 HTML 没有封面。
- 这不是解析器漏识别;已检查 HTML 中没有 `<img>` 或背景图,同名外部图片也不存在。
- 后台已有同标题文章且有封面,说明它之前可能是人工补封面或从其他来源上传。
5. Electron Builder 的 DMG 在当前环境曾受 `hdiutil` 限制失败。
- ZIP 构建可用。
- 不要把“DMG 失败”误判为应用代码失败。
6. 没有 Apple Developer ID 签名。
- 另一台 Mac 首次运行可能需要右键 App → 打开。
- 如果系统拦截,到“系统设置 → 隐私与安全性”允许打开。
7. 跨窗口用鼠标从 Finder 物理拖动做自动化测试不稳
➡️ Next Steps · 下一步
### P0:先确认运行的是新版
1. 解压软件包。
2. 查看 `源码/package.json`,版本应为 `0.4.0`。
3. 在源码目录执行:
```bash
npm install
npm start
```
4. 不要先测试 `/Applications` 中可能存在的旧 App。
工具调用/ Top 8
Bash
351
Edit
310
Claude_in_Chrome__javascript_tool
197
Read
128
Grep
79
Claude_in_Chrome__navigate
42
ToolSearch
39
TodoWrite
37
Session 时间流/ 最近 4
- (未生成标题)2026/6/22 07:03:42509 msgs148 tools1526.7h 时长#b5de1fe6Bash · 62Edit · 62Grep · 18Read · 6
- Automate financial article publishing workflow2026/5/9 01:23:042608 msgs608 tools491.9h 时长AGENT#73cba856Bash · 194Edit · 163Claude_in_Chrome__javascript_tool · 98Read · 79TodoWrite · 37
- Fix text overlapping issue in PDF export2026/5/6 01:11:00147 msgs42 tools234.6h 时长#b72a1a90Edit · 16Read · 7Bash · 7Claude_in_Chrome__javascript_tool · 7ToolSearch · 3
- (未生成标题)2026/4/26 06:35:331049 msgs327 tools158.7h 时长AGENT#05422115Claude_in_Chrome__javascript_tool · 92Bash · 88Edit · 69Read · 36Grep · 24
