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

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 {