A terminal client for Tangled.
tui go tangled cli
5

Configure Feed

Select the types of activity you want to include in your feed.

cli: add rkey column to list output and register issue view command

Aly Raffauf (Jul 8, 2026, 12:00 PM EDT) 90885a48 370174a1

+13 -5
+1
internal/cli/issue_list.go
··· 115 115 } 116 116 117 117 rows = append(rows, listRow{ 118 + rkey: extractRKey(item.URI), 118 119 title: title, 119 120 state: item.State, 120 121 author: resolveAuthor(ctx, extractDID(item.URI)),
-3
internal/cli/pr_checkout.go
··· 82 82 }, 83 83 } 84 84 85 - // findPullByRKey searches a pull list for the item matching rkey, 86 - // decodes its record, and returns the record plus the author DID 87 - // extracted from the item's URI. 88 85 func findPullByRKey(items []tangled.PullListItem, rkey string) (*tangled.PullRecord, string, error) { 89 86 for _, item := range items { 90 87 if !strings.HasSuffix(item.URI, "/"+rkey) {
+1
internal/cli/pr_list.go
··· 65 65 } 66 66 67 67 rows = append(rows, listRow{ 68 + rkey: extractRKey(item.URI), 68 69 title: title, 69 70 state: item.State, 70 71 author: resolveAuthor(ctx, extractDID(item.URI)),
+1
internal/cli/root.go
··· 45 45 46 46 rootCmd.AddCommand(issueCmd) 47 47 issueCmd.AddCommand(issueListCmd) 48 + issueCmd.AddCommand(issueViewCmd) 48 49 49 50 rootCmd.AddCommand(prCmd) 50 51 prCmd.AddCommand(prListCmd)
+10 -2
internal/cli/rows.go
··· 12 12 13 13 // listRow is display-ready data for one issue or PR. 14 14 type listRow struct { 15 + rkey string 15 16 title string 16 17 state string 17 18 author string ··· 44 45 } 45 46 46 47 tw := tabwriter.NewWriter(os.Stdout, 0, 0, 3, ' ', tabwriter.TabIndent) 47 - fmt.Fprintln(tw, "TITLE\tSTATE\tAUTHOR\tUPDATED") 48 + fmt.Fprintln(tw, "RKEY\tTITLE\tSTATE\tAUTHOR\tUPDATED") 48 49 49 50 for _, row := range rows { 50 - fmt.Fprintf(tw, "%s\t%s\t%s\t%s\n", row.title, row.state, row.author, row.updated) 51 + fmt.Fprintf(tw, "%s\t%s\t%s\t%s\t%s\n", row.rkey, row.title, row.state, row.author, row.updated) 51 52 } 52 53 tw.Flush() 53 54 } ··· 57 58 did, _, _ := strings.Cut(uri, "/") 58 59 return did 59 60 } 61 + 62 + func extractRKey(uri string) string { 63 + if idx := strings.LastIndex(uri, "/"); idx != -1 { 64 + return uri[idx+1:] 65 + } 66 + return uri 67 + }