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.
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
searchableFieldsentry prescribe mirroring the related value onto "a formula field" / "a text/formula field":packages/lint/src/validate-searchable-fields.ts(~:344-347 and ~:414, thesearchable-field-unknownhint);packages/metadata-protocol/src/protocol.ts(~:4808-4813,assertSearchFieldsAreSearchable).Only the stored half of that prescription works. A
formulafield 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$containspredicate against it has nothing to scan; and CEL reads onlyrecord.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
searchableFieldsshould 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.