Skip to content

Add ant tui, a terminal browser over the URI namespace#5

Merged
tamnd merged 3 commits into
mainfrom
tui-terminal-console
Jun 14, 2026
Merged

Add ant tui, a terminal browser over the URI namespace#5
tamnd merged 3 commits into
mainfrom
tui-terminal-console

Conversation

@tamnd

@tamnd tamnd commented Jun 14, 2026

Copy link
Copy Markdown
Owner

What

Adds ant tui, a full-screen terminal browser over the URI namespace, as
the third human surface beside the CLI and the web console.

Like the web console, the TUI adds no data capability of its own. Every
screen is a thin render of an ant.Engine method reached through the
Deref seam, so the whole program is testable against a network-free
fake.

Screens

  • dashboard — the domain index, the landing screen
  • domain — one driver's home: identity, example records, what is cached
  • resource — the dereferenced record, with data / body / raw modes and a links pane
  • collectionls members of a collection URI
  • links — the outbound edges of a record
  • search — a domain's search, seedable with a query
  • graphwalk to a depth, shown as an indented tree and as DOT
  • browse — the on-disk cache as a navigable tree

An omnibox (:) resolves a bare id, handle, URL, or URI, and understands
the browse / domain / search / ls / graph / links verbs.

Behavior

  • The App owns a back / forward screen stack, so going back restores a
    screen exactly as it was left. Screens never touch the stack; they emit
    navigate / push / back messages and the App is the only mutator.
  • Reads are cache-first: a screen paints instantly from Lookup and fills
    in from a background Dereference on a miss or refresh, with all IO off
    the render loop.
  • Data results are broadcast to every screen, so a prefetch reaches a
    background screen too.
  • A focused text field (omnibox, browse filter, search query) captures all
    keys; only ctrl+c escapes.

Built on the Bubble Tea v2 stack (bubbletea / bubbles / lipgloss v2,
glamour for Markdown). Wired as ant tui [uri] between serve and mcp.

Tests

New tui package tests run every screen and the app/flow logic against a
fake Deref with a cold/warm toggle: dashboard listing, cache-first
paint, cold dereference, mode cycling, copy, graph tree/DOT toggle, browse
folders and grouping, omnibox verbs, the back/forward stack, global keys,
and the render helpers. go build, go vet, and go test ./... are all
green.

tamnd added 3 commits June 14, 2026 21:09
The third human surface beside the CLI and the web console. tui opens a
full-screen, keyboard-driven browser over the whole resource-URI
namespace, built on Bubble Tea v2. Like the web console it adds no data
capability of its own: every screen is a thin render of an ant.Engine
method reached through a Deref seam, so the program is fully testable
against a network-free fake.

Screens: dashboard (domain index), domain home, resource (the
dereferenced record with data/body/raw modes and a links pane),
collection (ls members), links, search, graph (indented tree plus a DOT
view), and browse (the on-disk cache as a navigable tree). An omnibox
(:) resolves a bare id, handle, URL, or URI, and understands the
browse/domain/search/ls/graph/links verbs. The App owns a back/forward
screen stack so going back restores a screen exactly as it was left.

Reads are cache-first: a screen paints instantly from Lookup and fills
in from a background Dereference on a miss or refresh, with all IO off
the render loop. Wire it as `ant tui [uri]` between serve and mcp.
The linter flagged three unused functions left over from earlier drafts:
shortID, navigateFresh, and the replace command builder (the resource
refresh issues its dereference directly, and screens never replaced
in place). Remove them. Also run go mod tidy, which prunes the stale
cellbuf v0.0.13 sum lines superseded by v0.0.15.
Document ant tui in the docs release-notes section, matching the v0.2.0
narrative: the screens, the omnibox, the back/forward stack, and the
cache-first read path it shares with the web console. Bump the v0.2.0
page weight so the newest notes sort first.
@tamnd tamnd merged commit 56d0be1 into main Jun 14, 2026
7 checks passed
@tamnd tamnd deleted the tui-terminal-console branch June 14, 2026 15:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant