# リリースノート v1.2.1

## 今回のリリースに含まれる Pull Request

--- 以下、Generated by Claude Code ---

## What's Changed

1. #792: "delete google-auth-library package" by @isamu
2. #791: "remove local sleep" by @isamu
3. #793: "add defaultProvider.text2image" by @snakajima
4. #795: "Adjust IntroPadding when the first beat has the lip-sync enabled" by @snakajima
5. #797: "emphasize ツンデレ" by @snakajima
6. #796: "Add background='opaque' setting for OpenAI image generation" by @asuhacoder
7. #798: "Custom Prompt" by @snakajima

**Full Changelog**: https://github.com/receptron/mulmocast-cli/compare/1.2.0...1.2.1

## Pull Request Summaries (バイリンガル)

### PR #792: delete google-auth-library package - @isamu (https://github.com/receptron/mulmocast-cli/pull/792)
- **English**: Removed the unused `google-auth-library` dependency from the project's package.json as it was no longer referenced anywhere in the codebase. Code verification confirmed no direct imports or usages of this library remained after the Google GenAI SDK integration. Additionally updated ESLint from v9.32.0 to v9.33.0. This change continues the cleanup process from previous PRs that migrated Google authentication to the simpler API key-based approach using the `@google/genai` package, eliminating the need for the more complex OAuth-based authentication library.
- **日本語**: コードベース内でもはや参照されていない未使用の`google-auth-library`依存関係をプロジェクトのpackage.jsonから削除しました。コード検証により、Google GenAI SDK統合後にこのライブラリへの直接的なimportや使用が残っていないことが確認されました。さらに、ESLintをv9.32.0からv9.33.0に更新しました。この変更は、Google認証を`@google/genai`パッケージを使用したよりシンプルなAPIキーベースのアプローチに移行した以前のPRからのクリーンアップ作業を継続し、より複雑なOAuthベースの認証ライブラリの必要性を排除します。

### PR #791: remove local sleep - @isamu (https://github.com/receptron/mulmocast-cli/pull/791)
- **English**: Removed the local `sleep` function implementation from `utils.ts` to eliminate code duplication, as the GraphAI library already provides the same functionality. The local implementation was a standard Promise-based sleep function using setTimeout, which is now replaced by importing the sleep function from GraphAI. This change streamlines the codebase by consolidating to a single external library implementation for sleep operations used in movie generation agents.
- **日本語**: GraphAIライブラリが同じ機能を提供しているため、コードの重複を排除する目的で`utils.ts`からローカルの`sleep`関数実装を削除しました。ローカル実装はsetTimeoutを使用した標準的なPromiseベースのsleep関数でしたが、現在はGraphAIからsleep関数をインポートすることで置き換えられています。この変更により、動画生成エージェントで使用されるsleep操作を単一の外部ライブラリ実装に統一してコードベースを合理化します。

### PR #793: add defaultProvider.text2image - @snakajima (https://github.com/receptron/mulmocast-cli/pull/793)
- **English**: Fixed a bug where the image generation provider could become undefined in certain cases by adding fallback logic using the nullish coalescing operator and `defaultProviders.text2image`. The modification adds `?? defaultProviders.text2image` to the provider assignment in `mulmo_presentation_style.ts`, ensuring that OpenAI is used as the default text-to-image provider when the specified provider is undefined or invalid. This improves system stability by preventing failures during image generation when provider configuration is incomplete or missing.
- **日本語**: 特定のケースで画像生成プロバイダーがundefinedになるバグを修正するため、nullish coalescing演算子と`defaultProviders.text2image`を使用したフォールバックロジックを追加しました。この修正により、`mulmo_presentation_style.ts`のプロバイダー代入に`?? defaultProviders.text2image`を追加し、指定されたプロバイダーがundefinedまたは無効な場合にOpenAIがデフォルトのtext-to-imageプロバイダーとして使用されることを保証します。これにより、プロバイダー設定が不完全または欠落している場合の画像生成中の失敗を防ぎ、システムの安定性が向上します。

