文章摘要
Agnes AI

电脑放在家里持续运行,人在外面只带一部手机,也可以继续维护项目。Happy 把手机和电脑上的开发会话连接起来:手机发送任务,电脑执行命令,结果再回到手机。

这套方式适合需要本地文件、Git 历史和完整开发环境的项目。手机不需要复制整个仓库,也不需要安装 Node.js 或 Git 客户端;真正的文件读写、测试和发布,仍然发生在电脑上。

工作链路

1
2
3
4
5
6
7
手机 Happy
-> 电脑上的 Happy 会话
-> 项目目录与开发工具
-> 检查并修改文件
-> git commit && git push
-> GitHub
-> Greasy Fork Webhook 同步

提示:Happy 是远程控制入口,不是文件同步盘。大型文件应先通过同步工具放到电脑,再让会话读取。

用坚果云完成文件交互

手机端需要把文件交给电脑处理时,我使用坚果云作为中转。它负责上传和同步,Happy 负责让电脑上的会话继续执行任务,两者分工明确:

  1. 在手机坚果云 App 中打开与电脑同步的目录。
  2. 上传需要处理的脚本、压缩包或文本文件。
  3. 等待文件状态显示为已完成,避免只上传了一半就发送处理指令。
  1. 坚果云客户端把文件同步到本地目录。
  2. 确认文件名、大小和修改时间已经更新。
  3. 在 Happy 会话中告诉电脑端助手读取这个文件并开始处理。
1
Get-ChildItem "C:\同步目录" | Sort-Object LastWriteTime -Descending | Select-Object -First 5 Name,Length,LastWriteTime

处理完成后,电脑端可以把生成文件写回同步目录。手机端等待坚果云同步完成,再下载或转发结果文件。

为了避免同名文件覆盖,建议按 incomingprocessingdonefailed 分目录管理:手机上传到 incoming,电脑端处理时移动到 processing,成功后放入 done,异常文件放入 failed 等待人工检查。

注意:上传完成、电脑同步完成、助手读取成功是三个不同状态。手机端发出指令前,至少要确认电脑目录里已经出现目标文件。

连接电脑上的会话

电脑端先启动 Happy daemon,并确认目标会话在线。使用主题选项卡区分日常检查和会话恢复:

1
2
happy daemon status
happy daemon list

如果电脑重启或会话意外退出,优先恢复原会话:

1
happy resume <sessionId>

恢复会话可以保留已有上下文,避免重新解释项目目录、提交规范和未完成事项。Windows 使用 nvm 时,全局命令路径可能随 Node.js 版本变化,遇到启动异常先检查:

1
2
3
node --version
npm --version
Get-Command happy

daemon 在线不代表项目会话正常,还要确认目标会话已注册,并检查实际开发工具是否在 PATH 中。

从手机下达任务

远程指令应包含目标、范围和验收条件,例如:

1
2
3
进入项目目录,检查当前改动。
完成必要修改后运行语法检查和 Git 差异检查,
只提交正式入口文件,推送到远程仓库,最后确认远端文件已更新。

建议让电脑端依次回报当前分支、工作区状态、测试结果、提交号、push 输出和远端版本。这样手机端能清楚判断任务是否真的完成。

推送前的检查

不要只依据“代码改好了”就发布。用选项卡把代码检查和工作区检查分开:

1
2
node --check <entry-file>.user.js
git diff --check
1
2
git diff --stat
git status --short

如果脚本包含压缩数据,还应检查文件大小和最长行。第三方平台可能限制总字符数或单行长度;处理时只做不改变数据语义的换行或压缩,并重新运行语法检查。

确认工作区没有无关文件后,再提交和推送:

1
2
3
git add <entry-file>.user.js
git commit -m "Update userscript"
git push

注意:手机远程操作时,git status --short 尤其重要。日志、临时文件和本地配置不应被顺手提交。

GitHub 与油叉要分开确认

很多 userscript 使用 GitHub 仓库作为 Greasy Fork 的同步源:

1
2
3
4
5
git push 成功
-> GitHub 分支更新
-> Push Webhook 触发
-> Greasy Fork 读取 Raw 文件
-> 油叉脚本版本更新
检查项结论
git push 成功提交已到达远程仓库
GitHub Raw 显示新内容远端入口文件可读取
Greasy Fork 页面或 Webhook delivery 成功油叉端已完成同步

使用主题选项卡分别确认两个平台:

打开仓库的 Raw 地址,确认入口文件内容和版本号已经更新。

打开油叉脚本页面,查看最后更新时间;需要排错时,再查看 GitHub Webhooks 的 delivery 返回体。

不能凭 GitHub 推送成功就断言油叉已发布。Webhook 的 Payload URL、Secret、访问令牌和账号信息只保存在平台设置中,不要写入博客、项目仓库或手机截图。

远程发布的边界

手机负责控制,坚果云负责搬运文件

短文本可以直接发给 Happy;大型脚本、压缩包或附件先上传到坚果云,再由电脑同步到项目工作区。这样文件传输故障和开发流程故障可以分别排查。

daemon 在线不等于发布成功

项目命令可能失败,Git 可能没有推送,Webhook 也可能被平台拒绝。每一步都应保留可验证的输出。

最小流程

1
2
3
4
5
6
7
1. 手机连接或恢复 Happy 会话
2. 确认 daemon 与项目会话在线
3. 让电脑端完成修改和自动检查
4. 查看 diff,只暂存正式入口文件
5. 提交并 push 到 GitHub
6. 打开 Raw 地址确认远端内容
7. 在 Greasy Fork 页面确认同步结果

Happy 的价值,是让手机能够继续使用电脑上的完整开发环境。把会话状态、Git 提交和油叉同步分别记录清楚,就能完成一次可追踪、可验证的项目发布。