Changelog
The product record, newest first.
A release-by-release account of features, fixes, and architectural changes currently recorded for Editiva.
Inspiration Sources
Scan external websites and RSS feeds for article inspiration. Article suggestions automatically prefill the work creation wizard.
ScanInspirationSourceJob — scheduled recurring Hangfire job for feed scanning
Article suggestion feed at /inspiration with priority sorting and filtering
/settings/inspiration page for managing inspiration sources
Work creation wizard prefill: open ?suggestion= URL param to pre-populate title and brief
Website Crawl + RAG MVP 2
Knowledge bases now support website crawling. HtmlWebCrawler fetches and chunks web content; pgvector handles semantic search. Content guidelines extracted in 3 passes.
SourceType.Website + CrawlConfig value object in domain
HtmlWebCrawler — fetches, strips, and chunks web pages by H2/H3 structure
RunWebsiteCrawlJob with IVFFlat pgvector index (lists=10) for fast ANN search
ContentGuidelines value object: style rules, vocabulary, structural patterns
3-pass guideline extraction (structure → content → synthesis) via dedicated prompts
Agent injection: guidelines, voice, and vocabulary inserted into every AI call with token budget caps
AddWebsiteCrawlSupport migration; RAG security fixes with tenant isolation
Webhooks + Prompt Customization
HMAC-SHA256 secured webhooks for work approval events. Per-tenant prompt overrides let you customize every AI instruction without code.
WebhookEndpoint aggregate + HMAC-SHA256 signature on every delivery
WorkApprovedWebhookHandler — fires on work approval domain event
Full CRUD webhook management API + frontend settings page
TenantPromptOverride entity — per-tenant overrides for all 20+ prompt templates
PromptTemplateService: DB override takes priority over filesystem template
/settings/prompts page with live preview of active prompt content
AddWebhookSupport + AddTenantPromptOverrides migrations
Version Restore + Export Engine
Roll back to any prior approved state. Export finished content in Markdown, HTML, DOCX, EPUB, or PDF — all server-rendered.
RestoreVersionCommand — rolls work back to any previously approved node snapshot
WorkRestored domain event dispatched on rollback
Export engine: MarkdownRenderer, HtmlRenderer, DocxRenderer (QuestPDF), EpubRenderer, PdfRenderer
GET /works/{id}/export?format= endpoint with Content-Disposition headers
Writer Profile system: upload writing samples → AI extracts style fingerprint
StyleSample, ExplicitRules, NodeVocabulary value objects in domain
Writer type profiles: Ghostwrite, Co-Write, Director Mode collaboration modes
Writer Voice & Style System
Upload writing samples. AI extracts your style fingerprint — vocabulary, tone, sentence patterns — and applies it to every output.
WriterProfile aggregate with style analysis via dedicated LLM prompt
style_analysis.md and test_voice.md prompt templates
Voice fingerprint injected into DraftStrategy, RevisionStrategy, and ContinuityCriticStrategy
ContextBudgetService: token budget caps per context type (guidelines 1200t, voice 600t, vocab 200t)
RetrievalContextBuilder: assembles and trims multi-source context before each AI call
/settings/writer-profile page with sample upload and extracted fingerprint display
Editorial Review (Human + AI)
Guest review links with tokenized access. AI editorial review: 6-dimensional analysis across Structure, Style, Completeness, Audience fit, Voice Consistency, and Factual Flags.
ReviewSession + ReviewComment aggregates with human verdict workflow
GuestReviewToken — time-limited signed token, reviewers need no account
Guest token revocation endpoint for security
AiReviewSession with 6-dimension scoring schema (editorial_review.schema.json)
RunAiReviewJob — generates structured JSON review, stores per dimension
GET /review/{token} public page with structured verdict UI
AddHumanReviewSystem + AddAiReviewSystem migrations
Validation Gates + Extended Brief
Three gate modes: Auto (pipeline runs end-to-end), Per-Stage (approve each phase), Per-Node (approve every section). Work preferences value object.
GateMode enum: Auto | PerStage | PerNode with state machine integration
WorkPreferences value object (GateMode, CollaborationStyle, TargetAudience)
ApprovalDecision value object with verdict, reviewer note, and timestamp
ApproveWork, ApproveNode, RejectWork commands with FluentValidation
WorkApprovalRequested + NodeApprovalRequested domain events
WorkGoal extended: Title, Brief, TargetAudience, WordCount, KeyPoints, References
AddValidationGates migration; AddHumanReviewSystem migration
Real-time SSE agent log stream with JWT-from-query-param for EventSource
Initial Platform
7-stage editorial pipeline, multi-tenant architecture, Knowledge Bases with pgvector, real-time SSE agent logs, and all three collaboration modes.