295c9ba554fc693550cdec72b33f837cef714c6b
Dos features de producción que mejoran la usabilidad sustancialmente. ## #7 — Layout reorganizable con SplitContainer Los 3 paneles ya no tienen tamaños hardcodeados. Reusamos yahweh-widget-splitter (mismo que usa yahweh-shell para sus layouts JSON-config) con 2 niveles: - outer (Vertical): main_split arriba (flex 4) + panel abajo (flex 1) - main_split (Horizontal): tree (flex 1) + canvas (flex 4) El usuario puede arrastrar los dos divisores para redimensionar libremente. Por ejemplo: en una pantalla ancha, dar más al canvas; en una sesión de lectura analítica, agrandar el panel abajo para ver más módulos expandidos. - Shell gana fields main_split + outer_split: Entity<SplitContainer>. - new() construye ambos con ChildSlots envolviendo tree/canvas/panel como AnyView (mismo patrón que LayoutHost de yahweh-shell). - render() simplificado: header + body(outer_split). Las constants TREE_WIDTH y PANEL_HEIGHT desaparecen. - Cargo añade deps: yahweh-core (NodeId, LayoutDirection), yahweh-widget-splitter, yahweh-widget-container-core (ChildSlot). ## #15 — Atlas de ciudades cargable desde TSV El array `CITY_PRESETS` const de 90 ciudades hardcoded ahora es la función `default_city_presets() -> Vec<CityPreset>`. CityPreset.name pasa de `&'static str` a `String` para que el atlas sea construible en runtime. TahuantinsuyuTree gana `city_atlas: Vec<CityPreset>` + setter `set_city_atlas(atlas, cx)`. Al boot, Shell intenta cargar `$XDG_DATA_HOME/tahuantinsuyu/atlas.tsv` y, si existe + parsea bien, reemplaza el atlas hardcoded. Formato TSV (líneas): name<TAB>lat<TAB>lon<TAB>tz_offset_minutes Líneas vacías y `#` comentario se ignoran. Líneas con cualquier parse fallido se descartan en silencio. API pública: `parse_city_atlas_tsv(&str) -> Vec<CityPreset>` (en tahuantinsuyu-tree), reusable por tests/scripts. El usuario que quiera 50.000 ciudades de GeoNames cities5000.txt: 1. wget cities5000.zip de geonames.org 2. awk para extraer (name, lat, lon, tz_offset) y escribir TSV 3. mover a $XDG_DATA_HOME/tahuantinsuyu/atlas.tsv 4. relanzar la app Sin fricción adicional para el usuario común (los 90 hardcoded cubren 99% de casos típicos en español/inglés). cargo check verde, 8 tests engine + 1 test modules verdes. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Description
No description provided
Languages
Rust
96.7%
JavaScript
0.8%
Shell
0.8%
Python
0.8%
HTML
0.3%
Other
0.6%