You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Release 0.2.0: multilingual detection, configurable output scanner, ANN index
Major improvements to detection quality and reliability:
- Add injection patterns for Chinese, Japanese, Korean, Arabic, Hindi (11 languages)
- Generalize script-mixing detector from Khmer-only to all non-Latin scripts
- Add indirect injection patterns (HTML comments, confused deputy, URL payloads)
gated behind SecurityPolicy.detect_indirect_injection flag
- Make OutputScanner weights configurable via OutputScannerConfig
- Reduce false positives: exempt SHA hashes, keyword-gate base64, JWT heuristic
- Add optional hnswlib ANN index for O(log n) memory search (fast-memory extra)
- Fix MCP server to initialize with working memory bank (learn_threat now stores)
- Add TextEmbedder.using_fallback property with degradation warnings
- Add public AdversarialMemoryBank.add_threat_batch() method
- Replace 46 repetitive test fixtures with 28 diverse attack patterns
- Add MCP integration tests for learn -> assess round-trip
181 tests passing, 0 lint errors.
Made-with: Cursor
Copy file name to clipboardExpand all lines: CHANGELOG.md
+29Lines changed: 29 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,35 @@
2
2
3
3
All notable changes to agent-immune are documented here.
4
4
5
+
## [0.2.0] — 2026-04-07
6
+
7
+
### Added
8
+
9
+
-**Multilingual injection detection** — 12 new patterns for Chinese, Japanese, Korean, Arabic, and Hindi. Total: 11 languages.
10
+
-**Generalized script-mixing detector** — any non-Latin script (CJK, Arabic, Devanagari, Hangul) mixed with English imperatives now triggers detection (previously Khmer-only).
-**Configurable output scanner** — new `OutputScannerConfig` model with per-category weights (PII, credentials, base64, hex, etc.). Passed via `SecurityPolicy.output_scanner_config`.
13
+
-**Reduced false positives** — output scanner now exempts SHA-256/512 hex hashes, requires threat keywords in decoded base64, and distinguishes bare JWT tokens from documented examples.
14
+
-**Optional ANN index** — `hnswlib`-backed HNSW index for memory bank search, reducing query time from O(n) to O(log n). Install via `pip install 'agent-immune[fast-memory]'`. Falls back to NumPy when not installed.
15
+
-**Public batch API** — `AdversarialMemoryBank.add_threat_batch()` for bulk loading. `train_from_corpus` now uses the public API instead of private internals.
16
+
-**MCP server memory** — `build_mcp()` now initializes with a working embedder and memory bank. `learn_threat` actually stores patterns. Fallback embedder status surfaced in tool responses.
17
+
-**Fallback embedder warnings** — `TextEmbedder.using_fallback` property; logs WARNING when hash-based fallback is active. Memory bank warns about degraded matching quality.
18
+
19
+
### Changed
20
+
21
+
-`DecompositionResult` now includes `indirect_hits` field.
22
+
- Volume anomaly condition in output scanner explicitly parenthesized for clarity.
23
+
- Test fixtures diversified: replaced 46 repetitive jailbreak variants with 28 genuinely distinct attack patterns across multiple categories and languages.
24
+
- Russian injection pattern updated to handle post-homoglyph-normalization text.
25
+
26
+
### Fixed
27
+
28
+
- MCP `learn_threat` tool now correctly stores entries (was silently returning `stored: false` due to missing memory bank).
29
+
30
+
### Stats
31
+
32
+
-**181 tests**, 0 lint errors, 11 languages supported.
0 commit comments