DIP/docs/TIME_PHASE_T3_PROJECTION_RE...

1.9 KiB

TIME Phase T3 — Projection, representations, and embedding enqueueing

This phase adds the NEW-only TIME projection layer on top of the Leitstand import foundation from T2.

Scope

Included in T3:

  • TIME.time_entry_search_projection
  • Leitstand projection builder from imported TIME.ls_* tables
  • semantic text materialization for canonical DOC.doc_document roots of TIME.time_entry
  • lexical indexing through DOC.doc_text_representation.search_vector
  • embedding job enqueueing for the TIME primary semantic representation

Not included yet:

  • structured search endpoint
  • dedicated TIME search DTOs
  • Toggl import
  • cross-source search

Representation strategy

One root semantic representation is generated per canonical TIME.time_entry document.

The semantic text is built from:

  • Time recording description / remark / ID / URL
  • person display name
  • activity type
  • task ids / names / descriptions
  • cost unit ids / names / descriptions
  • contract names / references
  • contract position names / references
  • organization names
  • recorded time window and duration

This keeps the searchable unit aligned with the future common TIME search concept: one canonical time-entry document enriched with source-specific business context.

Operational notes

After T2 import runs, T3 can immediately refresh projection rows for the imported Leitstand time recordings.

A separate startup runner is also available for rebuilding all TIME projections and semantic representations for already-imported rows:

id: time-t3-startup

dip:
  time:
    leitstand:
      startup-projection-rebuild-enabled: false
      build-search-projection: true
      build-representations: true
      representation-language-code: de

Files added in this phase

  • TIME.time_entry_search_projection
  • LeitstandTimeProjectionService
  • TimeEntryRepresentationMaterializationService
  • LeitstandTimeProjectionStartupRunner