mono.embedding_ingest_registry declares that a given table should be embedded, and how.text_template that composes the text, the chunking_policy, the filter_columns carried onto each vector, and whether the entry is_active. They then check coverage and the health of the embedding_job queue.status back to pending; the worker picks it up, replaces that source row's embedding rows, and finishes at done.embedding_ingest_registry, embedding, embedding_job writes embedding_job.status when re-queued| If… | Then… |
|---|---|
A registry entry is set to is_active = false | New work stops; the rule and the vectors already built stay. |
Source rows have no embedding rows | Retrieval silently misses them — the coverage view exists to make that visible. |
| A job keeps failing | It shows a rising attempts and a stored error instead of retrying forever in silence; re-queueing sets it back to pending. |
The text_template or chunking_policy is changed | Existing vectors were built under the earlier rule and match the new one only after a re-embed. |
status returns to pending and on success reaches done with that source row's embedding rows replaced, not duplicated.Retrieval only works if the material was actually turned into vectors. This screen exists so that this is checkable rather than assumed.
What gets embedded is not hard-coded. A registry says: this table, composed into text this way, split this way, carrying these extra fields for filtering. Turn an entry off and new work stops without destroying what is there.
Two failure modes are worth watching: gaps, meaning source rows nothing was ever built for, and stuck jobs. Both are shown rather than hidden, and a stuck job records how often it tried and what the error was, so you are diagnosing rather than guessing.
If in doubt you can always rebuild. The vectors are derived from the source text, so re-embedding costs time and nothing else.
embedding_job state machine is drawn in Ingest a document; this scenario is the operational view over it. embedding is derived data: losing it costs compute, never information.