avoid ambiguous review findings handles · Entire
avoid ambiguous review findings handles
de60a63→main· pfleidi·2w ago·2 files·+98 added/-7 removed
Prefer timestamp handles in generated review findings commands when session handles may be shared across saved manifests.
This keeps advertised view commands usable even after re-reviewing the same source session.
Sessions
ed909b22b352View transcript
Changes
2
cmd/entire/cli/review
Mfix.go+43/-7
Mmanifest_test.go+55
111 unmodified lines
func writeReviewCompletionFooter(w io.Writer, manifest LocalReviewManifest) {
fmt.Fprintln(w)
fmt.Fprintln(w, "Review complete.")
handle := reviewManifestHandle(manifest)
handle := reviewManifestCompletionHandle(manifest)
if handle == "" {
return
}
}
func reviewManifestCompletionHandle(manifest LocalReviewManifest) string {
if !manifest.CreatedAt.IsZero() {
return reviewManifestTimeHandle(manifest.CreatedAt)
}
return reviewManifestHandle(manifest)
}
func printReviewFindingsList(w io.Writer, manifests []LocalReviewManifest) {
fmt.Fprintln(w, "Review Findings")
fmt.Fprintln(w)
for _, manifest := range manifests {
fmt.Fprintf(w, "%s\n", reviewManifestListLabel(manifest))
if handle := reviewManifestHandle(manifest); handle != "" {
if handle := reviewManifestViewHandle(manifest, manifests); handle != "" {
fmt.Fprintf(w, " view: %s\n", reviewFindingsCommand(handle))
}
}
}
}
func printReviewFindingsHandles(w io.Writer, manifests []LocalReviewManifest) {
var handles []string
for _, manifest := range manifests {
handles = append(handles, reviewManifestHandles(manifest)...)
}
handles = dedupeStrings(handles)
handles := reviewAvailableManifestHandles(manifests)
if len(handles) == 0 {
return
}
}
func reviewAvailableManifestHandles(manifests []LocalReviewManifest) []string {
counts := reviewManifestHandleCounts(manifests)
var handles []string
for _, manifest := range manifests {
for _, handle := range reviewManifestHandles(manifest) {
if counts[handle] == 1 {
handles = append(handles, handle)
}
}
}
return dedupeStrings(handles)
}
func reviewManifestHandleCounts(manifests []LocalReviewManifest) map[string]int {
counts := make(map[string]int)
for _, manifest := range manifests {
for _, handle := range reviewManifestHandles(manifest) {
counts[handle]++
}
}
return counts
}
func printReviewManifestDetail(w io.Writer, manifest LocalReviewManifest) {
fmt.Fprintf(w, "Review findings from %s\n\n", reviewManifestListLabel(manifest))
for _, source := range manifest.Sources {