Skip to content

feat: ゾンビタスクの管理機能を強化#293

Draft
snow7y wants to merge 6 commits into
mainfrom
feature/290-weekly-review-task-segmentation-agent
Draft

feat: ゾンビタスクの管理機能を強化#293
snow7y wants to merge 6 commits into
mainfrom
feature/290-weekly-review-task-segmentation-agent

Conversation

@snow7y

@snow7y snow7y commented Dec 8, 2025

Copy link
Copy Markdown
Member

概要

このセクションでは、このPRの目的と概要を簡潔に説明してください。

変更点

このセクションでは、具体的な変更点や修正箇所を箇条書きでリストアップしてください。

  • cleanup_components.py:

    • ZombieTaskDatacompletedフィールドを追加し、タスクの完了状態を管理。
    • ZombieTaskCardクラスに完了タスクの表示ロジックを追加し、完了したタスクのスタイルを変更。
    • 完了タスクの内容を表示するためのメソッド_build_completed_contentを追加。
  • controller.py:

    • ゾンビタスクのアクションを実行するexecute_task_actionsメソッドを追加し、選択されたアクションに基づいてタスクを処理。
    • タスクの決定を収集する_collect_task_decisionsメソッドを追加。
  • state.py:

    • ゾンビタスクの完了状態を管理するための新しいフィールドを追加。
    • サブタスクのドラフトを管理するためのメソッドを追加。
  • view.py:

    • ゾンビタスクのアクションを実行するボタンを追加し、UIを改善。
    • サブタスクのドラフトを表示するための新しいメソッドを追加。
  • テスト:

    • 新しい機能に対するユニットテストを追加し、タスクのアクション実行やサブタスクの承認・破棄の動作を確認。

関連Issue

このセクションでは、このPRが関連するIssueをリンクしてください。以下のように記述します。

- `cleanup_components.py`:
  - `ZombieTaskData`に`completed`フィールドを追加し、タスクの完了状態を管理。
  - `ZombieTaskCard`クラスに完了タスクの表示ロジックを追加し、完了したタスクのスタイルを変更。
  - 完了タスクの内容を表示するためのメソッド`_build_completed_content`を追加。

- `controller.py`:
  - ゾンビタスクのアクションを実行する`execute_task_actions`メソッドを追加し、選択されたアクションに基づいてタスクを処理。
  - タスクの決定を収集する`_collect_task_decisions`メソッドを追加。

- `state.py`:
  - ゾンビタスクの完了状態を管理するための新しいフィールドを追加。
  - サブタスクのドラフトを管理するためのメソッドを追加。

- `view.py`:
  - ゾンビタスクのアクションを実行するボタンを追加し、UIを改善。
  - サブタスクのドラフトを表示するための新しいメソッドを追加。

- テスト:
  - 新しい機能に対するユニットテストを追加し、タスクのアクション実行やサブタスクの承認・破棄の動作を確認。
@github-actions github-actions Bot added enhancement 新しく機能を追加する ui ユーザーインターフェース (UI) 関連のコード変更 logic ビジネスロジックまたはコアロジックのコード変更 tests テストコードの追加、修正、または改善 agents エージェント関連のコード変更 models データモデルまたはデータ構造関連のコード変更 labels Dec 8, 2025
@snow7y snow7y self-assigned this Dec 8, 2025
@github-actions

github-actions Bot commented Dec 8, 2025

Copy link
Copy Markdown

Coverage

Coverage Report
FileStmtsMissCoverMissing
scripts
   __init__.py00100% 
   component_launcher.py190190190 0%
   genai_test.py131313 0%
   generate_agent_graph.py101010 0%
   generate_env_docs.py414141 0%
   remove_database.py111111 0%
   run_logic_cov.py262626 0%
   run_migrate.py555 0%
   seed_sample_data.py172172172 0%
src
   config.py2333 87%
   errors.py120100% 
src/agents
   __init__.py00100% 
   agent_conf.py160100% 
   base.py1112626 77%
   utils.py1115151 54%
src/agents/task_agents
   __init__.py40100% 
src/agents/task_agents/memo_to_task
   __init__.py20100% 
   agent.py577503503 13%
   prompt.py70100% 
   schema.py7399 88%
   state.py570100% 
src/agents/task_agents/one_liner
   __init__.py00100% 
   agent.py452222 51%
   prompt.py50100% 
   state.py160100% 
src/agents/task_agents/review_copilot
   __init__.py50100% 
   agent.py1596161 62%
   highlights_agent.py771010 87%
   memo_audit_agent.py7399 88%
   zombie_agent.py7799 88%
src/agents/task_agents/weekly_review_actions
   __init__.py20100% 
   agent.py893939 56%
src/logic
   __init__.py20100% 
   factory.py3433 91%
   unit_of_work.py720100% 
