Skip to content

nfemmanuel/iranti

v0.3.25 Feature

This release adds 2 notable features for engineering teams evaluating rollout.

✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Summary

AI summary

Added PromptKind classification and multi-step conflict resolution with evidence gathering in Librarian.

Full changelog

Bundle 2 — Staff infrastructure cleanup

S3: Mock provider classifier refactor

Extracted the mock provider's substring dispatch into a pure classifyPromptKind(message) -> PromptKind function plus a per-kind counter. Tests can now assert exactly which classifier branches were exercised by a run, instead of guessing from fallthrough counts.

  • New PromptKind union (8 kinds: memory_need, entity_extraction, task_inference, relevance_filter, conflict_resolution, fact_extraction, compression, unknown).
  • kindCounts tracker on MockProvider, exposed via getKindCounts() / resetKindCountsExternal() and module-level getMockKindCounts() / resetMockKindCounts().
  • complete() classifies once at the top, increments the counter, then dispatches via switch (kind).
  • Behavior preserved bit-for-bit; unknown falls through to the existing canned researcher JSON path.

S4: Multi-step Librarian conflict resolution

Before resolveWithReasoning calls the LLM, gather up to 5 sibling facts on the same entity (excluding the conflicting key) ranked by confidence and feed them to the model as evidence. The prompt now asks "Which value is more consistent with the related facts above?" as a new consideration. Best-effort: if the tx query fails, the helper returns [] and the original single-call behavior runs unchanged.

  • New helper gatherConflictEvidence(existing, tx) with MAX_CONFLICT_EVIDENCE_FACTS=5 and 200-char summary truncation.
  • New helper formatConflictEvidence(evidence) renders as markdown bullet list.
  • resolveWithReasoning rewired to await the gather step before the LLM call.
  • New librarian.conflict_multi_step counter in metrics for dashboard observability.

Tests

  • tests/mock-provider/run_b2_classifier_tests.ts (21 tests, all green)
  • New script: npm run test:b2-mock-classifier
  • Backward compat verified on 9 suites: mock-provider, mock-failure-modes, router, user-operating-rules, compliance-task-relevance, file-change-recall, mid-turn-attend, tool-call-retrieval, m2-tool-result-autowrite.

Diffstat

  • src/lib/providers/mock.ts +212 / -46
  • src/librarian/index.ts +59 / -1
  • src/lib/metrics.ts +1
  • 5-file version bump to 0.3.25

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track nfemmanuel/iranti

Get notified when new releases ship.

Sign up free

About nfemmanuel/iranti

Persistent shared memory for AI coding agents. Stores facts as `entity/key/value` triples with hybrid semantic search, task checkpoints, and conflict resolution — shared across Claude Code, Codex CLI, and GitHub Copilot.

All releases →

Beta — feedback welcome: [email protected]