Skip to content

v0.26.2

Choose a tag to compare

@dpep dpep released this 20 Sep 20:39
· 12 commits to main since this release
88d3702

Changed

  • The and N more hint no longer quotes the command it suggests. A
    trailing dot is no shell metacharacter, and quoting it there taught the habit
    everywhere else.

  • A phrase in your own words finds more than it used to. Three rules widen
    what counts as covering one of its words:

    Where a schema names something in its own vocabulary and describes it in the
    user's, the description now bridges them — current user reaches
    Query.viewer ("The currently authenticated user"), which its name alone
    never did.

    The words a question is built from (who, what, does, has, this,
    my) named nothing in any schema, so each one a record happened to echo
    lifted its word count and buried the records matching the words you meant.
    They're dropped before scoring now, like the other stopwords, so a question
    asked as a sentence narrows about as well as the keywords inside it.

    A word matching nothing at all is retried as its singular, one tier
    below a direct match: types never reached pokemon_v2_type, because the
    trailing s has nowhere to land in a subsequence and a prefixed name is far
    outside the typo budget. The other direction already worked, since type
    lands inside types on its own.

    A description word counts toward how much of a phrase a record covers, but
    the bar to clear is still the best coverage by name — prose can reach it,
    never raise it, so a record whose description happens to mention a word can't
    displace the one named after it. Single-word queries are matched against
    names only and are untouched by all three.

    Measured, each against the labelled sets in script/eval/: the description
    rule took MRR from 0.43 to 0.47 on 49 GitHub queries, rescuing five and
    losing none; dropping question words took it from 0.06 to 0.13 on 30 queries
    written as full questions by someone other than their author, leaving the
    shorter-phrase sets unchanged; the singular retry took the held-out set from
    0.22 to 0.27, and four of six sampled PokeAPI root fields from unreachable to
    found.

  • A generated schema's boilerplate ranks below what it wraps. Hasura and
    PostGraphile surround every real table with a dozen derived types — filters,
    aggregates, sort orders, insert shapes, _stream subscriptions — each
    carrying the table's name, so each matches everything the table matches. On
    PokeAPI's schema they are 22,667 of 26,218 records, and they filled the whole
    first page of every answer: list of egg groups had 50 of them above the
    table it named. Relay's Connection and Edge are the same shape in the
    other spelling — RepositoryRulesetEdge was the top answer for "programming
    languages used by a repo" — and now rank below the type they wrap too. Both
    lists are suffix conventions their generators own, so a hand-written schema
    is untouched, and a type actually called Edge is left alone.

Fixed

  • A truncated wildcard said so twice. A query compiles its filters once to
    search and once to explain, and the warning lived in the matcher.
  • A cache location gqls can't use is said aloud. A relative or empty
    XDG_CACHE_HOME is ignored (the XDG spec's rule, and what keeps
    --clear-cache out of your cwd) — but silently, so a run cached somewhere
    other than where you pointed it. It now says which variable it ignored.
  • Having nowhere to cache no longer reports an empty cache.
    --clear-cache with neither XDG_CACHE_HOME nor HOME set said
    cleared 0 cached file(s), which reads as "the cache was already empty".
  • A qualifier naming no type leads with what it searched. The line read
    no type named "Repo" — matching …, which looks like a failure above an
    answer that is usually right (Repo.owner finds Repository.owner).