Modernize artwork review, annotation conversations, and author identity - #71
Modernize artwork review, annotation conversations, and author identity#71digimbyte wants to merge 18 commits into
Conversation
Workflow policy input-path correctionCommit 06a8e77 fixes the cause of the failed Workflow policy audit. The pinned zizmor action mounts only The patch stages the files under Validation:
Because this check uses |
|
Superseded by #74, which has been merged linearly into |
Summary
Modernize Proofing Gallery's public review experience around image details and their conversations. General feedback and pin-specific discussions have separate views, while annotation panels remain beside the relevant detail without dimming the artwork. The interaction design takes inspiration from contextual client/designer review on Fiverr and 99designs.
This is a substantial revision of the lightbox review interface and its authorship model, not a replacement for the existing gallery workflows. It combines the interface changes with account-aware persistence, reliable annotation attachment, and private selection synchronization.
Preview
Illustrative screenshot with sample names and comments.
Review experience
Lightbox and annotation implementation
PhotoSwipe continues to manage the viewer shell, navigation, focus, and slide sizing. A transform-only surface handles image zoom and panning, with annotations attached to the same surface. Zoom updates do not change the image's layout dimensions or switch its source resolution.
Annotation attachment responds to active-image availability and replacement, rather than depending on a short startup retry window or a slide change. Repeated attachment calls reuse a healthy host, and comment arrival can trigger synchronization. Overlay dimensions update when needed; screen-position calculations are limited to an open composer or selected conversation.
Annotation coordinates retain the normalized image-relative representation at 0.01% precision. Opening a thread from the Pins tab also refreshes its placement.
Identity, permissions, and synchronization
Signed-in contributions use the existing Nextcloud account UID; public guests retain their separate identity and session path. Account-aware attribution is carried through comments, selections, private ratings and decisions, and review-round submission.
The existing collaboration endpoints remain in use.
Database and upgrade behavior
Version000130Date20260903adds account-attribution fields, lookup indexes, and account-specific uniqueness constraints. Before enforcing feedback uniqueness, it retains the greatest-ID record for each duplicate gallery/file/kind/account tuple. This cleanup does not remove or reassign historical guest comments or pin conversations.Version000140Date20260908adds a nullable, indexed event recipient UID, keeping private account delivery distinct from the event author's UID.Complete the normal Nextcloud database upgrade before serving the updated application code.
Validation
CI passed for
c6bd6c9, including:The mobile regression scenario also passed five consecutive repetitions, followed by all 20 UI scenarios. Its menu-dismissal assertions now wait for the departing dialog before closing and reopening the viewer, avoiding an ambiguous dialog match without removing gesture coverage.