### PR #795: Adjust IntroPadding when the first beat has the lip-sync enabled - @snakajima (https://github.com/receptron/mulmocast-cli/pull/795)
- **English**: Implemented improved audio synchronization for lip-sync presentations by adding the `getIntroPadding` method to `MulmoStudioContextMethods`. This method automatically sets intro padding to 0 when lip-sync is enabled on the first beat to prevent audio-visual sync issues. The change centralizes padding calculation logic and replaces direct access to `context.presentationStyle.audioParams.introPadding` with the new method across movie actions, BGM processing, and caption timing. This ensures consistent audio-video synchronization when lip-sync functionality is enabled, eliminating timing discrepancies that could occur with intro padding.
- **日本語**: リップシンクプレゼンテーションの音声同期を改善するため、`MulmoStudioContextMethods`に`getIntroPadding`メソッドを追加しました。このメソッドは、最初のビートでリップシンクが有効な場合、音声と映像の同期ずれを防ぐためにイントロパディングを自動的に0に設定します。この変更により、パディング計算ロジックが一元化され、動画アクション、BGM処理、キャプションタイミングの各箇所で`context.presentationStyle.audioParams.introPadding`への直接アクセスを新しいメソッドに置き換えました。これにより、リップシンク機能が有効な場合の一貫した音声・映像同期が保証され、イントロパディングによって発生する可能性のあるタイミングの不一致が排除されます。

### PR #797: emphasize ツンデレ - @snakajima (https://github.com/receptron/mulmocast-cli/pull/797)
- **English**: Enhanced the tsundere character presentation style by modifying the system prompt in anime presentation templates (`ani.json` and `ani_ja.json`). Changed the instruction from "言葉づかいは少しツンデレにして" (make speech a little tsundere) to "言葉づかいは思いっきりツンデレにして" (make speech completely tsundere), intensifying the character's tone in generated presentation scripts. This purely textual modification affects the personality expression in anime-style presentations without changing any system functionality or JSON structure.
- **日本語**: アニメプレゼンテーションテンプレート（`ani.json`と`ani_ja.json`）のシステムプロンプトを修正して、ツンデレキャラクターのプレゼンテーションスタイルを強化しました。「言葉づかいは少しツンデレにして」から「言葉づかいは思いっきりツンデレにして」に変更し、生成されるプレゼンテーションスクリプトでキャラクターの口調をより強調しました。この純粋にテキストの修正は、システムの機能やJSON構造を変更することなく、アニメスタイルのプレゼンテーションでの性格表現に影響を与えます。

### PR #796: Add background='opaque' setting for OpenAI image generation - @asuhacoder (https://github.com/receptron/mulmocast-cli/pull/796)
- **English**: Added default `background="opaque"` setting to OpenAI image generation to prevent transparent background issues in video production. The change adds a background property to the OpenAIImageOptions type definition with three possible values ("opaque", "transparent", "auto") and sets "opaque" as the hardcoded default in the image generation agent. This addresses color mixing problems that occur when transparent images are used in video generation, ensuring all generated images have solid backgrounds. The feature is supported by the `gpt-image-1` model but not DALL-E-3.
- **日本語**: 動画制作における透明背景の問題を防ぐため、OpenAI画像生成にデフォルトの`background="opaque"`設定を追加しました。この変更により、OpenAIImageOptions型定義に3つの可能な値（"opaque"、"transparent"、"auto"）を持つbackgroundプロパティが追加され、画像生成エージェントで"opaque"がハードコードされたデフォルトとして設定されます。これにより、透明画像が動画生成で使用される際に発生する色の混合問題を解決し、生成されるすべての画像が固体背景を持つことを保証します。この機能は`gpt-image-1`モデルでサポートされていますが、DALL-E-3ではサポートされていません。

### PR #798: Custom Prompt - @snakajima (https://github.com/receptron/mulmocast-cli/pull/798)
- **English**: Enhanced prompt template system by adding `suppressFirstStatement` option to `dumpPromptFromTemplate` function, enabling custom introduction statements when using MulmoCast as a library. Added a `firstStatement` constant containing "Generate a script for a presentation of the given topic." and refactored 19 template files to remove this standardized introduction from their systemPrompt sections. When `suppressFirstStatement` is true, applications can provide custom introduction statements while maintaining template-specific instructions. Additionally removed 4 deprecated template files (ani_ja, podcast_standard, text_and_image, text_only) to clean up the template collection.
- **日本語**: MulmoCastをライブラリとして使用する際にカスタム導入文を可能にするため、`dumpPromptFromTemplate`関数に`suppressFirstStatement`オプションを追加してプロンプトテンプレートシステムを強化しました。「Generate a script for a presentation of the given topic.」を含む`firstStatement`定数を追加し、19のテンプレートファイルをリファクタリングして、この標準化された導入文をsystemPromptセクションから削除しました。`suppressFirstStatement`がtrueの場合、アプリケーションはテンプレート固有の指示を維持しながらカスタム導入文を提供できます。さらに、テンプレートコレクションをクリーンアップするため、4つの非推奨テンプレートファイル（ani_ja、podcast_standard、text_and_image、text_only）を削除しました。

