feat: タスク一覧のラベルフィルタ - #535
Open
yupix wants to merge 5 commits into
Open
Conversation
OpenAPI diff (apps/frontend/openapi.json)diff --git a/apps/frontend/openapi.json b/apps/frontend/openapi.json
index 7c01da0..d2a286c 100644
--- a/apps/frontend/openapi.json
+++ b/apps/frontend/openapi.json
@@ -12555,6 +12555,15 @@
"format": "uuid"
}
},
+ {
+ "name": "label_id",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ }
+ },
{
"name": "milestone_id",
"in": "query",
@@ -20088,6 +20097,7 @@
"progress_pct",
"is_archived",
"assignees",
+ "labels",
"created_at",
"updated_at"
],
@@ -20139,6 +20149,12 @@
"is_archived": {
"type": "boolean"
},
+ "labels": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/LabelResponse"
+ }
+ },
"milestone_id": {
"type": ["string", "null"],
"format": "uuid"
@@ -20604,6 +20620,14 @@
"is_archived": {
"type": ["boolean", "null"]
},
+ "label_ids": {
+ "type": ["array", "null"],
+ "items": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "タスクのラベルをこの ID 集合で置き換える(`Some(vec![])` で全解除)。None は変更なし"
+ },
"milestone_id": {
"type": ["string", "null"],
"format": "uuid" |
Deploying koyori with
|
| Latest commit: |
0e64519
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://6c176640.koyori.pages.dev |
| Branch Preview URL: | https://feat-task-label-filter.koyori.pages.dev |
📦 Frontend bundle diagnostics
Chunk changes
|
Coverage Report for apps/frontend
File Coverage
|
||||||||||||||||||||||||||||||||||||||
yupix
added a commit
that referenced
this pull request
Aug 13, 2026
PR #535 レビュー指摘対応: - 指摘1: tasksQuery の placeholderData が label_id を比較しておらず、 フィルタ切替中も旧条件のタスクが表示され続けていた。前クエリの label_id と現在の選択が一致する場合(=ページング時)のみ keepPreviousData を返すよう修正 - 指摘2: createProjectSwitchMockFetch のプロジェクト一覧分岐が /labels を除外しておらず、ラベル一覧にプロジェクトを返していた。 /labels 分岐をプロジェクト別 fixture で追加 - 指摘3: ラベル一覧の取得失敗時にフィルタが無言で消えていた。 ツールバー内にエラー表示と再試行ボタンを追加(タスク一覧は ブロックしない) 回帰テスト: - story「ラベルフィルタで旧条件タスク非表示」: 絞り込みレスポンスを 保留し、旧条件タスクが表示されないことを検証(修正前は fail を確認) - story「ラベル取得エラー」: labels API 500 時のエラー表示・再試行 ボタン・タスク一覧非ブロックを検証 - story「プロジェクト切替で旧タスク非表示」: 切替後のドロップダウンに 切替先プロジェクトのラベルのみが並ぶ検証を追加
yupix
added a commit
that referenced
this pull request
Aug 13, 2026
PR #535 レビュー指摘対応: - 指摘1: tasksQuery の placeholderData が label_id を比較しておらず、 フィルタ切替中も旧条件のタスクが表示され続けていた。前クエリの label_id と現在の選択が一致する場合(=ページング時)のみ keepPreviousData を返すよう修正 - 指摘2: createProjectSwitchMockFetch のプロジェクト一覧分岐が /labels を除外しておらず、ラベル一覧にプロジェクトを返していた。 /labels 分岐をプロジェクト別 fixture で追加 - 指摘3: ラベル一覧の取得失敗時にフィルタが無言で消えていた。 ツールバー内にエラー表示と再試行ボタンを追加(タスク一覧は ブロックしない) 回帰テスト: - story「ラベルフィルタで旧条件タスク非表示」: 絞り込みレスポンスを 保留し、旧条件タスクが表示されないことを検証(修正前は fail を確認) - story「ラベル取得エラー」: labels API 500 時のエラー表示・再試行 ボタン・タスク一覧非ブロックを検証 - story「プロジェクト切替で旧タスク非表示」: 切替後のドロップダウンに 切替先プロジェクトのラベルのみが並ぶ検証を追加
yupix
force-pushed
the
feat/task-label-filter
branch
from
August 13, 2026 14:34
23bb78d to
e9840e9
Compare
yupix
force-pushed
the
feat/task-label-filter
branch
from
August 13, 2026 16:26
e9840e9 to
fd5b6c4
Compare
yupix
added a commit
that referenced
this pull request
Aug 13, 2026
PR #535 レビュー指摘対応: - 指摘1: tasksQuery の placeholderData が label_id を比較しておらず、 フィルタ切替中も旧条件のタスクが表示され続けていた。前クエリの label_id と現在の選択が一致する場合(=ページング時)のみ keepPreviousData を返すよう修正 - 指摘2: createProjectSwitchMockFetch のプロジェクト一覧分岐が /labels を除外しておらず、ラベル一覧にプロジェクトを返していた。 /labels 分岐をプロジェクト別 fixture で追加 - 指摘3: ラベル一覧の取得失敗時にフィルタが無言で消えていた。 ツールバー内にエラー表示と再試行ボタンを追加(タスク一覧は ブロックしない) 回帰テスト: - story「ラベルフィルタで旧条件タスク非表示」: 絞り込みレスポンスを 保留し、旧条件タスクが表示されないことを検証(修正前は fail を確認) - story「ラベル取得エラー」: labels API 500 時のエラー表示・再試行 ボタン・タスク一覧非ブロックを検証 - story「プロジェクト切替で旧タスク非表示」: 切替後のドロップダウンに 切替先プロジェクトのラベルのみが並ぶ検証を追加
yupix
force-pushed
the
feat/task-label-filter
branch
from
August 13, 2026 17:24
fd5b6c4 to
7882f3b
Compare
yupix
added a commit
that referenced
this pull request
Aug 13, 2026
PR #535 レビュー指摘対応: - 指摘1: tasksQuery の placeholderData が label_id を比較しておらず、 フィルタ切替中も旧条件のタスクが表示され続けていた。前クエリの label_id と現在の選択が一致する場合(=ページング時)のみ keepPreviousData を返すよう修正 - 指摘2: createProjectSwitchMockFetch のプロジェクト一覧分岐が /labels を除外しておらず、ラベル一覧にプロジェクトを返していた。 /labels 分岐をプロジェクト別 fixture で追加 - 指摘3: ラベル一覧の取得失敗時にフィルタが無言で消えていた。 ツールバー内にエラー表示と再試行ボタンを追加(タスク一覧は ブロックしない) 回帰テスト: - story「ラベルフィルタで旧条件タスク非表示」: 絞り込みレスポンスを 保留し、旧条件タスクが表示されないことを検証(修正前は fail を確認) - story「ラベル取得エラー」: labels API 500 時のエラー表示・再試行 ボタン・タスク一覧非ブロックを検証 - story「プロジェクト切替で旧タスク非表示」: 切替後のドロップダウンに 切替先プロジェクトのラベルのみが並ぶ検証を追加
yupix
force-pushed
the
feat/task-label-filter
branch
from
August 13, 2026 17:49
7882f3b to
a707722
Compare
- ListTasksQuery に label_id を追加し、assignee_id と同じ EXISTS サブクエリで 指定ラベルが付与されたタスクのみに絞り込む - 一覧ページのツールバーにラベルフィルタ(ラジオ選択・「すべて」で解除)を追加。 検索中は他のリスト操作と同様に非表示。切替時は先頭ページへ戻す - 仕様書 §4.1 のクエリパラメータ表に label_id を追記、openapi.json / CLI 型を再生成 - 一覧ページが labels API を叩くようになったため、TaskTable ストーリーの fetch モックに /labels 分岐を追加(従来はプロジェクト一覧の分岐に吸われていた)。 タスクフィクスチャにも labels を補完 - 統合テスト: label_id フィルタで対象タスクのみ返ること・非対象ラベルで 0 件に なることを追加
PR #535 レビュー指摘対応: - 指摘1: tasksQuery の placeholderData が label_id を比較しておらず、 フィルタ切替中も旧条件のタスクが表示され続けていた。前クエリの label_id と現在の選択が一致する場合(=ページング時)のみ keepPreviousData を返すよう修正 - 指摘2: createProjectSwitchMockFetch のプロジェクト一覧分岐が /labels を除外しておらず、ラベル一覧にプロジェクトを返していた。 /labels 分岐をプロジェクト別 fixture で追加 - 指摘3: ラベル一覧の取得失敗時にフィルタが無言で消えていた。 ツールバー内にエラー表示と再試行ボタンを追加(タスク一覧は ブロックしない) 回帰テスト: - story「ラベルフィルタで旧条件タスク非表示」: 絞り込みレスポンスを 保留し、旧条件タスクが表示されないことを検証(修正前は fail を確認) - story「ラベル取得エラー」: labels API 500 時のエラー表示・再試行 ボタン・タスク一覧非ブロックを検証 - story「プロジェクト切替で旧タスク非表示」: 切替後のドロップダウンに 切替先プロジェクトのラベルのみが並ぶ検証を追加
yupix
force-pushed
the
feat/task-label-filter
branch
from
August 16, 2026 15:43
6268aa2 to
0e64519
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #534
概要
#534 でタスクにラベルを付与できるようになったのに続き、タスク一覧を指定ラベルで絞り込めるようにする。
変更内容
backend
GET /tasksのListTasksQueryにlabel_id(単一 UUID・任意)を追加。既存のassignee_idと同じEXISTSサブクエリで絞り込むdocs/features/tasks/1.core.md§4.1 のクエリパラメータ表に追記openapi.json/ CLI 型を再生成frontend
/labels分岐を追加し、タスクフィクスチャにlabelsを補完挙動の変化
GET /tasks?label_id=<uuid>で該当ラベルが付いたタスクのみ返る(未指定時は従来どおり)テスト
task_labels_integration.rs):label_idフィルタで対象タスクのみ返ること / 付与実績のないラベルでは 0 件になることcargo fmt/check/clippy/test --lib/ 対象統合テスト、frontendpnpm verify/test:unit(258 件)すべて PASS