Platform · launcher
Portal Launcher — Universal Action Entry Point
Application launcher with action registry, fuzzy/acronym search engine, execution pipeline, plugin system, and voice bridge. Provides the central interface for launching apps and executing system actions.
Architecture
Overview
portal-launcher is the universal action entry point for Portal OS. It maintains a registry of discoverable actions (apps, system commands, shortcuts), provides a search engine with fuzzy matching and acronym support (type 'ff' to find Firefox), executes selected actions through a pipeline with confirmation grace periods, supports pluggable action providers, and bridges to the voice subsystem for voice-triggered launches. The launcher maintains a persistent index for fast lookups and emits telemetry about action usage.
Key Types
Modules
action_registry
Central registry of discoverable actions — thread-safe registration, lookup, and enumeration.
search_engine
Search engine — fuzzy matching, acronym expansion ('ff' → Firefox), context-aware result boosting.
execution
Execution pipeline — validates, confirms (grace period), and dispatches actions. Includes GracePeriodManager.
providers
Action provider trait and built-in providers — app provider (.desktop files), system command provider.
index
Persistent index — disk-backed search index for fast cold-start lookups.
plugin_system
Plugin system — dynamic loading of action provider plugins.
voice_bridge
Voice bridge — connects to portal-voiced for voice-triggered actions ('launch Firefox').
ui
Launcher UI — renders search results, handles selection.
Data Flow
User types/voice → search_engine queries index + providers → ranked results → user selects → execution pipeline (validate → grace period → dispatch) → action executed
Dependencies
Internal (1)
External (19)
Connects to portal-voiced via voice_bridge. External: tokio (async), serde (config), fuzzy-matcher (search).