Skip to content

feat(merge_requests): select and confirm suggestion batches - #593

Merged
sjungwon03 merged 2 commits into
devfrom
feat/592-suggestion-batch-ui
Oct 4, 2026
Merged

sjungwon03 merged 2 commits into
devfrom
feat/592-suggestion-batch-ui

Conversation

@sjungwon03

Copy link
Copy Markdown
Member

Summary

MR discussion pages now allow selecting two or more eligible loaded suggestions, reviewing every literal patch, and explicitly applying the selected set through one batch request. Every selected discussion is read again before dispatch; changed, ambiguous or unavailable patches prevent the whole request. Failed or incomplete confirmation retains the draft and requires a complete read-only reload before renewed confirmation, with no automatic subset application or replay.

The flow shares existing discussion reservations, preserves pagination and drafts, hides old source on account/resource replacement, and refreshes discussions, MR detail and the authoritative snapshot only after current-session complete confirmation. Five locales and one responsive dialog cover selection, review, permission errors and recovery.

Closes #592

Validation

  • dart format .: 900 Dart files, no changes outstanding.
  • flutter analyze --no-pub: no issues.
  • All 5,595 tests pass: app 3,096; design system 121; API 2,201; models 172; secure storage 5. Includes 81 new UI/controller/repository cases.
  • Generated locale delegates reproduce byte-for-byte with flutter gen-l10n. No model changes; build_runner is not applicable.
  • Test-first controller missing-method and widget missing-action failures; compact keyboard/doubled-text overflow reproduced before its fix.
  • Five locales × three widths × both themes; keyboard and doubled text; visually inspected four synthetic widget-test captures.
  • Live GitLab/device validation: not performed. Captures use dummy fixtures and SDK fonts.

Checklist

  • Targets dev; linked issue; conventional signed-off commits.
  • Documentation updated; mobile/desktop and light/dark layouts checked.
  • No new dependencies; existing notices unchanged.
  • Repository English policy followed; only locale resources/generated translations contain non-English UI text.
  • No real credentials, private source or live account data in fixtures/captures.

Screenshots

Synthetic Flutter widget-test captures at 5f77e4e5091c527607f0fe4e64132057cc0ffa9f. Mobile content scrolls to reveal the remaining patch and message.

Layout Light Dark
Mobile Mobile light Mobile dark
Desktop Desktop light Desktop dark

Notes for reviewers

The existing single-suggestion flow remains covered by regression tests. Repository forwarding exercises the real batch SDK rather than a UI-only mock. A failed intermediate recovery read leaves every loaded group unchanged; selected missing or applied targets remain unavailable, and the user must explicitly return to selection to change the set after complete inspection. No batch atomicity, branch SHA guard or rollback is inferred. A server-accepted write may survive a late failure or view replacement; closing and reopening starts a new flow without a persistent uncertain-operation journal.

See docs/mr-suggestion-batch-ui.md and GitLab batch application. Multiline original context/creation remains a separate parity slice.

Review every selected patch and freshly inspect all selected discussions before one batch write; require complete read-only recovery after uncertain confirmation while preserving drafts and session isolation.

Signed-off-by: sjungwon03 <sjungwon03@gmail.com>
@github-actions github-actions Bot added area:ui Screens and feature UI area:docs AGENTS.md, .agents/, README and friends feat New feature labels Oct 4, 2026
Link the complete batch UI slice and retain multiline review as the remaining parity follow-up.

Signed-off-by: sjungwon03 <sjungwon03@gmail.com>

@sjungwon03-ai sjungwon03-ai left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review of commit 8f53b74: Reviewed the selected-target eligibility boundary, real repository-to-SDK forwarding, all-thread preflight before the single batch, complete returned-identity/known-patch confirmation, shared write/pagination reservations, session and originating-view lifecycle cancellation, and staged read-only recovery. Missing/ambiguous or already-applied selected targets cannot silently turn into a subset write; failed intermediate recovery leaves all loaded groups unchanged. Inputs/drafts and server order are preserved, and no comment analytics, automatic replay, branch-SHA or atomicity claim is added. Existing single-suggestion inspection delegates to the same guarded reader and its regression tests pass.

No blocking findings. Local validation passed 5,595 tests across five packages, including 81 new app controller/widget/repository cases; 900 Dart files are formatted and analysis is clean. The generated locale delegates reproduce byte-for-byte. Test-first evidence includes the absent batch method/action and the keyboard/large-text overflow fixed by scrolling actions in short windows. Five-locale/three-width/two-theme layout cases and four visually inspected synthetic confirmation captures cover the UI. No live-instance or physical-device validation is claimed. Closing/reopening does not persist an uncertain-operation journal; multiline context/creation remains a separate slice. Final-head CI, review-thread resolution and current-head identity are verified before this approval.

@sjungwon03
sjungwon03 merged commit dc0a300 into dev Oct 4, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:docs AGENTS.md, .agents/, README and friends area:ui Screens and feature UI feat New feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Select, confirm and recover batch code suggestion application

2 participants