feat(yahweh-launcher): F3 — extracción del shell standard de explorers

Iter 19. Patrón con 4 consumers idénticos: cada main() repetía el mismo
~20 líneas de boot (Application::new + Theme::install_default +
cx.open_window + WindowOptions + cx.activate). Sólo varían título,
tamaño y root factory.

crates/modules/ui_engine/libs/launcher/:
- pub fn launch_app(title, size, root_factory) → 1-line boot.
- pub fn launch_app_with(config, root_factory) → variante con config
  armado afuera (env-var driven, etc).
- pub struct AppLaunchConfig::new(title, size).
- 2 tests cubren normalización del config.

Migración 4 consumers (nakui/nouser/minga/brahman-broker explorer):
- main() pasa de ~20 líneas a 1: launch_app(...).
- Imports gpui podados (no más App/Application/Bounds/WindowOpts/etc).
- Cada uno agrega dep yahweh-launcher.

Naming: yahweh-shell ya existe (bootstrap heavyweight con file/db/text
viewers en crates/apps/). Helper liviano queda como yahweh-launcher.

Ahorro ~75 líneas de boot hardcoded. Cambios de window/theme boot
ahora en un solo lugar.

2/2 tests launcher; 4 consumer suites intactas, todo verde.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Sergio
2026-05-10 15:19:17 +00:00
parent 4b8bd389c9
commit 37e40073ef
13 changed files with 207 additions and 85 deletions
Generated
+12
View File
@@ -1242,6 +1242,7 @@ dependencies = [
"brahman-handshake",
"brahman-sidecar",
"gpui",
"yahweh-launcher",
"yahweh-theme",
"yahweh-widget-app-header",
"yahweh-widget-banner",
@@ -6215,6 +6216,7 @@ version = "0.1.0"
dependencies = [
"gpui",
"minga-store",
"yahweh-launcher",
"yahweh-theme",
"yahweh-widget-app-header",
"yahweh-widget-banner",
@@ -6484,6 +6486,7 @@ dependencies = [
"serde_json",
"tempfile",
"uuid",
"yahweh-launcher",
"yahweh-meta-runtime",
"yahweh-theme",
"yahweh-widget-app-header",
@@ -6882,6 +6885,7 @@ dependencies = [
"brahman-sidecar",
"gpui",
"nouser-card",
"yahweh-launcher",
"yahweh-theme",
"yahweh-widget-app-header",
"yahweh-widget-banner",
@@ -12944,6 +12948,14 @@ dependencies = [
"yahweh-theme",
]
[[package]]
name = "yahweh-launcher"
version = "0.1.0"
dependencies = [
"gpui",
"yahweh-theme",
]
[[package]]
name = "yahweh-meta-runtime"
version = "0.1.0"