Aegis AI v0.6.0 — Real Web Access + UI Overhaul + Phase 3 Completion
Aegis AI v0.6.0 — Real Web Access + UI Overhaul + Phase 3 Completion
Released: 2026-08-18
Rust toolchain: 1.97.1 (pinned in rust-toolchain.toml)
Tauri: 2.0
Phase: 3 complete (Phase 4 hardening queued for v0.7+)
Highlights
v0.6 closes Phase 3 with five major additions on top of v0.5:
1. Real Web Search 🌐
The web_search AI tool is no longer a stub. It now hits DuckDuckGo's HTML endpoint (no API key needed), parses up to 8 results (title / URL / snippet), and resolves DDG's redirect wrapper to surface the real underlying URL.
The http_fetch tool now uses a built-in readability extractor that strips <script> / <style> / <nav> / <header> / <footer> / <aside> / <form> blocks, decodes HTML entities, and returns up to 32 KB of plain text per page — enough for the AI to ingest most articles without pulling in a heavy browser-engine dependency.
Three new Tauri commands expose these to the frontend: web_search, web_fetch, web_fetch_raw.
A new "Web Search" tab in the sidebar lets the user run searches directly from the UI — with a result list, snippet preview, and one-click page-content viewer.
2. Auto Entity Extraction 🧠
The AI no longer relies on the user explicitly calling memory_remember to persist a fact. Every chat turn now runs a pure-Rust extractor that recognises:
- Regex entities (confidence 0.6–0.75): emails, URLs, IPv4 addresses, phone numbers (international format), ISO 8601 dates, GitHub repos (
owner/reposhape). - Heuristic entities (confidence 0.85):
my name is X,I live in X,I'm based in X,my pet/dog/cat is called X,I work at X,my favorite X is Y,remember that X,my timezone is X,I'm a X by trade/profession.
New facts are deduplicated against the knowledge base and persisted with a kind:value key, so RAG retrieval sees them on the next turn. This closes the v0.5 → v0.6 RAG loop.
3. UI Overhaul 🎨
A complete visual refresh:
- Dark mode — toggle in the sidebar, persisted to
localStorage, applied via Tailwind'sdark:variant on<html>. - Gradient accents — blue → purple gradient on primary buttons, the active nav item, the sidebar logo, and the chat empty-state icon.
- Markdown rendering in chat bubbles — headings, bold/italic, inline code, fenced code blocks with copy button + language label, lists, links, blockquotes. ~150 LOC, no external dependency.
- Animated empty states — bounce-in gradient sparkle + feature pills.
- Slide-up message bubbles — every chat message animates in with a subtle 4px translate.
- Pulse-soft thinking indicator — three dots fade in/out at staggered intervals.
- Collapsible sidebar — toggle button collapses to icon-only (64px wide).
- Auto-resizing textarea — the chat input grows with content up to 160px.
- Better focus rings, themed scrollbars, glassmorphism section headers with
backdrop-blur.
4. Mobile Companion Scaffold 📱
A mobile.rs module declares the MobileCapabilities struct (max conversations, remote actions, E2EE sync, desktop version) and a mobile_run() entry point that delegates to the desktop run() on mobile targets. The mobile_capabilities Tauri command exposes this to the frontend.
Full Tauri mobile builds (iOS + Android) are queued for Phase 4 — they require Xcode / Android Studio project generation and signing keys.
5. GDPR Data Export + Audit Log Export 🔐
memory_export_all— returns every conversation + message as a single JSON document.memory_forget_all— GDPR "right to be forgotten". Drops conversations, activities, knowledge, embeddings, audit log, integrity baselines.audit_export(limit, format)— exports the AI tool-call audit log as JSON or CSV (with a tiny built-in CSV writer — nocsvcrate dependency).
All three are surfaced in the new Settings → Data & Privacy panel.
Phase 2.3 / 2.5 Stubs
- YARA rule loader (
security::yara): pure-Rust parser that discovers.yar/.yarafiles in the user's data directory, parses rule headers + literal strings, and surfaces them in the Security UI. A stop-gap matcher runs the literal strings against file contents during scans. Full YARA semantics queued for Phase 4. - SQLCipher opt-in (
memory::encryption): anEncryptionStatusAPI +set_passphrase/disable_encryptionstubs. The UI shows "Not compiled in" until thesqlciphercargo feature is wired in (Phase 4).
Bug Fixes (pre-existing v0.5 issues)
SettingsDtowas missingbypass_modein the TypeScript types, which silently dropped the bypass-mode toggle state on save.- Sidebar version defaulted to
"0.2.0"instead of the actual app version. web_searchtool was a stub — replaced with real DuckDuckGo integration.http_fetchreturned raw HTML — now uses the readability extractor for GET requests.- Chat bubbles didn't render markdown — added the new
Markdowncomponent. - Chat input didn't auto-resize — now grows with content up to 160px.
- Theme preference was lost on reload — now persisted to
localStorage. - No keyboard focus indicator — added
:focus-visiblewith a 2px blue outline. - Dark scrollbars were bright even in dark mode — added themed scrollbar styles.
Stats
- 15 new Tauri commands (total: 71 → 86).
- 7 new source files (
web.rs,entities.rs,encryption.rs,mobile.rs,yara.rs,Markdown.tsx,Web.tsx). - 3,556 lines added, 201 lines deleted across 34 files.
- 0 new external dependencies — every new feature is built on existing crates.
- Verified:
cargo check --workspacepasses (33 warnings, 0 errors);npm run buildsucceeds (228 KB JS / 38 KB CSS gzipped to 67 KB / 6.5 KB).
Upgrade Notes
v0.6 is a drop-in upgrade from v0.5 — no schema migration required. The SQLite schema is unchanged; the new entity-extraction feature backfills facts lazily as the user chats.
To enable web search in the agent loop, no configuration is needed — the web_search tool is registered by default. To disable it, remove the tool from tools::all_specs() in src-tauri/src/ai/tools.rs.
To use the new YARA panel, drop .yar / .yara files into ~/.local/share/aegis-ai/yara/ (Linux) or %APPDATA%\aegis-ai\yara\ (Windows). The directory is created on first launch.
What's Next (Phase 4 — v0.7+)
- Code-signed Windows installers + notarized macOS builds.
- Reproducible builds (pin all transitive deps).
- External security review.
- Fuzzing the IPC layer with
cargo-fuzz. - Local
whisper-rsSTT for sub-2s voice round-trip. - Full SQLCipher at-rest encryption (compile-time
--features sqlcipher). - Tauri mobile builds (iOS + Android).
- E2EE sync of conversation history via a relay.
- Documentation site (mdBook → hosted docs).
See ROADMAP.md for the full Phase 4 plan.
Full changelog: see CHANGELOG.md § [0.6.0].
Contributors: @hieulouisdev
License: MIT