Skip to content

nfemmanuel/iranti

v0.3.24 Feature

This release adds 3 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

Tool-result extraction now automatically writes durable facts into attend flows and forces write nudges when needed.

Full changelog

Bundle 1: "Make extraction actually work end-to-end"

M2 — Tool-result extraction

iranti_attend now accepts a toolResult payload. When a host passes the content of a just-completed read-only tool call (Read, Grep, Bash, WebSearch, WebFetch), Iranti automatically extracts durable facts from it and writes them before the attend flow continues. Extracted content feeds straight into the write-nudge threshold this turn, so the agent sees its own new drafts immediately.

  • Plumbed through the SDK (ToolResultPayload), the MCP server (toolResult zod schema on iranti_attend), the REST API validation middleware, and the /attend route.
  • Gated on phase !== 'post-response' — the closeout path has its own capture.

M3 — Centralized write nudges with forced injection

maybeBuildWriteNudge now runs exactly once per attend (right after the autowrite pass). When a nudge is present but decideMemoryNeed returned needed:false, the decision is force-upgraded to needed:true with explanation write_nudge_forced. shouldInject was expanded to cover writeNudge and matchedUserRules so nudge-only and rule-only injections surface instead of falling into memory_checked_no_match. A new reason='forced' value fires on the nudge-only path.

Fixes a real bug where the success-path attendResult builder was recomputing shouldInject inline and dropping the writeNudge from final responses.

A2 — Autowrite rollback CLI

New iranti revert-autowrite --since <duration> command. Every attendant autowrite is stamped source='attendant_autowrite' so rollback by time window is safe and precise.

  • Defaults to dry-run preview; pass --commit to actually delete.
  • Flags: --since, --until, --commit, --json, --instance, --project-env.
  • Duration parser supports ms|s|m|h|d suffixes.
  • New query helpers: findEntriesBySourceAndWindow, deleteEntriesBySourceAndWindow.

Tests

28 new unit + stubbed-integration tests in tests/attendant/run_m2_tool_result_autowrite_tests.ts (run with npm run test:m2-tool-result-autowrite).

Backward-compat verified locally against: test:mock-provider, test:mock-failure-modes, test:mid-turn-attend, test:tool-call-retrieval, test:file-change-recall, test:user-operating-rules, test:router, test:compliance-task-relevance.

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]