feat(review): link an image to a library prompt from Needs review (#536)

Images whose sampler paths could not be traced offered nothing to choose.
Add Link to a prompt: search the Library and record the reviewer's choice
under Apply's capture guards and the one-prompt-per-file rules, with
provenance that names a manual choice and never reads as file evidence.

Disabled options name the server's reason, nothing selectable says why and
leads with the picker, Leave unresolved is its own action, and each decision
opens the next item instead of returning to Images (overturns ruling R7).
This commit is contained in:
Vito Sansevero
2026-10-30 10:01:59 -07:00
parent a6d6129ec6
commit 35c87d1ed5
17 changed files with 1247 additions and 215 deletions
+6
View File
@@ -433,6 +433,12 @@ pre.prompt-text { font: inherit; font-size: 12px; line-height: 1.75; margin-bloc
.review-queue .image-open[aria-disabled="true"] { cursor: not-allowed; aspect-ratio: 1.33; /* D119 */ }
/* D119: a long file name in the panel wraps inside the panel, where the concept's sample name never overflows. */
.review-panel > p.small { min-inline-size: 0; overflow-wrap: anywhere; /* D119 */ }
/* #536: the concept's rows hidden when there is nothing to apply (D180), and the picker (D181). */
.review-panel > [hidden], .review-panel .dialog-actions > [hidden], #modal .field[hidden] { display: none; }
.review-unreadable { display: grid; gap: 6px; margin-block: 12px; overflow-wrap: anywhere; }
.review-link-results { display: grid; gap: 6px; max-block-size: 40vh; overflow-y: auto; }
.review-link-results > button { justify-content: flex-start; inline-size: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.review-link-results > button[aria-pressed="true"] { border-color: var(--ca-accent); }
/* Auto-tag selected images (#249 PR D, D85/D90): the Tag image dialog's model panel, then How to apply, a radio group
in the concept's `.field` row whose radios keep their own size (the concept's `.field input` is a full-width text
field) beside their label, as the concept's own radio rows (s1160 `.compare-item label`). */