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.

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions