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
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