res-edit: proof-of-concept port from Bubble Tea to Limoni #30
Labels
No labels
harness
proj-core-console
proj-core-demo
proj-core-edit
proj-core-init
proj-core-lib
proj-core-login
proj-core-res
proj-core-sh
proj-core-theme
proj-docs
proj-extra-calc
proj-extra-code
proj-extra-playbook
proj-extra-sheets
proj-harness
proj-os
residual
tier-0-trivial
tier-1-easy
tier-2-medium
tier-3-hard
tier-4-major
tier-5-epic
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
residual/.agent#30
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
Proof-of-concept port of res-edit from Bubble Tea + lipgloss to the Limoni TUI library, to evaluate Limoni as the UI foundation for residual tools.
Why Limoni
uitestheadless testing lets agents and CI drive the editor without a real terminal.Scope
core/lib/edit: decoupleEditorfromtea.Model(Init/Update/View) and lipgloss rendering. Buffer/highlight logic stays untouched; only the tea/lipgloss glue is replaced with a Limoni Draw-function mapping.core/cmd/res-edit: rewrite the app model (keys, command palette, help overlay, status bar) for Limoni.limoni-res-edit.Acceptance
go build ./...,go vet ./...,go test ./...green incore/.CGO_ENABLED=0static binary builds.Out of scope
PoC complete —
limoni-res-editpushedThe port is done and verified on branch
limoni-res-edit(not merged, no PR opened).Ported:
lib/edit:Editordecoupled fromtea.Model; lipgloss →cell.Stylewith the exact amber hexes;View() string→DrawEditor(f, x, y, w, h); newHandleMouse. Buffer/highlight/config logic untouched.cmd/res-edit: Bubble Tea model → Limoni Draw function; full key dispatch onlimoni.KeyEvent(Ctrl chords viak.Ctrl); Limoni-native command palette (lib/cmd/uiis bubbletea-based and shared — left untouched); help overlay; status bar.Verified:
go build/go vet/go testgreen forlib/editandcmd/res-edit;CGO_ENABLED=0→ 10MB static ELF; headless uitest (open → type → Ctrl+S → verify on disk → Ctrl+X). Ctrl-only bindings, no Alt.lib/logtest failures confirmed pre-existing on base.Finds:
.gitignorebug (bareres-editentry was ignoring new files undercmd/res-edit/; anchored to/res-edit).limoni/core/driverdirectly. Worth flagging upstream.lib/cmd/ui,lib/tui/overlay,lib/tui/theme) still bubbletea-based; res-code will need its own Limoni chrome.