Files
Nicolas Fléron 5336391978 MUL-7299: feat(issues): filter issues by the parent project's status (#8321)
Adds "Project status" as its own issue filter dimension, next to "Project":
pick "In Progress" once instead of ticking every active project, and the
result follows project lifecycle changes instead of freezing a project-id
snapshot.

Server side extends the existing issue table filter protocol with an
optional, validated `project_statuses`, filtered through a parameterized,
workspace-bound EXISTS on `project`. No migration and no new index — the
predicate resolves through `project_pkey`, and the planner falls back to the
existing `idx_issue_project_status`.

Client side wires it as a normal dimension: filter menu, chip, reset,
saved views and Gantt/Swimlane, with the project catalog treated as
"cannot answer yet" rather than "no filter" while it loads. Project
status changes, deletes and realtime project events invalidate the issue
table cache, since issue rows themselves do not change.

Default off; closing the filter reverts the behavior.
2026-09-18 15:27:21 +08:00
..