Skip to content

embeddings: managed population with observable pending, ready and stale coverage #655

Description

@ragnorc

Problem

@embed describes the source relationship, but loading a row without its vector does not populate it automatically. On 0.10.0 a nullable annotated vector remained null; a required vector caused load rejection. The offline omnigraph embed transform is available, but ingestion through the served graph has no managed population/coverage lifecycle.

Applications need to distinguish a content write that has committed from derived embeddings that are still pending, stale or failed.

Proposed change

Add managed embedding reconciliation for committed source content with observable state and coverage. Provider calls need not block the content-write transaction. Define the contract for nullable versus required derived vectors, source changes, model changes, failure/retry and how queries behave while coverage is incomplete.

Bind generated vectors to the exact source revision and model contract. A delayed job must not overwrite a newer source or attach a stale vector to the current row. Define branch/merge behavior and apply derived writes through normal graph authority.

Acceptance criteria

  • Load/mutate of eligible content reliably schedules or exposes pending derivation; no silent assumption that @embed means the vector is ready.
  • Status reports pending/ready/stale/failed counts and actionable failures without exposing provider secrets.
  • Duplicate work and provider retries converge; concurrent content edits, deletion, branch changes and restart cannot publish stale vectors as ready.
  • Search communicates its coverage contract, including missing embeddings.

Current code: embedding contract, offline embedding command. Query-time text embedding already exists; this request is about stored vector population.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureFeature proposalneeds-triageAwaiting maintainer triage

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions