Normalize single-line review ranges · Entire

Normalize single-line review ranges

94d534b→main·

dipree·3w ago·2 files·+19 added/-1 removed

Sessions

1d456b8e8294View transcript

[?
Review Range Handling and Timeout ClassificationPi·GPT-5.5·3 steps](/content/gh/entireio/cli/session/019ee08c-a5ac-7745-9a1c-53e23fc07061#timeline-1d456b8e8294/index.html)

Changes

2

177 unmodified lines

178
179
180
181
181
182
183
184
185
186
187
188
189

177 unmodified lines

return api.TrailReviewLocationCreateRequest{Granularity: reviewTrailGranularityLine, FilePath: stringPtr(filePath), StartLine: &loc.StartLine}
 }
 case reviewTrailGranularityRange:
 if filePath != "" && loc.StartLine > 0 && loc.EndLine >= loc.StartLine {
 if filePath != "" && loc.StartLine > 0 && loc.EndLine > loc.StartLine {
 return api.TrailReviewLocationCreateRequest{Granularity: reviewTrailGranularityRange, FilePath: stringPtr(filePath), StartLine: &loc.StartLine, EndLine: &loc.EndLine}
 }
 if filePath != "" && loc.StartLine > 0 && loc.EndLine == loc.StartLine {
 return api.TrailReviewLocationCreateRequest{Granularity: reviewTrailGranularityLine, FilePath: stringPtr(filePath), StartLine: &loc.StartLine}
 }
 case reviewTrailGranularityFile:
 if filePath != "" {
 return api.TrailReviewLocationCreateRequest{Granularity: reviewTrailGranularityFile, FilePath: stringPtr(filePath)}

Mcmd/entire/cli/review_bridge.go+4/-1

145 unmodified lines

146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166

145 unmodified lines

}
}

func TestReviewTrailLocationFromJSON_SingleLineRangeBecomesLine(t *testing.T) {
 loc := reviewTrailLocationFromJSON(reviewTrailJSONLocation{
 Granularity: "range",
 FilePath: "src/app.ts",
 StartLine: 42,
 EndLine: 42,
 })
 if loc.Granularity != "line" {
 t.Fatalf("granularity = %q, want line", loc.Granularity)
 }
 if loc.FilePath == nil || *loc.FilePath != "src/app.ts" || loc.StartLine == nil || *loc.StartLine != 42 || loc.EndLine != nil {
 t.Fatalf("location = %+v, want single-line location at src/app.ts:42", loc)
 }
}

func TestSplitReviewVerdictFindingsNumberedList(t *testing.T) {
 items := splitReviewVerdictFindings("Verdict\n\n1. First\n2. Second")
 if len(items) != 2 || items[0] != "First" || items[1] != "Second" {