Conversation
|
You have run out of free Bugbot PR reviews for this billing cycle. This will reset on April 22. To receive reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2c19aa9afe
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
...in/kotlin/com/inwords/expenses/feature/expenses/ui/list/bottom_sheet/item/ExpenseItemPane.kt
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Pull request overview
Adds an expense details bottom sheet flow in the Android app (replacing the previous “expense item dialog”), including a dedicated revert-confirmation dialog, improved exchange-rate formatting, and updated UI tests/docs to support the new navigation and selectors.
Changes:
- Replace the expense item dialog with a Navigation3 bottom sheet (
ExpenseItemPane) + Navigation3 dialog for revert confirmation. - Add exchange-rate calculation/formatting logic with unit tests, and extend instrumented tests to validate the details pane.
- Update agent/docs/versioning guidance (tooling version sources of truth, workflows, iOS versioning) and add iOS app icon metadata.
Reviewed changes
Copilot reviewed 50 out of 52 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| web/AGENTS.md | Link to root agent workflow guidance; avoid duplicating Node/npm versions in docs. |
| infra/AGENTS.md | Link to root agent workflow guidance; avoid duplicating Docker versions in docs. |
| docs/agent-workflows.md | New agent workflow lifecycle doc (Architect→Report) and validation-depth guidance. |
| backend/AGENTS.md | Link to root agent workflow guidance; avoid duplicating Node/npm versions in docs. |
| android/shared/integration/base/MainNavHost.kt | Wire new expense details bottom sheet + revert dialog nav modules into the app nav host. |
| android/shared/feature/expenses/src/commonTest/.../ExchangeRateCalculatorTest.kt | Unit tests covering exchange-rate edge cases. |
| android/shared/feature/expenses/src/commonTest/.../ExpenseToUiModelTest.kt | Unit tests for new UI-model fields (current person part). |
| android/shared/feature/expenses/.../dialog/revert/ExpenseRevertDialogViewModel.kt | New/renamed revert confirmation view model using local stores + revert job guard. |
| android/shared/feature/expenses/.../dialog/revert/ExpenseRevertDialogDestination.kt | New Navigation3 dialog destination + module for revert confirmation. |
| android/shared/feature/expenses/.../dialog/revert/ExpenseRevertDialog.kt | New Compose AlertDialog UI for revert confirmation. |
| android/shared/feature/expenses/.../dialog/item/ExpenseItemDialogUiModel.kt | Remove obsolete dialog UI model. |
| android/shared/feature/expenses/.../dialog/item/ExpenseItemDialog.kt | Remove obsolete dialog UI. |
| android/shared/feature/expenses/.../bottom_sheet/item/ExpenseItemPaneViewModel.kt | New bottom-sheet view model: expense flow → UI model + navigate to revert dialog. |
| android/shared/feature/expenses/.../bottom_sheet/item/ExpenseItemPaneUiModel.kt | New UI model for expense details pane. |
| android/shared/feature/expenses/.../bottom_sheet/item/ExpenseItemPaneDestination.kt | Replace dialog destination with bottom-sheet destination/module. |
| android/shared/feature/expenses/.../bottom_sheet/item/ExpenseItemPane.kt | New Compose UI for expense details (details rows, split section, revert action, test tags). |
| android/shared/feature/expenses/.../bottom_sheet/item/ExchangeRateCalculator.kt | New exchange-rate formatting logic (DecimalMode division + fixed-scale string). |
| android/shared/feature/expenses/.../ui/list/ExpensesViewModel.kt | Navigate to new bottom sheet on expense click; pass current person id into UI conversion. |
| android/shared/feature/expenses/.../ui/list/ExpensesPaneUiModel.kt | Add eventId, isPaidByCurrentPerson, and currentPersonPartAmount to expense UI model. |
| android/shared/feature/expenses/.../ui/list/ExpensesPaneDestination.kt | Update pane callback wiring from “revert click” to “expense click”. |
| android/shared/feature/expenses/.../ui/list/ExpensesPane.kt | Update list item UI and interactions; surface-based list items + “your part” label. |
| android/shared/feature/expenses/.../ui/converter/toUi.kt | Extend Expense.toUiModel to include current-person dependent fields. |
| android/shared/feature/expenses/.../ui/add/AddExpensePane.kt | Add currency option test tags for stable UI test selection. |
| android/shared/feature/expenses/.../domain/store/ExpensesLocalStore.kt | Add getExpenseFlow(expenseId) API for reactive details screen. |
| android/shared/feature/expenses/.../data/db/dao/ExpensesDao.kt | Add queryByIdFlow() Room DAO method for details screen flow. |
| android/shared/feature/expenses/.../data/db/ExpensesLocalStoreImpl.kt | Implement getExpenseFlow() using DAO flow + mapping + distinctUntilChanged. |
| android/shared/feature/expenses/.../composeResources/values/strings.xml | Add strings for details pane, exchange rate, revert confirmation, “your part”, etc. |
| android/shared/feature/expenses/.../composeResources/values-ru/strings.xml | RU translations for newly added strings. |
| android/shared/core/utils/.../bigNumbers.kt | Formatting-only change (whitespace/line ending). |
| android/shared/core/ui-design/.../MultiSelectConnectedButtonGroupWithFlowLayout.kt | Add optional testTag to toggle options and apply it to buttons. |
| android/iosApp/iosApp/Info.plist | Add CFBundleDisplayName. |
| android/iosApp/.../AppIcon.appiconset/Contents.json | Reference the icon filename in the app icon set. |
| android/iosApp/.../AppIcon.appiconset/AppIcon.png | Add/replace iOS app icon asset. |
| android/iosApp/iosApp.xcodeproj/project.pbxproj | Update iOS MARKETING_VERSION + CURRENT_PROJECT_VERSION. |
| android/docs/patterns.md | Document Navigation3 revert confirmation pattern, overlay-safe selectors, and exchange-rate formatting patterns/tests. |
| android/docs/local-agent-prerequisites.md | New consolidated Android local prerequisites doc (sources of truth, device/Marathon guidance, worktree copying). |
| android/docs/ios-versioning.md | New doc describing iOS versioning fields and alignment with Android. |
| android/app/src/androidTest/.../ExpensesScreen.kt | Update to return the new ExpenseDetailsScreen object. |
| android/app/src/androidTest/.../ExpenseDetailsScreen.kt | New screen object for details bottom sheet + revert dialog selectors and actions. |
| android/app/src/androidTest/.../ExpenseDetailsDialog.kt | Remove obsolete dialog screen object. |
| android/app/src/androidTest/.../AddExpenseScreen.kt | Add currency selection by test tag (code) for stability. |
| android/app/src/androidTest/.../BasicInstrumentedTest.kt | Extend E2E flow to validate details pane sections and exchange-rate visibility; stabilize currency selection. |
| android/README.md | Point to android/AGENTS.md instead of placeholder README. |
| android/AGENTS.md | Update tooling/version guidance and add strict Compose UI rules + workflow freshness pointers. |
| android/.agents/skills/run-android-local-long-task/SKILL.md | New skill doc for long local Android runs (profiles, stop/ask, reporting). |
| android/.agents/skills/prepare-mobile-release/agents/openai.yaml | New agent UI metadata for the mobile release SOP skill. |
| android/.agents/skills/prepare-mobile-release/SKILL.md | Rename/expand release SOP from Android-only to Android+iOS version bump + baseline profile flow. |
| android/.agents/skills/prepare-android-release/agents/openai.yaml | Remove obsolete Android-only release skill metadata. |
| README.md | Add contributor/agent pointer to AGENTS.md. |
| AGENTS.md | Add workflow lifecycle + freshness policy section; point to new skills/docs. |
| .github/copilot-instructions.md | Add a thin adapter pointing Copilot to repo source-of-truth instructions. |
| .cursor/worktrees.json | Add worktree setup commands for copying local Android tooling into worktrees. |
...in/kotlin/com/inwords/expenses/feature/expenses/ui/list/bottom_sheet/item/ExpenseItemPane.kt
Show resolved
Hide resolved
android/app/src/androidTest/kotlin/ru/commonex/screens/ExpenseDetailsScreen.kt
Show resolved
Hide resolved
android/app/src/androidTest/kotlin/ru/commonex/screens/ExpenseDetailsScreen.kt
Show resolved
Hide resolved
2c19aa9 to
7d6b5ee
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 51 out of 53 changed files in this pull request and generated no new comments.
Comments suppressed due to low confidence (1)
android/shared/feature/expenses/src/commonMain/kotlin/com/inwords/expenses/feature/expenses/ui/list/dialog/revert/ExpenseRevertDialogViewModel.kt:50
revertExpense(...)description is built fromexpenseDescriptionpassed via navigation rather than theoriginalExpense.descriptionyou just loaded fromExpensesLocalStore. This can create inconsistencies if the stored expense description differs (e.g. edited/updated) and also makes the dialog arguments carry redundant data. Prefer usingoriginalExpense.descriptionhere (and consider removingexpenseDescriptionfrom the destination/viewmodel params if it’s only needed for this).
No description provided.