1# llimphi-widget-terminal
2
3*Read this in English: [README.md](README.md).*
4
5Superficie de terminal **infinita y virtualizada**.
6
7Diseño completo: `02_ruway/shuma/SDD-TERMINAL.md`. El control reemplaza por
8fases al `output_pane` del shell: scrollback ilimitado a costo de render
9**constante** (sólo se pinta la ventana visible), tres modos sobre la misma
10tela (línea IDE / grilla TUI / híbrido) y GPU directo donde paga.
11
12**Fase 0:** la **Capa 0** — el `store::Scrollback`, store de scrollback
13append-only con índice de líneas, cap por memoria y acceso O(1). Puro, sin
14dependencias de UI: el núcleo agnóstico vive aparte de quien lo pinta
15(Regla 2).
16
17**Fase 1:** modo línea — `view::line_surface` materializa sólo las filas
18visibles bajo un `scroll_y` propio del widget (costo de render **constante**
19a scrollback ilimitado), numeración global y color por runs.
20
21**Fase 2 (esto):** la **Capa 1** — el modelo de **bloques** (`blocks`):
22el stream es una secuencia de `blocks::Item`s (chrome de alto fijo que el
23caller pinta + rangos de líneas del store), virtualizados sobre alturas
24mixtas con búsqueda binaria; colapsar un bloque = no emitir su body. Mapea
25el `output_pane` del shell (header/badge/etapas/colapso) sin que el widget
26sepa de comandos (Regla 2). El modo línea de la Fase 1 es el caso de un solo
27`Item::Lines`.
28
29---
30
31Parte de **llimphi** — ver [llimphi](../../LEEME.md).
LEEME.md
llimphi-widget-terminal
Read this in English: README.md.
Superficie de terminal infinita y virtualizada.
Diseño completo: 02_ruway/shuma/SDD-TERMINAL.md. El control reemplaza por
fases al output_pane del shell: scrollback ilimitado a costo de render
constante (sólo se pinta la ventana visible), tres modos sobre la misma
tela (línea IDE / grilla TUI / híbrido) y GPU directo donde paga.
Fase 0: la Capa 0 — el store::Scrollback, store de scrollback
append-only con índice de líneas, cap por memoria y acceso O(1). Puro, sin
dependencias de UI: el núcleo agnóstico vive aparte de quien lo pinta
(Regla 2).
Fase 1: modo línea — view::line_surface materializa sólo las filas
visibles bajo un scroll_y propio del widget (costo de render constante
a scrollback ilimitado), numeración global y color por runs.
Fase 2 (esto): la Capa 1 — el modelo de bloques (blocks):
el stream es una secuencia de blocks::Items (chrome de alto fijo que el
caller pinta + rangos de líneas del store), virtualizados sobre alturas
mixtas con búsqueda binaria; colapsar un bloque = no emitir su body. Mapea
el output_pane del shell (header/badge/etapas/colapso) sin que el widget
sepa de comandos (Regla 2). El modo línea de la Fase 1 es el caso de un solo
Item::Lines.
Parte de llimphi — ver llimphi.