Skip to content

fix(autopilot): run 失敗時のハンドリング(Blocked 不整合 / コメント無し / stuck 検知) #816

Description

@smalruby3-editor-bot

問題(#815 で顕在化)

implement が stall して runner 失敗 → daemon が失敗処理で Status='Blocked' を mark しようとするが、Scrum Status に Blocked option が無いため例外 → Status は In Progress のまま、🙋 ラベルだけ付与・コメント無し → 人間は『HITL だが何をすべきか不明』に。

該当箇所: daemon.js(失敗時 mark('Status','Blocked')), phases.js(applyResult error → Status=Blocked, PR_SYNC_STATUSES に 'Blocked')。

対策

  1. Blocked 不整合の解消(どちらか):
    • Project の Status に 'Blocked' option を追加(GitHub UI で。API 一括置換は既存 Status を全消去するので不可)。コードはそのまま使える。
    • もしくはコードが 'Blocked' を使わず、失敗時は Status を変えず(or Sprint Backlog に戻す)+ 🙋 + コメント にする。
  2. 失敗時に説明コメントを必ず投稿('implement が stall/失敗。原因と次アクション。再キューしました 等')→『HITL なのに無言』を解消。
  3. stuck 検知: Status=In Progress かつ AI Status=*ing なのに daemon running に居ない状態が N 分継続したら、自動で Sprint Backlog に戻す(再試行)or Blocked+コメント。
  4. (関連)長時間 implement での watchdog/busy 誤検知の見直し。

Test

  • 失敗パスで Status mark が例外を出さない / コメントが投稿される。
  • stuck 検知が In Progress+*ing+非running を拾う(pure 判定 + unit)。

背景

#815(Review 整流) の implement が stall → 本不具合が表面化。

Metadata

Metadata

Assignees

No one assigned

    Labels

    🙋 HITL人間の対応待ち(Project HITL=Yes の投影)🤖 autopilotautopilot が処理対象にした Issue/PR(daemon が付与)

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    Status
    Close

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions