-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Allow duck ai chat syncing (Internal) #7377
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
CDRussell
wants to merge
1
commit into
feature/craig/update_sync_crypto_apis_byte_array
Choose a base branch
from
feature/craig/sync_duck_ai_chat_support
base: feature/craig/update_sync_crypto_apis_byte_array
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Allow duck ai chat syncing (Internal) #7377
CDRussell
wants to merge
1
commit into
feature/craig/update_sync_crypto_apis_byte_array
from
feature/craig/sync_duck_ai_chat_support
+2,495
−33
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This was referenced Dec 17, 2025
Member
Author
|
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
This stack of pull requests is managed by Graphite. Learn more about stacking. |
2f70f7b to
9cc09c0
Compare
d36ea31 to
32ff896
Compare
9cc09c0 to
827e026
Compare
0c92c2f to
76cd1e5
Compare
861bb89 to
344aba4
Compare
e268906 to
3d1db92
Compare
a0131a0 to
671c8c0
Compare
b8f6d64 to
c46ac61
Compare
3fea8ee to
2f2edb4
Compare
c46ac61 to
b706df5
Compare
2f2edb4 to
6300bf8
Compare
b2e25e9 to
8fad7c6
Compare
6300bf8 to
7c494c7
Compare
8fad7c6 to
68609b8
Compare
7c494c7 to
f32b677
Compare
68609b8 to
fa156a9
Compare
f32b677 to
dcde3d7
Compare
6b6dc6d to
ee92e81
Compare
21c48c7 to
fbb2fdc
Compare
ee92e81 to
4957e06
Compare
3e225c3 to
3abbe37
Compare
4957e06 to
4f4a176
Compare
3abbe37 to
5882bc9
Compare
4f4a176 to
5eacdaa
Compare
afa24c5 to
4dd2d33
Compare
05596f0 to
610d556
Compare
ef3085d to
cbfdecb
Compare
c95cc23 to
dce0017
Compare
610d556 to
7e9d370
Compare
de0f738 to
80efa15
Compare
7e9d370 to
fea3179
Compare
80efa15 to
59d202c
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.

Task/Issue URL: https://app.asana.com/1/137249556945/project/488551667048375/task/1212450128487247?focus=true
Description
Enables duck AI chat syncing for internal builds.
For testing, will require 2 or more devices/emulators, and each will need to be configured to hit duck chat internal config, details below.
Setting up for testing (do on each of the test devices)
internalbuild type from this branchai.duckduckgointo the omnibar, and authorise yourself by signing inPRODUCTION - setup and go to duck.aiAgree and Continuewhen duck ai chat launchesINTERNALbadgeSteps to test this PR
Logcat filter:
message~:"DuckChat-Sync|getAIChatNativeConfigValues"Syncing some chats between devices
Pre-requisite - set up sync between the two test devices
Settings -> Sync & Backup -> Sync and Back Up This Deviceto completionSync With Another Deviceand chooseCopy Text CodeSettings -> Sync & Backupand chooseSync With Another Device. TapManually Enter CodeandPaste Code.This should set up Device A and Device B to sync with each other.
Test steps
Native fire button
Settings -> Data Clearingand enableClear Duck.ai ChatsValidate feature flag gates feature
aiChatSyncfeature flag on Device A. Kill app and re-open."supportsAIChatSync":falseaiChatSync. Kill app and re-open.#### Testing when sync is disabled
Settings -> Sync & Backup -> Turn Off Sync & Backup...overflow (top-left) -> SettingsSet Up Now. Tap it, verify you are taken to sync setup. Hit back button and verify you still see theSet Up Nowbutton.Sync and Back Up This Device).Set Up Nowbutton disappears (might not be immediate)Note
Enables AI Chat sync by wiring JS↔native messaging, storage, and sync service support.
supportsAIChatSynctogetAIChatNativeConfigValuesand logs configencryptWithSyncMasterKey,decryptWithSyncMasterKey,setAIChatHistoryEnabled,sendToSyncSettings/sendToSetupSync(open Sync setup), plus Sync-sidegetScopedSyncAuthTokenandgetSyncStatusDUCK_CHAT_BACKGROUND_TIMESTAMPandDUCK_CHAT_HISTORY_ENABLEDwith setters/gettersDuckAiChatDeletionListenerImpl: persist background timestamp;DuckChatSyncDataManager: gate deletions on feature flag and chat history settingPOST /sync/token/rescope(scoped token),deleteAiChatstests, change dev URL tosync-staging.duckduckgo.com, and new messaging dependenciesWritten by Cursor Bugbot for commit 59d202c. This will update automatically on new commits. Configure here.