Repository navigation
feat(merge_requests): expose original commit private review - #643
Conversation
Keep original row identity through rendering and identifier-only navigation, connect guarded private saves and inspection to the UI, and hide commit route values from analytics. Signed-off-by: sjungwon03 <sjungwon03@gmail.com>
sjungwon03-ai
left a comment
There was a problem hiding this comment.
Reviewed commit cd6ef4a: All 24 remote PR blobs match the reviewed local commit. Identifier-only MR commit/original routes establish positive global/IID/reported-target identity through an account-bound captured repository and immutable complete membership traversal. The shared hunk renderer preserves captured row identities, existing viewer compatibility, highlights and selection eligibility. Original single-line/range UI calls only the guarded private command and existing settled read-only inspection. Unsupported parents and omitted/malformed/ambiguous files remain honest read-only states. Account/repository/origin changes discard obsolete data and private input. Commit route values, including invalid parameters, are replaced before analytics. All five locales, three widths, both themes, resize, large text/keyboard and uncertain-save recovery are covered. Eight synthetic selection/compose captures were visually checked; final format/analyze and all 8,015 local tests pass, including 66 new cases. No blocking findings. Single canonical parent only; live role/version validation remains separate and preflight is not atomic authorization.
Summary
MR detail now opens its commit list and a selected commit's original diff through identifier-only routes. Account-bound controllers establish authoritative global MR identity and traverse every advertised membership page. The shared diff renderer retains validated original row objects for single-line/range selection. The private-note dialog calls the guarded original-commit save command and existing uncertain-write inspection; unsupported references and unavailable files remain explicit read-only states. Commit values, including invalid parameters, are hidden from route analytics.
Closes #642
Validation
dart format .: 980 Dart files, zero changes on the final pass.flutter analyze: no issues.Screenshots
Eight synthetic selection/compose captures at 390/1200 widths in both themes were generated and visually checked in this task's local audit artifacts. Captures use dummy resource data and bundled fonts; they are not live-instance/device evidence.
Checklist
dev; linked issue; Conventional Commit and DCO sign-off.Notes for reviewers
Original inline selection supports only one explicitly reported canonical parent. Root, unknown-parent and multiple-parent diffs stay readable but unselectable. Omitted/malformed/ambiguous files are shown as unavailable and never reparsed permissively for review. Saving still rechecks original context and parent availability, and waits for uncertain writes to settle before complete read-only inspection. Sequential preflight is not atomic server authorization; live GitLab role/version validation remains separate.