# avoid ambiguous review findings handles

`de60a63`→[main](/content/gh/entireio/cli/commits/main/index.html)· 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

```go
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 {
```
