aragonite

module
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Aug 27, 2026 License: MIT

README

aragonite

Shared Go packages for kyleking's terminal tools. Aragonite is the mineral coral skeletons are built from, which puts it alongside calcipy and corallium.

Extracted from gh-repo-dashboard rather than designed up front, so every package here has at least one real consumer.

Every package holds data and predicates only. Anything that emits a glyph, a placeholder, or a human-readable duration stays with the tool that renders it, because two tools reading the same checkout render it differently.

Packages

Package What it holds
cache Generic TTL cache with a disk store, a registry for package-level caches, and remote-scoped keys so parallel checkouts of one remote share a read
forge The pull request model shared by every tool that reads a code host: PullRequest, its detail and preview forms, checks, and workflow runs
forge/github GitHub through the gh CLI: pull requests, reviews, comments, search, workflow runs, and the caches typed on them. A second host is a sibling directory, not a rename
transport A test seam and mutation guard for an http.RoundTripper-based API client: register a fake transport in tests, or get a guard that panics on a real mutating request when none is registered
vcs git and jj behind one interface, with the working-tree summary, branches, commits, stashes, worktrees, diff, checkout identity, and stamp

Planned, once a second consumer needs them:

Package Source Why it is shared
filter gh-repo-dashboard internal/filters The predicate, query, and sort engine behind both tools' pull request lists
tui/table gh-repo-dashboard internal/ui/table Already depends on nothing but lipgloss and uniseg
codeintel wavez internal/codeintel Symbols, edges, FTS, and line-to-test coverage in SQLite

Generic TUI helpers start under tui/. They only earn their own module if something that is not a git tool needs them.

Consumers

Local development

Consumers use a go.work pointing at a sibling checkout, so nothing has to be published to iterate across repos. go.work is gitignored.

cd second-look && go work init . ../aragonite

docs/extraction.md records what the first extraction taught, so the next one costs less.

Directories

Path Synopsis
Package cache provides a generic in-memory TTL cache used to avoid redundant gh/git/jj calls across TUI refreshes.
Package cache provides a generic in-memory TTL cache used to avoid redundant gh/git/jj calls across TUI refreshes.
Package forge holds the pull request model shared by every tool that reads a code host.
Package forge holds the pull request model shared by every tool that reads a code host.
github
Package github wraps the gh CLI to fetch pull request and workflow run data.
Package github wraps the gh CLI to fetch pull request and workflow run data.
Package transport gives an HTTP-based API client (go-gh's REST/GraphQL clients, or anything else built on http.RoundTripper) a test seam and a safety net in one: a fake transport tests can register, and a guard that panics on a real mutating request reaching the network when no fake is registered.
Package transport gives an HTTP-based API client (go-gh's REST/GraphQL clients, or anything else built on http.RoundTripper) a test seam and a safety net in one: a fake transport tests can register, and a guard that panics on a real mutating request reaching the network when no fake is registered.
Package vcs abstracts git and jj repository operations behind a common Operations interface.
Package vcs abstracts git and jj repository operations behind a common Operations interface.

Jump to

Keyboard shortcuts

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