src/logic/application
   __init__.py20100% 
   apps.py1451919 87%
   base.py150100% 
   memo_ai_job_queue.py248136136 45%
   memo_application_service.py3107070 77%
   memo_to_task_application_service.py1424444 69%
   one_liner_application_service.py9911 99%
   project_application_service.py8233 96%
   review_application_service.py3411 97%
   settings_application_service.py4744 91%
   tag_application_service.py5333 94%
   task_application_service.py871111 87%
   terminology_application_service.py1074040 63%
src/logic/repositories
   __init__.py2633 88%
   base.py961515 84%
   memo.py1132323 80%
   project.py5033 94%
   tag.py8688 91%
   task.py1092121 81%
   term.py1193737 69%
src/logic/services
   __init__.py100100% 
   base.py6444 94%
   memo_service.py1051616 85%
   project_service.py8377 92%
   settings_service.py12777 94%
   tag_service.py741010 86%
   task_service.py1101717 85%
   terminology_service.py2156161 72%
   weekly_review_action_service.py3558383 77%
   weekly_review_service.py1272525 80%
src/models
   __init__.py2281414 94%
   review.py15222 99%
src/settings
   __init__.py20100% 
   manager.py1251515 88%
   models.py2911515 95%
   review.py1622 88%
   utils.py1244 67%
src/views
   __init__.py50100% 
   theme.py2688585 68%
src/views/home
   __init__.py30100% 
   controller.py451010 78%
   query.py1251515 88%
   state.py2622 92%
   view.py1285555 57%
src/views/home/components
   __init__.py50100% 
   daily_review_card.py382727 29%
   inbox_memos_section.py352525 29%
   stats_cards.py2266 73%
src/views/memos
   __init__.py30100% 
   controller.py1689898 42%
   create_memo_view.py1248585 31%
   ordering.py80100% 
   presenter.py186150150 19%
   query.py1522 87%
   state.py259116116 55%
   view.py473416416 12%
src/views/memos/components
   __init__.py80100% 
   create_form.py523333 37%
   create_header.py382525 34%
   filters.py1057070 33%
   markdown_preview.py633 50%
   memo_card.py4088 80%
   memo_list.py624545 27%
   status_tabs.py911 89%
   tag_selector.py584040 31%
   types.py70100% 
src/views/memos/components/shared
   __init__.py00100% 
   constants.py190100% 
src/views/projects
   __init__.py20100% 
   controller.py265232232 12%
   ordering.py241010 58%
   presenter.py1419494 33%
   state.py1933 84%
   view.py172143143 17%
src/views/projects/components
   __init__.py80100% 
   empty_state.py1144 64%
   no_selection.py611 83%
   project_card.py322323 28%
   project_detail_panel.py604242 30%
   project_dialogs.py200193193 4%
   project_list.py291919 34%
   status_tabs.py811 88%
src/views/shared
   __init__.py20100% 
   base_view.py164111111 32%
src/views/shared/components
   __init__.py40100% 
   card.py1013636 64%
   header.py1207878 35%
   status_tabs.py755656 25%
src/views/tags
   __init__.py20100% 
   controller.py1309898 25%
   presenter.py221212 45%
   query.py811 88%
   state.py371919 49%
   utils.py844 50%
   view.py1178888 25%
src/views/tags/components
   __init__.py70100% 
   action_bar.py351919 46%
   color_palette.py733 57%
   empty_state.py281515 46%
   tag_detail_panel.py763535 54%
   tag_form_dialog.py896767 25%
   tag_list_item.py593939 34%
src/views/weekly_review
   __init__.py20100% 
   controller.py2273030 87%
   presenter.py733939 47%
   state.py1753232 82%
   utils.py322323 28%
   view.py363311311 14%
src/views/weekly_review/components
   __init__.py100100% 
   achievement_components.py824646 44%
   alert_card.py251010 60%
   cleanup_components.py1519898 35%
   planning_components.py905151 43%
   review_checklist.py352020 43%
   stats_card.py261313 50%
   step_indicator.py311616 48%
   task_list_card.py482727 44%
   wizard_navigation.py553434 38%
tests
   __init__.py00100% 
   test_ci_configuration.py7733 96%
   test_labeler_config.py800100% 
tests/agents
   __init__.py00100% 
   conftest.py1622 88%
   test_utils_and_validation.py340100% 
tests/agents/models
   __init__.py00100% 
   test_fake_chat_model_standard.py100100% 
tests/agents/task_agents
   __init__.py00100% 
   test_review_copilot_agent.py620100% 
   test_weekly_review_task_agent.py170100% 
tests/logic
   __init__.py00100% 
   conftest.py521111 79%
   helpers.py1222 83%
   test_factory.py720100% 
   test_unit_of_work.py1790100% 
