From 2e20cb9f11cb3197e735293e2d501808d8aaf7dd Mon Sep 17 00:00:00 2001 From: Vincent Koc Date: Sat, 2 May 2026 16:47:18 -0700 Subject: [PATCH] fix(tui): apply default guild scope --- internal/cli/cli_test.go | 15 +++++++++++++++ internal/cli/tui_commands.go | 13 ++++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/internal/cli/cli_test.go b/internal/cli/cli_test.go index e0f3efd..ff26d3b 100644 --- a/internal/cli/cli_test.go +++ b/internal/cli/cli_test.go @@ -76,6 +76,21 @@ func TestStatusSearchSQLAndListings(t *testing.T) { NormalizedContent: "panic locked database", RawJSON: `{}`, })) + require.NoError(t, s.UpsertGuild(ctx, store.GuildRecord{ID: "g2", Name: "Other Guild", RawJSON: `{}`})) + require.NoError(t, s.UpsertChannel(ctx, store.ChannelRecord{ID: "c2", GuildID: "g2", Kind: "text", Name: "random", RawJSON: `{}`})) + require.NoError(t, s.UpsertMessage(ctx, store.MessageRecord{ + ID: "m-other", + GuildID: "g2", + ChannelID: "c2", + ChannelName: "random", + AuthorID: "u2", + AuthorName: "Outside", + MessageType: 0, + CreatedAt: time.Now().UTC().Add(-time.Hour).Format(time.RFC3339Nano), + Content: "outside default guild", + NormalizedContent: "outside default guild", + RawJSON: `{}`, + })) require.NoError(t, s.UpsertMessage(ctx, store.MessageRecord{ ID: "m2", GuildID: "g1", diff --git a/internal/cli/tui_commands.go b/internal/cli/tui_commands.go index 254a421..fd69d95 100644 --- a/internal/cli/tui_commands.go +++ b/internal/cli/tui_commands.go @@ -43,7 +43,7 @@ func (r *runtime) runTUI(args []string) error { if *limit <= 0 { return usageErr(errors.New("tui --limit must be positive")) } - guildIDs, err := directMessageGuildScope(*dm, *guildFlag, *guildsFlag) + guildIDs, err := r.resolveTUIGuilds(*dm, *guildFlag, *guildsFlag) if err != nil { return usageErr(err) } @@ -82,6 +82,17 @@ func (r *runtime) runTUI(args []string) error { }) } +func (r *runtime) resolveTUIGuilds(dm bool, guild, guilds string) ([]string, error) { + guildIDs, err := directMessageGuildScope(dm, guild, guilds) + if err != nil || dm || len(guildIDs) > 0 { + return guildIDs, err + } + if defaultGuild := r.cfg.EffectiveDefaultGuildID(); defaultGuild != "" { + return []string{defaultGuild}, nil + } + return nil, nil +} + func (r *runtime) archiveSourceKind() string { if strings.TrimSpace(r.cfg.Share.Remote) != "" { return tui.SourceRemote