## Release Notes – Developer-Focused (English)

MulmoCast CLI v1.2.1 is a maintenance release that improves system stability, audio-video synchronization, and library integration while cleaning up dependencies and templates:

### Bug Fixes:
- **Image Provider Fallback**: Fixed undefined provider issue by adding fallback logic with nullish coalescing operator to default to OpenAI when image generation provider configuration is incomplete.
- **Lip-sync Audio Synchronization**: Implemented automatic intro padding adjustment that sets padding to 0 when lip-sync is enabled on the first beat, preventing audio-visual sync issues.

### Library Integration:
- **Custom Prompt Support**: Added `suppressFirstStatement` option to `dumpPromptFromTemplate` function, enabling applications to provide custom introduction statements while preserving template-specific instructions.
- **Template Cleanup**: Removed 4 deprecated template files and standardized prompt structure across 19 templates by extracting common introduction statements.

### Image Generation Enhancements:
- **Opaque Background Default**: Added `background="opaque"` setting to OpenAI image generation to prevent transparent background issues in video production, supporting the `gpt-image-1` model.

### Code Quality:
- **Dependency Cleanup**: Removed unused `google-auth-library` dependency following Google GenAI SDK migration, reducing bundle size.
- **Function Consolidation**: Eliminated duplicate local `sleep` function implementation in favor of GraphAI library's version.
- **Updated ESLint**: Version updated from 9.32.0 to 9.33.0.

### Character Enhancement:
- **Tsundere Presentation Style**: Enhanced anime character expression by intensifying tsundere tone in presentation templates.

This release focuses on stability improvements and cleaner library architecture while maintaining full backward compatibility for existing users.

## リリースノート – 開発者向け (日本語)

MulmoCast CLI v1.2.1は、システムの安定性、音声・映像の同期、ライブラリ統合を改善し、依存関係とテンプレートをクリーンアップするメンテナンスリリースです：

### バグ修正:
- **画像プロバイダーフォールバック**: 画像生成プロバイダー設定が不完全な場合にOpenAIにデフォルトするよう、nullish coalescing演算子によるフォールバックロジックを追加して、undefinedプロバイダー問題を修正しました。
- **リップシンク音声同期**: 最初のビートでリップシンクが有効な場合にパディングを0に設定する自動イントロパディング調整を実装し、音声・映像の同期問題を防止します。

### ライブラリ統合:
- **カスタムプロンプトサポート**: `dumpPromptFromTemplate`関数に`suppressFirstStatement`オプションを追加し、テンプレート固有の指示を維持しながらアプリケーションがカスタム導入文を提供できるようにしました。
- **テンプレートクリーンアップ**: 4つの非推奨テンプレートファイルを削除し、共通の導入文を抽出して19のテンプレートでプロンプト構造を標準化しました。

### 画像生成の強化:
- **不透明背景デフォルト**: 動画制作での透明背景問題を防ぐため、OpenAI画像生成に`background="opaque"`設定を追加し、`gpt-image-1`モデルをサポートしました。

### コード品質:
- **依存関係クリーンアップ**: Google GenAI SDK移行後の未使用`google-auth-library`依存関係を削除し、バンドルサイズを削減しました。
- **関数統合**: GraphAIライブラリのバージョンを優先して、重複するローカル`sleep`関数実装を削除しました。
- **ESLint更新**: バージョンを9.32.0から9.33.0に更新しました。

### キャラクター強化:
- **ツンデレプレゼンテーションスタイル**: プレゼンテーションテンプレートでツンデレの口調を強化して、アニメキャラクターの表現を向上させました。

