Skip to content

feat(loader): per-document metadata sidecar → instance frontmatter#202

Merged
jrosskopf merged 1 commit into
mainfrom
feat/loader-metadata-enrich
Jun 24, 2026
Merged

feat(loader): per-document metadata sidecar → instance frontmatter#202
jrosskopf merged 1 commit into
mainfrom
feat/loader-metadata-enrich

Conversation

@jrosskopf

Copy link
Copy Markdown
Contributor

Thread caller-supplied extra frontmatter through the document ingest path so the offline loader can set nummer/titel/wp/doctype/stand at materialize time (--metadata <sidecar.json>, keyed by file name). Server /ingest/upload unchanged (passes Null). Test: tests/enrich.rs asserts the sidecar lands in instance frontmatter.

🤖 Generated with Claude Code

A document corpus loaded offline carried no per-doc metadata, so instances had
hash-slug titles and no facetable fields. Thread caller-supplied extra
frontmatter through the document ingest path so the loader can set
nummer/titel/wp/doctype/stand/… at materialize time.

- escurel-index: DocumentIngestWorker::ingest + document_overlay gain an
  `extra: &Value` param, rendered as top-level instance frontmatter (a
  `titel`/`title` also wins the body heading). Server `/ingest/upload` passes
  Null (unchanged behaviour).
- escurel-loader: `LoaderBuilder::with_metadata(map)` + `build --metadata
  <sidecar.json>` — a JSON object keyed by source file name → that file's extra
  frontmatter, merged verbatim into the instance.

Test (real DuckDB, no mocks): tests/enrich.rs — a sidecar sets wp/doctype/titel/
nummer; the materialised instance's frontmatter carries them; a file without a
sidecar entry still materialises. Existing loader/document_rebuild tests updated
for the new arg and pass.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@jrosskopf jrosskopf merged commit ed0ed27 into main Jun 24, 2026
@jrosskopf jrosskopf deleted the feat/loader-metadata-enrich branch June 24, 2026 10:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant