-
Notifications
You must be signed in to change notification settings - Fork 1
Changelog
adityatawde9699 edited this page May 29, 2026
·
3 revisions
Full version history. For detailed commit-level changes, see CHANGELOG.md.
- Cognitive Core — Replaced implicit ReAct loops with a deterministic async state machine.
-
Explicit Execution Graphs — Tasks are now decomposed into persistent
Plan,PlanStep,Observation, andReflectionmodels. -
Dynamic Plugin System — Tools can now be hot-loaded from a
plugins/directory without core code changes. - Durable Episodic Memory — Every plan step, tool outcome, and agent reflection is persisted in SQL for audit and learning.
-
Tool Policy Engine — Centralized gatekeeper that evaluates
RiskLevelandPermissionProfilebefore any tool execution. - Local Sandbox — Multiprocessing-based Python executor for Docker-free environments; auto-detects Docker and falls back gracefully.
- Protected Processes — Policy engine blocks termination of critical system processes (explorer.exe, etc.).
-
Self-Aware Tools — Added
manage_plugins(add/remove capabilities at runtime) andsearch_codebase(agent can inspect its own logic). - Network Diagnostic Suite — New tools for IP discovery, host pinging, and connectivity checks.
- Proactive Health Monitoring — Autonomous loop now detects and alerts on critical CPU, RAM, and Battery events.
- Structured LLM Mode — Routing hint that strictly enforces JSON output for high-precision tool argument extraction.
- Verification Layer — Explicit state for verifying tool outputs before proceeding to next plan steps.
- Async Queue Manager — Offloads long-running tool executions to background Redis-backed workers.
-
SEC-01 — Prompt injection resistance:
<user_task>XML boundaries +[BLOCKED:TOKEN]neutralisation for ReAct control tokens -
SEC-02 — WhatsApp
X-Hub-Signature-256HMAC verification; forged payloads → HTTP 403 -
SEC-03 — Telegram
MASTER_TELEGRAM_CHAT_IDallowlist; unknown senders →"Unauthorized." -
SEC-06 —
SECRET_KEYauto-generates cryptographically-secure ephemeral key; no more"fallback"literal -
CQ-01/02 —
copy_file,move_file,create_folderenforceSEARCH_ALLOWED_DIRSvia_assert_in_allowed_dirs()
-
ARCH-04 —
asyncio.Lock()prevents Qdrant client FileLock collision during concurrent startup -
DR-01 — Autonomous loop task stored + done-callback registered;
stop()cancels it -
DR-02 —
AgentOrchestrator.shutdown()implemented; no more zombie asyncio tasks on restart -
DR-03 — APScheduler uses
shutdown(wait=True); in-flight jobs complete before event loop closes -
DR-05 — IPC token corruption (non-UTF-8, empty, OS error) caught specifically with
CRITICALlog before regeneration
-
/api/v1/health/live— liveness probe (always 200) -
/api/v1/health/ready— readiness probe (checks DB, Redis, Qdrant, LLM; returns 503 with per-dependency map) -
amadeus_tool_duration_seconds{tool_name,success}Histogram — per-tool latency -
amadeus_tool_executions_total{tool_name,result}Counter — per-tool result breakdown -
amadeus_memory_errors_total{operation}Counter — Qdrant failure visibility
-
IMessagingAdapterProtocol +InboundMessagedataclass insrc/infra/messaging/protocols.py -
P6-T7: Memory deduplication viauuid5(session_id:role:text)— idempotent upserts -
P7-Chaos03:QueueFullErrorcaught in Telegram background handler → friendly "busy" reply -
PC-02: SSE word-by-word → sentence-chunk streaming (~15 words, 4× fewer sleep calls)
- 20 new unit tests:
test_security_hardening.py+test_agent_reliability.py
-
AmadeusServicedecomposed from 1,381-line God-Object → 5 focused sub-services -
ToolRegistryexclusively built by DI container — no double-registration -
ConversationMessagemodel unified across the codebase
- Semantic router index built in thread pool — no blocking startup
-
asyncio.get_event_loop()→asyncio.get_running_loop()throughout -
execution_historybounded todeque(maxlen=500)
-
eval()replaced with restricted AST math evaluator -
/chat/historylocked behindcurrent_active_user - Sentry
send_default_pii=False
- Zero-Training Semantic Tool Router — replaces sklearn SVM classifier, hot-pluggable, cosine similarity threshold 0.50. No retraining ever required when adding new tools.
-
Hybrid Workspace Indexer — BM25 + dense vector retrieval fused via Reciprocal Rank Fusion. Incremental builds, context-augmented chunking. Preserves code identifiers like
AUTH_UUID_7392as single BM25 tokens. - Flash Memory Cache — Tier-1 NumPy float32 ring buffer (100 entries, ~307 KB RAM, threshold 0.85). ~1 µs vs ~5 ms Qdrant round-trip.
- Docker network isolation — Postgres (
5432) and Redis (6379) ports no longer host-exposed. -
SECRET_KEYauto-generation viaSetup_Amadeus.bat. -
.dockerignoretightened to exclude.envfiles and model weights.
-
LLMAdapterabstract base class — all providers conform to a typed interface. -
LlamaCppAdapterwith multi-turn memory viaConversationContext. -
OllamaAdapterwithOLLAMA_ENABLEDflag and safe connection check.
- Qdrant UUIDv5 upsert collision bug.
- sklearn version mismatch on Python 3.11+.
-
LlamaCppAdapterexception type correctness (LLMErrornotException).
- Coverage gate raised to 80%.
-
bandit0 HIGH gate added to CI.
- Full Clean Architecture rewrite:
core / app / infra / apilayers. - Multi-LLM router with Redis quota tracking (Groq → Gemini → OpenAI fallback chain).
- FastAPI REST + WebSocket API with JWT auth (HS256).
- Rate limiting via SlowAPI (keyed by JWT
sub). - Telegram, WhatsApp, Email integrations.
- Docker + Railway deployment with multi-stage Dockerfile.
- Alembic migrations.
- APScheduler proactive loop.
Amadeus-AI · v6.0.0· Apache License 2.0 · Report a Bug
Getting Started
Architecture
Reference
Integrations
Operations
Development
Project
Links