Skip to content

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 24 Apr 23:14
bd3d46a

1.1.0 (2026-04-24)

Features

  • api: add request body size limit to /speak endpoint (5a90121)
  • assistant: add response cache for repeated factual queries (US-LAT-004) (f2c02a0)
  • assistant: inject current date/time and location into system prompt (7c7e3b0)
  • audio: implement test tone via Web Audio API for system output devices (US-311) (b532f27)
  • auth: add per-user data isolation for chat history and preferences (US-048) (ac2df2f)
  • auth: add user authentication with bcrypt and JWT (US-047) (94b8e7d)
  • autonomy: add Clarifier for ambiguous goals and wire into runner (US-232) (ae3796a)
  • autonomy: add ExecutionRecord model and HistoryStore with SQLite backend (US-225) (679da2e)
  • autonomy: add FeedbackAnalyzer that summarizes execution history for planner (US-227) (0196b09)
  • autonomy: add GoalGraph with topological sort and ready-goals query (US-229) (e8b366d)
  • autonomy: add GoalParser that extracts multi-goal graphs from user input (US-230) (10a9709)
  • autonomy: add in-memory tool result caching per plan run (US-235) (690ddf4)
  • autonomy: add per-step and global budget config (US-236) (073046c)
  • autonomy: add per-step token and cost tracking (US-233) (d7b8413)
  • autonomy: add plan_with_alternatives and alternative path cycling in Replanner (US-224) (99e041a)
  • autonomy: add planning data structures and planner protocol (US-217) (12180ba)
  • autonomy: add preferences and tests (b651c9d)
  • autonomy: add retry_step with exponential backoff for transient failures (US-223) (bd974d2)
  • autonomy: apply learned preferences as soft defaults in planner (US-240) (8c70282)
  • autonomy: implement CostEstimator with pre-execution budget gate (US-234) (d1f5418)
  • autonomy: implement LLMPlanner class with JSON plan parsing (US-218) (40ddecc)
  • autonomy: implement PreferenceLearner to update profile after each run (US-238) (50edc54)
  • autonomy: implement Replanner with replan-on-failure integration (US-222) (c6935e8)
  • autonomy: inject feedback summary into LLMPlanner prompt via runner (US-228) (9a12d87)
  • autonomy: integrate GoalGraph execution into runner with dependency tracking (US-231) (dfbd1a9)
  • autonomy: integrate LLMPlanner into autonomy dispatch flow (US-220) (27f5c03)
  • autonomy: persist ExecutionRecord to HistoryStore after every plan run (US-226) (cc0472d)
  • avatar: add profile picture upload and display (US-049) (8a056a7)
  • brand: add AskRex brand assets and integrate into UI surfaces (US-267/268/269) (90c999f)
  • branding: apply AskRex brand consistently across UI (US-065) (97aab76)
  • bridge: add --help support to chat stream bridge (US-304) (a74b630)
  • bridge: add action key alias to tasks, reminders, memories bridges (US-005) (adec010)
  • bridge: add error handling and tests for shopping and speaker bridges (US-006) (58dc81d)
  • bridge: add traceback to all bridge error responses (US-015) (da3b0e6)
  • bridge: add venv-aware python resolver utility (US-001) (7c443c6)
  • bridge: use repo_root in all bridge scripts for path resolution (US-004) (89eefaf)
  • bridge: use venv resolver in all bridge scripts (US-002) (67d691b)
  • calendar: add ICSFeedBackend read-only calendar backend (US-210) (a4fa651)
  • calendar: remove hardcoded mock events and enforce not-configured error (US-013) (ae67af2)
  • calendar: remove mock fallback from voice loop runtime path (US-076) (d36f817)
  • capabilities: add 'What can you do?' dynamic capability response (US-038) (d28ef2a)
  • capabilities: add CapabilityRegistry with list and search support (US-037) (db1a0ec)
  • chat: add mic button to ChatInput for voice dictation (1c5e954)
  • chat: wire stream_reply into chat stream bridge for progressive tokens (97f4608)
  • cli: ensure CLI/UI feature parity (US-069) (e6ff311)
  • computers: add app launcher with registry and platform dispatch (US-054) (4bffb23)
  • computers: add file read/write/list capability with allowlist (US-053) (68ea5d3)
  • computers: add file summarization and search tests (US-056) (ec97ec4)
  • computers: add safety layer for computer control confirmation (US-055) (fbb87c7)
  • config: add default_location, default_timezone, and openweathermap_api_key to AppConfig (7d5117b)
  • config: add per-user multi-email account schema (US-ME-001) (af7d340)
  • config: add type validation and coercion error handling (US-075) (5abfda4)
  • config: remove legacy REX_WAKEWORD_THRESHOLD env var (US-307) (83658a0)
  • config: unify wake-word config under canonical 'wakeword' key (US-306) (e88533a)
  • context: add RoomContext with priority-based room resolution (US-023) (673e81d)
  • context: add speaker origin detection to RoomContext (US-024) (4dd72ff)
  • debug: add debug mode toggle with --debug flag (US-071) (b2496c9)
  • deps: add edge-tts and pyttsx3 to core pyproject.toml dependencies (US-011) (120f9ff)
  • doctor: add TTS-aware FFmpeg check and suppress torio warnings (US-078) (75664a4)
  • email: add IMAPBackend with fetch_unread and EmailAuthError (f246b1f)
  • email: add IMAPSMTPBackend with SMTP send via STARTTLS or SMTP_SSL (49fb7c3)
  • email: add multi-account email config and routing (US-208) (3e9614b)
  • email: remove hardcoded mock data and enforce not-configured error (US-014) (f5eb32c)
  • email: scope email operations to requesting user (US-ME-002) (783e093)
  • enrollment: add guided UX with prompt phrase and audio validation (US-309) (e357325)
  • geolocation: add IP geolocation fallback module with session cache (ec6cdc3)
  • gui: add calendar month and week view components (6b7a503)
  • gui: add canvas waveform visualizer component (0f71e4a)
  • gui: add chat input bar component with send button and char count (42aebe0)
  • gui: add chat message list component with markdown and auto-scroll (1b5131e)
  • gui: add client-side routing with HashRouter for all Rex sections (91f1252)
  • gui: add email detail panel and reply-draft compose modal (US-247) (25baaa6)
  • gui: add event detail slide-in panel for calendar (US-197) (1ece9cd)
  • gui: add Find Meeting Slot modal and BETA banner to CalendarPage (US-248) (3cb5ace)
  • gui: add folder picker for allowed file roots (US-319) (93fb16e)
  • gui: add getSMSThread IPC and New Message compose flow (US-255) (3d75738)
  • gui: add global keyboard shortcuts with help overlay (US-215) (bfcf26a)
  • gui: add Home Assistant device status page (US-313) (a2f4d8c)
  • gui: add live transcript panel with partial state and clear button (52d1688)
  • gui: add loading skeletons and error boundaries to all pages (US-214) (c0f137e)
  • gui: add memory add form and delete action (US-204) (b63c5a9)
  • gui: add page transition animations and hover micro-interactions (US-213) (9a56ef9)
  • gui: add reminder create and edit form (US-200) (6fe1d20)
  • gui: add Reset to Defaults button in Settings > System (US-321) (1798427)
  • gui: add sidebar nav icons, beta badges, and notification unread count (572d41b)
  • gui: add streaming response display to chat panel (cae5267)
  • gui: add system tray icon and minimize-to-tray behavior (US-216) (ee3d79f)
  • gui: add task create and edit form with modal (2d00e21)
  • gui: add task run history and last-result indicator to task cards (7b263bc)
  • gui: add tooltip to Beta badge on Email and SMS nav items (US-316) (1323fa3)
  • gui: add voice selector dropdown and preview to Settings > Voice (5ed9c01)
  • gui: add voice toggle and status indicator component (f35cd1a)
  • gui: apply AskRex branding to sidebar, tray icon, and window title (US-322) (4dadeae)
  • gui: build AI settings form with model and autonomy controls (US-209) (bffa19e)
  • gui: build general settings form with auto-save (US-207) (80c3b0b)
  • gui: build inline memory editor with optimistic UI (US-203) (8d20674)
  • gui: build integrations settings form with email, calendar, and SMS credential panels (eb2117e)
  • gui: build memories list view with search and category filter (US-202) (2c62b2d)
  • gui: build notifications settings form with quiet hours and digest controls (US-211) (951a491)
  • gui: build reminders list view with overdue/today/upcoming sections (US-199) (8d81078)
  • gui: build SMS thread list, detail panel, and compose bar (US-253, US-254) (82d9df0)
  • gui: build task list view with IPC stub and empty state (5aa3f17)
  • gui: build voice settings form with device selection and auto-save (US-208) (b63d572)
  • gui: centralize Electron bridge path resolver (US-303) (b475e79)
  • gui: implement email inbox view with priority triage indicators (US-246) (33567c0)
  • gui: implement notification center, detail panel and sidebar badge (US-262/263/264) (b45d69e)
  • gui: integrate feedback components into app shell and wrap with ToastProvider (9d8cfe5)
  • gui: replace placeholder data with real service calls in calendar, email, SMS pages (US-315) (675e153)
  • gui: scaffold AppLayout with sidebar, topbar, and responsive collapse (d089e32)
  • gui: scaffold settings panel with category navigation (US-206) (83bfc9e)
  • gui: surface preference suggestions in AI settings panel (US-239) (b7501c3)
  • gui: wire calendar to backend and add create-event flow (US-198) (341da9f)
  • gui: wire chat panel to Rex backend via IPC (976caa8)
  • gui: wire memories page to Rex memory backend via IPC (US-205) (9c40464)
  • gui: wire notification push pipeline and in-app toast dispatch (US-265) (a97d354)
  • gui: wire reminders page to backend via IPC (US-201) (a21a321)
  • gui: wire settings IPC to file-backed config store (US-212) (51ef80b)
  • gui: wire tasks page to Rex scheduler backend via IPC (4358964)
  • gui: wire timezone save to rex_config and fix IANA fallback list (US-318) (eb5d0b3)
  • gui: wire voice panel to Rex backend via IPC (94914d8)
  • ha: add clarification system for ambiguous commands (US-030) (1179e7f)
  • ha: add command confirmation and undo support (US-029) (2169d9b)
  • ha: add device alias resolver with fuzzy and synonym matching (US-025) (2c4578b)
  • ha: add device approval and rename workflow (US-027) (d08af6d)
  • ha: add device discovery via Home Assistant API (US-026) (30760d2)
  • ha: add device state awareness with HA real-time queries (US-028) (90d5ad9)
  • ha: add error recovery with alternative device suggestions (US-031) (6b6717f)
  • history: add command history store and dashboard panel (US-061) (bf66e77)
  • history: add daily prune scheduler with retention_days config (626002a)
  • history: add SQLite-backed HistoryStore with CRUD and prune (a864abc)
  • history: wire HistoryStore into assistant with startup preload (2a89963)
  • install: bootstrap .env and run rex doctor after install (US-068) (1169809)
  • integrations: add CalendarService with stub and Google Calendar live backend (US-243) (390546b)
  • integrations: add EmailMessage and CalendarEvent Pydantic models (US-241) (44d8018)
  • integrations: add EmailService with stub and Gmail live backend (US-242) (d4ad8ab)
  • integrations: add Music Assistant HTTP client (US-021) (90ad726)
  • integrations: add SMSMessage and SMSThread Pydantic models (US-249) (e786706)
  • integrations: add transport-layer ABCs for email, calendar, and SMS (744d205)
  • integrations: implement EmailTriageEngine with LLM-based triage (US-244) (8e62351)
  • integrations: implement MessageRouter with multi-channel dispatch (US-251) (4fa386f)
  • integrations: implement SchedulingEngine and TimeSlot model (US-245) (1d482c1)
  • integrations: implement SMSService with Twilio-ready stub/live interface (US-250) (c83e8c9)
  • integrations: wire up integrations page with per-item configure links (US-314) (2bce749)
  • llm: add anthropic and ollama streaming (0e0c9e9)
  • llm: add openai streaming support (e611014)
  • llm: serialize OpenAI tool_calls to JSON string in OpenAIStrategy.generate() (6f8ab44)
  • logging: add session-start marker and fix rotation to 5 MB/3 backups (US-323) (9a746ab)
  • logging: add structured JSON file logging config (US-LOG-001) (e6f25f0)
  • logging: add structured JSON logging system (US-070) (8532134)
  • logs: add log viewer UI with live tail and SSE stream (US-LOG-002) (800c722)
  • memory: add per-user key-value fact store with store/recall API (US-324) (1242e84)
  • mm-001: add ModelRoutingConfig schema to AppConfig (33170a1)
  • mm-002: implement ModelRouter intent classification (fc8798a)
  • mm-003: mark model router wired into generate_reply as complete (a6e9c1e)
  • mm-004: add Ollama availability check to ModelRouter with 60s refresh (7542994)
  • music: wire Music Assistant commands to assistant tool routing (US-022) (0ed96c5)
  • notifications: add action_url and action_label for actionable alerts (US-320) (4f793cc)
  • notifications: add cross-platform desktop notification module (US-041) (804bdb3)
  • notifications: add Notification model and SQLite-backed NotificationStore (US-256) (aff6f06)
  • notifications: add push notification support via ntfy and pushover (US-042) (a8b17ae)
  • notifications: implement DigestBuilder for batched notification digests (US-258) (1b24a31)
  • notifications: implement EscalationEngine for auto-escalation (US-260) (ff35fa8)
  • notifications: implement NotificationRouter with priority-based dispatch (US-257) (d9aa46b)
  • notifications: implement QuietHoursGate with midnight-spanning window support (US-259) (f000880)
  • notification: wire email channel to real EmailService.send (US-209) (8cb6ed9)
  • permissions: add per-user permissions system (US-052) (769f85a)
  • personality: add personality preview and selection UI (US-051) (8a1ece0)
  • personality: add personality system backend (US-050) (1f548f8)
  • ph004: add Phone integration settings UI (1290e96)
  • planner: add plan-and-execute skeleton with Step/Result API (US-326) (9e9662d)
  • profiles: auto-create default profile on first run (US-301) (546bd1c)
  • router: add cloud fallback with cooldown on 429/402 (US-045) (1f056e1)
  • router: add smart local/cloud routing with llm_routing_mode (US-044) (59c35c4)
  • settings: add Telegram config fields and complete integrations wiring (US-312) (64ba380)
  • shopping: add mobile-accessible PWA endpoint at /shopping (US-SL-004) (d4c59db)
  • shopping: add shopping list data model and JSON persistence (US-SL-001) (35b6f89)
  • shopping: add voice commands for shopping list (US-SL-002) (7120d44)
  • sk-001: add skill registry with CRUD operations and JSON persistence (fee82ff)
  • sk-002: add script-based skill auto-discovery from plugins/skills/ (e3d191c)
  • skills: add natural language skill creation via chat (US-SK-003) (ffd60a8)
  • skills: add skill invocation router for auto-dispatch from user message (542e6b7)
  • sms: add TwilioSMSBackend with CredentialManager integration (US-211) (7227735)
  • status: add SSE status broker and dashboard status indicator (US-062) (b92fc2c)
  • stt: add configurable whisper language (a9d04fd)
  • stt: add persistent STT bridge and rex:sendChatAudio IPC handler (7462d05)
  • stt: add STT backend check to doctor and log full traceback on failure (US-017) (c3d6e47)
  • suggestions: add proactive pattern detection engine (US-035) (14dd3da)
  • suggestions: add proactive suggestion engine with accept/dismiss flows (US-036) (e5348f2)
  • telegram: add long-polling receiver for inbound commands (US-040) (984f325)
  • telegram: add TelegramClient with send_message and AppConfig fields (US-039) (676d646)
  • telephony: add inbound call STT+LLM conversation loop (US-PH-002) (ef5b2eb)
  • telephony: add outbound calling via Twilio REST API (US-PH-003) (d3664e6)
  • tool-router: expand _resolve_timezone to 200+ cities and add date key (4d26a5b)
  • tools: add local file read/write capability with allowlist (US-WIN-001) (859553c)
  • tools: add timeout and retry pipeline to ToolDispatcher (US-TD-003) (d6c60dd)
  • tools: add tool auto-selection with confidence scoring (US-032) (b361ab4)
  • tools: add ToolDispatcher with intent-based auto tool selection (US-TD-002) (2895ea2)
  • tools: add ToolRegistry with config-based availability filter (US-TD-001) (3fcce9f)
  • tools: add Windows diagnostics tools via psutil (US-WIN-002) (3d7eef5)
  • tools: add Windows repair tools for disk, update, DNS, and SFC (US-WIN-004) (ad1d4be)
  • tools: add Windows settings read/write via PowerShell bridge (US-WIN-003) (303077e)
  • tools: define authoritative EXECUTABLE_TOOLS catalog and router (fe9d6b8)
  • tools: implement send_email and calendar_create_event handlers (f371f1c)
  • tools: implement weather_now and web_search tool handlers (1e48cbb)
  • tts: add synthesize_sample and voice sample bridge (f3bc3ac)
  • tts: add threading lock to protect TTS engine from concurrent requests (4db8724)
  • tts: add voice listing module and bridge for GUI dropdown (ec82dbb)
  • tts: add XTTS PyTorch 2.6 safe-globals allowlist (US-302) (57a194c)
  • tts: add XTTS/transformers compat shim, pin versions, edge-tts fallback (US-077) (f3d292b)
  • tts: route TTS output to Sonos/Bose smart speaker (US-SP-002) (94328de)
  • tts: update voice preview bridge default phrase and add tests (US-308) (f98ff58)
  • ui: add Audio Output settings panel with smart speaker discovery (US-UI-008) (8e6cb62)
  • ui: add device control panel with HA command API (US-060) (a937f99)
  • ui: add file and image upload for LLM context (US-UI-010) (8091d15)
  • ui: add first-run setup wizard with backend API (US-058) (fcca595)
  • ui: add Home Assistant setup screen and connection test API (US-059) (47ec616)
  • ui: add Home, Integrations, and About pages with API endpoints (US-057) (b901044)
  • ui: add integrations status badges, multi-account email list, and Home Assistant config (US-UI-006) (3db64c2)
  • ui: add LLM provider selector, per-provider model fields, and API key management (US-UI-004) (127716a)
  • ui: add multi-account email UI with IMAP, per-account test, and last-synced (US-ME-003) (27389ca)
  • ui: add quick actions panel (US-063) (454a742)
  • ui: add shopping list page with nav, add, check/uncheck, and clear (f0fd7b5)
  • ui: add STT, TTS, and wake word settings (US-UI-005) (48fdff5)
  • ui: add System settings panel with autonomy, timeout, logging, and restart (US-UI-009) (ad98bd3)
  • ui: add Users settings panel with voice enrollment and memory viewer (US-UI-007) (88f7cef)
  • ui: add wake word status, push-to-talk, and mic selector (US-UI-003) (3719ab9)
  • ui: implement chat interface with SSE streaming (US-UI-002) (9883bef)
  • ui: overhaul settings UX with tooltips and setup links (US-064) (417b389)
  • ui: scaffold React SPA with nav under rex/ui/ (US-UI-001) (b8c9bd7)
  • update branding assets and app/backend integration (fd0c7a1)
  • update docs, workflow hygiene, and UI surface test coverage (2a53751)
  • update doctor, startup, install flow, and voice enrollment support (3888aac)
  • update voice wakeword integrations and documentation (0bd5425)
  • usage: add cloud/local usage visibility to UI (US-046) (100fdc5)
  • usage: add Ollama per-request token usage tracking (US-043) (279e269)
  • vid-001: add voice enrollment with speaker embedding storage (a73dc90)
  • vid-002: add speaker identification with cosine similarity threshold (21f28b7)
  • vid-003: auto-switch user profile on speaker identification (7e71f66)
  • voice-loop: fail-fast on unreachable OpenClaw gateway (US-305) (2ac3e7d)
  • voice: add configurable acknowledgment sound with TTS-speaking guard (97103b0)
  • voice: add configurable STT/LLM/TTS timeouts to prevent pipeline hangs (US-010) (dc9f0bf)
  • voice: add custom voice upload for XTTS speaker cloning (US-VC-002) (56ab811)
  • voice: add engine label and hot-swap to voice selection UI (US-VC-001) (3fee37e)
  • voice: add post-STT acknowledgment with configurable mode (US-033) (ed30d39)
  • voice: add structured logging for capture-to-STT pipeline stage (US-008) (b9c3ee4)
  • voice: add TTS error handling and STT-to-LLM-to-TTS tests (US-009) (b7ec8ec)
  • voice: log WARNING at startup when XTTS active and FFmpeg absent (US-020) (451df4d)
  • voice: pre-load Whisper model in background thread at startup (US-LAT-003) (0374011)
  • voice: wake word detection from smart speaker microphone (US-SP-003) (808c5f2)
  • wakeword: add custom wake word training via UI (US-WW-002) (512f711)
  • wakeword: add dynamic wake word selector with sample playback (US-WW-001) (71093af)
  • wakeword: add structured logging and startup validation for wake-to-capture stage (US-007) (d91a63d)
  • wakeword: play recorded sample for custom wake words, disable if none saved (3692d1b)
  • weather: implement weather_now tool with OpenWeatherMap (3e285f7)
  • workflows: add ScheduledTaskRunner with config-driven tasks (US-325) (d88f038)

