Commit Graph
5 Commits
Author SHA1 Message Date
poimen 5ed16f8d9b refactor: import synthesis types from pkg/types
DRY fix: Activity package now imports shared types from pkg/types/synthesis.go.
Re-exported as type aliases for backward compatibility.

Removes duplicate type definitions, coordinates with PR #12.
2026-09-08 17:38:48 -07:00
poimen 5342de37cc feat(phase-2.2): synthesis activities (5 activities)
Activities for the synthesis workflow pipeline:
  1. ChunkAndEmbedActivity — deterministic chunk ID + ingest via memory service
  2. ExtractEntitiesActivity — wiki-link, proper noun, technical term extraction
  3. ExtractFactsActivity — verb pattern matching (uses/runs/has/is/depends_on)
  4. DetectContradictionsActivity — query existing facts + pre-filter contradictions
  5. PersistSynthesisActivity — save entities + facts to memory service

Entity extraction patterns:
  - [[WikiLinks]] → 0.95 confidence
  - ProperNouns → 0.70 confidence
  - TECHNICAL_TERMS/camelCase → 0.65 confidence
  - Deduplication across patterns

Fact extraction:
  - 6 verb patterns (uses, runs_on, has, is, depends_on, connects_to)
  - Confidence boost when subject/object are known entities

Contradiction detection:
  - Query memory service for existing facts about same subject
  - Pre-filter: subject match + different object
  - Severity: low/medium/high based on similarity score
  - Auto-resolve low severity, queue review for medium/high

Tests: 10 pass (wiki links, proper nouns, tech terms, dedup,
       verb patterns, empty text, contradicts, contains, common, classify)
Build: clean, 35 packages pass
2026-09-08 17:38:48 -07:00
poimen 7be93d1d16 fix: remove duplicate PersistInput type definition
CI / CI (pull_request) Successful in 4m33s
Type already re-exported from pkg/types at top of file
2026-09-08 17:06:44 -07:00
poimen 5ccc3711e6 refactor: extract synthesis types to pkg/types
CI / CI (pull_request) Failing after 2m17s
DRY fix: Shared types (SynthesisInput, ExtractedEntity, ExtractedFact,
ContradictionResult, PersistInput) moved to pkg/types/synthesis.go.

Both workflow and activity packages now import from pkg/types.
Re-exported as type aliases for backward compatibility.

Fixes: Duplicate type definitions between workflow and activity packages.
2026-09-08 17:05:17 -07:00
poimen 9020ccf839 feat(phase-2.1): synthesis workflow definition
CI / CI (pull_request) Successful in 4m1s
4-stage pipeline as Temporal workflow:
  Stage 1: ChunkAndEmbed — chunk text + generate embeddings
  Stage 2: ExtractEntities — LLM entity extraction with reflection
  Stage 3: ExtractFacts — pattern + LLM fact extraction
  Stage 4: DetectContradictions — pre-filter + LLM verification
  Stage 5: PersistSynthesis — save all results to DB

Types: SynthesisInput, SynthesisResult, ExtractedEntity,
       ExtractedFact, ContradictionResult, PersistInput

Retry: 3 attempts, exponential backoff (1s → 2s → 4s)
Each stage fails independently with wrapped errors.

Tests: 5 pass (success, contradictions, entity fail, chunk fail, fields)
Build: clean, 36 packages pass
2026-09-08 16:35:36 -07:00