Skip to content

[Feature] Add server-side full-list search to Mobile Work #2013

Description

@bestony

Context

Issue #1985 was closed after PR #1997 unified the mobile information architecture under /m/work and shipped the current Search Work entry point.

That search is useful for the current phase, but it filters only the pages already loaded by the browser. Mobile Work loads 50 rows per page, so a matching conversation on a later page is invisible until the user manually loads every preceding page. The UI can therefore show No matching work even though a permitted matching conversation exists.

This follow-up records the completeness boundary without reopening #1985 or requiring immediate implementation. Scheduling should follow observed usage and workspace size.

Proposed Feature

Add an optional server-side search query to the existing member-scoped chat list used by Mobile Work. Apply search inside the caller's existing organization and membership visibility, compose it with the active Work quick view and filters, and paginate the matching set rather than filtering a previously paginated client result.

Recommended initial match fields:

  • chat title / topic;
  • current-state description;
  • latest meaningful message preview already projected into the Work row; and
  • participating human or agent display names.

Options

  1. Keep the current client-only filter — no additional backend cost, but results remain incomplete for work outside loaded pages.
  2. Filter the existing permission-scoped list server-side (recommended) — complete results with the current row projection, filters, ordering, and keyset pagination.
  3. Build full message-history search — substantially broader indexing, ranking, retention, and visibility work; out of scope for this follow-up.

Acceptance Criteria

  • The shared member chat-list query and Web API client accept a bounded, normalized search term.
  • Search executes after organization/membership visibility is established and never reveals chats outside the caller's permitted Work set.
  • Search composes with Need you, Unread, Pinned, Active, Archived, All, and Watching semantics instead of bypassing them.
  • A match on a later page is returned without requiring the user to load every earlier unfiltered page; pagination operates over the matching set.
  • Matching covers title/topic, description, latest projected message preview, and participant display names, with documented case and whitespace behavior.
  • Results preserve the canonical attention, pinned, and real-work-recency ordering and remain de-duplicated.
  • Mobile Work debounces input, cancels superseded requests, resets pagination when the query changes, and does not render stale results.
  • Clearing the query restores the current quick view and filters. No matching work appears only after the server returns an empty matching result.
  • Automated coverage verifies query validation, organization and membership isolation, filter composition, participant-name matching, pagination beyond the first page, ordering/de-duplication, and Mobile Work loading/error/no-match behavior.

Out of Scope

  • full search across historical message bodies;
  • cross-organization or admin-global search;
  • a new search index unless measurement shows the existing projection cannot meet the required latency;
  • changing the unified Mobile Work information architecture delivered by Unify the mobile Work surface #1997.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions