feat: add public format package for issue rendering#2871
Merged
Conversation
Exposes issue formatting functions that were previously internal to the bd CLI (cmd/bd/list_format.go). Consumers like gt can now render issue output identically to bd without shelling out. Public functions: - PrettyIssue: one-line list format (status icon + ID + priority + title) - CompactIssue: with assignee, labels, dependency annotations - LongIssue: full detail with description - DependencyInfo: "(parent: X, blocked by: Y, blocks: Z)" string - StatusIcon: raw icon character without styling - ListSummary: footer with total and status breakdown Uses internal/ui for consistent styling (colors, muted, icons). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Tests for StatusIcon, DependencyInfo, PrettyIssue (open, epic, closed), LongIssue (with assignee, labels, description), and ListSummary. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
❌ 6 Tests Failed:
View the top 3 failed test(s) by shortest run time
To view more test analytics, go to the Test Analytics Dashboard |
7 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Expose issue formatting functions as a public
formatpackage. These were previously internal to the bd CLI (cmd/bd/list_format.go). Consumers like gt can now render issue output identically to bd without shelling out.Public API
PrettyIssue(issue)— one-line list format (status icon + ID + priority + title)CompactIssue(issue, labels, blockedBy, blocks, parent)— with annotationsLongIssue(issue, labels)— full detail with descriptionDependencyInfo(blockedBy, blocks, parent)— dependency annotation stringStatusIcon(status)— raw icon characterListSummary(total, byCounts)— footer with countsMotivation
gt (gastownhall/gastown#3166) needs to render bead output without shelling out to bd. This package provides the same formatting bd uses internally, ensuring consistent output across both tools.
Tracked as gt-hqvbg.
Test plan
go build ./...clean🤖 Generated with Claude Code