tests/logic/application
   __init__.py00100% 
   test_application_services_invalidate.py220100% 
   test_apps.py1610100% 
   test_base.py370100% 
   test_memo_ai_job_queue.py610100% 
   test_memo_application_service.py27622 99%
   test_memo_application_service_exceptions.py360100% 
   test_memo_to_task_application_service.py510100% 
   test_one_liner_application_service.py1810100% 
   test_project_application_service.py1060100% 
   test_review_application_service.py6244 94%
   test_settings_application_service.py8622 98%
   test_tag_application_service.py970100% 
   test_task_application_service.py1480100% 
   test_terminology_application_service.py890100% 
tests/logic/repositories
   __init__.py00100% 
   test_base.py1000100% 
   test_memo.py1960100% 
   test_project.py1510100% 
   test_tag.py15611 99%
   test_task.py1650100% 
   test_term.py1030100% 
tests/logic/services
   __init__.py00100% 
   test_memo_service.py1560100% 
   test_one_liner_service.py5611 98%
   test_project_service.py16377 96%
   test_service_base_conversion.py4011 98%
   test_settings_service.py1030100% 
   test_tag_service.py8611 99%
   test_task_service.py15611 99%
   test_terminology_service.py1230100% 
   test_weekly_review_action_service.py1310100% 
   test_weekly_review_schema.py70100% 
   test_weekly_review_service.py4833 94%
tests/migrations
   __init__.py00100% 
   models.py181818 0%
   settings.py555 0%
tests/settings
   __init__.py00100% 
   test_app_settings.py170100% 
   test_env_overlay.py70100% 
   test_env_settings.py1000100% 
   test_huggingface_model_save.py300100% 
tests/views
   __init__.py00100% 
tests/views/home
   __init__.py00100% 
   test_controller.py310100% 
   test_query.py9622 98%
tests/views/memos
   __init__.py00100% 
   test_controller.py480100% 
   test_state.py190100% 
tests/views/weekly_review
   __init__.py00100% 
   test_controller.py2610100% 
TOTAL16612551667% 

Tests Skipped Failures Errors Time
409 2 💤 1 ❌ 0 🔥 20.494s ⏱️

- models/__init__.py: 新しいモデル `WeeklyReviewMemoDecision` と `WeeklyReviewMemoTaskInfo` をインポート
- models/review.py: メモに対するアクション決定を表す `WeeklyReviewMemoDecision` クラスを追加し、メモ起点のタスク情報を管理する `WeeklyReviewMemoTaskInfo` クラスを追加
- views/weekly_review/components/cleanup_components.py: 未処理メモカードに完了状態を追加し、完了したメモの表示を改善
- views/weekly_review/controller.py: メモアクションの実行を管理するロジックを追加し、タスクとメモのアクションを同時に処理
- views/weekly_review/state.py: メモのドラフトタスクと完了状態を管理するための新しいフィールドを追加
- views/weekly_review/view.py: メモ起点のタスク案を表示するためのUIコンポーネントを追加
- tests/logic/application/test_review_application_service.py: メモタスクの作成とアーカイブ、スキップのテストを追加
- tests/logic/services/test_weekly_review_action_service.py: メモタスクの作成、アーカイブ、スキップに関するテストを追加
- tests/views/weekly_review/test_controller.py: メモドラフトの記録とメモタスクの承認・破棄に関するテストを追加
- 週次レビューに関連する新しいモデルを追加しました。
- 不要なインポートを削除し、インポート文を整理しました。
- ReviewCopilotAgentで、bulletsがNoneの場合のみフォールバックするように変更
- WeeklyReviewActionServiceで、親IDがゼロUUIDまたは存在しない場合にフォールバックする処理を追加
- scripts/remove_database.py: データベースファイルを削除するスクリプトを新規作成
- pyproject.toml: データベース削除スクリプトのコマンドを追加
- scripts/seed_sample_data.py: メモシードに学内SNSアプリのアイデアを追加
- src/views/projects/controller.py: タスク更新後に詳細と一覧を即座に再描画する処理を追加
- src/views/projects/view.py: 非同期生成直後の再描画プローブを実装
@github-actions github-actions Bot added the dependencies プロジェクトの依存関係 (例: pyproject.toml, requirements.txt など) の更新や変更 label Dec 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agents エージェント関連のコード変更 dependencies プロジェクトの依存関係 (例: pyproject.toml, requirements.txt など) の更新や変更 enhancement 新しく機能を追加する logic ビジネスロジックまたはコアロジックのコード変更 models データモデルまたはデータ構造関連のコード変更 tests テストコードの追加、修正、または改善 ui ユーザーインターフェース (UI) 関連のコード変更

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[✨Enhancement] 週次レビュー用のエージェント作成とlogic接続

1 participant