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
cmd/entire/cli
Mreview_bridge.go+4/-1
- Mreview_bridge_test.go+15
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" {