- Full project status: v2.0 FEATURE COMPLETE - 60 source files, 27 widgets, 186+ tests - Detailed module breakdown (core, events, features, widgets) - Examples and commands reference - Focus management, themes, unicode, termcap documentation - Team methodology and workflow notes - Historical development timeline - Quick reference section for next conversations 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
580 lines
19 KiB
Markdown
580 lines
19 KiB
Markdown
# zcatui - TUI Library para Zig
|
|
|
|
> **Última actualización**: 2025-12-08
|
|
> **Versión**: v2.0 - FEATURE COMPLETE
|
|
> **Lenguaje**: Zig 0.15.2
|
|
> **Inspiración**: [ratatui](https://github.com/ratatui/ratatui) + [crossterm](https://github.com/crossterm-rs/crossterm) (Rust)
|
|
> **Estado**: Librería completa y lista para producción
|
|
|
|
---
|
|
|
|
## RESUMEN EJECUTIVO
|
|
|
|
**zcatui** es una librería TUI completa para Zig, equivalente a ratatui+crossterm de Rust pero en un solo paquete.
|
|
|
|
### Estadísticas del Proyecto
|
|
| Métrica | Valor |
|
|
|---------|-------|
|
|
| **Archivos fuente** | 60 archivos .zig |
|
|
| **Widgets** | 27 widgets |
|
|
| **Módulos core** | 16 módulos |
|
|
| **Tests** | 186+ tests |
|
|
| **Examples** | 11 demos ejecutables |
|
|
| **Líneas de código** | ~15,000+ |
|
|
|
|
### Funcionalidades Principales
|
|
- ✅ Renderizado immediate-mode con double buffering y diff
|
|
- ✅ 27 widgets (más que ratatui)
|
|
- ✅ Sistema de eventos teclado/ratón
|
|
- ✅ Sistema de animaciones con easing
|
|
- ✅ Clipboard (OSC 52)
|
|
- ✅ Hyperlinks (OSC 8)
|
|
- ✅ Imágenes en terminal (Kitty/iTerm2)
|
|
- ✅ Notificaciones desktop (OSC 9/777)
|
|
- ✅ Focus management global
|
|
- ✅ Sistema de themes (10 themes predefinidos)
|
|
- ✅ Unicode width calculation (wcwidth)
|
|
- ✅ Terminal capability detection
|
|
- ✅ Lazy rendering con cache
|
|
|
|
---
|
|
|
|
## ESTRUCTURA COMPLETA DEL PROYECTO
|
|
|
|
```
|
|
zcatui/
|
|
├── src/
|
|
│ ├── root.zig # Entry point, re-exports públicos
|
|
│ │
|
|
│ ├── ─── CORE ───
|
|
│ ├── buffer.zig # Buffer, Cell, Rect, Symbol, Margin
|
|
│ ├── style.zig # Color, Style, Modifier
|
|
│ ├── text.zig # Text, Line, Span, Alignment
|
|
│ ├── layout.zig # Layout, Constraint, Direction
|
|
│ ├── terminal.zig # Terminal abstraction
|
|
│ │
|
|
│ ├── ─── EVENTOS ───
|
|
│ ├── event.zig # Event, KeyEvent, MouseEvent, KeyCode
|
|
│ ├── event/
|
|
│ │ ├── reader.zig # EventReader con polling
|
|
│ │ └── parse.zig # Parser de escape sequences
|
|
│ │
|
|
│ ├── ─── FEATURES ───
|
|
│ ├── focus.zig # FocusRing, FocusManager, Focusable
|
|
│ ├── theme.zig # Theme system (10 themes)
|
|
│ ├── animation.zig # Animation, Easing, Timer, AnimationGroup
|
|
│ ├── cursor.zig # Cursor control (shapes, position)
|
|
│ ├── clipboard.zig # OSC 52 clipboard
|
|
│ ├── hyperlink.zig # OSC 8 hyperlinks
|
|
│ ├── notification.zig # OSC 9/777 notifications
|
|
│ ├── image.zig # Kitty/iTerm2 images
|
|
│ ├── lazy.zig # RenderCache, Throttle, Debounce
|
|
│ ├── unicode.zig # charWidth, stringWidth (wcwidth)
|
|
│ ├── termcap.zig # Terminal capability detection
|
|
│ │
|
|
│ ├── ─── BACKEND ───
|
|
│ ├── backend/
|
|
│ │ └── backend.zig # ANSI escape sequences
|
|
│ │
|
|
│ ├── ─── SYMBOLS ───
|
|
│ ├── symbols/
|
|
│ │ ├── symbols.zig # Re-exports
|
|
│ │ ├── line.zig # Line drawing (─│┌┐└┘├┤┬┴┼)
|
|
│ │ ├── border.zig # Border sets (single, double, rounded, thick)
|
|
│ │ ├── block.zig # Block elements (█▀▄░▒▓)
|
|
│ │ ├── bar.zig # Bar characters for charts
|
|
│ │ ├── braille.zig # 256 braille patterns
|
|
│ │ ├── half_block.zig # Half-block for pseudo-graphics
|
|
│ │ ├── scrollbar.zig # Scrollbar symbols
|
|
│ │ └── marker.zig # Chart markers (Dot, Braille, HalfBlock)
|
|
│ │
|
|
│ ├── ─── WIDGETS (27) ───
|
|
│ ├── widgets/
|
|
│ │ ├── block.zig # Block (borders, titles, padding)
|
|
│ │ ├── paragraph.zig # Text with wrapping
|
|
│ │ ├── list.zig # Selectable list with state
|
|
│ │ ├── table.zig # Multi-column table
|
|
│ │ ├── gauge.zig # Gauge + LineGauge progress bars
|
|
│ │ ├── tabs.zig # Tab navigation
|
|
│ │ ├── sparkline.zig # Mini line graphs
|
|
│ │ ├── scrollbar.zig # Scroll indicator
|
|
│ │ ├── barchart.zig # Bar charts with groups
|
|
│ │ ├── canvas.zig # Drawing (braille/half-block/block)
|
|
│ │ ├── chart.zig # Line/scatter/bar graphs with axes
|
|
│ │ ├── calendar.zig # Monthly calendar
|
|
│ │ ├── clear.zig # Clear/reset area
|
|
│ │ ├── input.zig # Readline-style text input
|
|
│ │ ├── textarea.zig # Multi-line text editor
|
|
│ │ ├── popup.zig # Popup + Modal dialogs
|
|
│ │ ├── menu.zig # Menu, MenuBar, ContextMenu
|
|
│ │ ├── tooltip.zig # Tooltip + TooltipManager
|
|
│ │ ├── tree.zig # Tree view (expandable)
|
|
│ │ ├── filepicker.zig # File/directory picker
|
|
│ │ ├── scroll.zig # ScrollView, VirtualList, InfiniteScroll
|
|
│ │ ├── panel.zig # Panel, PanelSplit, TabbedPanel, DockingPanel
|
|
│ │ ├── checkbox.zig # Checkbox, RadioGroup, CheckboxGroup
|
|
│ │ ├── select.zig # Select dropdown, MultiSelect
|
|
│ │ ├── slider.zig # Slider, RangeSlider
|
|
│ │ └── statusbar.zig # StatusBar, Toast, ToastManager
|
|
│ │
|
|
│ └── ─── TESTS ───
|
|
│ └── tests/
|
|
│ ├── tests.zig # Test aggregator
|
|
│ ├── widget_tests.zig # Widget tests
|
|
│ ├── theme_tests.zig # Theme tests
|
|
│ └── layout_tests.zig # Layout tests
|
|
│
|
|
├── examples/ # 11 demos ejecutables
|
|
│ ├── hello.zig # Minimal TUI app
|
|
│ ├── events_demo.zig # Keyboard/mouse events
|
|
│ ├── list_demo.zig # Lista navegable
|
|
│ ├── table_demo.zig # Tabla con selección
|
|
│ ├── dashboard.zig # Demo completo multi-widget
|
|
│ ├── input_demo.zig # Input readline-style
|
|
│ ├── animation_demo.zig # Easing functions showcase
|
|
│ ├── clipboard_demo.zig # OSC 52 clipboard
|
|
│ ├── menu_demo.zig # MenuBar + Modal
|
|
│ ├── form_demo.zig # Form widgets
|
|
│ └── panel_demo.zig # Panel system
|
|
│
|
|
├── docs/
|
|
│ ├── ARCHITECTURE.md # Arquitectura técnica
|
|
│ ├── WIDGETS.md # Guía de widgets
|
|
│ └── API.md # Referencia rápida
|
|
│
|
|
├── build.zig
|
|
├── README.md # Documentación pública
|
|
└── CLAUDE.md # Este archivo
|
|
```
|
|
|
|
---
|
|
|
|
## MÓDULOS DETALLADOS
|
|
|
|
### Core
|
|
|
|
| Módulo | Archivo | Descripción |
|
|
|--------|---------|-------------|
|
|
| **Buffer** | `buffer.zig` | Buffer de celdas, Cell, Rect, Symbol, diff rendering |
|
|
| **Style** | `style.zig` | Color (16/256/RGB), Style, Modifier |
|
|
| **Text** | `text.zig` | Text, Line, Span, StyledGrapheme, Alignment |
|
|
| **Layout** | `layout.zig` | Layout, Constraint (Length/Min/Max/Percentage/Ratio) |
|
|
| **Terminal** | `terminal.zig` | Terminal abstraction, raw mode |
|
|
|
|
### Eventos
|
|
|
|
| Módulo | Archivo | Descripción |
|
|
|--------|---------|-------------|
|
|
| **Event** | `event.zig` | Event, KeyEvent, MouseEvent, KeyCode, KeyModifiers |
|
|
| **EventReader** | `event/reader.zig` | Polling de eventos con timeout |
|
|
| **Parser** | `event/parse.zig` | Parser de escape sequences (CSI, SS3, SGR mouse) |
|
|
|
|
### Features Avanzadas
|
|
|
|
| Módulo | Archivo | Descripción |
|
|
|--------|---------|-------------|
|
|
| **Focus** | `focus.zig` | FocusRing, FocusManager, Focusable interface |
|
|
| **Theme** | `theme.zig` | 10 themes: dark, light, dracula, nord, gruvbox, monokai... |
|
|
| **Animation** | `animation.zig` | Easing functions, Animation, Timer, AnimationGroup |
|
|
| **Cursor** | `cursor.zig` | Cursor shapes, visibility, save/restore |
|
|
| **Clipboard** | `clipboard.zig` | OSC 52 copy/paste |
|
|
| **Hyperlink** | `hyperlink.zig` | OSC 8 clickable links |
|
|
| **Notification** | `notification.zig` | OSC 9/777 desktop notifications |
|
|
| **Image** | `image.zig` | Kitty/iTerm2 inline images |
|
|
| **Lazy** | `lazy.zig` | RenderCache, Throttle, Debounce, DeferredRender |
|
|
| **Unicode** | `unicode.zig` | charWidth, stringWidth (wcwidth equivalent) |
|
|
| **Termcap** | `termcap.zig` | Terminal capability detection, color support |
|
|
|
|
### Widgets (27)
|
|
|
|
| Widget | Archivo | Descripción |
|
|
|--------|---------|-------------|
|
|
| Block | `block.zig` | Contenedor con bordes y título |
|
|
| Paragraph | `paragraph.zig` | Texto con wrapping |
|
|
| List | `list.zig` | Lista seleccionable con estado |
|
|
| Table | `table.zig` | Tabla multi-columna |
|
|
| Gauge | `gauge.zig` | Barra de progreso |
|
|
| LineGauge | `gauge.zig` | Barra de progreso línea |
|
|
| Tabs | `tabs.zig` | Navegación por pestañas |
|
|
| Sparkline | `sparkline.zig` | Mini gráfico de línea |
|
|
| Scrollbar | `scrollbar.zig` | Indicador de scroll |
|
|
| BarChart | `barchart.zig` | Gráfico de barras |
|
|
| Canvas | `canvas.zig` | Dibujo libre (braille/block) |
|
|
| Chart | `chart.zig` | Gráficos con ejes |
|
|
| Calendar | `calendar.zig` | Calendario mensual |
|
|
| Clear | `clear.zig` | Limpiar área |
|
|
| Input | `input.zig` | Input readline-style |
|
|
| TextArea | `textarea.zig` | Editor multilínea |
|
|
| Popup | `popup.zig` | Overlay flotante |
|
|
| Modal | `popup.zig` | Diálogo con botones |
|
|
| Menu | `menu.zig` | Menú dropdown |
|
|
| MenuBar | `menu.zig` | Barra de menús |
|
|
| ContextMenu | `menu.zig` | Menú contextual |
|
|
| Tooltip | `tooltip.zig` | Información emergente |
|
|
| Tree | `tree.zig` | Árbol expandible |
|
|
| FilePicker | `filepicker.zig` | Selector de archivos |
|
|
| ScrollView | `scroll.zig` | Vista con scroll |
|
|
| VirtualList | `scroll.zig` | Lista virtual (large datasets) |
|
|
| Panel | `panel.zig` | Panel con foco |
|
|
| TabbedPanel | `panel.zig` | Panel con pestañas |
|
|
| Checkbox | `checkbox.zig` | Checkbox toggle |
|
|
| RadioGroup | `checkbox.zig` | Grupo de radio buttons |
|
|
| Select | `select.zig` | Dropdown select |
|
|
| Slider | `slider.zig` | Slider numérico |
|
|
| StatusBar | `statusbar.zig` | Barra de estado |
|
|
| Toast | `statusbar.zig` | Notificaciones toast |
|
|
|
|
---
|
|
|
|
## COMANDOS
|
|
|
|
```bash
|
|
# Ruta del compilador Zig
|
|
ZIG=/mnt/cello2/arno/re/recode/zig/zig-0.15.2/zig-x86_64-linux-0.15.2/zig
|
|
|
|
# Compilar
|
|
zig build
|
|
|
|
# Tests (186+ tests)
|
|
zig build test
|
|
|
|
# Ejecutar ejemplos
|
|
zig build hello
|
|
zig build events-demo
|
|
zig build list-demo
|
|
zig build table-demo
|
|
zig build dashboard
|
|
zig build input-demo
|
|
zig build animation-demo
|
|
zig build clipboard-demo
|
|
zig build menu-demo
|
|
zig build form-demo
|
|
zig build panel-demo
|
|
```
|
|
|
|
---
|
|
|
|
## THEMES DISPONIBLES
|
|
|
|
```zig
|
|
const Theme = zcatui.Theme;
|
|
|
|
// 10 themes predefinidos
|
|
const dark = zcatui.theme.dark;
|
|
const light = zcatui.theme.light;
|
|
const dracula = zcatui.theme.dracula;
|
|
const nord = zcatui.theme.nord;
|
|
const gruvbox = zcatui.theme.gruvbox;
|
|
const solarized_dark = zcatui.theme.solarized_dark;
|
|
const monokai = zcatui.theme.monokai;
|
|
const one_dark = zcatui.theme.one_dark;
|
|
const tokyo_night = zcatui.theme.tokyo_night;
|
|
const catppuccin = zcatui.theme.catppuccin;
|
|
|
|
// Uso
|
|
const style = theme.primaryStyle();
|
|
const error_style = theme.errorStyle();
|
|
const selection_style = theme.selectionStyle();
|
|
```
|
|
|
|
---
|
|
|
|
## FOCUS MANAGEMENT
|
|
|
|
```zig
|
|
const FocusManager = zcatui.FocusManager;
|
|
const FocusRing = zcatui.FocusRing;
|
|
|
|
var manager = FocusManager{};
|
|
|
|
// Crear rings (grupos de widgets)
|
|
const main_ring = manager.createRing("main");
|
|
const modal_ring = manager.createRing("modal");
|
|
|
|
// Añadir widgets focusables
|
|
_ = main_ring.?.add(widget1.focusable());
|
|
_ = main_ring.?.add(widget2.focusable());
|
|
|
|
// Navegación
|
|
_ = manager.focusNext(); // Tab
|
|
_ = manager.focusPrev(); // Shift+Tab
|
|
_ = manager.focusFirst(); // Home
|
|
_ = manager.focusLast(); // End
|
|
|
|
// Focus trapping (para modales)
|
|
manager.setTrapFocus(true);
|
|
|
|
// Cambiar ring activo
|
|
_ = manager.setActiveRing("modal");
|
|
```
|
|
|
|
---
|
|
|
|
## UNICODE WIDTH
|
|
|
|
```zig
|
|
const unicode = zcatui.unicode;
|
|
|
|
// Ancho de caracteres
|
|
unicode.charWidth('a'); // 1 (ASCII)
|
|
unicode.charWidth(0x4E2D); // 2 (中 - CJK)
|
|
unicode.charWidth(0x0301); // 0 (combining accent)
|
|
|
|
// Ancho de strings
|
|
unicode.stringWidth("Hello"); // 5
|
|
unicode.stringWidth("日本"); // 4 (2+2)
|
|
unicode.stringWidth("Hello日本"); // 9 (5+4)
|
|
|
|
// Truncar a ancho visual
|
|
const truncated = unicode.truncateToWidth("Hello World", 5); // "Hello"
|
|
```
|
|
|
|
---
|
|
|
|
## TERMINAL CAPABILITIES
|
|
|
|
```zig
|
|
const termcap = zcatui.termcap;
|
|
|
|
const caps = termcap.detect();
|
|
|
|
// Color support
|
|
if (caps.color_support.hasTrueColor()) {
|
|
// RGB colors disponibles
|
|
} else if (caps.color_support.has256()) {
|
|
// 256 colores
|
|
} else {
|
|
// 8/16 colores básicos
|
|
}
|
|
|
|
// Features
|
|
caps.hyperlinks // OSC 8 support
|
|
caps.images // Kitty/Sixel
|
|
caps.clipboard // OSC 52
|
|
caps.unicode // UTF-8 support
|
|
caps.styled_underline // Curly underlines
|
|
|
|
// Adaptar colores al terminal
|
|
const adapted = termcap.adaptColor(caps, r, g, b);
|
|
```
|
|
|
|
---
|
|
|
|
## STACK TÉCNICO
|
|
|
|
| Componente | Elección |
|
|
|------------|----------|
|
|
| **Lenguaje** | Zig 0.15.2 |
|
|
| **Zig path** | `/mnt/cello2/arno/re/recode/zig/zig-0.15.2/zig-x86_64-linux-0.15.2/zig` |
|
|
| **Backend** | ANSI escape sequences (portable) |
|
|
| **Dependencias** | Solo stdlib de Zig |
|
|
| **Target** | Linux primario, cross-platform compatible |
|
|
|
|
---
|
|
|
|
## EQUIPO Y METODOLOGÍA
|
|
|
|
### Quiénes Somos
|
|
- **Usuario (Arno)**: Desarrollador independiente, proyectos comerciales propios
|
|
- **Claude**: Asistente de programación (Claude Code / Opus 4.5)
|
|
|
|
### Cómo Trabajamos
|
|
- Desarrollo iterativo con commits frecuentes
|
|
- Tests antes de features nuevas
|
|
- Documentación inline con `///` doc comments
|
|
- Código idiomático Zig (snake_case, error handling explícito)
|
|
- Sin dependencias externas
|
|
|
|
### Normas de Trabajo Centralizadas
|
|
|
|
**IMPORTANTE**: Todas las normas de trabajo están en:
|
|
```
|
|
/mnt/cello2/arno/re/recode/TEAM_STANDARDS/
|
|
```
|
|
|
|
**Archivos clave a leer**:
|
|
| Archivo | Descripción |
|
|
|---------|-------------|
|
|
| `LAST_UPDATE.md` | **LEER PRIMERO** - Cambios recientes |
|
|
| `NORMAS_TRABAJO_CONSENSUADAS.md` | Metodología fundamental |
|
|
| `QUICK_REFERENCE.md` | Cheat sheet rápido |
|
|
| `INFRASTRUCTURE/` | Documentación de servidores |
|
|
| `PROJECTS/zcatui.md` | Estado de este proyecto |
|
|
|
|
### Protocolo de Inicio de Conversación
|
|
|
|
1. **Leer** `TEAM_STANDARDS/LAST_UPDATE.md` (detectar cambios)
|
|
2. **Leer** este archivo `CLAUDE.md`
|
|
3. **Verificar** estado (`git status`, `zig build test`)
|
|
4. **Continuar** desde donde se dejó
|
|
|
|
---
|
|
|
|
## CONTROL DE VERSIONES
|
|
|
|
```bash
|
|
# Remote
|
|
git@git.reugenio.com:reugenio/zcatui.git
|
|
|
|
# Estado actual
|
|
git log --oneline -5
|
|
```
|
|
|
|
---
|
|
|
|
## OTROS PROYECTOS DEL ECOSISTEMA
|
|
|
|
### Proyectos Zig
|
|
| Proyecto | Descripción | Ubicación |
|
|
|----------|-------------|-----------|
|
|
| **zcatui** | TUI library (este) | `/mnt/cello2/arno/re/recode/zig/zcatui` |
|
|
| **service-monitor** | Monitor HTTP/TCP | `/mnt/cello2/arno/re/recode/zig/service-monitor` |
|
|
|
|
### Proyectos Go (referencia)
|
|
| Proyecto | Descripción |
|
|
|----------|-------------|
|
|
| **simifactu** | API facturación electrónica |
|
|
| **ms-web** | E-commerce mundisofa |
|
|
| **0fiS** | Aplicación desktop Fyne |
|
|
|
|
### Infraestructura
|
|
| Recurso | Ubicación |
|
|
|---------|-----------|
|
|
| Git server | git.reugenio.com (Forgejo) |
|
|
| Servidor | Simba (188.245.244.244) |
|
|
| Docs infra | `TEAM_STANDARDS/INFRASTRUCTURE/` |
|
|
|
|
---
|
|
|
|
## RECURSOS Y REFERENCIAS
|
|
|
|
### ratatui (Rust) - Referencia principal
|
|
- Repo: https://github.com/ratatui/ratatui
|
|
- Docs: https://docs.rs/ratatui/latest/ratatui/
|
|
- Website: https://ratatui.rs/
|
|
|
|
### Zig
|
|
- Docs 0.15: https://ziglang.org/documentation/0.15.0/std/
|
|
- Guía migración: `TEAM_STANDARDS/INFRASTRUCTURE/ZIG_0.15_GUIA.md`
|
|
|
|
### ANSI Escape Codes
|
|
- https://en.wikipedia.org/wiki/ANSI_escape_code
|
|
- https://gist.github.com/fnky/458719343aabd01cfb17a3a4f7296797
|
|
|
|
---
|
|
|
|
## HISTORIAL DE DESARROLLO
|
|
|
|
### 2025-12-08 - v2.0 (FEATURE COMPLETE)
|
|
|
|
**Nuevos módulos:**
|
|
- `focus.zig` - Focus management global (FocusRing, FocusManager)
|
|
- `theme.zig` - Sistema de themes (10 themes predefinidos)
|
|
- `unicode.zig` - Unicode width calculation (wcwidth)
|
|
- `termcap.zig` - Terminal capability detection
|
|
|
|
**Tests:**
|
|
- Suite de tests exhaustiva en `src/tests/`
|
|
- 186+ tests pasando
|
|
- Cobertura de widgets, layout, themes, focus
|
|
|
|
**Correcciones Zig 0.15:**
|
|
- `style.fg` → `style.foreground`
|
|
- `std.time.sleep` → `std.Thread.sleep`
|
|
- `Cell.char` → `Cell.symbol`
|
|
- Tipo `i2` → `i8` para charWidth
|
|
|
|
### 2025-12-08 - v1.4 (Form widgets + Panels)
|
|
|
|
**Widgets nuevos:**
|
|
- Checkbox, RadioGroup, CheckboxGroup
|
|
- Select, MultiSelect
|
|
- Slider, RangeSlider
|
|
- StatusBar, Toast, ToastManager
|
|
- Panel, PanelSplit, TabbedPanel, DockingPanel
|
|
|
|
**Features:**
|
|
- Tooltip + TooltipManager
|
|
- Tree widget
|
|
- FilePicker
|
|
- ScrollView, VirtualList, InfiniteScroll
|
|
|
|
### 2025-12-08 - v1.3 (Menus + Modals)
|
|
|
|
**Widgets nuevos:**
|
|
- Input (readline-style)
|
|
- Popup, Modal
|
|
- Menu, MenuBar, ContextMenu
|
|
|
|
**Sistemas:**
|
|
- Animation system (easing, timer, groups)
|
|
- Clipboard (OSC 52)
|
|
- Hyperlinks (OSC 8)
|
|
- Notifications (OSC 9/777)
|
|
- Images (Kitty/iTerm2)
|
|
|
|
### 2025-12-08 - v1.2 (Eventos)
|
|
- Sistema de eventos crossterm-style
|
|
- EventReader con polling
|
|
- Parser de escape sequences
|
|
- Cursor control
|
|
|
|
### 2025-12-08 - v1.1 (Performance)
|
|
- Symbol type compacto
|
|
- Buffer diff rendering
|
|
- Optimizaciones
|
|
|
|
### 2025-12-08 - v1.0 (Implementación inicial)
|
|
- 13 widgets base (ratatui equivalents)
|
|
- Sistema de símbolos
|
|
- 103+ tests iniciales
|
|
|
|
### 2025-12-08 - Inicio
|
|
- Creación del proyecto
|
|
- Definición de arquitectura
|
|
|
|
---
|
|
|
|
## NOTAS PARA PRÓXIMAS CONVERSACIONES
|
|
|
|
### Estado del Proyecto
|
|
- **Librería COMPLETA** - Todas las funcionalidades implementadas
|
|
- **Tests pasando** - 186+ tests
|
|
- **Documentación completa** - README.md, docs/, CLAUDE.md
|
|
|
|
### Posibles Mejoras Futuras (opcionales)
|
|
- Performance: SIMD para operaciones de buffer
|
|
- Más examples específicos
|
|
- Tutorial paso a paso
|
|
- Publicación en package registry
|
|
|
|
### Cosas a Recordar
|
|
- Zig 0.15.2 tiene cambios de API respecto a versiones anteriores
|
|
- El path del compilador está en `/mnt/cello2/arno/re/recode/zig/zig-0.15.2/`
|
|
- TEAM_STANDARDS contiene todas las normas de trabajo del equipo
|
|
- El usuario prefiere commits descriptivos con emoji 🤖
|
|
- Siempre verificar `zig build test` antes de commit
|
|
|
|
---
|
|
|
|
## QUICK REFERENCE
|
|
|
|
```bash
|
|
# Build & Test
|
|
zig build
|
|
zig build test
|
|
|
|
# Run examples
|
|
zig build hello
|
|
zig build dashboard
|
|
|
|
# Git
|
|
git status
|
|
git add -A && git commit -m "mensaje"
|
|
git push
|
|
|
|
# Paths importantes
|
|
/mnt/cello2/arno/re/recode/zig/zcatui/ # Este proyecto
|
|
/mnt/cello2/arno/re/recode/TEAM_STANDARDS/ # Normas trabajo
|
|
/mnt/cello2/arno/re/recode/zig/zig-0.15.2/... # Compilador Zig
|
|
```
|