| π Navigation: README | Contributing | Security | Docs |
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
force_complexity (βlowβ/βmidβ/βhighβ)π Cloud LLM Provider Support:
get_llm_client() factory function for unified client creationπ Complete English Localization:
Available Clear Commands:
Users now have these options:
clear - Reset session (history + cache, optionally memory if configured)clear-cache - Clear cache onlyclear-memory - Clear memory store onlyclear-all - Clear everything (session + cache + memory) NEWThe clear-all command is useful for completely resetting the application state, regardless of the auto_clear_on_clear configuration setting.
AdaptiveQueryProcessor for consistent agent selection and escalation.agent.query() calls removed from CLI; retained only for internal use by adaptive system.MultiHopReasoningAgent where ToolRegistry._web_search_wrapper() was called with an invalid max_results parameter.Memory Store Logging: Reduced excessive logging by changing memory load/save log level from INFO to DEBUG. Improved log clarity and reduced console spam.
UI Settings for Adaptive Intelligence Report:
ui category in the settings editor allows users to enable/disable the report via the config file (config.json).ui category, and saving changes.Testing & Validation: Verified correct agent selection and complexity detection for both simple and complex queries. Confirmed robust output and no encoding errors across platforms.
tests/unit/test_adaptive_hops.py (600+ lines) 30 unit test cases Tests for complexity analysis Resource constraint handling Strategy decisions Escalation logic Edge cases tests/integration/test_adaptive_integration.py (500+ lines) Integration test suite End-to-end scenarios Mock agent testing Escalation flow validation
Zero dependencies added (uses existing infrastructure) Fully backward compatible (opt-in via new endpoint) Integrates with existing SystemMonitor and PerformanceTracker Supports both SearchAgent and MultiHopReasoningAgent Comprehensive logging at all decision points Thread-safe and production-ready
LOW complexity: ~0.5-1s (no tools) MID complexity: ~2-3s (web search) HIGH complexity: ~10-15s (multi-hop reasoning) Escalation overhead: +0.2s per attempt
AdaptiveConfig(
enable_resource_monitoring=True,
enable_confidence_escalation=True,
cpu_threshold_high=80.0,
memory_threshold_high=85.0,
confidence_low=0.5,
max_hops_low=0,
max_hops_mid=1,
max_hops_high=5,
fallback_on_resource_constraint=True,
degraded_mode_max_hops=2
)
AdaptiveConfig(
enable_resource_monitoring=True,
enable_confidence_escalation=True,
cpu_threshold_high=80.0,
memory_threshold_high=85.0,
confidence_low=0.5,
max_hops_low=0,
max_hops_mid=1,
max_hops_high=5,
fallback_on_resource_constraint=True,
degraded_mode_max_hops=2
)
tests/security/ directoryREDIS_URL environment variable (default: redis://localhost:6379/0)utils/redis_rate_limiter.pyALLOWED_HOSTS - Trusted host middlewareALLOWED_ORIGINS - CORS configurationCRAWLLAMA_DEV_MODE - Development mode bypass.env.example for Redis configurationtests/security/ directory with comprehensive examplesutils/redis_rate_limiter.py with detailed docstringsapp.py middleware implementation examples| Supports TXT/CSV combo lists (email:password, email | password) |
data/memory.jsonupdate_email_breach_info() - Store/update breach dataget_email_with_breach_info() - Retrieve email with breach summaryformat_email_breach_report() - Formatted report generatorVULNERABILITY_INTEL.md - Setup guide for all options (free & paid)MEMORY_BREACH_STORAGE.md - API documentation, examples, best practicestest_vuln_intel.py - Test script for vulnerability intelligencetest_memory_breach.py - Test script for memory breach storagecore/memory_store.py) - NEW in v1.4.2!
clear command - data persists across sessionsremember email:test@example.com - Store email addressremember phone:+491234567890 - Store phone numberremember ip:192.168.1.1 - Store IP addressremember username:johndoe - Store usernameremember domain:example.com - Store domainremember note:"Important finding" - Add noterecall - Show all stored datarecall emails - Show only emailsrecall search:keyword - Search all categoriesforget email:test@example.com - Remove specific entry (NEW!)forget category:emails - Clear entire category (NEW!)forget all:true - Clear all memory (NEW!)forget operator)
forget email:test@example.comforget category:emails, forget category:phonesforget all:trueconfig.json: memory.enabled, memory.auto_clear_on_clearmemory.max_entries - Warning thresholdmemory.max_file_size_mb - Size limitsettings memory - Configure memory behaviortools/osint_tool.py)
_handle_remember(), _handle_recall(), _handle_forget()forget email:test@test.com no longer misinterpreted as email lookup\S+ to match emails, IPs with special characters- to avoid matching phone extensionsr'-(\w+)' to r'\s-(\w+)(?=\s|$)'memory._load() call in SystemMonitor for live updatescore/osint/query_parser.py: Reorganized operator parsing sequencecore/agent.py: Added _process_forget_command(), _auto_store_intel(), _get_memory_store_context() methodsmain.py: Added Memory Store help section with examples and settings UIcore/health/system_monitor.py: Force memory reload for live updatescore/health/test_collector.py: Support for test subdirectoriescore/memory_store.py: Complete Memory Store implementationtest_forget.py validates parsing and memory operationstests/unit/test_memory_store.py with 44 comprehensive testscore/osint/ip_intel.py)
email:test@example.com user@domain.com admin@site.comphone:+491234567890 +441234567890 +331234567890ip: operator support in query parserdocs/README.mdcore/osint/query_parser.py)
core/health/system_monitor.py)
utils/cli_helper.py)
data/memory.json) added to .gitignoretests/test_memory_store.py)
tools/osint_tool.py)
analyze_ip() method for direct IP analysisanalyze_social_username()osint_search('ip:8.8.8.8') or osint_search('192.168.1.1')cache.clear_on_startup option (default: false, only expired)_query_with_tools() from 246 β 37 lines (split into 11 focused methods)
_should_use_web_search()_execute_web_search()_should_use_rag()_execute_rag_search()_build_context()_estimate_tokens()_generate_response()_handle_search_error()_log_query_stats()estimate_tokens() now uses tiktoken instead of chars/4core/osint/)
core/health/)
core/langgraph_agent.py)
utils/parallel_search.py)
core/lazy_loader.py)
app.py)
/query, /plugins, /stats, /health, etc.core/plugin_manager.py)
utils/cli_helper.py)
utils/async_utils.py)
utils/resource_monitor.py)
tools/rag.py)
setup.bat / setup.sh for automated installationrun.bat / run.sh for easy startupcrawllama.service for Linux deploymentdocs/LANGGRAPH_GUIDE.md - Multi-Hop Reasoningdocs/PLUGIN_TUTORIAL.md - Plugin Developmentdocs/OSINT_USAGE.md - OSINT Featuresdocs/HEALTH_MONITORING.md - Health Dashboardcore/llm_client.py)
tools/web_search.py)
tools/wiki_lookup.py)
tools/rag.py)
core/agent.py)
core/fallback_manager.py)
utils/rate_limiter.py)
utils/domain_blacklist.py)
utils/safe_fetch.py)
core/cache.py)
clear - Reset sessionstats - Display statisticssave/load - Save/load sessionexit/quit - Exittests/)
test_web_search.pytest_fallback_manager.pytest_cache.pytest_domain_blacklist.pytest_llm_client.pytest_integration.py