From 800223757c373073b43ed4f7f86ed3d8a2639075 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 24 Feb 2026 13:51:21 +0000 Subject: [PATCH] docs: archive completed frame-bubbletea plan Move frame-bubbletea design and plan to docs/plans/completed/ with completion summary. Frame now implements tea.Model with full bubbletea lifecycle. Co-Authored-By: Claude Opus 4.6 --- ...-02-22-frame-bubbletea-design-original.md} | 0 ...26-02-22-frame-bubbletea-plan-original.md} | 0 docs/plans/completed/frame-bubbletea.md | 39 +++++++++++++++++++ 3 files changed, 39 insertions(+) rename docs/plans/{2026-02-22-frame-bubbletea-design.md => completed/2026-02-22-frame-bubbletea-design-original.md} (100%) rename docs/plans/{2026-02-22-frame-bubbletea-plan.md => completed/2026-02-22-frame-bubbletea-plan-original.md} (100%) create mode 100644 docs/plans/completed/frame-bubbletea.md diff --git a/docs/plans/2026-02-22-frame-bubbletea-design.md b/docs/plans/completed/2026-02-22-frame-bubbletea-design-original.md similarity index 100% rename from docs/plans/2026-02-22-frame-bubbletea-design.md rename to docs/plans/completed/2026-02-22-frame-bubbletea-design-original.md diff --git a/docs/plans/2026-02-22-frame-bubbletea-plan.md b/docs/plans/completed/2026-02-22-frame-bubbletea-plan-original.md similarity index 100% rename from docs/plans/2026-02-22-frame-bubbletea-plan.md rename to docs/plans/completed/2026-02-22-frame-bubbletea-plan-original.md diff --git a/docs/plans/completed/frame-bubbletea.md b/docs/plans/completed/frame-bubbletea.md new file mode 100644 index 00000000..9a0d09f2 --- /dev/null +++ b/docs/plans/completed/frame-bubbletea.md @@ -0,0 +1,39 @@ +# Frame Bubbletea Upgrade — Completion Summary + +**Completed:** 22 February 2026 +**Module:** `forge.lthn.ai/core/cli` +**Status:** Complete — Frame implements tea.Model with full bubbletea lifecycle + +## What Was Built + +Upgraded the Frame layout system from a static HLCRF renderer to a full +bubbletea `tea.Model` with lifecycle management, keyboard handling, and +panel navigation. + +### Key changes + +- **Frame implements `tea.Model`** — `Init()`, `Update()`, `View()` lifecycle +- **`KeyMap`** — configurable keybindings with default set (quit, navigate, + help, focus cycling) +- **`Navigate(name)` / `Back()`** — panel switching with history stack +- **Focus management** — Tab/Shift-Tab cycles focus between visible models +- **lipgloss layout** — HLCRF regions (Header, Left, Content, Right, Footer) + rendered with lipgloss instead of raw ANSI +- **`FrameModel` interface** — models register with `Frame.Header()`, + `.Content()`, `.Footer()` etc., receiving focus/blur/resize messages + +### Tests + +Navigate/Back stack tests, focus cycling, key dispatch, resize propagation. +All passing with `-race`. + +### Dependencies + +- `github.com/charmbracelet/bubbletea` +- `github.com/charmbracelet/lipgloss` + +### Consumer + +`go-blockchain/cmd/chain/` is the first consumer — TUI dashboard uses +Frame with StatusModel (header), ExplorerModel (content), KeyHintsModel +(footer).