Scope mobile Search by type and status #793

Closed
opened 2026-08-14 02:21:16 +00:00 by timmy · 0 comments
Owner

Evidence

Mobile Search currently sends only q, limit, and page; src/gitea_proxy.py always searches both issues and pulls across every state. Broad phone queries mix open/closed issues and pull requests, forcing operators to scan irrelevant rows before claiming work, reopening an issue, or reviewing a pull request. No matching behavior exists in the full issue-title history or recent commits; the nearest issue (#681) filters Find Work, not global Search.

Vertical slice

Add addressable, touch-friendly Type (All, Issues, Pull requests) and Status (Open, Closed, All) controls to mobile Search. Apply the scope server-side and preserve it through pagination, preview/back, browser navigation, reload, sharing, and sign-in continuation.

Acceptance tests

  • Specific type/status scopes make only the required upstream request with the selected state; All preserves balanced issue/pull paging.
  • Invalid scope values return 422.
  • Changing scope aborts stale work, clears old results, and restarts at page 1; delayed old pages cannot enter the new list.
  • Search preview/back, browser history, reload, sharing, and sign-in continuation preserve only validated scope values.
  • At 390x844, labeled controls are visible under Search with 44px touch targets and no horizontal overflow.
  • Existing claim/reopen/assigned-pull/requested-review actions remain available in scoped results.
## Evidence Mobile Search currently sends only `q`, `limit`, and `page`; `src/gitea_proxy.py` always searches both issues and pulls across every state. Broad phone queries mix open/closed issues and pull requests, forcing operators to scan irrelevant rows before claiming work, reopening an issue, or reviewing a pull request. No matching behavior exists in the full issue-title history or recent commits; the nearest issue (#681) filters Find Work, not global Search. ## Vertical slice Add addressable, touch-friendly **Type** (`All`, `Issues`, `Pull requests`) and **Status** (`Open`, `Closed`, `All`) controls to mobile Search. Apply the scope server-side and preserve it through pagination, preview/back, browser navigation, reload, sharing, and sign-in continuation. ## Acceptance tests - Specific type/status scopes make only the required upstream request with the selected state; `All` preserves balanced issue/pull paging. - Invalid scope values return 422. - Changing scope aborts stale work, clears old results, and restarts at page 1; delayed old pages cannot enter the new list. - Search preview/back, browser history, reload, sharing, and sign-in continuation preserve only validated scope values. - At 390x844, labeled controls are visible under Search with 44px touch targets and no horizontal overflow. - Existing claim/reopen/assigned-pull/requested-review actions remain available in scoped results.
timmy self-assigned this 2026-08-14 02:21:16 +00:00
timmy closed this issue 2026-08-14 02:37:39 +00:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: stackchain/stackchain-dashboard#793
No description provided.