feat(cosmobiologia): rectificador automático — UI de entrada y disparo

Segundo incremento: el rectificador ya es usable de punta a punta
desde el panel, sin infraestructura de UI nueva.

- cosmobiologia-panel: Control::TextInput pasa a renderizarse desde
  string_state — deja de ser un display estático y se vuelve un campo
  de sólo-lectura que el shell escribe vía set_string (resultados,
  etiquetas).
- cosmobiologia-modules: el módulo primary_directions gana 3 sliders
  «Evento N · edad» (0 = ranura sin usar), un Action «Rectificar
  hora» y un TextInput «Resultado».
- shell: run_rectificacion lee las edades de los sliders, llama a
  engine::rectificar (ventana ±15 min, paso 1) y escribe la hora
  rectificada + el puntaje en el campo Resultado del panel.

El rectificador queda funcional: activar GR → fijar edades de eventos
→ «Rectificar hora» → leer el resultado. Falta sólo la curva del
perfil del barrido como visualización (incremento opcional).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
sergio
2026-05-22 15:53:18 +00:00
parent 0ada1050f7
commit a7e9662fad
3 changed files with 111 additions and 17 deletions
@@ -947,6 +947,43 @@ pub mod primary_directions {
},
],
},
// --- Rectificador automático ---
// Tres edades de eventos conocidos de la vida del
// sujeto; `0` = ranura sin usar. El barrido GR busca la
// hora de nacimiento que mejor las explica.
Control::Slider {
key: "evento_1".into(),
label: "Evento 1 · edad".into(),
min: 0.0,
max: 90.0,
step: 1.0,
default: 0.0,
},
Control::Slider {
key: "evento_2".into(),
label: "Evento 2 · edad".into(),
min: 0.0,
max: 90.0,
step: 1.0,
default: 0.0,
},
Control::Slider {
key: "evento_3".into(),
label: "Evento 3 · edad".into(),
min: 0.0,
max: 90.0,
step: 1.0,
default: 0.0,
},
Control::Action {
key: "rectificar".into(),
label: "Rectificar hora".into(),
},
Control::TextInput {
key: "resultado".into(),
label: "Resultado".into(),
default: "".into(),
},
]
}
fn compute_layers(&self, _chart: &Chart, _cfg: &serde_json::Value) -> Vec<Layer> {