Skip to content

fix(details): linked-repo banner with inline unlink#603

Merged
rainxchzed merged 3 commits into
mainfrom
fix/scan-match-undo
May 15, 2026
Merged

fix(details): linked-repo banner with inline unlink#603
rainxchzed merged 3 commits into
mainfrom
fix/scan-match-undo

Conversation

@rainxchzed
Copy link
Copy Markdown
Member

@rainxchzed rainxchzed commented May 14, 2026

Sprint 3 Task 10. Unlink action already existed in the overflow menu (commit 6b55e56, shipped 1.8.1) — discoverability was the gap. vbidv reported "only options shown are uninstall + update" because they didn't open the kebab.

Adds LinkedRepoBanner above install button on Details when installSource == MANUAL. Title shows owner/repo, body explains, button reuses existing OnUnlinkExternalApp + confirmation dialog.

Test plan

  • Android compile clean
  • 13 locale strings + whatsnew
  • Real-device: scan-match flow → Details opens → banner visible → tap Unlink → confirm → row resets

Source: vbidv emails ×2.

Summary by CodeRabbit

  • New Features

    • Added a linked-repository banner on the app Details screen showing the connected repo with a one-tap Unlink action.
  • Documentation

    • Updated “What’s New” release notes in multiple languages and added localized UI strings for the linked-repo banner and unlink guidance.

Review Change Stack

Copy link
Copy Markdown

@greptile-apps greptile-apps Bot left a comment

Choose a reason for hiding this comment

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

rainxchzed has reached the 50-review limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 14, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 9b3828fc-aa01-4b73-86d1-4ae3576f6dc7

📥 Commits

Reviewing files that changed from the base of the PR and between d513196 and c2af573.

📒 Files selected for processing (1)
  • core/presentation/src/commonMain/composeResources/files/whatsnew/fr/18.json

Walkthrough

Adds a localized linked-repo banner to the Details screen (shows owner/repo and one-tap unlink), a new LinkedRepoBanner composable, Header wiring to conditionally display it for manually linked apps, and updated whatsnew release notes across locales.

Changes

Linked Repository Banner Feature

Layer / File(s) Summary
Localized strings and LinkedRepoBanner UI component
core/presentation/src/commonMain/composeResources/values*/strings*.xml, feature/details/presentation/src/commonMain/kotlin/zed/rainxch/details/presentation/components/LinkedRepoBanner.kt
Adds details_linked_repo_banner_title and details_linked_repo_banner_body across English + localized variants and introduces LinkedRepoBanner composable rendering owner/repo text, body text, and an unlink TextButton.
Header component integration with conditional display
feature/details/presentation/src/commonMain/kotlin/zed/rainxch/details/presentation/components/sections/Header.kt
Emits LinkedRepoBanner when installedApp?.installSource == InstallSource.MANUAL and repository is non-null; wires the unlink action to DetailsAction.OnUnlinkExternalApp.
Release notes updates across locales
core/presentation/src/commonMain/composeResources/files/whatsnew/*/18.json
Adds a FIXED bullet documenting the externally-linked repo banner with one-tap unlink across English and localized whatsnew files.

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant Header
  participant LinkedRepoBanner
  participant DetailsActionHandler

  User->>Header: open Details screen
  Header->>LinkedRepoBanner: render when MANUAL + repository present
  User->>LinkedRepoBanner: tap Unlink
  LinkedRepoBanner->>DetailsActionHandler: invoke OnUnlinkExternalApp
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Poem

🐰 A banner hops into the details view,
Showing owner and repo in tidy cue,
One tap to unlink — a quick little trick,
Localized lines so the text fits quick,
Hooray, the banner hops off — click, click! 🎉

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'fix(details): linked-repo banner with inline unlink' clearly and concisely summarizes the main change: adding a linked repo banner UI component with inline unlink functionality to the Details screen.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/scan-match-undo

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@core/presentation/src/commonMain/composeResources/files/whatsnew/fr/18.json`:
- Line 20: Replace the misspelled French adverb in the JSON string: find the
entry containing "Le dépôt lié externement affiche maintenant une bannière sur
Détails avec un tap pour dissocier." and change "externement" to "externalement"
so it reads "Le dépôt lié externalement affiche maintenant une bannière sur
Détails avec un tap pour dissocier."
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 21cbd7af-1a32-46d1-924d-37e4499228f4

📥 Commits

Reviewing files that changed from the base of the PR and between 69a086a and d513196.

📒 Files selected for processing (28)
  • core/presentation/src/commonMain/composeResources/files/whatsnew/18.json
  • core/presentation/src/commonMain/composeResources/files/whatsnew/ar/18.json
  • core/presentation/src/commonMain/composeResources/files/whatsnew/bn/18.json
  • core/presentation/src/commonMain/composeResources/files/whatsnew/es/18.json
  • core/presentation/src/commonMain/composeResources/files/whatsnew/fr/18.json
  • core/presentation/src/commonMain/composeResources/files/whatsnew/hi/18.json
  • core/presentation/src/commonMain/composeResources/files/whatsnew/it/18.json
  • core/presentation/src/commonMain/composeResources/files/whatsnew/ja/18.json
  • core/presentation/src/commonMain/composeResources/files/whatsnew/ko/18.json
  • core/presentation/src/commonMain/composeResources/files/whatsnew/pl/18.json
  • core/presentation/src/commonMain/composeResources/files/whatsnew/ru/18.json
  • core/presentation/src/commonMain/composeResources/files/whatsnew/tr/18.json
  • core/presentation/src/commonMain/composeResources/files/whatsnew/zh-CN/18.json
  • core/presentation/src/commonMain/composeResources/values-ar/strings-ar.xml
  • core/presentation/src/commonMain/composeResources/values-bn/strings-bn.xml
  • core/presentation/src/commonMain/composeResources/values-es/strings-es.xml
  • core/presentation/src/commonMain/composeResources/values-fr/strings-fr.xml
  • core/presentation/src/commonMain/composeResources/values-hi/strings-hi.xml
  • core/presentation/src/commonMain/composeResources/values-it/strings-it.xml
  • core/presentation/src/commonMain/composeResources/values-ja/strings-ja.xml
  • core/presentation/src/commonMain/composeResources/values-ko/strings-ko.xml
  • core/presentation/src/commonMain/composeResources/values-pl/strings-pl.xml
  • core/presentation/src/commonMain/composeResources/values-ru/strings-ru.xml
  • core/presentation/src/commonMain/composeResources/values-tr/strings-tr.xml
  • core/presentation/src/commonMain/composeResources/values-zh-rCN/strings-zh-rCN.xml
  • core/presentation/src/commonMain/composeResources/values/strings.xml
  • feature/details/presentation/src/commonMain/kotlin/zed/rainxch/details/presentation/components/LinkedRepoBanner.kt
  • feature/details/presentation/src/commonMain/kotlin/zed/rainxch/details/presentation/components/sections/Header.kt

Comment thread core/presentation/src/commonMain/composeResources/files/whatsnew/fr/18.json Outdated
…ew/fr/18.json

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
@rainxchzed rainxchzed merged commit 387750b into main May 15, 2026
1 check was pending
Copy link
Copy Markdown

@greptile-apps greptile-apps Bot left a comment

Choose a reason for hiding this comment

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

rainxchzed has reached the 50-review limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@rainxchzed rainxchzed deleted the fix/scan-match-undo branch May 15, 2026 13:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant