Skip to content

feat(app): filter Atlas by label, assignee, due date and files (#189798) - #233

Merged
mayoalexander merged 1 commit into
iris/1.18.23from
wt/189798-atlas-filters
Oct 19, 2026
Merged

mayoalexander merged 1 commit into
iris/1.18.23from
wt/189798-atlas-filters

Conversation

@mayoalexander

Copy link
Copy Markdown

Issue for this PR

#189798 (epic #189801). The algorithm pass predicted it would be the first deferred item to come back.

Type of change

  • New feature
  • Bug fix (preview JSON)

What does this PR do?

  • New toolbar filters:
    • Label: only labels actually used on the board.
    • Assigned: Anyone / Me / Nobody. An agent assignee is not "me".
    • Due: Overdue / Next 7 days / No date.
    • Has files.
  • Filters are remembered per board with the existing ones. A stored view from before this change reads unchanged, and invalid values fall back to "any".
  • "Me" is the signed-in user, from /iris/me. It's loaded into a signal, not a resource, so the side panel never suspends waiting on it. Until it arrives, "Me" matches nothing rather than everything.
  • Fix: a card with labels or files has a JSON body, and its row preview showed the raw JSON. The preview now shows the body's prose (body, then text).

How did you verify your code works?

  • iris-atlas-view.test.ts: 46 tests, all pass, including 10 new filter tests and 3 preview tests.
  • Typecheck is clean.
  • App tests: 1256 pass. The same 4 failures exist on the base.
  • Compiled build in Chromium, board 628 (81 cards), with a test card (label, due tomorrow, assigned to me; deleted afterwards):
    • Assigned: Me, Label, and Due: Next 7 days each narrowed the board to that one card;
    • the footer read "11 lists · 81 cards · showing 1";
    • there were no page errors.

Screenshots / recordings

/tmp/atlas-shot/filters.png on the build machine.

Checklist

  • I have tested my changes locally
  • I have not included unrelated changes in this PR

🤖 Generated with Claude Code

…ews never show JSON (#189798)

Now that cards carry labels, assignees, due dates and attachment counts
(#189806), the toolbar filters on them: Label (only labels in use on the
board), Assigned (Anyone / Me / Nobody - an agent assignee is not 'me'), Due
(Overdue / Next 7 days / No date) and Has files. Remembered per board with the
existing filters; a stored view from before reads unchanged. 'Me' is the
signed-in user from /iris/me, loaded into a signal so the panel never waits on
it, and matches nothing until it lands.

Found while checking it: a card with labels or files has a JSON body, and its
row preview showed the raw JSON. The preview now shows the body's prose.

Verified in a compiled build on board 628 (81 cards): Assigned Me, Label and
Due: Next 7 days each narrowed to the one test card (deleted after).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant