Commit Graph

3 Commits

Author SHA1 Message Date
kami 802d5961ac enrichment: scan past backed-off facts instead of stalling behind them
The worker took the oldest pending facts by id and attempted them. Once
the oldest batch entered backoff the worker kept selecting the same
rows, found none of them due, and did nothing. One unresolvable fact
at the head of the queue froze enrichment for every fact behind it, up
to the hour-long backoff cap, forever. The worker now scans up to a
thousand pending rows and attempts the first batch that is actually
due. Retry state for rows that left the queue is forgotten, a failed
store write backs off the same way a failed resolve does, and the
status counts pending, backed off and exhausted over the rows it saw.

Found in review of #83.
2026-08-01 14:15:33 +04:00
kami 08f3db318f Query Praxis by canonical entity ref and back off enrichment retries (#272)
Add an entity-scoped attention capability: the subject is resolved to a
canonical Nexus entity_id, the id travels to Praxis as a query scope
instead of being dropped after resolution, and Maven's own facts already
tagged with the same id join the answer. Ambiguous, unknown, degraded and
no-Nexus cases each get a distinct reply and never a scoped query without
a scope.

Give the fact-enrichment worker per-fact exponential backoff capped at an
hour and a status report of pending/in-backoff/worst-attempt counts, so a
long Nexus outage shows as a visible backlog rather than facts that
silently never got tagged. Nothing is ever given up on.
2026-08-01 06:52:25 +04:00
kami 03fa52dfd4 Add entity-aware fact resolution against Nexus (Vikunja #279)
facts gain a Subject/EntityID/ResolutionState triple and an async
enrichment worker that resolves free-text subjects to canonical Nexus
entity_ids, mirroring Praxis's enrichment-worker pattern. Ambiguous or
unreachable Nexus never guesses an entity_id — the fact stays pending
or terminal-ambiguous instead.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018ghELqYhZNLub2TXGMazqA
2026-07-20 12:00:37 +04:00