Bug Fixes

  • assistant: guard _settings access in _build_system_context for new construction (34a949c)
  • assistant: replace _followup_injected bool with asyncio.Lock to prevent double injection (18527c7)
  • audit: audit and fix US-001 root voice loop and wake word files (639ce84)
  • audit: audit and fix US-004 root setup, GUI, and diagnostic files (ad7417f)
  • audit: audit and fix US-005 rex/ core config and app modules (72a7453)
  • audit: audit and fix US-006 rex/ voice pipeline modules (8e7b702)
  • audit: audit and fix US-007 rex/ services layer (e45b6fd)
  • audit: audit and fix US-009 rex/ infrastructure modules (c0dd608)
  • audit: audit and fix US-011 rex/ utilities, notifications, and background jobs (6fba40e)
  • audit: audit and format US-002 root-level bridge files (58256b8)
  • audit: audit and format US-003 root config, memory, LLM, and logging files (ac75fca)
  • autonomy: audit and fix US-014 rex/autonomy/ subpackage (8aec70a)
  • calendar: audit and fix US-015 rex/calendar_backends/ subpackage (522cc36)
  • ci: complete US-262–266 mypy, psutil, and secret-scan hygiene (bc0b6f7)
  • ci: filter deleted files from ruff lint and fix voice_loop type annotations (2f1ff4c)
  • ci: stabilize memory baseline and security scan ignores (#220) (dc36858)
  • dashboard,integrations: audit and fix US-020 rex/dashboard/ and rex/integrations/ subpackages (d8ed47d)
  • dashboard: fix login bounce, voice 403, and stale token validation (15a0114)
  • dashboard: redirect / to /dashboard and fix [object Object] login error (45b0d3d)
  • deps: document canonical runtime matrix and remove CUDA variant from CPU requirements (27e0615)
  • docker: harden .dockerignore and fix Dockerfile for us-175 (dfb8db5)
  • email: audit and fix US-016 rex/email_backends/ subpackage (6d387ec)
  • gui: audit and fix US-013 rex/ GUI, windows service, and app launch modules (5e33800)
  • gui: reject bridge calls on any non-zero exit code in ipc handlers (803b10c)
  • gui: route Home page HA link to /settings/home-assistant (US-317) (47491f8)
  • identity: expire stale session files (49251b7)
  • identity: log warning for corrupted session file JSON parse errors (abab3e2)
  • imports: make mqtt_client and windows_service importable without optional deps (6129c86)
  • install: correct install script behavior (e45944c)
  • integrations: audit and fix US-012 rex/ external integration modules (d3eff51)
  • integrations: expose initialize_scheduler_system from package init (6aa97a8)
  • integrations: narrow Optional[CalendarEvent] list to satisfy mypy strict (d447e0d)
  • lint: restore ruff I,F compliance for us-177 (9191b59)
  • llm: distinguish Ollama connection, model-not-found, and unexpected errors (344bc67)
  • logging: update logging utils and README (737c365)
  • messaging: audit and fix US-017 rex/messaging_backends/ subpackage (23c3d86)
  • mypy: replace type:ignore comments with TYPE_CHECKING guards in windows_service and mqtt_client (60fd194)
  • notifications: audit and fix US-018 rex/notifications/ and rex/voice_identity/ subpackages (5cf0913)
  • ops: rewrite validate_deployment.py for current runtime model (b7eb714)
  • quality: ruff, black, and mypy compliance for US-178 through US-184 (6553529)
  • refine assistant and voice configuration behavior (279b70f)
  • retirement: remove retired tool registry shim (c23b25b)
  • scripts,plugins: add noqa E402 to sys.path imports and sanitize web search queries (3f47b9f)
  • security-audit: eliminate false positives and reduce actionable findings to <50 (f7a078f)
  • security: clean up lint violations in security and API layer modules (663dd29)
  • stt: normalise 'auto'/''/None language to None and add 'en' fallback (US-016) (c3dda42)
  • stt: validate WAV input before transcription (35c4710)
  • tests: handle CRLF and env-var propagation in install script test on Windows (1f5af7c)
  • tools: implement web_search tool handler and remove dead code (e686371)
  • tts: add abbreviation-aware sentence splitting to TTS pipeline (36060a3)
  • tts: surface XTTS init error in speak() and skip numpy tests (US-019) (5d758c7)
  • typecheck: remove unused type: ignore and fix UP017 in ics_feed.py (d00db82)
  • types: resolve mypy errors in core package files for US-180 (da6e57f)
  • types: resolve mypy errors in full rex/ package for US-181 (2553139)
  • voice: add max duration check and fix validation messages in custom_voices (US-012) (5f22209)
  • voice: add selector updates and voice loop fixes (e512134)
  • voice: add selector updates and voice loop fixes (e0f1b55)
  • voice: replace suppress() with logged try/except in temp file cleanup (78dd611)
  • voice: validate configured input device at startup (48e22e4)
  • voice: wire VoiceLoop with correct constructor args in rex_voice_bridge (0269e07)
  • wakeword: add init.py and fix import sort in agent_server (6e513ce)
  • wakeword: normalise empty/None wake word to 'hey_rex' and validate model path (US-018) (7c67417)
  • wakeword: rename torch to _torch with proper optional typing (20dc28c)