TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
翻譯準備中
正在載入完整 README。 以下為已儲存的摘錄。
v2.8.0 — Local-first AI desktop companion with 9 agents, 26 connectors, a first-run Smart Installer, iOS companion app, Agent OS module system, Boardroom multi-agent sessions, and daily scheduler presets — powered by Ollama
Voice + Mobile pass — 2026-07-14 (unreleased work on main)
Recent voice/mobile work since v2.6.0 has been substantial and spans both the
desktop app and the iOS companion:檢視完整 README ↗v2.10.0 — Local-first AI desktop companion with 9 agents that Jose plans and runs as step-by-step requests, Miya's content factory (from an idea to finished, posted videos, Shorts and carousels), 34 connectors, a first-run Smart Installer, an iOS companion app and Boardroom multi-agent sessions — powered by Ollama
Download the latest release · Docs · Architecture · Pricing · Comparison · obsidianmedia.online
The full list is in docs/CHANGELOG.md.
/stop); finished work is kept. Cancel one cut off when the app closed.Not tested with real accounts yet: Perplexity, the paid models, publishing and reading results on YouTube, Instagram and Facebook, ElevenLabs, Higgsfield, Telegram's new Stop and Cancel buttons, a real send through Marcus, and auto-update from 2.9.0 to 2.10.0. The live check with your own keys is planned after this release (docs/governance/DEFERRED_WORK.md); the checks are listed in docs/qa/DESKTOP_QA_COVERAGE.md.
The desktop app was tested end to end for the first time: the real built app, real backend, real Ollama and ComfyUI. That found desktop-only bugs that the mocked web-mode tests could not, and this release fixes them.
npm run test:e2e:desktop, 16 spec files, 53 checks against the real app on isolated test data.Platforms: 2.9.0 was published for Windows and Linux only; 2.10.0 brings macOS back.
Known limits at 2.9.0: an Ollama you start yourself (tray app or ollama serve) was refused by the desktop window unless OLLAMA_ORIGINS included http://tauri.localhost. 2.10.0 works around this through the backend (see above). Full list: docs/governance/DEFERRED_WORK.md.
Came out of a full pre-launch audit. Highlights:
node -e, python -c), arbitrary npx packages, or network and container tools through the command runner.Recent voice/mobile work since v2.6.0 has been substantial and spans both the
desktop app and the iOS companion:
Local and Cloud modes,
while the desktop app remains the local Ollama/Voice OS runtime.fa-IR uses Piper voices (Mana / Manta)
with playback retry handling. (Since September 2026 the cloud service's compute
is on AWS at voice.obsidianmedia.online; the Farsi voices are still on Railway.)voice/cloud-backend/ service (first on Railway; its compute moved to AWS in September 2026, with Railway kept as the rollback) with
its own contracts, auth, tests, deployment config, and provider policy layer.voice/backend/ path remains the local Ollama/Voice OS runtime,
while cloud-specific routing and synthesis moved into the standalone cloud
service instead of being mixed into the local backend.User-reported issue triage, fixed against real code rather than assumptions —
full detail in docs/ALPHONSO_GROUND_TRUTH.md §11.15:
telegramCompanionService.js called Tauri commands that don't exist. Also fixed a bug where only the first message of any poll batch was ever processed, and a dead /memory <query> search branch./status, /queue, /approve, /reject, /agents, /report, /ping, /help, /ask) — WhatsApp previously had zero command handling, and inbound polling was never automatic. Also fixed a missing settings field that made WhatsApp inbound impossible to configure at all.docs/AUTO_UPDATE_HANDOFF.md, PR #98 (merged in v2.6.0, and checked against a real release in v2.7.1).@mention-driven conversation across all 9 agents, real per-agent Ollama generation with persona-specific prompts, bounded @mention chaining (capped, auto-escalates instead of running forever), cross-thread context recall, low-confidence auto-escalation, a Stop button, failure handling with Retry, escalation acknowledgment, a content-exposure confirmation gate on high-risk messages, and a model+latency indicator on every reply. Full narrative: docs/ALPHONSO_GROUND_TRUTH.md §11.16.check() → downloadAndInstall() → relaunch() via @tauri-apps/plugin-updater/plugin-process. Real dependency-declaration bug fixed along the way (packages were installed but never declared in package.json, which would have broken a clean npm ci).Sprint 5 batch 10: 6 more services migrated to TypeScript. novaAnalysisService, missionRoomService, eventsService, workflowRegistryService, marcusExecutionService, workflowOperationsRegistryService — all root-level .js → .ts. Root-level count now 11 .js / 120 .ts. Added DEFAULT_OLLAMA_ENDPOINT to required generateOllamaResponse call, fixed GitHubRelease/GitHubIssue htmlUrl references, added [key: string]: unknown to LedgerRow interface.
Sprint 5 batch 9: 6 more services migrated to TypeScript. selfDevelopmentService, sentinelSecurityService, echoMemoryService, whatsappWebhookService, rc0EvidenceService, toolConnectionService — all root-level .js → .ts. Root-level count now 17 .js / 114 .ts. Fixed pre-existing type mismatches across SelfDevelopmentPanel.tsx, toolNotificationDispatcher.ts, and approvalService.js integration.
Sprint 5 batch 8: 15 more services migrated to TypeScript. devPacketService, pluginRegistryService, pluginSigningService, packetExecutionService, verificationService, nativeSelfDevelopmentAutostartService, agentMetricsService, mariaAuditService, proactiveAgentService, agentBusService, telegramBrowserConnector, composioService, screenIntelligenceService, toolRegistryService, joseSchedulerService — all root-level .js → .ts. Root-level count now 23 .js / 108 .ts.
.ts/.tsx file in the repo was ever linted. Fixed the config, then fixed the 30+ real findings it immediately surfaced (empty catch blocks, a real bug-shaped ternary, stale require() calls). 9 legacy @ts-nocheck files intentionally left for a dedicated future pass, documented as such..ts. Root-level service count: 105 .js / 26 .ts (was 115/16). Internal type-safety work, no behavior change.src/services/connectors/ from .js to .ts (constants, Tavily, Perplexity, DeepSeek, n8n, and the shared credential/auth layer). No behavior change — this is internal type-safety hardening.App.tsx's lazy-loading of BoardroomView was missing a required export mapping. Found via a live Playwright click-through audit (Sprint 3's discoverability half), fixed, and covered by new regression tests.ALPHONSOTOTHEMOON.md.validateSkillPackAgainstContract() now supports optional per-pack permission scoping (AGENT_SKILL_PACK_SCOPE_OVERRIDES) on top of the existing per-agent check, so an individual skill pack can be scoped tighter than its owning agent's default boundary. The Skills tab in the Ecosystem Hub now groups packs by owning agent instead of one flat list.appUpdateService.checkAppUpdate() existed and was tested but was never called anywhere, and the "Update & Restart" button was a no-op. Both are now wired: Alphonso checks for updates on boot and the button opens the release download. (Full one-click in-app download+install+relaunch needs @tauri-apps/plugin-updater — tracked as a follow-up, not yet installed.)ALPHONSOTOTHEMOON.md: agent skill-library depth, security hardening (attacker-resistance) pass, service-layer TypeScript migration, and a feature-discoverability audit.recoverInterruptedExecutions() in orchestrationQueueService.ts).gateway/generic-webhook/ once and any external service (Stripe, Zapier, a custom script) can push events into Alphonso without a bespoke connector. See gateway/generic-webhook/README.md.LICENSE). Replaces the prior unlicensed/ambiguous public-repo state.ALPHONSOTOTHEMOON.md — roadmap built from a structural comparison against OpenFang and LibreFang's agent-orchestration patterns; tracks what's being adopted, what's deliberately rejected, and sprint-by-sprint progress.validateSkillPackAgainstContract() in agentContractService.ts now blocks a skill pack from granting an agent permissions beyond its execution contract.agent_skill pack (previously only Jose/Hector/Miya/Maria did).runJoseCommandExecutionPipeline now hard-stops at 50 assignments or 5 minutes wall-clock per run, preventing a malformed command graph or stuck agent from spinning unbounded.src-tauri/src/ (up from 18 modules / 82 commands)..tsx components across src/components/; 20 .jsx remaining in subdirectories. Full prop interfaces, typed hooks, and zero typecheck errors.createSchedule error surfaced, A2A failed status reachable, installModule Tauri CSP fix, bridge /modules route added.modules/ directory, moduleRegistryService, runtimeApiService). Install, enable, and run agent modules with a standardized TOML manifest.policyDslService with policy.yaml for module-level policy evaluation (separate from the existing policyEnforcementService).a2aProtocolService for structured agent-to-agent task delegation via the agent bus.requirements_file path was relative to the wrong directory. Now uses pip_packages list directly — all packages install correctly.runtime_start_tool now resolves voice/backend/main.py from the app resource directory (app.path().resource_dir()), matching voice_sidecar.rs. Jarvis mic button in Chat now works with Desktop app.AgentPairingView.tsx (define agent-to-agent trigger pairings) was fully built but never accessible. Now mounted as a "Pairings" tab in the All Agents page.DeadLetterQueueView now mounted as a tab in Automation page.perplexityConnector.ts as a tier-2 Hector research fallback.n8nConnector.ts + Runtime Hub ToolDef + Marcus distribution target + ConnectorSetupPanel credential section.joseSchedulerService.ts + AutomationView Schedules tab + App.tsx background scheduler wiring.echoFileWatcherService.ts polls watch_inbox_poll Tauri command every 30s. Config card in Settings.bridge/server.js calls Ollama /api/chat for live responses; alphonso_get_status checks /api/tags./research, /memory, /receipts, /read added to telegramCompanionService (total: 21 commands)./ping, /agents, /nova, /scan for a total of 17 bot commands.ToastProvider now listens to window.alphonso:toast so services and contexts outside the React tree can show notifications.useJarvisVoice) is now a live mic button in the chat input bar. Pulses while listening, shows active agent in tooltip, and auto-populates the input with the transcript. Requires the FastAPI voice server (Runtime Manager → Voice OS).SentinelAllowlistPanel restyled to fit the sidebar without overflowing. Inline form, abbreviated controls, scrollable entry list.invoke() calls that silently returned null (not threw) were crashing on startup. Fixed with ?? []/?? {} guards.<input webkitdirectory> picker when Tauri's pick_folder is unavailable.voice/). Launched as a Tauri sidecar from the Runtime Manager. Uses faster-whisper for transcription, Ollama for agent-aware responses, and Piper for synthesis. Barge-in cancellation and conversation history included.useJarvisVoice.ts uses the modern AudioWorklet API (replaces deprecated ScriptProcessor). Exports start/stop/reset/state/transcript/reply/activeAgent/error/isConnected.oklch() syntax in src/styles/tokens.css. No hex values.src/lib/motion.ts with 10 named animation presets. Chat messages animate in/out with AnimatePresence + motion.div.agentPermissionTable.ts) that every plan is checked against.llama3.2:3b default); no prompt leaves your device for core operationspolicyEnforcementService.ts; if credentials are missing or the action is ambiguous it is blocked, not allowedqueued → approval_required → approved → in_progress → completed), dead-letter replay, and approval workflowsscreenIntelligenceService.ts for on-screen context awarenessvoice/) with faster-whisper, Ollama, and Piper. Launched from Runtime Manager as a Tauri sidecar. AudioWorklet-based hook with barge-in and conversation history.Alphonso_x64-setup.exeAuto-Update: Alphonso checks for new versions on launch and shows a banner when one is available (signed release manifests). "Download Update" downloads and installs it in the app and restarts Alphonso (Runtime Hub tools are stopped first so the installer can replace their files).
nvm use to select the repository-pinned version)| Dependency | Version | Purpose |
|---|---|---|
| Node.js | 22 LTS | Frontend dev server & build |
| npm | 10+ | Package management |
| Rust | 1.77+ (cargo) | Tauri desktop backend |
| Ollama | Latest | Local LLM engine |
| Git | Any | Version control |
git clone https://github.com/obsidian-media/AlphonsoEcosystem.git
cd AlphonsoEcosystem
npm install
# Install Ollama and pull a model
# https://ollama.com — then:
ollama pull llama3.2:3b
# Start development
npm run dev # Web-only mode at http://localhost:5173
npm run desktop:dev # Full Tauri dev window (requires Rust)
npm run build # Web build (dist/)
npm run tauri build # Native installer (src-tauri/target/release/bundle/)
┌──────────────────────────────────────────────────────────────────┐
│ React 18 (Vite 8, Tailwind 4) │
│ │
│ ┌──────────────┐ ┌─────────────────┐ ┌────────────────────┐ │
│ │ 9 Agents │ │ 175 UI │ │ 285 Services │ │
│ │ (profiles, │ │ Components │ │ (policy-gated, │ │
│ │ contracts) │ │ 21 Hooks │ │ orchestrated) │ │
│ └──────┬────────┘ └─────────────────┘ └──────────┬─────────┘ │
│ │ │ │
│ └────────────────┬───────────────────────────┘ │
│ ▼ │
│ ┌────────────────────────┐ │
│ │ policyEnforcementService.ts ← fail-closed gate │
│ │ licenseService.ts ← tier validation │
│ │ agentContractService.ts ← per-agent gates │
│ │ parallelExecutionService.ts ← concurrency │
│ │ cacheService.ts ← TTL/LRU cache │
│ └──────────────┬─────────────────────────────────── │
│ │ │
├─────────────────────────────┼───────────────────────────────────┤
│ Tauri v2 (Rust 1.77) — IPC Bridge │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ lib.rs ~953 lines · 201 Tauri commands · 53 modules │ │
│ │ ├── kv_store.rs SQLite KV store (WAL mode) │ │
│ │ ├── policy_gate.rs Policy enforcement backend │ │
│ │ ├── audit_log.rs Immutable audit chain │ │
│ │ ├── ollama.rs Ollama inference backend │ │
│ │ ├── memory_store.rs Memory persistence │ │
│ │ ├── telegram.rs Telegram connector │ │
│ │ ├── youtube.rs YouTube upload │ │
│ │ ├── whatsapp_webhook.rs WhatsApp webhook (HMAC-safe) │ │
│ │ ├── connector_commands.rs 14 commands (GitHub + Slack) │ │
│ │ ├── native_proof.rs Native proof engine │ │
│ │ ├── plugin_runtime.rs Plugin runtime │ │
│ │ ├── meta_publish.rs Meta/Instagram publishing │ │
│ │ ├── search.rs Research search │ │
│ │ ├── workspace.rs Workspace file ops (path guard)│ │
│ │ ├── runway.rs Video generation │ │
│ │ ├── media_tools.rs FFmpeg, voice, music, assembly │ │
│ │ ├── comfyui_*.rs ComfyUI installs, proxy, models│ │
│ │ ├── meta_video.rs Reels upload and scheduling │ │
│ │ ├── oauth_signin.rs Sign in from Settings │ │
│ │ ├── post_metrics.rs Post numbers from the platforms│ │
│ │ ├── elevenlabs.rs ElevenLabs voices and effects │ │
│ │ ├── higgsfield.rs Higgsfield pictures and clips │ │
│ │ └── utils.rs Shared utilities │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ SQLite (WAL) · memory_records · kv_store · runtime_ledger│ │
│ └──────────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────┘
policyEnforcementService.ts — if credentials are missing or the action is ambiguous, it is blocked, never allowedagentContractService.ts enforces per-agent allowed/blocked action prefixes on every packet before executionlicenseService.ts can gate premium connectors by tier. It is inert at launch (no vendor key configured), and an approval never substitutes for a license once it is enabledorchestrationQueueService.ts manages state transitions, dead-letter replay, and approval workflowsparallelExecutionService.ts handles concurrency control and retry logiccacheService.ts provides TTL and LRU eviction for global, connector, and agent cachesPRAGMA journal_mode=WAL; PRAGMA synchronous=NORMAL; for concurrent read/write| Agent | Role | What it may do | In the content factory |
|---|---|---|---|
| Alphonso | Local operator — code, commands, plain questions and everyday writing | The only agent that may run code or change project files | — |
| Jose | Orchestrator — plans every request as steps, routes each to its owner, reports; does none of the work | Reads and writes its own work; never runs code or publishes; may spend only on a paid-model step you approve | Runs a project as one request |
| Hector | Research — facts, sources, citations | Read and write its own work | What goes viral; finds stock clips |
| Miya | Creative — content and UI/UX design, never code | Read and write its own work; its paid media steps may spend, and always ask | Script, scenes, thumbnails, voice, music, clips, the finished video, Shorts, carousels, campaign |
| Maria | Governance & Risk Lead — governance, risk and quality reviews | Read and write its own work | Reviews the script and the quality gate |
| Marcus | Distribution & Release Manager | The only agent that may publish or send, and only after approval | Posts and schedules the posts |
| Echo | Memory historian and archival | Read and write its own work | Remembers rejections and decisions |
| Sentinel | Security only | Read and write its own work | Security check before publishing |
| Nova | Scoring, analysis, timing | Read and write its own work | Market check, post times, results and lessons |
All agents are registered in src/agents/agentRegistry.js; what each may do is one table, src/services/jose/agentPermissionTable.ts, enforced by agentContractService.ts and Jose's plan check.
All 34 connectors are set up in Settings → Connectors; keys are kept in the system keychain, never in a file. An environment variable still works as a fallback.
| Group | Connectors |
|---|---|
| Messaging | Telegram, WhatsApp Cloud, Discord, Slack, CALL-E (phone calls), Generic Webhook, Mobile Bridge |
| AI models | Ollama (local), Claude, ChatGPT, Qwen, DeepSeek, NVIDIA NIM, Gemini, Hermes Agents |
| Search & research | Brave Search, Perplexity, Tavily |
| Content & productivity | YouTube, Meta (Facebook and Instagram), ComfyUI, SD WebUI, Runway, Pexels, Pixabay, Coverr, your own storage, ElevenLabs, Higgsfield, Notion, ClickUp, GitHub |
| Automation | n8n |
Every outbound call goes through the policy gate; paid connectors (Claude, ChatGPT, Runway, CALL-E, ElevenLabs, Higgsfield and others) are off in Zero-Cost Mode and ask first. See docs/CONNECTORS.md for setup.
Free at launch: every agent and all 34 connectors, no license key. Paid tiers are not on sale. The licensing code (licenseService.ts) stays dormant until a vendor signing key is configured. Third-party services you connect bill you directly through your own API keys, and Zero-Cost Mode blocks paid calls until you approve them.
See docs/PRICING.md for details.
npm run dev # Vite dev server (port 5173)
npm run lint # ESLint on src/
npm run test # 6,886 tests across 593 files (src + bridge)
npm run test:coverage # Coverage report (actual 2026-09-05: 57.81% lines / 45.62% branches / 50.32% functions / 55.65% statements; enforced floors: 48% lines / 38% branches / 30% functions / 48% statements)
npm run build # Production build (OXC compiler)
npm run verify:app # lint + typecheck + test + build in one command
npm run test:e2e # Playwright smoke tests (web build, Tauri bridge mocked; needs dev server + Ollama)
npm run test:e2e:desktop # Desktop end-to-end suite against the real built app (see e2e-desktop/wdio.conf.mjs for prerequisites)
cd src-tauri
cargo check # Verify compilation
cargo test # 384 Rust unit tests across 53 modules
# (cargo test runs a few more: the async
# #[tokio::test] cases, 370 in all)
cargo clippy -- -D warnings # Lint (CI enforces zero warnings)
Active work and readiness: Truth-First Execution Plan is the mandatory repository-wide checklist for humans and agents. Read it with Ground Truth before starting maintenance, security, dependency, release, agent-contract, iOS, voice, or documentation work. Tasks are checked only with recorded verification evidence.
Latest verification: the desktop QA coverage list, docs/qa/DESKTOP_QA_COVERAGE.md, says what the real-app suite checks and what still needs a live check with real accounts. Release Verification — 2026-07-22 is the last full release-verification record.
| Document | Description |
|---|---|
| GETTING_STARTED.md | Quick setup guide |
| AGENT_GUIDE.md | What each agent does and when to use them |
| CONNECTORS.md | Setup for all 34 connectors (keys entered in Settings) |
| TROUBLESHOOTING.md | Common issues and fixes |
| USER_MANUAL.md | Full feature reference (current) |
| RELEASE.md | Auto-updater signing and release pipeline |
| TRUTH_FIRST_EXECUTION_PLAN.md | Active readiness backlog, owners, acceptance checks, and evidence rules |
| ARCHITECTURE.md | System design and technical details |
| AGENTS.md | Agent context and directory structure |
| SECURITY.md | Vulnerability reporting policy |
| COMPARISON.md |
| Version | Date | Highlights |
|---|---|---|
| v2.10.0 | October 27, 2026 | Jose redesign (plans as steps, approval by effect, Requests board, Telegram approvals, Stop and a queue); every agent rebuilt around real judgment, 60 skills, Projects and Teams; Miya's content factory (finished videos, Shorts, carousels, publishing, Calendar, results, paid engines, characters and motion); macOS back |
| v2.9.0 | October 12, 2026 | First end-to-end test of the real desktop app and the fixes it found; approval hardening; Tailwind v4 |
| v2.8.0 | September 9, 2026 | Smart Installer, UI/UX redesign, CALL-E outreach connector, bundled starter model |
| v2.7.1 | September 5, 2026 | Auto-updater installer fix |
| v2.7.0 | September 4, 2026 | Memory knowledge graph, Gemini and Hermes fixes |
| v2.6.4 | August 23, 2026 | Live post-install bug batch |
| v2.6.3 | August 22, 2026 | Installer fix and external QA sweep |
| v2.6.2 | August 14, 2026 | Repo hygiene: security, CI and bug fixes |
| v2.4.4 | June 27, 2026 | iOS companion app (Swift, mDNS, ed25519-signed WebSocket, TestFlight workflow); 104 Tauri commands / 25 modules; 2,151 tests / 159 files |
| v2.4.2 | June 27, 2026 | TypeScript migration (94 .tsx); 10 pre-merge bugs patched; rand/mdns-sd/tokio-tungstenite/jsdom dep bumps; 2147 tests / 158 files |
| v2.4.1 | June 27, 2026 | 37-task bug & gap sprint: Voice OS health, IPC rate limit, MCP auth, bridge hardening, Nova threshold, agent perf export, DLQ section |
| v2.4.0 | June 27, 2026 | Agent OS module system, Boardroom sessions, A2A protocol, Policy DSL, 5 scheduler presets, dark/light mode, keyboard shortcuts |
| v2.3.3 | June 26, 2026 | n8n connector, Jose scheduled tasks, Echo file watcher, MCP bridge live responses, 21 Telegram commands |
| v2.2.4 | June 25, 2026 | Navigation restructure: Activity→Runtimes tab, Knowledge→Settings tab; AgentDock embedded in RightPanel; coach mode fix + toast; ACC Bridge simplified; automation ops toggleable; Telegram 17 commands |
See CONTRIBUTING.md for setup, workflow, code style, and PR guidelines.
Before writing any new service, component, or feature, check CLAUDE.md for the "Do Not Duplicate" table — 328 services already exist.
ffmpeg\LICENSE.txt), and its source is at ffmpeg.org.kokoro-onnx and the Kokoro-82M model and voices, Apache License 2.0.See SECURITY.md for vulnerability reporting policy and scope.
Security contact: [email protected]
SHALAUDE License v1.0 — All Rights Reserved, source-visible. See LICENSE for details.
No use, copy, modification, or distribution of the source is permitted without prior written permission from the copyright holder. This is not an OSI-approved open-source license. Use of the installable app is governed by the end-user license shown in the installer (legal/EULA.txt). The privacy policy draft is legal/PRIVACY_POLICY.md.
Built by Obsidian Media · Ontario, Canada
Your AI team. Your machine. Your rules.
useJarvisVoiceAnimatePresence on chat messages), glassmorphism input, sidebar tooltips.| Feature comparison vs 8 competitors |
| PRICING.md | Launch pricing (free) and how paid tiers would be enabled later |
| CONTRIBUTING.md | Setup, workflow, code style, and PR guidelines |
| v2.2.3-patch2 | June 25, 2026 | Jarvis voice button wired in ChatView; Agents tab in RightPanel (3 tabs); compact SentinelAllowlistPanel; boot null-guard fixes; Browse fallbacks; Coach mode fix in web mode |
| v2.2.3-patch1 | June 25, 2026 | Full 16-bug audit: stale state fix, TS types, production voice path, code splitting, O(1) chat render, live connector status, SQLite delete, audit memoization |
| v2.2.3 | June 24, 2026 | Chat UX consolidation: Jose pipeline/approval/Nova results inline in chat; connector verification fixed (UI credential store); auto-scroll fixed |
| v2.2.2 | June 24, 2026 | Voice OS pipeline + OKLCH UI/UX overhaul — 144 test files, 1,930+ tests |
| v2.0.8 | June 22, 2026 | Sprint Next-50: 5 resilience services, 5 new UI panels, 8 test files, ChatView enhancements, 10 TSX components, 1,737+ tests, mobile companion Phase 1–2 (Rust WebSocket server + React pairing UI with QR + mDNS) |
| v2.0.6 | June 22, 2026 | CI rustfmt fix, documentation accuracy pass, mobile companion sprint plan executed (Phase 1–2 complete) |
| v2.0.5 | June 21, 2026 | All 9 agent runtimes, Sprint Next-10 complete, 112 test files, 1,621+ tests, coverage ~35%+, TypeScript migration (5 components), SQLite dual-write |
| v2.0.2 | June 21, 2026 | WhatsApp Cloud end-to-end, auto-updater operational, 1,100 tests |
| v1.0.3 | June 15, 2026 | Installer update |
| v1.0.2 | June 15, 2026 | WebView2 zombie process fix, boot optimizations |
| v1.0.1 | June 15, 2026 | Stability fixes |
| v1.0.0 | June 12, 2026 | Public release — fixed infinite re-render loop, auto-update keys |
| v0.3.0 | June 9, 2026 | Major refactor — lib.rs modularization, streaming, security hardening |
| v0.1.1 | June 4, 2026 | Initial installer release |