Intelligent multi-agent conversational assistant with LangGraph orchestration, Human-in-the-Loop, enterprise-grade observability, and full i18n support (6 languages)
If you find my project and work valuable, I would be grateful for a star on GitHub. Thank you !
Features β’ Admin & Monitoring β’ Quick Start β’ Architecture β’ Documentation β’ Contributing
Version 1.16.9 β Chat UX polish: LaTeX math rendering (`$E=mc^2$`), syntax highlighting on code blocks (25 languages, Prism one-dark/one-light, lazy-loaded), copy buttons on messages and code blocks, relative dates ("Yesterday 14:30" / "Monday 14:30"), conversation history search (PostgreSQL ILIKE + client-side instant filter), Tooltip primitive (Radix) migrated across chat. A11y: TypingIndicator with role/aria-live, textarea mobile attrs (autoCapitalize/autoCorrect/enterKeyHint). Bug fixes: proactive feedback persisted in `message_metadata` JSONB (cross-session/cross-device), Weather & Philips Hue tools now localized to user language (Option C thread-safe via `ConnectorTool._fetch_language()` + `_language_from_result()`), skill-generator delivers all files β April 2026
- Why LIA?
- Try LIA Online
- Screenshots
- Features
- Administration & Monitoring
- Quick Start
- Architecture
- Technologies
- Documentation
- Tests
- CI/CD
- Performance
- Security
- Contributing
- Support
- License
- Acknowledgments
LIA solves the fundamental problems of today's AI assistants:
| Problem | LIA Solution |
|---|---|
| Unpredictable LLM costs | Real-time token tracking, budget alerts, 93% optimization |
| Uncontrolled hallucinations | Human-in-the-Loop (HITL) with 6 approval levels |
| Fragmented integrations | Unified multi-domain orchestration (18 agents + MCP + sub-agents) |
| Limited observability | 500+ Prometheus metrics, 20 Grafana dashboards, GeoIP analytics |
| Inconsistent performance | Gemini embedding-001 with asymmetric task types, semantic routing with hybrid scoring |
π
"Find my meetings for tomorrow and send a reminder to all participants"
π§ "Summarize my unread emails from this week that have attachments"
π₯ "Update the companies of my contacts who work at startups"
π "Remind me tomorrow at 9am to call Marie for her birthday"
LIA is available as a hosted service at https://lia.jeyswork.com/ β no installation required.
Closed beta: Access is currently limited to a restricted number of users, at the administrator's discretion. To request an invitation, contact liamyassistant@gmail.com.
Dashboard β Homepage with quick access, usage statistics, and personalized greeting
Chat β Multi-agent conversation with real-time debug panel (right sidebar)
More screenshots
Settings β Preferences: connectors, MCP servers, language, timezone, and themes
Settings β Features: LIA Style, long-term memory, interests, proactive notifications, scheduled actions, sub-agents, channels
Settings β Administration: LLM config, RAG Spaces, users, connectors, pricing, skills, voice, broadcast, debug
Administration β One-click simplicity: every admin action is accessible in a single click, no technical skills required
Administration β LLM Configuration: 8 providers (OpenAI, Anthropic, DeepSeek, Qwen, Perplexity, Ollama, Gemini, Mistral), per-node model selection
FAQ β Searchable help center with categorized Q&A sections
- 19+ Specialized Agents: Contacts, Emails, Calendar, Drive, Tasks, Reminders, Places, Routes, Weather, Wikipedia, Perplexity, Brave, Web Search, Web Fetch, Browser Control (with progressive screenshot streaming), Smart Home (Philips Hue), Context, Query + dynamic MCP agents
- ReAct Execution Mode (ADR-070): Alternative to the pipeline β the LLM iteratively reasons about tool outputs and decides next steps autonomously. User-toggleable preference, 4-node LangGraph architecture with native HITL support, timeout enforcement, cross-domain initiative via prompt engineering. Supports all tools including MCP and Skills
- MCP (Model Context Protocol): Per-user external tool servers with OAuth 2.1, SSRF protection, structured items parsing, MCP Apps (interactive iframe widgets), Iterative Mode (ReAct) for complex servers β a dedicated agent reads docs then calls tools correctly
- Agent Initiative Phase: Post-execution cross-domain enrichment β the assistant proactively verifies related information (e.g., weather shows rain β checks calendar for outdoor events). Prompt-driven, read-only, fully configurable
- Skills (agentskills.io) with Rich Outputs: Open standard for expert instructions (SKILL.md), model-driven activation, progressive disclosure (L1/L2/L3), sandboxed scripts, marketplace import, auto-translated multi-language descriptions, ZIP download, admin management. Rich Skill Outputs (v1.16.8): skills can return interactive HTML frames (iframe srcDoc or external URL) and/or images in addition to text, via a simple JSON contract (
SkillScriptOutput). Automatic theme & locale sync (theme switch propagates live to frames viapostMessage), iframe auto-resize, CSP-sandboxed client-side interactivity (addEventListener,crypto.getRandomValues), bundledsegnofor QR codes. Seven built-in rich skills:interactive-map,weather-dashboard,calendar-month,qr-code,pomodoro-timer,unit-converter,dice-roller. Planner skill guard: multi-domain deterministic skills are protected from false-positive early clarification requests via domain overlap detection (_has_potential_skill_match). Built-in Skill Generator: create custom skills in natural language β the assistant guides you through need analysis, archetype selection, and produces a ready-to-import SKILL.md with automatic validation - AI Image Generation & Editing: Generate images from text prompts (gpt-image-1), edit existing images with natural language instructions. Multi-provider factory architecture, per-user quality/size preferences, cost tracking with DB-cached pricing, attachment-based storage with cascade cleanup
- File Attachments (Images, PDF): Upload with client-side compression, configurable LLM vision analysis, PDF text extraction, strict per-user isolation
- Semantic Routing: Binary classification with confidence scoring (high >0.85, medium >0.65)
- Multi-Step Planning: ExecutionPlan DSL with dependencies and conditions
- Parallel Execution: asyncio.gather for independent domains
- Intelligent Context Compaction: LLM-based conversation history summarization when token count exceeds dynamic threshold (ratio of response model context window). Preserves identifiers (UUIDs, URLs, emails).
/resumecommand for manual trigger. 4 HITL safety conditions prevent compaction during active approval flows
- 5-Layer Psychological State: Big Five personality traits (permanent) β PAD mood space with 14 moods (hours) β 22 discrete emotions with cross-suppression (minutes) β 4-stage relationship progression (weeks) β curiosity/engagement drives (per-session)
- Show, Don't Tell: Mood and emotions subtly influence word choice, sentence rhythm, energy level, and relational tone β the assistant never declares "I'm feeling happy"
- Emotional Avatar: Mood-responsive emoji with colored ring on each message. Historical avatars persisted per-message for reload consistency
- Evolution Awareness: The assistant knows how its mood shifted since the last message, providing narrative continuity
- 4-Chart Dashboard: Interactive recharts visualization of mood (PAD), emotions, relationship, and drives over time (24h to 90 days)
- Education Guide: 7-section interactive documentation explaining every layer, with descriptive tables for 14 moods and 22 emotions
- Customizable Temperament: Expressiveness (stoic β highly expressive) and stability (volatile β very stable) sliders. Soft reset (mood only) and full reset (everything) with explicit scope descriptions
- Global Injection: Behavioral directives injected via template variables into all user-facing text generation (response, notifications, reminders, voice) within semantic XML blocks (
<InnerState purpose="tone-calibration">) - Safety Guardrail: Explicit instruction prevents the LLM from projecting its own emotional state onto the user
- Self-Report: Zero-cost emotion tracking via hidden
<psyche_eval/>tag β no additional LLM call
Voice Input (STT)
- Push-to-Talk: Hold microphone button to speak, release to transcribe. Optimized for mobile (anti-long-press CSS, touch gesture handling)
- Wake Word: Say "OK Guy" to activate hands-free recording. Sherpa-onnx WASM (Whisper Tiny.en) runs entirely in-browser β no audio sent externally for wake word detection
- Per-User Language: STT transcription uses the user's preferred language setting (Whisper Small, 99+ languages, fully offline)
- Latency Optimized: Mic stream reuse, WebSocket pre-warming, parallel setup, cached AudioWorklet (~50-100ms wake-to-record)
Voice Output (TTS)
| Mode | Provider | Cost | Quality |
|---|---|---|---|
| Standard | Edge TTS (Microsoft Neural) | Free | High |
| HD | OpenAI TTS | $15-30/1M chars | Premium |
| HD | Gemini TTS | Variable | Premium |
- Factory Pattern: Interchangeable implementations
- Admin Control: Mode controlled via System Settings
- Graceful Degradation: Automatic HD to Standard fallback
# DSL Syntax
ExecutionStep(
tool_name="send_email",
for_each="$steps.get_contacts.contacts",
for_each_max=10
)- HITL Thresholds: Mutations >= 1 trigger mandatory approval
- Bulk Operations: Send emails, update contacts, mass deletions
| Service | Role | Optimization |
|---|---|---|
| QueryAnalyzerService | Routing decision | LRU Cache |
| SmartPlannerService | ExecutionPlan generation | Pattern Learning |
| SmartCatalogueService | Tool filtering | 96% token reduction |
| PlanPatternLearner | Bayesian learning | Bypass >90% confidence |
- Gmail: Search, read, send, reply, trash
- Contacts: Fuzzy search, list, details (14+ schemas)
- Calendar: Search, create, update events
- Drive: Search, file/folder listing
- Tasks: Full CRUD with completion
- Apple Mail: Search, read, send, reply, forward, trash (IMAP/SMTP)
- Apple Calendar: Search, create, update, delete events (CalDAV)
- Apple Contacts: Search, list, create, update, delete (CardDAV)
- Outlook: Search, read, send, reply, forward, trash (Graph API)
- Calendar: Search, create, update, delete events (calendarView)
- Contacts: Search, list, create, update, delete
- To Do: Full CRUD with completion (task lists + tasks)
- Multi-tenant: Personal accounts (outlook.com) and business accounts (Azure AD) via
tenant=common
- Only one provider per functional category (email, calendar, contacts, tasks)
- 3 supported providers: Google, Apple, Microsoft
- Activating a new provider automatically deactivates the active competitor
- Voice-controlled lighting: Turn lights on/off, adjust brightness and colors via natural language
- Room & scene management: Control entire rooms or activate predefined scenes ("dim the living room", "activate movie mode")
- Local or cloud connection: Connect via local bridge IP or Philips Hue cloud API
- Feature flag:
PHILIPS_HUE_ENABLED=trueto enable
| Type | Trigger | Severity |
|---|---|---|
| Plan Approval | Destructive actions | CRITICAL |
| Clarification | Detected ambiguity | WARNING |
| Draft Critique | Email/Event review | INFO |
| Destructive Confirm | Deletion of >= 3 items | CRITICAL |
| FOR_EACH Confirm | Bulk mutations | WARNING |
| Modifier Review | Review and approve AI-suggested modifications to draft content | INFO |
- Prometheus: 500+ custom metrics (agents, LLM, infrastructure)
- Grafana: 20 production-ready dashboards
- Langfuse: LLM-specific tracing with prompt versions
- Loki: Structured JSON logs with PII filtering
- Tempo: Distributed cross-service tracing
| Type | Tracking | Export |
|---|---|---|
| LLM Tokens | Per node, per provider | Detailed CSV |
| Google API | Per endpoint, per user | Detailed CSV |
| Aggregated | Per user, per period | CSV summary |
- Google Maps Platform: Places, Routes, Geocoding, Static Maps
- Dynamic Pricing: Admin UI for pricing CRUD
- ContextVar Pattern: Implicit tracking without explicit parameter passing
- Admin CSV Exports: Token usage, Google API usage, Consumption summary (all users or filtered by user)
- User CSV Exports (v1.9.1): Personal consumption export in Settings > Features β users export their own data only (
user_idforced server-side, IDOR-safe)
- OAuth 2.1: PKCE (S256), single-use state token
- BFF Pattern: HTTP-only cookies, Redis session with 24h TTL
- Encryption: Fernet (credentials), bcrypt (passwords)
- GDPR: Automatic PII filtering, pseudonymization, personal data export (Art. 20 data portability)
- Per-User Usage Limits: Token, message, and cost quotas (period/global) with 5-layer defense-in-depth enforcement, admin kill switch, real-time dashboard with WebSocket gauges. Feature flag:
USAGE_LIMITS_ENABLED=true
- Per-user external servers: Each user connects their own MCP servers (third-party tools)
- Flexible authentication: None, API Key, Bearer Token, OAuth 2.1 (DCR + PKCE S256)
- Enhanced security: HTTPS-only, SSRF prevention (DNS resolution + IP blocklist), encrypted credentials (Fernet)
- Structured Items Parsing: Automatic JSON array detection into individual items with McpResultCard HTML
- Auto-generated descriptions: LLM analysis of discovered tools to generate domain descriptions optimized for intelligent routing
- Per-server rate limiting: Redis sliding window per server/tool
- Feature flag:
MCP_USER_ENABLED=trueto enable per-user
- Bidirectional Telegram: Full chat with LIA via Telegram (text, voice, HITL)
- OTP Linking: Secure account-to-Telegram linking via 6-digit OTP code (single-use, 5min TTL, brute-force protection)
- HITL Inline Keyboards: Approval/rejection buttons localized in 6 languages directly in Telegram
- Voice Transcription: Telegram voice messages to STT (Sherpa Whisper) to text processing
- Proactive Notifications: Reminders and interest alerts also sent via Telegram
- Extensible Architecture:
BaseChannelSender/BaseChannelWebhookHandlerabstraction for future channels (Discord, WhatsApp) - Observability: 12 dedicated Prometheus RED metrics (latency, errors, volumes)
- Feature flag:
CHANNELS_ENABLED=trueto enable
- LLM-driven proactivity: LIA takes the initiative to inform you when relevant (weather, calendar, interests)
- Multi-source aggregation: Calendar, Weather (with change detection), Tasks, Interests, Memories, Activity β parallel fetch
- 2-phase LLM decision: Phase 1 (structured output, cost-effective model) decides whether to notify, Phase 2 rewrites with user personality and language
- Intelligent anti-redundancy: Recent history + cross-type dedup (heartbeat vs. interests) in the decision prompt
- User control: Push notifications (FCM/Telegram) independently toggleable, configurable daily max (1-8), dedicated time windows (independent from interests)
- Weather change detection: Rain start/end, temperature drops, wind alerts β truly actionable notifications
- Feature flag:
HEARTBEAT_ENABLED=trueto enable
- Recurring actions: Schedule repetitive actions executed automatically (send emails, checks, reminders)
- Timezone-aware: Correct timezone handling per user
- Retry logic: Automatic retries on failure with back-off
- Auto-disable: Automatic deactivation after N consecutive failures
- Multi-channel integration: Result notifications via FCM, SSE, and Telegram
- Feature flag:
SCHEDULED_ACTIONS_ENABLED=trueto enable
- Persistent specialized agents: Create sub-agents with custom instructions, skills, and LLM configuration
- Read-only V1: Sub-agents perform research, analysis, and synthesis β no write operations
- Template-based creation: Pre-defined templates (Research Assistant, Writing Assistant, Data Analyst)
- Invisible to user: The principal assistant orchestrates sub-agents and presents results naturally
- Token guard-rails: Per-execution budget, daily budget, auto-disable after consecutive failures
- Feature flag:
SUB_AGENTS_ENABLED=trueto enable (default: false)
- Personal knowledge bases: Create spaces, upload documents in 15+ formats (PDF, DOCX, PPTX, XLSX, CSV, RTF, HTML, EPUB, and more), automatic chunking and embedding
- Google Drive folder sync: Link Google Drive folders to spaces for automatic file vectorization with incremental change detection (new, modified, deleted). Feature flag:
RAG_SPACES_DRIVE_SYNC_ENABLED - Hybrid search: Semantic similarity (pgvector cosine) + BM25 keyword matching with configurable alpha fusion
- Response enrichment: RAG context automatically injected into assistant responses when active spaces exist
- Full cost transparency: Embedding costs tracked per document and per query, visible in chat bubbles and dashboard
- System knowledge spaces: Built-in FAQ knowledge base (119+ Q/A across 17 sections) indexed from Markdown files (
docs/knowledge/).is_app_help_querydetection by QueryAnalyzer, RoutingDecider Rule 0 override, App Identity Prompt injection with lazy loading (zero overhead on normal queries). Auto-indexed at startup with SHA-256 hash-based staleness. Admin UI for reindex and staleness monitoring. ADR-058 - Admin reindexation: Full reindex when embedding model changes, with Redis mutual exclusion and automatic dimension ALTER. System spaces have independent reindex via admin API
- Observability: 17 Prometheus metrics (14 user + 3 system), dedicated Grafana dashboard
- Feature flags:
RAG_SPACES_ENABLED=true(user spaces),RAG_SPACES_SYSTEM_ENABLED=true(system FAQ spaces)
- Introspective notebooks: The assistant maintains thematic journals (self-reflection, user observations, ideas & analyses, learnings) written in first person, colored by its active personality
- Dual trigger: Post-conversation extraction (fire-and-forget) + periodic consolidation (APScheduler). The assistant decides freely what to write
- Semantic context injection: Journal entries injected into both response AND planner prompts via Gemini embedding-001 similarity search with configurable minimum score prefiltering (
JOURNAL_CONTEXT_MIN_SCORE). Results include scores β the LLM decides relevance autonomously - Prompt-driven lifecycle: The assistant manages its own journals β no hardcoded auto-archival. Size constraints guide cleanup via prompt engineering
- Heartbeat integration: Journal entries enrich proactive notifications via dynamic second-pass query built from aggregated context (calendar, weather, emails). Toggleable source badge in heartbeat settings
- Full user control: Enable/disable (data preserved), consolidation toggle, conversation history analysis (with cost warning), 4 configurable numeric settings, full CRUD in Settings
- Anti-hallucination guards: Three-layer defense against LLM UUID hallucination β prompt guidance with ID reference tables,
field_validatoron entry IDs, and known-ID filtering in both extraction and consolidation services - Debug panel: Dedicated "Personal Journals" section showing injection metrics (per-entry scores with visual bars, budget indicators) AND background extraction results (actions parsed/applied, CREATE/UPDATE/DELETE badges, themes, moods). Extraction data arrives via supplementary
debug_metrics_updateSSE event after background tasks complete - Cost transparency: Real token costs tracked via TrackingContext, visible in Settings and dashboard
- Feature flags:
JOURNALS_ENABLED=false(system), user-level toggle in Settings > Features. ADR-057
- Two token-authenticated endpoints (
POST /api/v1/ingest/health/stepsand/api/v1/ingest/health/heart_rate): an iPhone Shortcut automation pushes daily batches of samples. Each sample carries its own ISO 8601date_start/date_endβ UTC-normalized server-side and second-truncated to keep uniqueness stable. - Polymorphic single-table storage (
health_samples): one row per sample with akinddiscriminator (heart_rate|steps). Extending tospo2/sleep/caloriesreduces to a newkindvalue β no new table, no new endpoint. - Idempotent UPSERT (
ON CONFLICT (user_id, kind, date_start, date_end) DO UPDATE) using PostgreSQL'sRETURNING (xmax = 0)trick to split insert vs update counts in a single round-trip. Re-sending the same batch is free β last value wins. - Flexible body parser: accepts JSON array, NDJSON,
{"data": [...]}envelope, and the iOS Shortcuts "Dictionnaire" wrapping ({"<ndjson_blob>": {}}) β no contract pressure on the user's Raccourci authoring. - Per-user hashed tokens: SHA-256 digest stored, raw value (
hm_xxx) returned once at generation, display prefix shown in Settings, individually revocable. Multiple tokens may coexist for rotation. - Mixed per-sample validation: out-of-range / malformed / missing-field / invalid-date samples are individually rejected with their 0-based index + reason, while valid siblings in the same batch persist.
- Bucketed aggregation (
hour / day / week / month / year): heart rate averaged (plus min / max), steps SUM-ed per bucket; gaps kept (has_data=False) so the UI displays honest curves. - Settings visualization: four-section panel (ingestion API + tokens, recharts line/bar charts with period average overlays, statistics, deletion by kind or full wipe).
- GDPR-aware: deletion by kind (
DELETE ?kind=...), full erasure (DELETE /all),ON DELETE CASCADEon the user FK. - Observability: bounded-cardinality Prometheus metrics (
health_samples_upserted_total{kind, operation}, validation rejections, rate-limit hits, auth failures, token lifecycle, deletions, latency histogram) + Grafana dashboard 21. - Guards: 60 req/h/token sliding-window rate limit (configurable), 1000 samples/batch cap (
413beyond). - Feature flag:
HEALTH_METRICS_ENABLED=false(system). ADR-076 Β· Guide iPhone Β· Technical doc
- Sandboxed iframes: MCP applications rendered in secure iframes (CSP + COEP
credentialless) - JSON-RPC Bridge: Bidirectional communication between iframe app and chat via PostMessage JSON-RPC 2.0
- Excalidraw Iterative Builder: Intent-based diagram generation via dedicated LLM calls (shapes + arrows) with cheat sheet injection for format accuracy
read_meconvention: MCP servers exposing aread_metool have their content auto-injected into the planner prompt- Auto-generated descriptions: LLM analysis of discovered tools for domain description optimized for routing
- App-only tools: Tools with
visibility: ["app"]filtered from the LLM catalogue (iframe only)
LIA is fully translated in 6 languages: English, French, German, Spanish, Italian, and Chinese.
- Complete UI coverage: All interfaces, dialogs, notifications, error messages, FAQ, and landing page
- HITL localized: Human-in-the-Loop approval prompts adapted per language
- Proactive notifications: Heartbeat and reminders delivered in the user's language
- Telegram: Inline keyboards and messages localized
- Skills: Auto-translated descriptions in all 6 languages
- react-i18next: Namespace-based translations with
locales/{lang}/translation.json
- Presentation page: Responsive landing page with animated components (Hero, Features, Architecture, Security, Stats, Use Cases, How It Works, CTA)
- SEO & OpenGraph: Dynamically generated OG image for social media previews
- Authenticated redirect: Automatic redirect to dashboard if already logged in
LIA includes a full-featured administration interface β giving operators complete control and real-time visibility over the system without touching configuration files or the database.
A web-based administration panel covering every operational aspect:
| Section | Capabilities |
|---|---|
| LLM Configuration | Model selection per node, provider parameters, temperature/token limits, prompt versions |
| RAG Knowledge Spaces | Manage document spaces, embedding configuration, user reindex operations, system knowledge spaces (FAQ staleness, reindex) |
| Personalities | Create and manage assistant personalities (tone, language, behavior rules) |
| User Management | User accounts, roles, permissions, connector status overview |
| Connector Management | Google/Apple/Microsoft OAuth status, token health, per-user provider activation |
| Skills Management | Enable/disable skills, edit descriptions, translate in 6 languages, delete |
| MCP Servers | Admin-level MCP server configuration, tool discovery, domain descriptions |
| LLM Pricing | CRUD for per-model pricing (input/output/cache tokens), used for cost tracking |
| Google API Pricing | Per-endpoint pricing configuration for Google Maps Platform services |
| Voice Settings | TTS mode selection (Standard/HD), provider configuration |
| Broadcasting | Send system-wide notifications to all users or targeted groups |
| Debug Settings | Toggle debug panel visibility, configure diagnostic verbosity per user |
| Usage Limits | Per-user token/message/cost quotas (period + global), real-time gauges, manual block/unblock, WebSocket live updates |
| Consumption Export | CSV export of token usage, Google API usage, and aggregated consumption per user/period |
A 24-section debug panel embedded in the chat interface, organized into 6 logical groups with always-visible sections (empty sections show "N/A" instead of disappearing):
| Group | Sections |
|---|---|
| Request Analysis | Intent classification, Domain detection, Routing decision, Query transformations |
| Planning & Execution | Planner output, Tool selection, Context resolution, Token budget, Execution timeline, ForEach analysis, Execution waves |
| Intelligent Mechanisms | Cache hits, pattern learning, semantic expansion, Skills activation |
| Context Injection | Memory injection (scores), RAG injection (scores), Knowledge enrichment (Brave), Journal injection (per-entry scores, budget) |
| Background Extraction | Memory detection (create/update/delete), Journal extraction, Interest profile |
| LLM & API Pipeline | Request lifecycle (timing breakdown per node), LLM Pipeline (chronological reconciliation), LLM call details (model, tokens, latency, cost), Google API calls |
The debug panel is designed for developers and operators to diagnose issues, optimize prompts, and understand the agent's decision-making process in real time β without needing external tools or log access.
| Software | Version | Required |
|---|---|---|
| Python | 3.12+ | Yes |
| Node.js | 22 LTS | Yes |
| Docker | 24+ | Yes |
| pnpm | 10+ | Yes |
| Task | 3+ | Yes (build tool) |
All commands are defined in Taskfile.yml. Quick start: task setup then task dev.
# 1. Clone the repository
git clone https://github.com/jgouviergmail/LIA-Assistant.git
cd LIA-Assistant
# 2. Configure environment
cp .env.example .env # Edit with your API keys
# 3. Full setup (backend + frontend + git hooks)
task setup
# 4. Start all services (API + Web + PostgreSQL + Redis + observability)
task devManual setup (without Task)
# 1. Start the infrastructure
docker compose up -d postgres redis prometheus grafana
# 2. Backend setup
cd apps/api
python -m venv .venv && source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
cp ../../.env.example .env # Configure your API keys
# 3. Database migrations
alembic upgrade head
# 4. Frontend setup
cd ../web
pnpm install
# 5. Start the services
# Terminal 1 - Backend:
cd apps/api && uvicorn src.main:app --reload --port 8000
# Terminal 2 - Frontend:
cd apps/web && pnpm dev| Service | URL | Credentials |
|---|---|---|
| Frontend | http://localhost:3000 | β |
| API Docs | http://localhost:8000/docs | β |
| Grafana | http://localhost:3001 | admin/admin |
| Prometheus | http://localhost:9090 | β |
# Database
DATABASE_URL=postgresql+asyncpg://user:pass@localhost:5432/lia
REDIS_URL=redis://localhost:6379/0
# Security (REQUIRED - change in production)
SECRET_KEY=change-me-in-production-use-openssl-rand-base64-32
FERNET_KEY=your-fernet-key-here
# LLM Provider API keys are configured via Admin UI after first login
# (Settings > Administration > LLM Configuration)
# At least one provider (typically OpenAI) is required.
# Google OAuth (optional)
GOOGLE_CLIENT_ID=...
GOOGLE_CLIENT_SECRET=...
# Feature Flags (optional, disabled by default)
MCP_ENABLED=false # Admin MCP servers
MCP_USER_ENABLED=false # Per-user MCP (requires MCP_ENABLED)
CHANNELS_ENABLED=false # Multi-channel messaging (Telegram)
HEARTBEAT_ENABLED=false # Autonomous proactive notifications
SCHEDULED_ACTIONS_ENABLED=false # Recurring scheduled actions
SUB_AGENTS_ENABLED=false # Persistent specialized sub-agents
SKILLS_ENABLED=false # Skills system (agentskills.io standard)
RAG_SPACES_ENABLED=true # RAG Knowledge Spaces (document upload & retrieval)
FCM_NOTIFICATIONS_ENABLED=false # Firebase push notificationsProduction targets include Raspberry Pi (ARM64) via multi-arch Docker builds (linux/amd64,linux/arm64).
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β FRONTEND (Next.js 16 + React 19) β
β Chat UI β’ Settings β’ i18n (6 languages) β’ SSE Streaming β’ Voice Mode β
βββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββ
β HTTP-only cookies (session_id, 24h TTL)
βββββββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββββββββββββ
β BACKEND (FastAPI + LangGraph 1.x) β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β LangGraph Multi-Agent Orchestration β β
β β β β
β β Router β QueryAnalyzer β Planner β ApprovalGate β Orchestrator β β
β β β β β β
β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β Contacts β Emails β Calendar β Drive β Tasks β Reminders β β β
β β β Places β Routes β Weather β Wikipedia β Perplexity β β β
β β β Brave β Web Search β Web Fetch β Browser β Context β Queryβ β β
β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β β
β β MCP Tools (per-user external servers) β β
β β β β β
β β Response Node (synthesis) β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β Domain Services: Auth, Users, Connectors, RAG, Voice, Skills... ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β Infrastructure: Redis (cache) β’ PostgreSQL (checkpoints) β’ ββ
β β MCP Client Pool β’ Prometheus (metrics) β’ Langfuse (traces) ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
LIA offers two execution strategies, switchable per user via a toggle in the chat header:
Pipeline mode (default) β A feat of engineering that delivers the same power as ReAct with 4β8Γ fewer tokens:
- A smart Planner decomposes the request into an optimized execution plan (DSL)
- A Semantic Validator checks plan coherence (cardinality, scope, dependencies)
- An Approval Gate handles HITL for mutations
- A Task Orchestrator executes tools in parallel waves via
asyncio.gather() - Bayesian learning optimizes planning patterns over time
ReAct mode (β‘) β The LLM reasons iteratively, calling tools one by one and adapting to each result. More autonomous but higher token cost. Ideal for exploratory, research, or ambiguous queries.
| Version | Changes | Urgency | Date |
|---|---|---|---|
| v1.17.1 | ## Changes - release: v1.17.1 β Health Metrics polymorphic batch upsert + per-kind dedupe (89898b3) - docs(guides): rewrite how/why as showcases, not changelogs (2265d63) ## Docker Images ```bash docker pull ghcr.io/jgouviergmail/LIA-Assistant/api:v1.17.1 docker pull ghcr.io/jgouviergmail/LIA-Assistant/web:v1.17.1 ``` ## Quick Start ```bash git clone https://github.com/jgouviergmail/LIA-Assistant.git cd LIA-Assistant cp .env.example .env docker compose up -d ``` **Full Changelog**: https: | High | 4/21/2026 |
| v1.17.0 | ## Changes - release: v1.17.0 β Health Metrics: iPhone Shortcuts ingestion + charts (3237730) ## Docker Images ```bash docker pull ghcr.io/jgouviergmail/LIA-Assistant/api:v1.17.0 docker pull ghcr.io/jgouviergmail/LIA-Assistant/web:v1.17.0 ``` ## Quick Start ```bash git clone https://github.com/jgouviergmail/LIA-Assistant.git cd LIA-Assistant cp .env.example .env docker compose up -d ``` **Full Changelog**: https://github.com/jgouviergmail/LIA-Assistant/compare/v1.16.10...v1.17.0 | High | 4/21/2026 |
| v1.16.10 | ## Changes - release: v1.16.10 β Observability overhaul: 90+ dead metrics revived, 2 new dashboards, DB indexes (8a3ab47) ## Docker Images ```bash docker pull ghcr.io/jgouviergmail/LIA-Assistant/api:v1.16.10 docker pull ghcr.io/jgouviergmail/LIA-Assistant/web:v1.16.10 ``` ## Quick Start ```bash git clone https://github.com/jgouviergmail/LIA-Assistant.git cd LIA-Assistant cp .env.example .env docker compose up -d ``` **Full Changelog**: https://github.com/jgouviergmail/LIA-Assistant/compar | High | 4/20/2026 |
| v1.16.9 | ## Changes - release: v1.16.9 β Chat UX polish: LaTeX, syntax highlighting, history search, copy buttons (e17c419) ## Docker Images ```bash docker pull ghcr.io/jgouviergmail/LIA-Assistant/api:v1.16.9 docker pull ghcr.io/jgouviergmail/LIA-Assistant/web:v1.16.9 ``` ## Quick Start ```bash git clone https://github.com/jgouviergmail/LIA-Assistant.git cd LIA-Assistant cp .env.example .env docker compose up -d ``` **Full Changelog**: https://github.com/jgouviergmail/LIA-Assistant/compare/v1.16.8 | High | 4/20/2026 |
| v1.16.8 | ## Changes - release: v1.16.8 β Rich Skill Outputs: frames, images, widgets in chat (352a9b6) ## Docker Images ```bash docker pull ghcr.io/jgouviergmail/LIA-Assistant/api:v1.16.8 docker pull ghcr.io/jgouviergmail/LIA-Assistant/web:v1.16.8 ``` ## Quick Start ```bash git clone https://github.com/jgouviergmail/LIA-Assistant.git cd LIA-Assistant cp .env.example .env docker compose up -d ``` **Full Changelog**: https://github.com/jgouviergmail/LIA-Assistant/compare/v1.16.7...v1.16.8 | High | 4/19/2026 |
| v1.16.7 | ## Changes - release: v1.16.7 β Proactive weather: temp detection fix + travel-aware location (9a6b755) ## Docker Images ```bash docker pull ghcr.io/jgouviergmail/LIA-Assistant/api:v1.16.7 docker pull ghcr.io/jgouviergmail/LIA-Assistant/web:v1.16.7 ``` ## Quick Start ```bash git clone https://github.com/jgouviergmail/LIA-Assistant.git cd LIA-Assistant cp .env.example .env docker compose up -d ``` **Full Changelog**: https://github.com/jgouviergmail/LIA-Assistant/compare/v1.16.6...v1.16.7 | High | 4/19/2026 |
| v1.16.6 | ## π§ Long-term memory β Precision overhaul Refonte complΓ¨te du pipeline mΓ©moire long-terme sur trois axes : **prompt d'extraction**, **formule de rΓ©tention**, et **consolidation sΓ©mantique quotidienne**. Corrige au passage deux bugs silencieux dans l'ancien systΓ¨me de purge. ### β¨ Highlights user-facing - **Vos corrections factuelles tiennent vraiment** β Β« en fait j'ai changΓ© de job, je suis chez Meta Β» met Γ jour la mΓ©moire au lieu de crΓ©er un doublon contradictoire. - **MΓ©moires Γ©pinglΓ©es | High | 4/18/2026 |
| v1.16.5 | ## Changes - release: v1.16.5 β TCM two-keys simplification + reference resolution sync (ed34c89) - build(deps): bump GitHub Actions group (supersedes #103) (#110) (47ea19f) - fix(security): patch protobufjs CVE + langchain SSRF fixes (supersedes #101, #102) (#109) (85320f3) - build(deps): bump typescript 6.0 (supersedes #95) (#108) (73e4613) - build(deps): bump lucide-react v1.8 + fix removed Github icon (supersedes #94) (#106) (d7b32c7) - build(deps): bump i18next 26 + react-i18next 17 (super | High | 4/18/2026 |
| v1.16.4 | ## Changes - chore(release): v1.16.4 β semantic skill identification + response resources fix (cab3b4b) ## Docker Images ```bash docker pull ghcr.io/jgouviergmail/LIA-Assistant/api:v1.16.4 docker pull ghcr.io/jgouviergmail/LIA-Assistant/web:v1.16.4 ``` ## Quick Start ```bash git clone https://github.com/jgouviergmail/LIA-Assistant.git cd LIA-Assistant cp .env.example .env docker compose up -d ``` **Full Changelog**: https://github.com/jgouviergmail/LIA-Assistant/compare/v1.16.3.1...v1.16. | High | 4/15/2026 |
| v1.16.3.1 | ## Security Audit β Full Remediation Comprehensive security audit resolving **all** GitHub code scanning alerts and Dependabot vulnerabilities. Zero open issues remain. ### Dependency Upgrades (Backend β 12 packages) | Package | From | To | Reason | |---------|------|----|--------| | `anthropic` | 0.86.0 | 0.89.0 | CVE-2026-34450, CVE-2026-34452 | | `cryptography` | 46.0.6 | 46.0.7 | Buffer overflow CVE | | `langchain-core` | 1.2.23 | 1.2.28 | f-string validation hardening | | `langchain` | 1 | Medium | 4/10/2026 |
| v1.16.3 | ## Changes - feat(release): v1.16.3 β Skill bypass relaxed matching, briefing reminders, random analyzing phrases (b55121a) ## Docker Images ```bash docker pull ghcr.io/jgouviergmail/LIA-Assistant/api:v1.16.3 docker pull ghcr.io/jgouviergmail/LIA-Assistant/web:v1.16.3 ``` ## Quick Start ```bash git clone https://github.com/jgouviergmail/LIA-Assistant.git cd LIA-Assistant cp .env.example .env docker compose up -d ``` **Full Changelog**: https://github.com/jgouviergmail/LIA-Assistant/compar | Medium | 4/10/2026 |
| v1.16.2 | ## Changes - feat(release): v1.16.2 β Progressive execution step display, per-tool visibility, i18n completion (ddd9f09) ## Docker Images ```bash docker pull ghcr.io/jgouviergmail/LIA-Assistant/api:v1.16.2 docker pull ghcr.io/jgouviergmail/LIA-Assistant/web:v1.16.2 ``` ## Quick Start ```bash git clone https://github.com/jgouviergmail/LIA-Assistant.git cd LIA-Assistant cp .env.example .env docker compose up -d ``` **Full Changelog**: https://github.com/jgouviergmail/LIA-Assistant/compare/v | Medium | 4/9/2026 |
| v1.16.1 | ## Changes - fix(release): v1.16.1 β Homogeneous LLM config resolution, DB override enforcement (e9237f2) ## Docker Images ```bash docker pull ghcr.io/jgouviergmail/LIA-Assistant/api:v1.16.1 docker pull ghcr.io/jgouviergmail/LIA-Assistant/web:v1.16.1 ``` ## Quick Start ```bash git clone https://github.com/jgouviergmail/LIA-Assistant.git cd LIA-Assistant cp .env.example .env docker compose up -d ``` **Full Changelog**: https://github.com/jgouviergmail/LIA-Assistant/compare/v1.16.0...v1.16. | Medium | 4/9/2026 |
| v1.16.0 | ## Changes - feat(release): v1.16.0 β ReAct execution mode, token tracking robustness, LLM config alignment (a8c6b4f) ## Docker Images ```bash docker pull ghcr.io/jgouviergmail/LIA-Assistant/api:v1.16.0 docker pull ghcr.io/jgouviergmail/LIA-Assistant/web:v1.16.0 ``` ## Quick Start ```bash git clone https://github.com/jgouviergmail/LIA-Assistant.git cd LIA-Assistant cp .env.example .env docker compose up -d ``` **Full Changelog**: https://github.com/jgouviergmail/LIA-Assistant/compare/v1.1 | Medium | 4/9/2026 |
| v1.15.3 | ## Changes - feat(release): v1.15.3 β Similarity threshold calibration, LLM config alignment (b2c0e0f) ## Docker Images ```bash docker pull ghcr.io/jgouviergmail/LIA-Assistant/api:v1.15.3 docker pull ghcr.io/jgouviergmail/LIA-Assistant/web:v1.15.3 ``` ## Quick Start ```bash git clone https://github.com/jgouviergmail/LIA-Assistant.git cd LIA-Assistant cp .env.example .env docker compose up -d ``` **Full Changelog**: https://github.com/jgouviergmail/LIA-Assistant/compare/v1.15.2...v1.15.3 | Medium | 4/9/2026 |
| v1.15.2 | ## Changes - feat(psyche): v1.15.2 β Psyche Engine v2: enriched emotional intelligence (c73e75c) ## Docker Images ```bash docker pull ghcr.io/jgouviergmail/LIA-Assistant/api:v1.15.2 docker pull ghcr.io/jgouviergmail/LIA-Assistant/web:v1.15.2 ``` ## Quick Start ```bash git clone https://github.com/jgouviergmail/LIA-Assistant.git cd LIA-Assistant cp .env.example .env docker compose up -d ``` **Full Changelog**: https://github.com/jgouviergmail/LIA-Assistant/compare/v1.15.1...v1.15.2 | Medium | 4/8/2026 |
| v1.15.1 | ## Changes - fix(release): v1.15.1 β MCP ReAct step timeout, registry protection for MCP App widgets (14f04bd) ## Docker Images ```bash docker pull ghcr.io/jgouviergmail/LIA-Assistant/api:v1.15.1 docker pull ghcr.io/jgouviergmail/LIA-Assistant/web:v1.15.1 ``` ## Quick Start ```bash git clone https://github.com/jgouviergmail/LIA-Assistant.git cd LIA-Assistant cp .env.example .env docker compose up -d ``` **Full Changelog**: https://github.com/jgouviergmail/LIA-Assistant/compare/v1.15.0...v | Medium | 4/8/2026 |
| v1.15.0 | ## Changes - feat(release): v1.15.0 β User MCP ReAct, 3-phase memory resolution, initiative eligibility, error classification (d687735) ## Docker Images ```bash docker pull ghcr.io/jgouviergmail/LIA-Assistant/api:v1.15.0 docker pull ghcr.io/jgouviergmail/LIA-Assistant/web:v1.15.0 ``` ## Quick Start ```bash git clone https://github.com/jgouviergmail/LIA-Assistant.git cd LIA-Assistant cp .env.example .env docker compose up -d ``` **Full Changelog**: https://github.com/jgouviergmail/LIA-Assi | Medium | 4/8/2026 |
| v1.14.5 | ## Changes - feat(hitl): v1.14.5 β HITL streamlining, approval gate passthrough, hallucinated parameter defense (d4f3797) ## Docker Images ```bash docker pull ghcr.io/jgouviergmail/LIA-Assistant/api:v1.14.5 docker pull ghcr.io/jgouviergmail/LIA-Assistant/web:v1.14.5 ``` ## Quick Start ```bash git clone https://github.com/jgouviergmail/LIA-Assistant.git cd LIA-Assistant cp .env.example .env docker compose up -d ``` **Full Changelog**: https://github.com/jgouviergmail/LIA-Assistant/compare/ | Medium | 4/7/2026 |
| v1.14.4 | ## Changes - feat(llm): v1.14.4 β Tool embeddings cache, provider-agnostic structured output, initiative protection (8fe6db7) ## Docker Images ```bash docker pull ghcr.io/jgouviergmail/LIA-Assistant/api:v1.14.4 docker pull ghcr.io/jgouviergmail/LIA-Assistant/web:v1.14.4 ``` ## Quick Start ```bash git clone https://github.com/jgouviergmail/LIA-Assistant.git cd LIA-Assistant cp .env.example .env docker compose up -d ``` **Full Changelog**: https://github.com/jgouviergmail/LIA-Assistant/comp | Medium | 4/3/2026 |
| v1.14.3 | ## Changes - feat(display): v1.14.3 β Response display mode preference (Cards / HTML / Markdown) (507f4a4) ## Docker Images ```bash docker pull ghcr.io/jgouviergmail/LIA-Assistant/api:v1.14.3 docker pull ghcr.io/jgouviergmail/LIA-Assistant/web:v1.14.3 ``` ## Quick Start ```bash git clone https://github.com/jgouviergmail/LIA-Assistant.git cd LIA-Assistant cp .env.example .env docker compose up -d ``` **Full Changelog**: https://github.com/jgouviergmail/LIA-Assistant/compare/v1.14.2...v1.14 | Medium | 4/3/2026 |
| v1.14.2 | ## Changes - feat(skills): v1.14.2 β Skill Mechanism #2, QueryAnalyzer detection + ReactSubAgentRunner (f7e2113) - Merge branch 'feat-emotion' (0f1236b) - docs: update LLM config to Admin UI, refresh 44 slot defaults to production values (2b0693c) - docs(getting-started): add detailed Google Cloud, Azure, and Firebase setup procedures (1934ea7) ## Docker Images ```bash docker pull ghcr.io/jgouviergmail/LIA-Assistant/api:v1.14.2 docker pull ghcr.io/jgouviergmail/LIA-Assistant/web:v1.14.2 ``` | Medium | 4/3/2026 |
| v1.14.1 | ## Changes - feat(embedding): v1.14.1 β Gemini embedding migration, dual-vector search, memory resolution fix (f8b44a2) - fix(seo): block /fr/* crawling in robots.txt, trim landing descriptions (80e920e) ## Docker Images ```bash docker pull ghcr.io/jgouviergmail/LIA-Assistant/api:v1.14.1 docker pull ghcr.io/jgouviergmail/LIA-Assistant/web:v1.14.1 ``` ## Quick Start ```bash git clone https://github.com/jgouviergmail/LIA-Assistant.git cd LIA-Assistant cp .env.example .env docker compose up -d | Medium | 4/2/2026 |
| v1.14.0 | ## Changes - feat(release): v1.14.0 β Psyche Engine, emotional intelligence & prompt directives overhaul (fdf17c6) - docs(getting-started): add detailed Google Cloud, Azure, and Firebase setup procedures (cee354d) - fix(security): use os.path.normpath + startswith for CodeQL path injection sanitization (0a26dd3) ## Docker Images ```bash docker pull ghcr.io/jgouviergmail/LIA-Assistant/api:v1.14.0 docker pull ghcr.io/jgouviergmail/LIA-Assistant/web:v1.14.0 ``` ## Quick Start ```bash git clone | Medium | 4/2/2026 |
| v1.13.10 | ## Changes - feat(release): v1.13.10 β Calendar-to-routes timezone fix, datetime.utcnow() eradication (efbd54e) ## Docker Images ```bash docker pull ghcr.io/jgouviergmail/LIA-Assistant/api:v1.13.10 docker pull ghcr.io/jgouviergmail/LIA-Assistant/web:v1.13.10 ``` ## Quick Start ```bash git clone https://github.com/jgouviergmail/LIA-Assistant.git cd LIA-Assistant cp .env.example .env docker compose up -d ``` **Full Changelog**: https://github.com/jgouviergmail/LIA-Assistant/compare/v1.13.9. | Medium | 4/1/2026 |
| v1.13.9 | ## Changes - feat(release): v1.13.9 β Admin pagination & sorting enhancements, image generation pricing, CodeQL fixes (b9e3594) ## Docker Images ```bash docker pull ghcr.io/jgouviergmail/LIA-Assistant/api:v1.13.9 docker pull ghcr.io/jgouviergmail/LIA-Assistant/web:v1.13.9 ``` ## Quick Start ```bash git clone https://github.com/jgouviergmail/LIA-Assistant.git cd LIA-Assistant cp .env.example .env docker compose up -d ``` **Full Changelog**: https://github.com/jgouviergmail/LIA-Assistant/co | Medium | 3/31/2026 |
| v1.13.8 | ## Changes - feat(release): v1.13.8 β CI fixes, CodeQL remediation & dependency vulnerability patches (b6aa5b9) - docs(security,ci): document dependency override strategy, CodeQL fixes & changelog (75b6729) - fix(deps): bump brace-expansion override to 2.0.2 (CVE-2025-5889) (e7aa59b) - fix(tests,security): fix 28 CI test failures, 4 code scanning alerts & 3 dependency vulnerabilities (d017f2a) - Merge pull request #71 from jgouviergmail/dependabot/github_actions/actions-66a45020fe (a38bc6d) - M | Medium | 3/31/2026 |
| v1.13.7 | ## Changes - feat(account,security): v1.13.7 β Account Lifecycle, Usage Limit Enforcement & Background Task Protection (d76293b) ## Docker Images ```bash docker pull ghcr.io/jgouviergmail/LIA-Assistant/api:v1.13.7 docker pull ghcr.io/jgouviergmail/LIA-Assistant/web:v1.13.7 ``` ## Quick Start ```bash git clone https://github.com/jgouviergmail/LIA-Assistant.git cd LIA-Assistant cp .env.example .env docker compose up -d ``` **Full Changelog**: https://github.com/jgouviergmail/LIA-Assistant/c | Medium | 3/31/2026 |
| v1.13.6 | ## Changes - feat(memory,journal,interest): v1.13.6 β Centralized embeddings, Memory PostgreSQL migration & extraction optimization (8c47dd9) ## Docker Images ```bash docker pull ghcr.io/jgouviergmail/LIA-Assistant/api:v1.13.6 docker pull ghcr.io/jgouviergmail/LIA-Assistant/web:v1.13.6 ``` ## Quick Start ```bash git clone https://github.com/jgouviergmail/LIA-Assistant.git cd LIA-Assistant cp .env.example .env docker compose up -d ``` **Full Changelog**: https://github.com/jgouviergmail/LI | Medium | 3/30/2026 |
| v1.13.5 | ## Changes - feat(debug): v1.13.5 β Debug Panel Memory Detection section & conversation deletion fix (0f24ab2) ## Docker Images ```bash docker pull ghcr.io/jgouviergmail/LIA-Assistant/api:v1.13.5 docker pull ghcr.io/jgouviergmail/LIA-Assistant/web:v1.13.5 ``` ## Quick Start ```bash git clone https://github.com/jgouviergmail/LIA-Assistant.git cd LIA-Assistant cp .env.example .env docker compose up -d ``` **Full Changelog**: https://github.com/jgouviergmail/LIA-Assistant/compare/v1.13.4...v | Medium | 3/29/2026 |
| v1.13.4 | ## Changes - perf(memory): v1.13.4 β RAM optimization (E5βOpenAI embeddings, Playwright lazy-init, worker recycling) (f85561a) ## Docker Images ```bash docker pull ghcr.io/jgouviergmail/LIA-Assistant/api:v1.13.4 docker pull ghcr.io/jgouviergmail/LIA-Assistant/web:v1.13.4 ``` ## Quick Start ```bash git clone https://github.com/jgouviergmail/LIA-Assistant.git cd LIA-Assistant cp .env.example .env docker compose up -d ``` **Full Changelog**: https://github.com/jgouviergmail/LIA-Assistant/com | Medium | 3/29/2026 |
| v1.13.3 | ## Changes - feat(skills,admin): v1.13.3 β Skills Guide redesign, Admin dashboard enhancements & multi-provider naming (b69c82c) - fix(display): v1.13.3 β Design System v4 visual polish & PlaceCard crash fix (cc60eea) - fix(display): v1.13.2 β visual polish for email, event, place, route cards (45a4a5f) - fix(rag): resolve octet-stream MIME type from file extension for uploads (ededa06) ## Docker Images ```bash docker pull ghcr.io/jgouviergmail/LIA-Assistant/api:v1.13.3 docker pull ghcr.io/jg | Medium | 3/29/2026 |
| v1.13.2 | ## Changes - feat(display): v1.13.2 β Design System v4 visual redesign for all 14 HTML cards (80af9d5) ## Docker Images ```bash docker pull ghcr.io/jgouviergmail/LIA-Assistant/api:v1.13.2 docker pull ghcr.io/jgouviergmail/LIA-Assistant/web:v1.13.2 ``` ## Quick Start ```bash git clone https://github.com/jgouviergmail/LIA-Assistant.git cd LIA-Assistant cp .env.example .env docker compose up -d ``` **Full Changelog**: https://github.com/jgouviergmail/LIA-Assistant/compare/v1.13.1...v1.13.2 | Medium | 3/28/2026 |
| v1.13.1 | ## Changes - fix(calendar): v1.13.1 β timezone DST fix, context resolver & prod optimization (b3308f2) - fix(devops): prod deployment fixes β credentials, permissions & deploy scripts (d843134) - fix(docker): split Dockerfile.prod RUN for curl prerequisite (bbe18f1) ## Docker Images ```bash docker pull ghcr.io/jgouviergmail/LIA-Assistant/api:v1.13.1 docker pull ghcr.io/jgouviergmail/LIA-Assistant/web:v1.13.1 ``` ## Quick Start ```bash git clone https://github.com/jgouviergmail/LIA-Assistant | Medium | 3/28/2026 |
| v1.13.0 | ## What's New ### DevOps Claude CLI (Admin-only) Administrators can now diagnose servers directly from the LIA conversation using natural language. Claude Code CLI is installed in the API Docker container and runs locally via subprocess with Docker socket access. - **Natural language diagnostics**: "Check the logs", "What's using the most RAM?", "Is the API healthy?" - **Real-time streaming**: Investigation steps displayed via SSE as Claude CLI works - **Session persistence**: Multi-turn inves | Medium | 3/28/2026 |
| v1.12.4 | ## Changes - feat(hue): v1.12.4 β IoT discovery-before-planning & precise light control (bb5fd83) - test (c993b67) - feat(landing): update hero subtitle & image generation description (d4e3d16) ## Docker Images ```bash docker pull ghcr.io/jgouviergmail/LIA-Assistant/api:v1.12.4 docker pull ghcr.io/jgouviergmail/LIA-Assistant/web:v1.12.4 ``` ## Quick Start ```bash git clone https://github.com/jgouviergmail/LIA-Assistant.git cd LIA-Assistant cp .env.example .env docker compose up -d ``` **F | Medium | 3/27/2026 |
| v1.12.3 | ## Changes - feat(images): v1.12.3 β image download button & mobile long-press fix (ba93a17) - feat(auto skill) : update (64023e6) - feat(admin,faq,debug): rename Google API section, add FAQ changelog, document legacy agent nodes (e60918b) ## Docker Images ```bash docker pull ghcr.io/jgouviergmail/LIA-Assistant/api:v1.12.3 docker pull ghcr.io/jgouviergmail/LIA-Assistant/web:v1.12.3 ``` ## Quick Start ```bash git clone https://github.com/jgouviergmail/LIA-Assistant.git cd LIA-Assistant cp .e | Medium | 3/26/2026 |
| v1.12.2 | ## Changes - feat(browser): v1.12.2 β progressive screenshot streaming & side-channel infrastructure (415447b) ## Docker Images ```bash docker pull ghcr.io/jgouviergmail/LIA-Assistant/api:v1.12.2 docker pull ghcr.io/jgouviergmail/LIA-Assistant/web:v1.12.2 ``` ## Quick Start ```bash git clone https://github.com/jgouviergmail/LIA-Assistant.git cd LIA-Assistant cp .env.example .env docker compose up -d ``` **Full Changelog**: https://github.com/jgouviergmail/LIA-Assistant/compare/v1.12.1...v | Medium | 3/26/2026 |
| v1.12.1 | ## Highlights ### Journal Semantic Dedup Guard - New programmatic guard in journal extraction: before creating a new entry, checks cosine similarity against existing entries. If match >= threshold (`JOURNAL_DEDUP_SIMILARITY_THRESHOLD`, default 0.72), calls a merge LLM to fuse all matching entries into a single enriched directive (N->1). Secondary entries deleted. - New `journal_merge_prompt.txt` for LLM-driven entry fusion - Introspection prompt rebalanced: neutral theme selection guide with no | Medium | 3/26/2026 |
| v1.12.0 | ## Changes - feat(image-gen): v1.12.0 β AI image generation & editing with cost tracking (c221300) ## Docker Images ```bash docker pull ghcr.io/jgouviergmail/LIA-Assistant/api:v1.12.0 docker pull ghcr.io/jgouviergmail/LIA-Assistant/web:v1.12.0 ``` ## Quick Start ```bash git clone https://github.com/jgouviergmail/LIA-Assistant.git cd LIA-Assistant cp .env.example .env docker compose up -d ``` **Full Changelog**: https://github.com/jgouviergmail/LIA-Assistant/compare/v1.11.5...v1.12.0 | Medium | 3/26/2026 |
| v1.11.5 | ## Changes - fix(ui,perf,routes): v1.11.5 β message bubble truncation, currency cache storm, timezone normalization (5a81b65) - fix(agents): use human role for language reinforcement message (9fbe80d) - fix(agents): reinforce language directive after conversation history (5212fa1) - fix(deploy): strip inline comments before SOPS dotenv encryption (ab928d7) - docs: enrich /how guide and README with missing architectural concepts (6 languages) (ec9a17c) - fix(security): resolve remaining CodeQL a | Medium | 3/25/2026 |
| v1.11.4 | ## Fixed - **HITL Draft Recipient Modification Ignored by LLM** β When a user requested a recipient change during draft critique (e.g., "non envoi Γ jgouvier@hotmail.com"), the LLM consistently returned the original recipients unchanged. Root cause: contradictory prompt rules and missing post-processing. Fixed with a three-layer approach: 1. **Prompt fix** β Rule 2 no longer protects recipients as fixed context; Rule 6 expanded to cover direct email addresses (not just contact references) 2 | Medium | 3/25/2026 |
| v1.11.3 | ## Changes - feat(v1.11.3): Security hardening β 19 CodeQL alerts resolved (07e2172) ## Docker Images ```bash docker pull ghcr.io/jgouviergmail/LIA-Assistant/api:v1.11.3 docker pull ghcr.io/jgouviergmail/LIA-Assistant/web:v1.11.3 ``` ## Quick Start ```bash git clone https://github.com/jgouviergmail/LIA-Assistant.git cd LIA-Assistant cp .env.example .env docker compose up -d ``` **Full Changelog**: https://github.com/jgouviergmail/LIA-Assistant/compare/v1.11.2...v1.11.3 | Medium | 3/25/2026 |
| v1.11.2 | ## Changes - feat(v1.11.2): Environment configuration overhaul, Settings compliance, documentation updates (a65ab01) ## Docker Images ```bash docker pull ghcr.io/jgouviergmail/LIA-Assistant/api:v1.11.2 docker pull ghcr.io/jgouviergmail/LIA-Assistant/web:v1.11.2 ``` ## Quick Start ```bash git clone https://github.com/jgouviergmail/LIA-Assistant.git cd LIA-Assistant cp .env.example .env docker compose up -d ``` **Full Changelog**: https://github.com/jgouviergmail/LIA-Assistant/compare/v1.11 | Medium | 3/25/2026 |
| v1.11.1 | ## Changes - feat(v1.11.1): Cross-worker cache invalidation, initiative & tool selection fixes (f513745) - fix(landing): move last updated date above badges (1092b80) - fix(landing): move last updated date to hero, fix code blocks in light mode (f1654f3) - feat(landing): add last updated date to footer, i18n in 6 languages (05434e1) ## Docker Images ```bash docker pull ghcr.io/jgouviergmail/LIA-Assistant/api:v1.11.1 docker pull ghcr.io/jgouviergmail/LIA-Assistant/web:v1.11.1 ``` ## Quick Sta | Medium | 3/25/2026 |
| v1.11.0 | ## Changes - feat(v1.11.0): Agent Initiative Phase, MCP Iterative (ReAct), i18n guide translations (d1e90e2) ## Docker Images ```bash docker pull ghcr.io/jgouviergmail/LIA-Assistant/api:v1.11.0 docker pull ghcr.io/jgouviergmail/LIA-Assistant/web:v1.11.0 ``` ## Quick Start ```bash git clone https://github.com/jgouviergmail/LIA-Assistant.git cd LIA-Assistant cp .env.example .env docker compose up -d ``` **Full Changelog**: https://github.com/jgouviergmail/LIA-Assistant/compare/v1.10.2...v1. | Medium | 3/24/2026 |
| v1.10.2 | ## Fixed - **HITL Draft CC/BCC Modification** β CC and BCC fields were not modifiable during HITL draft review (EDIT action). When a user requested to add, change, or remove CC/BCC recipients on an email draft, the modification was silently ignored. Root cause: `cc` and `bcc` were in `PRESERVED_FIELDS` (immutable) instead of `CONTENT_FIELDS` (LLM-modifiable). Additionally, `_parse_modification_response()` now supports `clearable_fields` so that returning an empty string explicitly removes recip | Medium | 3/24/2026 |
| v1.10.1 | ## What's New in v1.10.1 ### Highlights - **ADR-061: Centralized Component Activation** β Three-layer defense system for component enable/disable control. Domain gate-keeper validates LLM-output domains, per-request `request_tool_manifests_ctx` ContextVar provides a single source of truth for tool availability, and API guards return 403 on disabled admin MCP proxy endpoints. - **GPT-5.4 Model Support** β Added `gpt-5.4` and `gpt-5.4-mini` model profiles with pricing. Pattern-based Responses A | Medium | 3/24/2026 |
| v1.10.0 | ## Changes - feat(v1.10.0): Voice mode consolidation, push-to-talk optimization, per-user STT language (35eb526) ## Docker Images ```bash docker pull ghcr.io/jgouviergmail/LIA-Assistant/api:v1.10.0 docker pull ghcr.io/jgouviergmail/LIA-Assistant/web:v1.10.0 ``` ## Quick Start ```bash git clone https://github.com/jgouviergmail/LIA-Assistant.git cd LIA-Assistant cp .env.example .env docker compose up -d ``` **Full Changelog**: https://github.com/jgouviergmail/LIA-Assistant/compare/v1.9.6... | Medium | 3/23/2026 |
| v1.9.6 | ## Changes - feat(v1.9.6): Unified LLM+embedding tracking, debug panel LLM Pipeline section (29cf013) ## Docker Images ```bash docker pull ghcr.io/jgouviergmail/LIA-Assistant/api:v1.9.6 docker pull ghcr.io/jgouviergmail/LIA-Assistant/web:v1.9.6 ``` ## Quick Start ```bash git clone https://github.com/jgouviergmail/LIA-Assistant.git cd LIA-Assistant cp .env.example .env docker compose up -d ``` **Full Changelog**: https://github.com/jgouviergmail/LIA-Assistant/compare/v1.9.5...v1.9.6 | Medium | 3/23/2026 |

