Skip to content

Aegis AI v0.6.0 — Real Web Access + UI Overhaul + Phase 3 Completion

Choose a tag to compare

@hieulouisdev hieulouisdev released this 17 Aug 18:03
· 22 commits to main since this release

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/repo shape).
  • 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's dark: 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 — no csv crate 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 / .yara files 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): an EncryptionStatus API + set_passphrase / disable_encryption stubs. The UI shows "Not compiled in" until the sqlcipher cargo feature is wired in (Phase 4).

Bug Fixes (pre-existing v0.5 issues)

  • SettingsDto was missing bypass_mode in 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_search tool was a stub — replaced with real DuckDuckGo integration.
  • http_fetch returned raw HTML — now uses the readability extractor for GET requests.
  • Chat bubbles didn't render markdown — added the new Markdown component.
  • 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-visible with 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 --workspace passes (33 warnings, 0 errors); npm run build succeeds (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-rs STT 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