Skip to content

takt list: failed タスク選択時に失敗詳細(直前のエージェント出力・ABORT理由)を表示する #175

@nrslib

Description

@nrslib

概要

takt list で failed タスクを選択した際、ABORT 理由や直前のエージェント出力を表示する。
リトライ時に適切な追加指示(retry note)を書くための判断材料を提供する。

動機

たとえば「確認事項がある」として ABORT されたタスクをリトライする場合、何が確認事項だったのかを見て追加指示を書きたい。
現状は retry を選択するまで失敗詳細が見えず、しかも直前のエージェント出力(step_complete.content)は表示されない。

現状の問題

  1. failed タスク選択時: showFailedTaskAndPromptAction() は基本情報(name, failed at, content)のみ表示。失敗詳細はアクション選択後の retry フローでしか見えない
  2. FailureInfo に直前のエージェント出力がない: extractFailureInfo()lastCompletedMovement, failedMovement, iterations, errorMessage のみ。step_complete.content(エージェントの最後の出力)を取得していない
  3. リストメニューの description: 元のタスク内容のみで、失敗原因の手がかりがない

提案

1. FailureInfolastAgentMessage を追加

extractFailureInfo() で最後の step_complete レコードの content を取得する。

2. showFailedTaskAndPromptAction() で失敗詳細を表示

アクション選択メニューの前に、findSessionLogPath()extractFailureInfo() → 失敗詳細表示を行う。
ユーザーが ABORT 理由とエージェントの最後の出力を見てから retry / delete を選べるようにする。

3. retryFailedTask() から重複表示を除去

失敗詳細はタスク選択時に表示済みなので、retry フロー内での displayFailureInfo() 呼び出しは不要になる。

既存インフラ

関数 ファイル 役割
extractFailureInfo() src/infra/fs/session.ts NDJSON ログから失敗情報を抽出
displayFailureInfo() src/features/tasks/list/taskRetryActions.ts 失敗情報を整形表示
findSessionLogPath() 同上 failed ディレクトリからセッションログを特定

影響範囲

  • src/infra/fs/session.tsFailureInfolastAgentMessage 追加、extractFailureInfo() で取得
  • src/features/tasks/list/index.tsshowFailedTaskAndPromptAction() に失敗詳細表示を追加
  • src/features/tasks/list/taskRetryActions.tsfindSessionLogPath, displayFailureInfo を共有用に export、retry 側の重複表示を除去

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions