05 / 12

Describe the game

For the one you can't name

SearchLanguage modelAsync

Overview

Plain search matches what a game is called. This is for when you only remember what happened in it. From the Add Game screen, “Can't remember the name?” opens a single text box (the placeholder suggests “the one where you play a bald assassin…”) and a Find it button. While it works, the screen cycles through short “Thinking…” lines. The answer comes back as “This might be it” with the best match, or “Here's what it might be” with a few candidates. If nothing fits, it says so and suggests a different description. After five minutes it offers to keep waiting. Free accounts get 5 descriptions a day, in any rolling 24 hours; Prysm Pro has no limit.

~5 s

median answer for 8 new descriptions measured on 27 Sep 2026 (7 answered in 2.4 to 7.5 s)

25 s

the longest a search waits before the queue takes over

3.5 s

between status checks

4+

characters before Find it is enabled

How it works

  1. 1

    Find it sends your description to a backend function, which asks a language model straight away and usually answers in the same request, in a few seconds. If the model takes longer than 25 seconds, the function returns the unfinished job instead, and the app polls the job every 3.5 seconds.

  2. 2

    Those slow jobs are finished by a scheduled sweep, which asks the model again in the background. Only the text of your description is sent, with no account identifier, as the privacy policy says.

  3. 3

    The model's candidate names are checked against Prysm's own catalog, so the answer is always a real game you can add, never an invented title.

  4. 4

    Answers are cached. A repeat description is answered instantly and marked as coming from the cache. A cached answer does not count toward the free daily limit.

  5. 5

    The daily limit is counted by the database when the job is created, so calling the backend directly does not get around it. A sixth description in 24 hours is refused with the time the next one frees up.

Key decisions

Answer at once, with a queue behind it

Naming a game from a description first took a median of about 26 seconds and sometimes minutes, longer than a request should hang, so it was built as a job the app polls. A faster model setting brought the common case down to a few seconds, so the backend now answers inside the request and keeps the job, the sweep and polling for slow answers. The worst case is the old behaviour, never worse.

Queued, cached and kept small

Model calls are among the few parts of Prysm that cost money per use. The cache answers repeats for free, the queue absorbs slow answers, and the feature does one thing. That keeps its cost predictable on a free plan, and a server-side limit of 5 a day for free accounts bounds the worst case.

Ground every answer in the catalog

A model will happily name a game that does not exist. Matching its guesses against the catalog means the screen only ever shows games you can open and add.

Quick reference

ScreenVagueSearchScreen
Statelocal screen state
Servicesvague-search, vague-search-sweep (edge functions)
Components
VagueSearchScreenremoteVagueSearch
Updated