Skip to content

fix: 生成前の失敗も開発ログに記録する - #2

Merged
owayo merged 2 commits into
mainfrom
fix/issue-1-log-early-failures
Sep 30, 2026
Merged

owayo merged 2 commits into
mainfrom
fix/issue-1-log-early-failures

Conversation

@owayo

@owayo owayo commented Sep 30, 2026

Copy link
Copy Markdown
Owner

概要

プロンプトを作る前にステージングなどで失敗すると、開発ログが作られず、--quiet で起動した実行を追跡できませんでした。生成前の失敗も result.status = "failed" と result.error を保存し、未生成のプロンプトは null として記録します。

原因

DevLog::finish がプロンプト未設定時に結果を確認せず戻っていました。また、App::run のリポジトリ検証エラーは共通のログ書き出しに到達していませんでした。

変更内容

  • 失敗結果を先に判定し、正常に生成をスキップした場合だけログを省略。
  • ログのプロンプト情報を nullable に変更。生成済みの JSON 形状は維持。
  • Git の起動エラーも共通の終了処理へ集約。リポジトリ外での通常のスキップは記録しない。
  • 日英文書と開発向け仕様を更新。

設計・レビュー

Claude に設計相談し、Codex の設計確認と差分レビューでも不具合の指摘はありませんでした。実行結果型の全面変更や panic 捕捉は通常エラーの記録漏れを直す今回の範囲を超えるため採用しません。スキーマ版は既存の nullable 化方針に従い維持します。ログ設定が確定する前の設定読み込み失敗は対象外です。

検証

  • make ci: pass(format、通常ビルドと Apple Intelligence 有効時の clippy、全テスト)。
  • astro-sight review --dir . --git: API 変更・未参照シンボルの指摘なし。
  • 回帰テスト: metadata/full の生成前失敗、明示的な失敗結果、実バイナリの index.lock によるステージング失敗、Git 起動失敗、リポジトリ外の正常スキップ。
  • 単体・実バイナリの回帰テストが修正前に失敗することを確認。
  • HOME を変更する結合テストは、既存方針に合わせ Windows でスキップ。単体テストは全 OS が対象。

Closes #1

プロンプト未設定時の早期 return により、ステージング失敗が記録から漏れていた。
失敗結果を先に判定して prompt が null のログを保存し、検証時のエラーも共通の終了処理へ流す。
正常なスキップは引き続き記録しない。
@owayo owayo self-assigned this Sep 30, 2026
PR のチェックアウトが detached HEAD のため、実行元に main や現在ブランチがある前提の既存テストが失敗していた。
テスト専用リポジトリで明示的にブランチとコミットを作り、実行元の状態に依存しない検証へ変更する。
@owayo
owayo merged commit 175836a into main Sep 30, 2026
7 checks passed
@owayo
owayo deleted the fix/issue-1-log-early-failures branch September 30, 2026 16:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

プロンプトを作る前に失敗した実行が dev_log に記録されない (フックから --quiet で起動すると失敗に気付けない)

1 participant