Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughRenamed CCSync identifiers to Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Poem
🚥 Pre-merge checks | ✅ 1 | ❌ 2❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (1 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 7
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In
`@lib/app/modules/manage_task_champion_creds/controllers/manage_task_champion_creds_controller.dart`:
- Line 14: Update the test references in taskchampion_test.dart to use the
renamed controller field and storage key: replace usages of
ccsyncBackendUrlController with syncBackendUrlController and update any storage
key string ccsyncBackendUrl to syncBackendUrl so the tests reference the new
TextEditingController field name (syncBackendUrlController) in
ManageTaskChampionCredsController.
In `@lib/app/utils/language/bengali_sentences.dart`:
- Around line 5-16: The Bengali localization still contains literal "CCSync"
text inside the sync-related getters (syncLoginInstruction, syncEasySyncTitle,
syncOpenButton, syncIntro, syncSelfHosted); update those string values to use
the renamed sync product text consistent with other locales (replace "CCSync"
with the canonical sync name used elsewhere, e.g., "TaskChampion Sync" or the
project's agreed term) so all locales match the renamed getters.
In `@lib/app/utils/language/english_sentences.dart`:
- Line 227: The getter syncCredentials currently returns the string 'CCync
credentials' with a typo; update the return value of the syncCredentials getter
in english_sentences.dart to the correct label 'Sync credentials' (keeping the
getter name syncCredentials unchanged) so it aligns with the PR's "Sync"
terminology.
In `@lib/app/utils/language/hindi_sentences.dart`:
- Around line 5-16: Several Hindi strings still use "CCSync" while other keys
like syncCredentials and syncBackendUrl use "Sync"; update the strings for
syncLoginInstruction, syncEasySyncTitle, syncOpenButton, syncIntro, and
syncSelfHosted to consistently use "Sync" (or the chosen unified product name)
instead of "CCSync" so translations match other files and keys; ensure the same
wording is applied as in Marathi and other locales to keep UX consistent.
In `@lib/app/utils/language/marathi_sentences.dart`:
- Around line 5-17: Update the Marathi strings to consistently use the new
"Sync" naming instead of "CCSync": change the values for syncLoginInstruction,
syncEasySyncTitle, syncOpenButton, syncIntro, and syncSelfHosted to replace
"CCSync" with "Sync" (or the localized equivalent used by syncCredentials and
syncBackendUrl) so all sync-related keys (including syncCredentials and
syncBackendUrl) use the same term across the locale.
In `@lib/app/utils/language/urdu_sentences.dart`:
- Line 229: The getter syncCredentials currently returns the string with a typo
and legacy "CCSync" mention; update the return value of String get
syncCredentials to use the new naming convention by replacing 'CCync اسناد' with
'Sync اسناد' so it no longer contains the incorrect/legacy "CCSync" text.
In `@lib/rust_bridge/frb_generated.dart`:
- Line 68: The generated Dart constant codegenVersion in frb_generated.dart is
2.12.0 but the Rust side is still at 2.11.1, so update the Rust crate
dependencies in Cargo.toml (flutter_rust_bridge, flutter_rust_bridge_macros,
flutter_rust_bridge_codegen) to match "=2.12.0" and then re-run the bridge
generator (flutter_rust_bridge_codegen generate) to regenerate
rust/src/frb_generated.rs so the version emitted by the Rust bridge matches the
Dart code and RustLib.init() with forceSameCodegenVersion will succeed.
🪄 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: defaults
Review profile: CHILL
Plan: Pro
Run ID: 130df1d8-7cba-4773-8a57-8d54790d4d03
⛔ Files ignored due to path filters (1)
pubspec.lockis excluded by!**/*.lock
📒 Files selected for processing (16)
lib/app/modules/manage_task_champion_creds/controllers/manage_task_champion_creds_controller.dartlib/app/modules/manage_task_champion_creds/views/manage_task_champion_creds_view.dartlib/app/utils/language/bengali_sentences.dartlib/app/utils/language/english_sentences.dartlib/app/utils/language/french_sentences.dartlib/app/utils/language/german_sentences.dartlib/app/utils/language/hindi_sentences.dartlib/app/utils/language/marathi_sentences.dartlib/app/utils/language/sentences.dartlib/app/utils/language/spanish_sentences.dartlib/app/utils/language/urdu_sentences.dartlib/rust_bridge/api.dartlib/rust_bridge/frb_generated.dartlib/rust_bridge/frb_generated.io.dartlib/rust_bridge/frb_generated.web.dartpubspec.yaml
...pp/modules/manage_task_champion_creds/controllers/manage_task_champion_creds_controller.dart
Show resolved
Hide resolved
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
test/utils/language/french_sentences_test.dart (1)
7-180: Please add assertions for new French sync getters.Given this test’s broad localization coverage, it should also assert
french.syncBackendUrlandfrench.syncClientId(with their exact expected French strings) to prevent regressions in the newly added overrides.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@test/utils/language/french_sentences_test.dart` around lines 7 - 180, Add two assertions for the new French sync getters: ensure the test includes expect(french.syncBackendUrl, '<expected French string>') and expect(french.syncClientId, '<expected French string>'); locate the canonical French strings in the French localization file (the same resource that defines the other french.* getters) and use those exact values so the test verifies the newly added overrides for syncBackendUrl and syncClientId.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@test/utils/taskchampion/taskchampion_test.dart`:
- Around line 26-37: The test currently mocks SharedPreferences but
loadCredentials() uses file-based CredentialsStorage APIs, so replace the
SharedPreferences setup with direct stubs/mocks for
CredentialsStorage.getApiUrl(), CredentialsStorage.getClientId(), and
CredentialsStorage.getEncryptionSecret() (or create the expected credential
files under the test temp profile path) so that
ManageTaskChampionCredsController.loadCredentials() reads the expected values;
locate and update the test to mock those static methods (or write the
backend_url_tc, client_id_tc, encryption_secret_tc files) and then assert
controller.syncBackendUrlController.text, clientIdController.text, and
encryptionSecretController.text as before.
- Around line 40-51: The test currently asserts SharedPreferences writes but
saveCredentials() actually writes files via CredentialsStorage and calls
profilesWidget.setTaskcCreds(); update the test to either (A) mock the file
system or CredentialsStorage and assert that CredentialsStorage.write (or the
concrete method used) and profilesWidget.setTaskcCreds() are invoked with the
expected values and keys ('taskc_client_secret', 'taskc_client_id',
'backend_url_tc'), or (B) remove the SharedPreferences assertions and instead
read from the profile file created by CredentialsStorage to assert the stored
values; locate saveCredentials(), CredentialsStorage, and
profilesWidget.setTaskcCreds() to apply the change.
---
Nitpick comments:
In `@test/utils/language/french_sentences_test.dart`:
- Around line 7-180: Add two assertions for the new French sync getters: ensure
the test includes expect(french.syncBackendUrl, '<expected French string>') and
expect(french.syncClientId, '<expected French string>'); locate the canonical
French strings in the French localization file (the same resource that defines
the other french.* getters) and use those exact values so the test verifies the
newly added overrides for syncBackendUrl and syncClientId.
🪄 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: defaults
Review profile: CHILL
Plan: Pro
Run ID: a0774156-681b-47b9-a450-ba4a39135dcf
📒 Files selected for processing (22)
lib/app/modules/manage_task_champion_creds/views/manage_task_champion_creds_view.dartlib/app/modules/profile/views/profile_view.dartlib/app/utils/language/bengali_sentences.dartlib/app/utils/language/english_sentences.dartlib/app/utils/language/hindi_sentences.dartlib/app/utils/language/marathi_sentences.dartlib/app/utils/language/urdu_sentences.dartlib/app/v3/models/task.dartlinux/flutter/generated_plugin_registrant.cclinux/flutter/generated_plugins.cmakemacos/Flutter/GeneratedPluginRegistrant.swiftrust/Cargo.tomltest/utils/language/bengali_sentences_test.darttest/utils/language/english_sentences_test.darttest/utils/language/french_sentences_test.darttest/utils/language/hindi_sentences_test.darttest/utils/language/marathi_sentences_test.darttest/utils/language/sentences_test.darttest/utils/language/spanish_sentences_test.darttest/utils/taskchampion/taskchampion_test.dartwindows/flutter/generated_plugin_registrant.ccwindows/flutter/generated_plugins.cmake
✅ Files skipped from review due to trivial changes (5)
- lib/app/v3/models/task.dart
- lib/app/modules/profile/views/profile_view.dart
- windows/flutter/generated_plugins.cmake
- windows/flutter/generated_plugin_registrant.cc
- rust/Cargo.toml
🚧 Files skipped from review as they are similar to previous changes (5)
- lib/app/modules/manage_task_champion_creds/views/manage_task_champion_creds_view.dart
- lib/app/utils/language/english_sentences.dart
- lib/app/utils/language/urdu_sentences.dart
- lib/app/utils/language/bengali_sentences.dart
- lib/app/utils/language/hindi_sentences.dart
🧹 Chore: Clean up remaining CCSync references & fix FRB version mismatch
Summary
Completes the removal of legacy CCSync backend references from the codebase and resolves a flutter_rust_bridge version mismatch that was preventing the app from launching.
Changes
CCSync → Sync Renaming
manage_task_champion_creds_view.dartsync-prefixed translation getters instead of deprecatedccsynconesfrench_sentences.dartccsyncCredentials→syncCredentials, added missingsyncBackendUrlandsyncClientIdoverridesgerman_sentences.dartccsyncCredentials→syncCredentials, updated string values to remove "CCSync" mentionsspanish_sentences.dartsync-prefixed getters are correctly implementedFlutter Rust Bridge Version Fix
pubspec.yamlflutter_rust_bridgefrom^2.11.1to^2.12.0pubspec.lockfrb_generated.dartcodegenVersionfrom2.11.1→2.12.0to match runtimefrb_generated.io.dartfrb_generated.web.dartapi.dartWhy
CCSync Cleanup: The project has transitioned from CCSync to TaskChampion for sync. Leftover
ccsyncreferences in the French, German, and Spanish translation files and the credentials view were causing inconsistency and would confuse future contributors.FRB Version Fix: The Dart runtime package (
flutter_rust_bridge) resolved to2.12.0but the codegen stamp infrb_generated.dartwas still2.11.1. This version mismatch caused a fatalBad stateexception at startup, preventing the app from loading past the splash screen.Testing
flutter run --flavor productionSentencesabstract gettersRelated
chore/cleanup-ccsync-mentionsbranchtc_helper's codegen version (2.11.1) should be the same as runtime version (2.12.0)Summary by CodeRabbit
Refactor
New Features
Chores
Tests