Skip to content

The searchable-fields hints prescribe a "text/formula" mirror — the formula half never works, so the tool output now contradicts the docs that quote it #6673

Description

@os-zhuang

Out-of-scope finding from #4840 / PR #6670 (measured by that dev, filed by the engine-core PM on its behalf — the cloud dev session could not file cross-surface issues). Recorded, not claimed.

Fact (origin/main, 2026-08-08)

Both authoring-time hints for a bad searchableFields entry prescribe mirroring the related value onto "a formula field" / "a text/formula field":

  • packages/lint/src/validate-searchable-fields.ts (~:344-347 and ~:414, the searchable-field-unknown hint);
  • the runtime dotted-path hint in packages/metadata-protocol/src/protocol.ts (~:4808-4813, assertSearchFieldsAreSearchable).

Only the stored half of that prescription works. A formula field is virtual — no driver materializes a column for it (packages/objectql/src/engine.ts:568-573; driver-sql/src/schema-drift.ts:337; driver-turso/src/remote-transport.ts:1224) — so a $contains predicate against it has nothing to scan; and CEL reads only record. roots of the record itself, so a formula cannot fetch a related title in the first place.

PR #6670's docs already say "stored field" and correct the hint inline where they quote it, which means the shipped corpus now deliberately contradicts the tool output it quotes — the remaining fix is the hint strings themselves (packages/**, out of scope for that docs-only PR).

Scope if promoted

XS: rewrite the two hint strings ("copy the value onto a stored text field"; drop the formula suggestion), plus their pinned message tests.

Adjacent (separate finding)

#6674: whether a virtual formula entry in searchableFields should be refused/warned at all — today it clears both lint and the #4254 gate and then silently never matches. This card is only the wording defect.

Refs: #4840, PR #6670 (measurement in its body and report), #4254, #6674.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions