Documentation
¶
Overview ¶
Package board is the quests app: the standalone TUI "board" launched in a shell pane. It groups the store's quests (on the board / drafts / turned in), renders each row with the terminal renderer's RenderListRow and the selected quest with RenderDetail in a scrollable viewport, and drives the human-only actions (check / edit / open / approve / done). It is modelled on internal/picker. wip rows are shown but excluded from the attachable set.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Commands ¶
type Commands struct {
// Open opens the quest's HTML in the browser; Edit edits its JSON; Check
// runs its auto gates and writes the sidecar. Each returns a tea.Cmd that
// should emit ReloadCmd when the board needs to refresh.
Open func(id string) tea.Cmd
Edit func(id string) tea.Cmd
Check func(id string) tea.Cmd
// OpenURL opens a related entry's url with the OS opener (read-only).
OpenURL func(url string) tea.Cmd
}
Commands are the board's injected side effects. Any may be nil in tests that only exercise grouping/selection/transitions.
type Model ¶
type Model struct {
// contains filtered or unexported fields
}
Model is the Bubble Tea model for the quests board.
func NewModel ¶
func NewModel(s store, runtimeFor RuntimeFunc, cmds Commands) Model
NewModel builds a board model.
func (Model) AttachableQuests ¶
AttachableQuests is the selectable set for spawn/attach: active only. wip and done are excluded even though they show on the board.
type RuntimeFunc ¶
RuntimeFunc returns the derived runtime (sessions on the quest) for a quest id. Injected so the board never imports the session-scan layer directly and stays unit-testable.