SaaS UX 強化・実運用確認レポート
確認日時
2025-11-28
実装確認項目
✅ タスク1: Run 実行フローの UX 強化
1-1. Run ID リンクの確認
実装内容:
src/nexuscore/webapp/views_projects.pyの 181行目で/logs/runs/{r['run_id']}へのリンクを確認- 以前の
/runs/から/logs/runs/に統一
確認結果: ✅ 実装済み
1-2. Status 表示の確認
実装内容:
- CSS クラスで Status に応じた色分けを実装
.status-pending: グレー (#666).status-running: 青・太字 (#0066cc, font-weight: bold).status-success: 緑 (#00aa00).status-failed: 赤 (#cc0000)
- RUNNING 状態で「▶」アイコンを表示
確認結果: ✅ 実装済み(135-138行目)
1-3. フラッシュメッセージの確認
実装内容:
trigger_runでフラッシュメッセージを設定(311行目)project_detailでフラッシュメッセージを取得・表示(127, 156-158行目)- メッセージ内容: “Run ‘{run_id[:8]}…’ がキューに入りました。実行状態は上記の Run 一覧で確認できます。ログは Run ID をクリックしてください。”
確認結果: ✅ 実装済み
✅ タスク2: 同期/非同期の切り替えを環境変数で制御
2-1. 環境変数チェックの確認
実装内容:
src/nexuscore/webapp/views_projects.pyの 288行目でNEXUS_USE_CELERYをチェック- デフォルトは
"1"(非同期実行)
確認結果: ✅ 実装済み
2-2. 同期実行関数の確認
実装内容:
src/nexuscore/webapp/orchestrator_inline.pyを新規作成run_orchestrator_inline()関数を実装- Run ステータスの更新、Orchestrator 実行、エラーハンドリングを含む
確認結果: ✅ 実装済み
✅ タスク3: Webapp 周りの最小テスト追加
3-1. テストファイルの確認
実装内容:
tests/webapp/test_logging_service.py- logging_service のテストtests/webapp/test_trigger_run.py- trigger_run エンドポイントのテストtests/webapp/test_logs_views.py- logs ビューのテスト
確認結果: ✅ 実装済み
✅ タスク4: 実運用を意識した Celery/Redis の設定整理
4-1. Docker Compose 設定の確認
実装内容:
docker-compose.saas.ymlを新規作成- Flask Web アプリケーション、Celery Worker、Redis、PostgreSQL を含む構成
確認結果: ✅ 実装済み
4-2. systemd 設定の確認
実装内容:
docs/saas_celery_systemd.serviceを新規作成- Celery Worker を systemd で管理するための設定例
確認結果: ✅ 実装済み
4-3. supervisor 設定の確認
実装内容:
docs/saas_celery_supervisor.confを新規作成- Celery Worker を supervisor で管理するための設定例
確認結果: ✅ 実装済み
4-4. AppConfig の Celery 設定の確認
実装内容:
src/nexuscore/config/config.pyで Celery 設定を整理REDIS_URL環境変数もサポート
確認結果: ✅ 実装済み
動作確認手順
1. 開発環境での動作確認
# 1. 仮想環境を有効化
cd /home/yn441611/NexusCore
source myenv_linux/bin/activate
# 2. 環境変数を設定(同期実行モードでデバッグ)
export NEXUS_USE_CELERY=0
# 3. Flask アプリケーションを起動
export FLASK_APP=nexuscore.webapp:create_app
flask run
# 4. 別ターミナルで Celery Worker を起動(非同期実行モードの場合)
export NEXUS_USE_CELERY=1
celery -A nexuscore.webapp.celery_app.celery worker --loglevel=INFO
2. テストの実行
# Webapp テストを実行
python -m pytest tests/webapp/ -v
# 特定のテストを実行
python -m pytest tests/webapp/test_logging_service.py -v
python -m pytest tests/webapp/test_trigger_run.py -v
python -m pytest tests/webapp/test_logs_views.py -v
3. 実運用環境での起動(Docker Compose)
# Docker Compose で起動
docker-compose -f docker-compose.saas.yml up -d
# ログ確認
docker-compose -f docker-compose.saas.yml logs -f
4. 実運用環境での起動(systemd)
# サービスファイルを配置
sudo cp docs/saas_celery_systemd.service /etc/systemd/system/nexuscore-celery.service
# サービスを有効化・起動
sudo systemctl daemon-reload
sudo systemctl enable nexuscore-celery
sudo systemctl start nexuscore-celery
# ログ確認
sudo journalctl -u nexuscore-celery -f
確認済み機能
✅ UX 強化
- Run ID が
/logs/runs/<run_id>へのリンクになっている - Status に応じた色分け・強調表示が実装されている
- フラッシュメッセージが表示される
✅ 同期/非同期切り替え
- 環境変数
NEXUS_USE_CELERYで切り替え可能 - デフォルトは非同期実行(
"1") - 同期実行関数が正しく実装されている
✅ テスト
- logging_service のテストが実装されている
- trigger_run のテストが実装されている
- logs_views のテストが実装されている
✅ 実運用設定
- Docker Compose 設定が作成されている
- systemd 設定が作成されている
- supervisor 設定が作成されている
- AppConfig の Celery 設定が整理されている
次のステップ
推奨される動作確認
- 実際の Web UI での確認:
- GitHub OAuth でログイン
- プロジェクトを作成
- Run を実行して、フラッシュメッセージと Status 表示を確認
- 同期/非同期の切り替え確認:
NEXUS_USE_CELERY=0で同期実行を確認NEXUS_USE_CELERY=1で非同期実行を確認
- テストの実行:
- すべてのテストが成功することを確認
- 実運用環境での確認:
- Docker Compose または systemd で Celery Worker を起動
- タスクが正常に実行されることを確認
関連ドキュメント
docs/completion_reports/SAAS_UX_ENHANCEMENT_COMPLETION_REPORT.md- 実装完了レポートdocs/saas_mvp_setup.md- セットアップガイドdocs/celery_setup.md- Celery セットアップガイド