# chore(lint): drop all //nolint:ireturn directives via allow-list

`83c4c3b` ·

toothbrush · 3w ago · 7 files · +10 added/-8 removed

ireturn directives fought with gofmt/nolintlint: depending on the golangci-lint version the directive was either flagged as unused or required again. Keep the linter enabled (still guards new code) but move the 7 inline directives into the .golangci.yaml allow-list: bubbletea/v2.Msg, huh/v2.Theme, checkpoint.CommittedStore, checkpoint.TemporaryStore. summarize.Generator was already allowed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

## Sessions

b4ce64fa3570View transcript

## Changes

7

- M.golangci.yaml +4

- cmd/entire/cli

- M activity_tui.go +1/-1

- M attach.go +1/-1

- M checkpoint

- M open.go +1/-1

- strategy

- M manual_commit.go +2/-2

- M manual_commit_condensation.go +1/-1

- uiform

- M uiform.go -2

``` 
113 unmodified lines

114
115
116
117
118
119
120
121
2 unmodified lines

124
125
126
127
128
129
130
131

113 unmodified lines

- empty
        - stdlib
        - charm.land/bubbletea/v2.Model
        - charm.land/bubbletea/v2.Msg
        - charm.land/huh/v2.Theme
        - grpc.DialOption
        - github.com/entireio/cli/cmd/entire/cli/summarize.Generator
        - github.com/entireio/cli/cmd/entire/cli/agent..+
2 unmodified lines

- github.com/entireio/cli/cmd/entire/cli/review/types.AgentReviewer
        - github.com/entireio/cli/cmd/entire/cli/review.SynthesisProvider
        - github.com/entireio/cli/cmd/entire/cli/checkpoint.CommittedReader
        - github.com/entireio/cli/cmd/entire/cli/checkpoint.CommittedStore
        - github.com/entireio/cli/cmd/entire/cli/checkpoint.TemporaryStore
        - github.com/entireio/cli/cmd/entire/cli/strategy.Strategy
        - github.com/entireio/cli/internal/entireclient/tokenstore.store
        - github.com/go-git/go-git/v6/x/plugin.Signer
```

M.golangci.yaml +4

```
69 unmodified lines

70
71
72
73
73
74
75
76

69 unmodified lines

return nil
}

func (m activityModel) fetchData() tea.Msg { //nolint:ireturn // bubbletea Cmd signature requires tea.Msg return
func (m activityModel) fetchData() tea.Msg {
    activity, commits, err := fetchActivityData(m.ctx, m.client)
    if err != nil {
        return activityErrMsg{err: err}
    }
```

M cmd/entire/cli/activity_tui.go +1/-1

```
61 unmodified lines

62
63
64
65
65
66
67
68

61 unmodified lines

// openAttachStore opens the committed store for the resolved topology. refs is
// passed explicitly so attach preserves PrimaryAsRead() pinning.
func openAttachStore(ctx context.Context, repo *git.Repository, refs cpkg.CommittedRefs) (cpkg.CommittedStore, error) { //nolint:ireturn // committed store capability preserves attach's read-ref override
func openAttachStore(ctx context.Context, repo *git.Repository, refs cpkg.CommittedRefs) (cpkg.CommittedStore, error) {
    stores, err := cpkg.Open(ctx, repo, cpkg.OpenOptions{Refs: &refs})
    if err != nil {
        return nil, fmt.Errorf("open checkpoint store: %w", err)
    }
```

M cmd/entire/cli/attach.go +1/-1

```
54 unmodified lines

55
56
57
58
58
59
60
61

54 unmodified lines

// Temporary returns the git-backed temporary shadow-branch store.
func (s *Stores) Temporary() TemporaryStore { return s.temporary } //nolint:ireturn // temporary store capability is the abstraction boundary
func (s *Stores) Temporary() TemporaryStore { return s.temporary }

// Refs returns the resolved committed-ref topology.
func (s *Stores) Refs() CommittedRefs { return s.refs }
```

M cmd/entire/cli/checkpoint/open.go +1/-1

```
51 unmodified lines

52
53
54
55
55
56
57
58
3 unmodified lines

62
63
64
65
65
66
67
68

51 unmodified lines

// topology. Writes target refs.Primary; reads target refs.Read. The strategy's
// blob fetcher is wired in so reads can fetch blobs on demand after a treeless
// fetch.
func (s *ManualCommitStrategy) getCheckpointStore(ctx context.Context, repo *git.Repository) (checkpoint.CommittedStore, error) { //nolint:ireturn // committed store capability is the abstraction boundary
func (s *ManualCommitStrategy) getCheckpointStore(ctx context.Context, repo *git.Repository) (checkpoint.CommittedStore, error) {
    stores, err := s.getCheckpointStores(ctx, repo)
    if err != nil {
        return nil, err
    }
3 unmodified lines

// getTemporaryStore returns the git-backed shadow-branch store with the
// strategy's blob fetcher wired in.
func (s *ManualCommitStrategy) getTemporaryStore(ctx context.Context, repo *git.Repository) (checkpoint.TemporaryStore, error) { //nolint:ireturn // temporary store capability is the abstraction boundary
func (s *ManualCommitStrategy) getTemporaryStore(ctx context.Context, repo *git.Repository) (checkpoint.TemporaryStore, error) {
    stores, err := s.getCheckpointStores(ctx, repo)
    if err != nil {
        return nil, err
    }
```

M cmd/entire/cli/strategy/manual_commit.go +2/-2

```
532 unmodified lines

533
534
535
536
536
537
538
539

532 unmodified lines

// The return type is the summarize.Generator interface rather than the concrete
// adapter pointer so callers can't accidentally hold a non-nil interface that
// wraps a nil pointer (the classic Go nil-interface footgun).
func buildSummaryGenerator(ctx context.Context) summarize.Generator { //nolint:ireturn,nolintlint // interface return is intentional for provider abstraction and nil-safety; nolintlint flagged as "unused" under some linter versions but ireturn fires in others
func buildSummaryGenerator(ctx context.Context) summarize.Generator {
    s, err := settings.Load(ctx)
    if err != nil {
        // Warn (not Debug): this is the auto-summarize hot path on every commit.
```

M cmd/entire/cli/strategy/manual_commit_condensation.go +1/-1

```
19 unmodified lines

20
21
22
23
24
23
24
25

19 unmodified lines

// Theme returns Entire's standard huh theme.
//
//nolint:ireturn // huh.Theme is an interface in v2
func Theme() huh.Theme {
    return huh.ThemeFunc(huh.ThemeDracula)
}
```

M cmd/entire/cli/uiform/uiform.go -2
