vxui

package
v0.15.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 14, 2026 License: MIT Imports: 35 Imported by: 0

Documentation

Overview

Package vxui is memcode's interactive renderer, built on vaxis's Elm-style `ui` framework (StatefulWidget/State/Build/HandleEvent). It replaces the Bubble Tea fork: the live region (status · composer · footer, plus menus/prompts) is a widget tree that the framework lays out and paints every frame, and durable output goes to native scrollback via EventContext.AppendString. The framework owns the cursor/region bookkeeping, so the inline-render glitch class (and the ShowCursor scrollback-erase bug) cannot occur. Engine output and HITL prompts arrive on other goroutines and are marshalled onto the UI thread with Runtime().Dispatch (goroutine-safe via PostEvent).

Package vxui holds the vaxis-based renderer spike for memcode's TUI migration. It exists to prove, with real compiling/passing code, that vaxis PrimaryScreen gives memcode the model it needs (a persistent themed live region + durable native scrollback, no cursor probes) AND that memcode's existing lipgloss-styled output renders correctly.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NormalizeSGR

func NormalizeSGR(s string) string

NormalizeSGR rewrites lipgloss-style SGR sequences into the form vaxis's styled-string parser understands. lipgloss emits extended colors in the legacy SEMICOLON encoding — ESC[38;2;R;G;Bm (truecolor) and ESC[38;5;Nm (256) — but vaxis only reads the ITU COLON-subparameter form (ESC[38:2:R:G:Bm) for 38/48/58. Without this conversion vaxis would mis-parse a lipgloss truecolor run (the "2" becomes faint, the channels become garbage, the foreground never sets), silently dropping every theme color.

It only joins the 38/48/58 color runs; attributes and the basic 30-37/90-97 colors are single params and pass through untouched. Text outside ESC[…m sequences is copied verbatim.

func Run

func Run(ctx context.Context, sess *runtime.Session, themeName string) error

Run starts the interactive renderer and blocks until the user quits.

Types

This section is empty.

Directories

Path Synopsis
Command vxspike proves vaxis PrimaryScreen is the right foundation for memcode's TUI: a persistent, themed, DYNAMICALLY-SIZED live region (status bar + composer, and an expandable menu) with durable native scrollback above it — and no cursor probes, so the glitch class the fork fights simply can't occur.
Command vxspike proves vaxis PrimaryScreen is the right foundation for memcode's TUI: a persistent, themed, DYNAMICALLY-SIZED live region (status bar + composer, and an expandable menu) with durable native scrollback above it — and no cursor probes, so the glitch class the fork fights simply can't occur.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL