v3.15.2
Bug Fixes
@byline/core—buildSearchDocumentnow indexes prose stored inside container fields. Previously, asearch.bodyentry could only name a top-level field (a scalar or arichTextleaf); a collection whose body lived inside ablocksfield — like the referencedocscollection'scontent(RichTextBlock prose, PhotoBlock alt text + caption) — had none of that prose indexed. Only the top-leveltitleandsummaryreached thetsvector, so a search for any term appearing solely in the body (e.g. "reflects") returned no results despite the term being plainly visible in the rendered page and the.mdexport. Asearch.bodyentry may now name a container field (blocks/array/group); the assembler walks it recursively and flattens every nestedrichTextand text (text/textArea) leaf into the searchable body. Nested non-text leaves (select,relation, numbers, booleans, dates, files) are deliberately skipped so block configuration never pollutes the index — the same "content, not configuration" rule the markdown assembler already follows. The walk is block-agnostic: blocks resolve by_typeagainst the field's ownblockslist, so adding new block types needs no change tobuildSearchDocument.
Migrations
- monorepo — this fix changes only how new index writes are assembled; existing index rows stay stale until re-indexed. After upgrading, reindex each affected collection to pull block-based prose into the index — via the admin Reindex button or
client.collection('<path>').reindex(). Collections whose searchable body is entirely top-level are unaffected. The reference webapp'sdocscollection adds'content'to itssearch.bodyto opt the block prose in.
All other @byline/* packages bumped to 3.15.2 in lockstep with no behavioural changes this cycle.