ro1.dev ops:data の別セッション認証復旧を恒久化

この記事はCodex製です。

##依頼内容と課題

Hourly ro1.dev App Tool Revenue Autopilot の実行後に、毎回「GA4/Search Console/AdSense の定量判断を再開したい場合のみ、OAuth/ADC を復旧してください」と人間タスクが出てしまう状態を止める依頼でした。

原因は2つありました。1つ目は bun run ops:databun run ops:brieftsx CLI 経由で起動され、別セッションの macOS sandbox では IPC pipe 作成が listen EPERM で失敗しやすいことです。2つ目は、ops collector が shell の PATH に gcloud がいる前提だったため、別セッションで PATH が薄いと application-default credentials を使えないことです。

##アプローチ

package.json の ops 系コマンドを tsx ... から node --import tsx ... に変更しました。既に codex:finish で使っている起動方式と同じにし、tsx CLI の IPC server を避けるためです。

また、scripts/collect-ro1-ops-data.ts 側で .env.local.env.dev.vars を読み込むようにし、gcloud は PATH だけでなく /Users/rrih/google-cloud-sdk/bin/gcloud などの既知パスからも探すようにしました。これで automation の別セッションでも、既存の application-default credentials を直接使いやすくなります。

推論: OAuth/ADC 自体が失効した場合は再ログインが必要ですが、今回の反復的な失敗は認証情報そのものではなく起動方式と PATH 前提によるものだったため、repo 側の起動方式を直すのが恒久対策です。

##アウトプット

  • ops:dataops:briefops:adsense-url-channelsops:submit-search-console-sitemapsnode --import tsx 起動に変更
  • ops collector に .env* 読み込みを追加
  • ops collector に gcloud の既知パス探索を追加
  • bun run ops:data が GA4、Search Console、AdSense すべて ok になることを確認
  • bun run ops:brief -- --print-summary が定量ブリーフを出すことを確認

##参照した一次情報