このリリースは、既存ユーザーの完全な後方互換性を維持しながら、安定性の向上とよりクリーンなライブラリアーキテクチャに焦点を当てています。

## Release Notes – Creator-Focused (English)

MulmoCast CLI v1.2.1 brings important fixes and improvements to enhance your content creation experience with better audio-visual synchronization and image generation:

### Audio-Visual Improvements:
- **Better Lip-sync**: Fixed timing issues with lip-sync presentations by automatically adjusting intro padding when lip-sync is enabled, ensuring perfect audio-video alignment.
- **Improved Images**: All OpenAI-generated images now use solid backgrounds by default, preventing color mixing issues when creating videos.

### Character Enhancements:
- **Enhanced Anime Characters**: Tsundere character presentations now have more pronounced personality expression for more engaging content.

### System Stability:
- **More Reliable Generation**: Fixed issues where image generation could fail due to missing provider settings, ensuring smoother content creation workflows.
- **Cleaner Templates**: Removed outdated templates and standardized the remaining ones for more consistent results.

### For Library Users:
- **Custom Prompt Support**: Applications can now provide custom introduction statements while maintaining template-specific styling and personality.

These improvements focus on making your content creation process more reliable and your generated presentations more polished, with particular attention to audio-video synchronization and visual quality.

## リリースノート – クリエイター向け (日本語)

MulmoCast CLI v1.2.1では、音声・映像の同期と画像生成の改善により、コンテンツ作成体験を向上させる重要な修正と改善が導入されます：

### 音声・映像の改善:
- **リップシンクの向上**: リップシンクが有効な場合にイントロパディングを自動調整することで、リップシンクプレゼンテーションのタイミング問題を修正し、完璧な音声・映像の同期を実現します。
- **画像品質の向上**: すべてのOpenAI生成画像でデフォルトで固体背景を使用し、動画作成時の色の混合問題を防ぎます。

### キャラクター強化:
- **アニメキャラクターの強化**: ツンデレキャラクターのプレゼンテーションで、より魅力的なコンテンツのために性格表現がより強調されるようになりました。

### システムの安定性:
- **より信頼性の高い生成**: プロバイダー設定の不足により画像生成が失敗する問題を修正し、よりスムーズなコンテンツ作成ワークフローを保証します。
- **クリーンなテンプレート**: 古いテンプレートを削除し、残りのテンプレートを標準化して、より一貫した結果を提供します。

### ライブラリユーザー向け:
- **カスタムプロンプトサポート**: テンプレート固有のスタイルと個性を維持しながら、アプリケーションがカスタム導入文を提供できるようになりました。

これらの改善は、コンテンツ作成プロセスをより信頼性の高いものにし、生成されるプレゼンテーションをよりポリッシュされたものにすることに焦点を当て、特に音声・映像の同期と視覚品質に注意を払っています。

## 品質チェック記録

**PRサマリーの品質確認**：
- [x] 各PRについて、タイトルだけでなくPR本文（説明文）を確認したか
- [x] PRのコメント欄をチェックし、作者による詳細説明を活用したか
- [x] 実際のコード変更内容を確認したか
- [x] 推測や誇張表現を避け、事実ベースの記述になっているか
- [x] 禁止表現（「革新的」「画期的」「プロフェッショナル」等）を使用していないか

**リリースノートの品質確認**：
- [x] 新機能に適切なサンプルファイルやドキュメントのリンクを追加したか
- [x] リンク先ファイルの内容を確認し、機能との関連性を検証したか
- [x] すべてのリンクがGitHubの完全URL（https://github.com/receptron/mulmocast-cli/blob/バージョン/パス）形式になっているか
- [x] 開発者向け・クリエイター向けの4種類のリリースノートを作成したか
- [x] GitHub向けリリースノートをindex.mdに追加したか
- [x] 文量と詳細レベルがv0.0.17.mdを参考にして適切か

**最終チェック**：
- [x] prompt.mdの全ての条件と指示に従って作業したか
- [x] 各セクションが適切に分類されているか
- [x] 日本語の誤字脱字がないか（特に技術用語）
- [x] 全体的な整合性と一貫性が保たれているか

チェック完了日: 2025-08-13
チェック者: Claude Code