Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
5098 commits
Select commit Hold shift + click to select a range
74ddd12
Remove JobInfoSchedulerService from manifest (#7050)
joshliebe Nov 4, 2025
0973926
Split Omnibar: Address bar integration (#7042)
0nko Nov 5, 2025
5a5234f
Split Omnibar: Remove old feature flag (#7045)
0nko Nov 5, 2025
7efc550
ADS: Move all ADS modules under the same folder (#6975)
malmstein Nov 5, 2025
0770edf
[PIR] Handle DB encryption related errors (#7054)
landomen Nov 5, 2025
52448d0
Add native flags (#7047)
CrisBarreiro Nov 5, 2025
09d88a4
report WebView support for `MULTI_PROFILE` and `DELETE_BROWSING_DATA`…
LukasPaczos Nov 5, 2025
90de230
Set a fixed locale in RealSubscriptionsManagerTest (#7064)
lmac012 Nov 5, 2025
9d09622
Duck.ai: Fullscreen mode FF (#7055)
malmstein Nov 6, 2025
da235e2
SERP Settings Sync: Add event when Duck Ai setting changed (#7052)
mikescamell Nov 6, 2025
fa62d9b
Updated version number for new release - 5.256.0
github-actions[bot] Nov 6, 2025
705867c
Merge branch 'release/5.256.0'
github-actions[bot] Nov 6, 2025
0970c87
Merge branch 'release/5.256.0' into develop
github-actions[bot] Nov 6, 2025
23b42d0
Remove web tracking protections grid feature flag (#7068)
landomen Nov 7, 2025
90f0386
Move InputModeTabLayout to browser-ui (#7057)
joshliebe Nov 7, 2025
8ec3dcc
Add Input Mode toggle to voice search (#7059)
joshliebe Nov 7, 2025
9f2a792
Add voice search toggle pixels (#7075)
joshliebe Nov 7, 2025
3698fdb
Keyboard display behavior change on NTP (#7078)
0nko Nov 7, 2025
21894a2
Update content scope scripts to version 12.0.0 (#7058)
daxmobile Nov 7, 2025
ec07123
Attributed metrics module and skeleton (#6887)
cmonfortep Nov 7, 2025
acfee4c
Ensure FF check happens on io for 1st party cookie expiry work schedu…
CDRussell Nov 7, 2025
8fcba4f
Remove rebranding banner and FF (#7069)
nalcalag Nov 7, 2025
9773e3c
Dynamic yearly savings % translations (#7086)
nalcalag Nov 7, 2025
e7c6d56
Switch option: calculate yearly savings dynamically (#7060)
nalcalag Nov 7, 2025
4fbeb8f
Add pictogram ripple effect to AI settings (#7077)
0nko Nov 7, 2025
b47b6c3
Duck.ai: Omnibar (#7065)
malmstein Nov 7, 2025
f4a73c4
Move FF checks to io for checking if to wait for privacy config (#7080)
CDRussell Nov 8, 2025
f2f1579
Tag pixel owners (#7090)
ladamski Nov 10, 2025
d91ffc3
Delete unnecessary SafeWebViewFeature (#7091)
CrisBarreiro Nov 10, 2025
7148198
Split Omnibar: Tab switcher bottom bar (#7056)
0nko Nov 10, 2025
7787bf3
Split Omnibar: Existing functionality integration (#7062)
0nko Nov 11, 2025
57147f6
Split Omnibar: Ship review changes (#7083)
0nko Nov 11, 2025
01c9ea2
Use SafeSharedPreferences also for harmony prefs (#7084)
aitorvs Nov 11, 2025
8972cd4
Wait for bg coroutine to finish to make test stable (#7104)
CDRussell Nov 11, 2025
4409d25
Duck.ai: Single WebView PoC (#7094)
malmstein Nov 11, 2025
e2a6bfc
Measure and report build time (#7111)
LukasPaczos Nov 12, 2025
8dc9ad6
Remove atb and app_version params from wide event pixels (#7071)
lmac012 Nov 12, 2025
37e4af8
Remove experiment names from wide events (#7105)
lmac012 Nov 12, 2025
185939d
Add vpn-enable wide event (#7092)
lmac012 Nov 12, 2025
2468399
Enqueue wide event pixels (#7098)
lmac012 Nov 12, 2025
9497db6
Round down yearly plan savings % (#7089)
nalcalag Nov 13, 2025
8b7bfd4
Add netp state and process name params to auth token refresh wide eve…
lmac012 Nov 13, 2025
32f1723
Add complex script (#7107)
CrisBarreiro Nov 13, 2025
d3029de
Remove LiveData from BrowserViewModel (#7109)
malmstein Nov 13, 2025
27b9b29
Ensure EnqueuedPixelWorker does not do IO work on main thread (#7110)
CDRussell Nov 13, 2025
62552d8
Fix data clearing ANR (#7112)
cmonfortep Nov 13, 2025
6e6374f
Updated version number for new release - 5.257.0
github-actions[bot] Nov 14, 2025
7b37151
Merge branch 'release/5.257.0'
github-actions[bot] Nov 14, 2025
0c8be51
Merge branch 'release/5.257.0' into develop
github-actions[bot] Nov 14, 2025
e3f5dbb
Duck.ai: Fullscreen early feedback (#7120)
malmstein Nov 14, 2025
094c5fa
Add large script (#7116)
CrisBarreiro Nov 14, 2025
678c492
Add option to clear data in Data Clearing settings (#7096)
LukasPaczos Nov 14, 2025
e379d8d
Voice search toggle translations (#7082)
joshliebe Nov 17, 2025
0d1e22b
Duck.ai: Provide default value for tabs (#7129)
malmstein Nov 17, 2025
4cc3afb
Updated release notes and version number for new release - 5.257.1
malmstein Nov 17, 2025
28fa140
Duck.ai: Provide default value for tabs (#7129)
malmstein Nov 17, 2025
6e138cc
Merge branch 'hotfix/5.257.1' into develop
malmstein Nov 17, 2025
f8c3041
Merge branch 'hotfix/5.257.1'
malmstein Nov 17, 2025
8e7b113
Update fire button copy in Maestro tests (#7130)
joshliebe Nov 17, 2025
d214ec0
PIR: V1 observability pixels (#7102)
karlenDimla Nov 17, 2025
fb2396f
Create new feature flag for handling about blank web pages (#7132)
catalinradoiu Nov 17, 2025
55a6b79
Fix flaky test on event repository (#7133)
cmonfortep Nov 18, 2025
233e83a
Increase gradle max heap size (#7139)
CDRussell Nov 18, 2025
cb83c22
Increase tolerance for randomness in feature flag tests (#7138)
CDRussell Nov 18, 2025
f93d616
Add source to voice search pixel schema (#7134)
joshliebe Nov 18, 2025
53a06fd
Add surfaces parameter to RemoteMessage and updated related classes. …
anikiki Nov 18, 2025
e003507
Support multiple script injection through RC flags (#7141)
CrisBarreiro Nov 19, 2025
b210b63
Make "bookmark added" dialog specific to that use case (#7099)
CDRussell Nov 19, 2025
475d99c
Fix complex script runtime issues (#7142)
CrisBarreiro Nov 19, 2025
f06d284
Move strings to correct module for bookmark added dialog (#7127)
CDRussell Nov 19, 2025
b13e47d
Move BrowserPopupMenu to Browser-ui (#7117)
malmstein Nov 19, 2025
a60a957
Switch Plan translations (#7076)
nalcalag Nov 19, 2025
c685c68
Duck.ai: Tabs lifecycle (#7131)
malmstein Nov 19, 2025
956864f
SERP Settings Sync: Add and update pixels (#7073)
mikescamell Nov 19, 2025
4da988a
Update settings for Black Friday (#7135)
nalcalag Nov 20, 2025
2289d8e
Show about:blank in the omnibar when opening an empty page from a url…
catalinradoiu Nov 20, 2025
8f2bc0e
Remove the notification permissions experiment. (#7143)
anikiki Nov 20, 2025
1f2fd5f
Translate "DuckDuckGo Subscription" in app settings (#7154)
lmac012 Nov 20, 2025
252a109
Fix failing Duck Player test when bot detection is triggered (#7148)
CrisBarreiro Nov 20, 2025
cead15b
SERP Settings Sync: Hide SERP duck.ai toggle (#7153)
mikescamell Nov 20, 2025
55d4718
Update origin handling logic (Attributed Metrics) (#7156)
cmonfortep Nov 20, 2025
56b3bc7
Add sync promo to "bookmark added" dialog (#7136)
CDRussell Nov 20, 2025
6b4648f
Fix test setup and teardown in SurrogatesTest.kt (#7158)
anikiki Nov 20, 2025
b5302d5
SERP Settings Sync: Align feature flag names with other platforms (#7…
mikescamell Nov 20, 2025
06e965b
allow override client init date (internal setting) (#7163)
cmonfortep Nov 20, 2025
f014631
Remove the siteErrorHandlerKillSwitch feature flag (#7157)
0nko Nov 20, 2025
4e477fb
RMF: subscriptionFreeTrialActive Matching Attribute (#7144)
nalcalag Nov 20, 2025
95c3bc3
Default Black Friday Toggle to false (#7166)
nalcalag Nov 21, 2025
366f9fe
Handle render process crashes in SubscriptionsWebViewActivity (#7161)
lmac012 Nov 21, 2025
f31a59e
Remove exception messages from wide events (#7113)
lmac012 Nov 21, 2025
00ebeb8
Add catalinradoiu to github_asana_mapping.yml (#7167)
catalinradoiu Nov 21, 2025
71cac92
PIR: Enable remove from dashboard button (#7145)
landomen Nov 21, 2025
267c34a
PIR: Add engagement and relevant stat pixels (#7147)
karlenDimla Nov 21, 2025
9f6a299
integrate 'url-predictor-android' library (#7126)
LukasPaczos Nov 21, 2025
472c39a
Handle new tab opening when about:blank tab is open (#7150)
catalinradoiu Nov 21, 2025
6e3c7c6
SERP Setting Sync: Remove feature toggle from isNativeDuckAiEnabled (…
mikescamell Nov 21, 2025
0e85b3b
Duck.ai: Native menu (#7140)
malmstein Nov 21, 2025
da09116
Remove onboarding design experiment logic from Launch/Onboarding (#7174)
mikescamell Nov 21, 2025
095ce56
PIR: Add new removeOptOutFromDashboard message handler (#7151)
landomen Nov 21, 2025
5f08423
Set password last-used timestamp upon creation (#7170)
CrisBarreiro Nov 21, 2025
6e92979
Custom Tab: Remove the legacy omnibar layout (#7165)
0nko Nov 22, 2025
81ccf1e
Copy change request in switch upgrade option (#7177)
nalcalag Nov 23, 2025
660de61
Prioritize domain matches when searching passwords (#7164)
CrisBarreiro Nov 24, 2025
41a700f
Update autofill to 18.5.0 (#7173)
daxmobile Nov 24, 2025
d22adb8
Bookmark added confirmation dialog tidy-ups (#7162)
CDRussell Nov 24, 2025
64b6e49
Enable FF for showing sync setup promo in bookmark added dialog (#7171)
CDRussell Nov 24, 2025
dbab2a9
Enable voice search toggle (#7179)
joshliebe Nov 24, 2025
4e71a96
Updated version number for new release - 5.258.0
github-actions[bot] Nov 24, 2025
361348d
Merge branch 'release/5.258.0'
github-actions[bot] Nov 24, 2025
95a639d
Merge branch 'release/5.258.0' into develop
github-actions[bot] Nov 24, 2025
2e761f9
PIR: Handle removal of profiles from dashboard (#7172)
landomen Nov 24, 2025
9ac0d0a
SERP Settings Sync: Hide AI-Generated Images Translations (#7168)
mikescamell Nov 24, 2025
b7a2d89
Rebranding: Clean up string resources (#7186)
nalcalag Nov 24, 2025
40659f4
PIR: Refactor BrokerStep to reference Broker (#7182)
karlenDimla Nov 25, 2025
447306d
Remove feature flag from OpenNativeSettingsHandler (#7188)
mikescamell Nov 25, 2025
f6e77f5
Add maestro test to cover showing about:blank when redirected with em…
catalinradoiu Nov 25, 2025
6be671a
Use API 34 for Maestro tests for autofill (#7191)
CDRussell Nov 25, 2025
cc302d4
Remove header handling code in BrowserWebViewClient. (#7189)
anikiki Nov 25, 2025
7d3f2e9
[Android] Take 2 on this issue: The latest Android 16 update broke th…
anikiki Nov 25, 2025
686ed6e
Custom Tab: New custom tab design (#7185)
0nko Nov 25, 2025
8186888
PIR: Remove TODO for pixels (#7209)
landomen Nov 26, 2025
514847e
Fix: Custom tabs E2E tests (#7210)
0nko Nov 26, 2025
378004b
Navigate back to parent tab when the user presses back on the about b…
catalinradoiu Nov 26, 2025
2370946
Duck AI Migration (#7149)
marcosholgado Nov 26, 2025
066a9b8
Show about:blank in custom tabs when opening a new page with no url i…
catalinradoiu Nov 26, 2025
18304b2
Split Omnibar: E2E tests (#7175)
0nko Nov 26, 2025
d00d302
chore: Add GerardPaligot in github_asana_mapping.yaml file (#7230)
GerardPaligot Nov 26, 2025
5aff230
Exclude duck.ai when using fire button (#7152)
marcosholgado Nov 26, 2025
7168fe3
[Android] "What’s New" promo message: Add new message type to show a …
anikiki Nov 26, 2025
ced337a
Fix: Find in page on custom tabs (#7231)
0nko Nov 26, 2025
bde007b
Switch Plan Wide Event implementation (#7176)
nalcalag Nov 26, 2025
c7859a7
Update reference tests to version 1764159068 (#7235)
daxmobile Nov 27, 2025
ec5d4b5
Move getHeaders checks to io (#7225)
CrisBarreiro Nov 27, 2025
a94e72f
Translation for "bookmark added" sync setup promo (#7180)
CDRussell Nov 27, 2025
b341bea
Fix: Split omnibar E2E tests (#7236)
0nko Nov 27, 2025
c82e1cb
Revert "Move getHeaders checks to io" (#7240)
CrisBarreiro Nov 27, 2025
7cdc90f
Duck.ai: Omnibar polish' (#7207)
malmstein Nov 27, 2025
7e9d6ba
Updated version number for new release - 5.259.0
github-actions[bot] Nov 28, 2025
c541ad5
Merge branch 'release/5.259.0'
github-actions[bot] Nov 28, 2025
d4938c3
Merge branch 'release/5.259.0' into develop
github-actions[bot] Nov 28, 2025
a99ab66
Fix: Failing Input screen E2E tests (#7238)
0nko Nov 28, 2025
fb4b680
Ensure library init is async (#7243)
aitorvs Nov 28, 2025
5ef80fb
Custom tabs: Ship review feedback changes (#7244)
0nko Nov 28, 2025
286a3fc
PIR Android: fix confirmation/maintenance scan for requested/removed …
karlenDimla Nov 28, 2025
51ddc05
Updated version number for new release - 5.259.1
github-actions[bot] Nov 28, 2025
60b8f8a
Merge branch 'release/5.259.1'
github-actions[bot] Nov 28, 2025
7ede34a
Merge branch 'release/5.259.1' into develop
github-actions[bot] Nov 28, 2025
0d2847b
Add Input Screen onboarding step (#7187)
joshliebe Nov 28, 2025
c0c44bf
Update content scope scripts to version 12.2.0 (#7242)
daxmobile Dec 1, 2025
67c03be
Ensure critical test failures show up as release blockers (#7245)
CDRussell Dec 1, 2025
5d43485
Update customs tabs workflow to use playRelease (#7251)
joshliebe Dec 1, 2025
9c621af
Add contentScopeExperiments to epbf in broken_site_report.json (#7250)
laghee Dec 1, 2025
73557e2
Create databaseProvider (#7193)
CrisBarreiro Dec 1, 2025
2a7509d
Update custom tabs tests for new onboarding step (#7254)
joshliebe Dec 1, 2025
55183e6
Omnibar: Rollback padding changes (#7253)
malmstein Dec 1, 2025
7d0e31c
Fix: Wrong custom tab domain (#7249)
0nko Dec 1, 2025
e22a5f3
Reverted the widget changes (#7259)
anikiki Dec 2, 2025
5abfec6
[Android] "What’s New" promo message: Add new action to open Password…
anikiki Dec 2, 2025
8ac6511
Updated release notes and version number for new release - 5.259.2
landomen Dec 2, 2025
4060797
Reverted the widget changes (#7259)
anikiki Dec 2, 2025
43e46e0
Merge branch 'hotfix/5.259.2'
landomen Dec 2, 2025
9089db7
Merge tag '5.259.2' into develop
landomen Dec 2, 2025
f3cc11b
Add Debug Key Support for GitHub Actions when creating Debug variants…
catalinradoiu Dec 2, 2025
1dfd954
Add observability around atb-related initialization timeouts (#7181)
CDRussell Dec 2, 2025
96240bc
[Android] "What’s New" promo message: Add feature flag (#7262)
anikiki Dec 2, 2025
e61d48b
SERP Settings Sync: Remove excess logging (#7263)
mikescamell Dec 2, 2025
33071d2
Fix: IllegalArgumentException - New WebView for popup error (#7208)
0nko Dec 2, 2025
1a97ac6
Duck.ai: honor toggle value properly (#7258)
malmstein Dec 2, 2025
76de471
Duck.ai: Pixels for Fullscreen (#7241)
malmstein Dec 2, 2025
0f0c741
Make Shorter URL option the default for all new users (#7227)
GerardPaligot Dec 3, 2025
bd1f12c
Update content scope scripts to version 12.3.0 (#7257)
daxmobile Dec 3, 2025
043c652
Ensure bookmark added dialog is showing before trying to dismiss it (…
CDRussell Dec 3, 2025
8bee357
PIR: Add PIR observability pixels part 2 (#7232)
karlenDimla Dec 3, 2025
c196c31
Add maestro test to cover deeplink to SERP with a search query (#7268)
catalinradoiu Dec 3, 2025
bf85a57
Add cosmetic setting for Input Screen onboarding (#7261)
joshliebe Dec 3, 2025
260e8d5
Duck.ai: Fullscreen SR feedback (#7260)
malmstein Dec 4, 2025
3569084
PIR: Fix BE error message handling (#7271)
karlenDimla Dec 4, 2025
de92015
Update GHA release blocker step to only check for failure instead of …
CDRussell Dec 4, 2025
585b2ac
PIR: add pixel for dashboard opened (#7272)
karlenDimla Dec 4, 2025
80f908f
Update autoconsent to v14.39.0 (#7265)
daxmobile Dec 4, 2025
03c4a82
Android prompts overlapping (#7273)
anikiki Dec 4, 2025
6313dcb
Add app version where ANR happened to ANR pixels (#7267)
CDRussell Dec 4, 2025
a94722a
Use newer GHA for creating release-blocking asana tasks (#7278)
CDRussell Dec 4, 2025
4ab85da
Add Input Screen onboarding wide event (#7239)
joshliebe Dec 5, 2025
7c7efb6
Fix: Omnibar E2E tests (#7286)
0nko Dec 5, 2025
ae36e01
Maestro: Use copyTextFrom annd pasteText (#7281)
malmstein Dec 5, 2025
4b6e515
Update pixel definition to be an enum type (#7289)
CDRussell Dec 5, 2025
090da5c
PIR: Add daily pixel for PIR_BROKER_ACTION_FAILED (#7285)
karlenDimla Dec 5, 2025
1f68518
Digital Asset Links Setup: add assets statements to android manifest …
catalinradoiu Dec 5, 2025
2d650c9
Fix Forward button in NTP menu (#7290)
malmstein Dec 5, 2025
864ac9f
Duck.ai: Toggle inits in Chat mode when coming from Duck.ai (#7283)
malmstein Dec 5, 2025
2edbeae
PIR: Fix stored setCustomStatsPixelsLastSentMs (#7293)
karlenDimla Dec 5, 2025
ce582d6
Fix logging vpn-enable wide event steps (#7277)
lmac012 Dec 5, 2025
51d1b22
Duck.ai: Change menu item titles (#7274)
malmstein Dec 5, 2025
696d2af
fix: Update youtube related E2E tests and fix the flow (#7288)
GerardPaligot Dec 5, 2025
8646b06
Duck.ai: Fullscreen Mode Toggle (#7280)
malmstein Dec 5, 2025
09e6ccf
Add InputScreenOnboardingWideEvent pixel definition (#7294)
joshliebe Dec 5, 2025
36f5032
Duck.ai: Update copy of Tabs Mode toggle (#7303)
malmstein Dec 5, 2025
da7e515
Update content scope scripts to version 12.6.0 (#7307)
daxmobile Dec 6, 2025
dd1130a
Fix: Optimize omnibar initialization (#7229)
0nko Dec 8, 2025
132f18e
Fix 14_-_Single-site,_single-tab,_no-session-after-fire privacy maest…
GerardPaligot Dec 8, 2025
754eb54
Free Trial Conversion Wide Event implementation (#7309)
nalcalag Dec 8, 2025
37a2e96
Free Trial conversion WideEvent pixel definition (#7313)
nalcalag Dec 8, 2025
85adbf3
Update widePixelDevMode description (#7314)
joshliebe Dec 8, 2025
0b940be
Fix cookie flush ANR (#7312)
joshliebe Dec 8, 2025
c2815d2
Expand AppTP TDS Experiment Conversion Window (#7276)
GuiltyDolphin Dec 8, 2025
5f552ef
Prevent updating the omnibar text with the url if it needs to display…
catalinradoiu Dec 8, 2025
2cd94eb
Fix security maestro tests (#7311)
GerardPaligot Dec 8, 2025
1baf7af
Fix "about:blank" flicker in omnibar when a link is opened in a new t…
catalinradoiu Dec 8, 2025
17e8025
Add pointers in pixel template (#7306)
nshuba Dec 8, 2025
eeff303
Limit search suggestions to 5 (#7300)
GerardPaligot Dec 9, 2025
bdada95
Update content scope scripts to version 12.8.0 (#7318)
daxmobile Dec 9, 2025
1afca80
Fix flaky matching for "Watch on YouTube" button (#7319)
CrisBarreiro Dec 9, 2025
5b6ea0f
Fix 5_-_AddressBarSpoof,_downloadpath.yaml maestro test (#7320)
catalinradoiu Dec 9, 2025
6d2b4a3
Fix: Display about:blank for empty URLs in custom tabs (#7316)
0nko Dec 9, 2025
620fcff
Updated version number for new release - 5.260.0
github-actions[bot] Dec 9, 2025
fc12da0
Merge branch 'release/5.260.0' into develop
github-actions[bot] Dec 9, 2025
2d49731
Remove deeplink_to_serp_with_query.yaml maestro test (#7321)
catalinradoiu Dec 9, 2025
4c34fc5
Updated version number for new release - 5.260.1
github-actions[bot] Dec 9, 2025
d1c595a
Merge branch 'release/5.260.1' into develop
github-actions[bot] Dec 9, 2025
13f3516
Duck.ai: Tabs Mode Toggle Translations (#7304)
malmstein Dec 9, 2025
11966b1
Update screen search mode and bookmarks E2E tests and fix flows (#7287)
GerardPaligot Dec 9, 2025
8603f15
Updated version number for new release - 5.260.2
github-actions[bot] Dec 9, 2025
aaf21cf
Merge branch 'release/5.260.2' into develop
github-actions[bot] Dec 9, 2025
d3722a0
Remove languages to match Play Store (#7325)
malmstein Dec 9, 2025
0723879
Updated version number for new release - 5.260.3
github-actions[bot] Dec 10, 2025
d7cd1de
Merge branch 'release/5.260.3' into develop
github-actions[bot] Dec 10, 2025
96d162c
Update content scope scripts to version 12.9.0 (#7329)
daxmobile Dec 10, 2025
a76e73c
Delete DuckChatWebViewActivity (#7328)
joshliebe Dec 10, 2025
a92a146
Remove onboarding experiment code (#7302)
mikescamell Dec 10, 2025
6f87241
Remove onboarding experiment strings (#7305)
mikescamell Dec 10, 2025
e0a5e3a
Move pixel sending logic inside AtbInitializer (#7323)
CDRussell Dec 10, 2025
be87fbc
Android: Remove kill switch and cleanup support for subscription supp…
karlenDimla Dec 10, 2025
8b41e5f
Add subscription-restore wide event (#7317)
lmac012 Dec 10, 2025
85fe47c
Update mic site permissions check (#7326)
joshliebe Dec 10, 2025
db839d9
Update content scope scripts to version 12.10.0 (#7337)
daxmobile Dec 11, 2025
0107a5a
E2E Tests: Fix pre-onboarding maestro test (#7338)
landomen Dec 11, 2025
0f92648
PIR: Add unit tests for core classes (#7333)
landomen Dec 11, 2025
f9e3a89
PIR: Add unit tests for JS event handlers (#7334)
landomen Dec 11, 2025
968716c
Add unit tests for other classes (#7335)
landomen Dec 11, 2025
aa3d17b
Fire Dialog: Data storage (#7282)
0nko Dec 11, 2025
62ea814
Fire Dialog: New feature flag (#7295)
0nko Dec 11, 2025
8fb21be
Create new navigation test for SERP with search query and add it as a…
catalinradoiu Dec 11, 2025
b5994bc
Remove index param in autocomplete click phrase and website pixels (#…
GerardPaligot Dec 11, 2025
6b10802
use the corrent margin for bottom omnibar (#7255)
GerardPaligot Dec 11, 2025
14d2b78
Migrate site-permissions to DatabaseProvider (#7220)
CrisBarreiro Dec 11, 2025
00b8eff
PIR: Make PirBeta FF internal enabled (#7341)
karlenDimla Dec 11, 2025
c5dd1ae
Update content scope scripts to version 12.12.0 (#7344)
daxmobile Dec 12, 2025
8a9fc4b
Fix link for help center for duck ai (#7345)
karlenDimla Dec 12, 2025
0f62e11
Bump to url-predictor 0.3.13 (#7347)
aitorvs Dec 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
5 changes: 5 additions & 0 deletions .claude/settings.local.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"disabledMcpjsonServers": [
"doc-bot"
]
}
8 changes: 8 additions & 0 deletions .cursor/mcp.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"mcpServers": {
"doc-bot": {
"command": "npx",
"args": ["@afterxleep/doc-bot@latest", "--docs", "./.rules", "--watch"]
}
}
}
131 changes: 131 additions & 0 deletions .cursor/rules/doc-bot.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
---
alwaysApply: true
---
## PHASE 1: ENVIRONMENT DETECTION

```
IF (
(filesystem_contains("doc-bot/") AND
(mcp_server_available("doc-bot") OR mcp_server_available("@afterxleep/doc-bot"))
) THEN {
ACTIVATE: doc_bot_enforcement_protocol()
SET: project_documentation_authority = TRUE
SET: general_knowledge_override = DISABLED
}
```

## PHASE 2: REQUEST CLASSIFICATION ENGINE

### CLASSIFICATION MATRIX:

**CLASS A: CODE_GENERATION**
```
Trigger Pattern: /\b(write|create|implement|build|add|code|function|class|component|method|develop|generate|make|refactor|modify|update|fix|debug)\b/i
Required Action: MANDATORY_CALL(check_project_rules, extract_task_description())
Blocking: TRUE (cannot proceed without tool response)
Timeout: 30s
```

**CLASS B: PROJECT_INQUIRY**
```
Trigger Pattern: /\b(how|what|why|architecture|approach|pattern|feature|authentication|database|api|testing)\b/i
Context Pattern: /\b(this project|this codebase|here|our|current project)\b/i
Required Action: MANDATORY_CALL(search_documentation, extract_keywords())
Blocking: TRUE
Timeout: 30s
```

**CLASS C: DOCUMENTATION_DISCOVERY**
```
Trigger Pattern: /\b(documentation|available|capabilities|help|rules|standards|what exists|docs|guide)\b/i
Required Action: MANDATORY_CALL(get_global_rules)
Blocking: TRUE
Timeout: 30s
```

**CLASS D: DOCUMENT_ACCESS**
```
Trigger Pattern: /\b(read|show|get content|full document|complete|entire)\b/i
Previous Context: search_results_present()
Required Action: MANDATORY_CALL(read_specific_document, extract_filename())
Blocking: FALSE
Timeout: 15s
```

**Note**: For file-specific queries like "working on src/utils.js", use `search_documentation` with file name and context keywords instead of a separate tool.

## PHASE 3: EXECUTION ENFORCEMENT

### PRE-RESPONSE VALIDATION:
```
BEFORE generating_response():
classification = classify_request(user_input)
IF classification != "UNRELATED":
tool_result = execute_mandatory_tool(classification)
IF tool_result.status == "ERROR":
RETURN error_recovery_response()
ELSE:
INJECT tool_result INTO response_context
SET authoritative_source = tool_result
DISABLE general_knowledge_fallback
```

### RESPONSE CONSTRAINT ENGINE:
```
WHILE generating_response():
IF attempting_to_use(general_knowledge) AND authoritative_source.exists():
INTERRUPT_GENERATION()
FORCE_USE(authoritative_source)

IF code_generation_detected() AND NOT project_rules_checked:
HALT_EXECUTION()
EMIT_ERROR("Project rules validation required before code generation")
```

## PHASE 4: QUALITY ASSURANCE

### RESPONSE VALIDATION:
```
AFTER generating_response():
IF response_contradicts(tool_result):
REGENERATE_RESPONSE(tool_result_only=TRUE)

IF response_lacks(tool_attribution):
APPEND_ATTRIBUTION(tool_result.source)

VALIDATE response_compliance(project_rules)
```

### FAILURE DETECTION & RECOVERY:
```
IF response_generated() WITHOUT tool_execution():
LOG_VIOLATION("Tool bypass detected")
REGENERATE_WITH_TOOLS()
PREPEND_WARNING("Corrected response using project documentation:")
```

## PHASE 5: BEHAVIORAL CONSTRAINTS

### ABSOLUTE PROHIBITIONS:
- **Code generation without project rules validation**
- **Project-specific answers from general knowledge**
- **Overriding tool responses with training data**
- **Bypassing tool calls for "simple" questions**

### MANDATORY BEHAVIORS:
- **Tool-first response generation**
- **Explicit tool result attribution**
- **Project documentation precedence**
- **Error acknowledgment and correction**

## VERIFICATION PROTOCOL:

**Test Inputs** (Agent must call tools immediately):
- "What documentation is available?" → get_global_rules()
- "How do I implement auth?" → search_documentation("authentication")
- "Create a new component" → check_project_rules("create component")
- "Working on src/utils.js" → search_documentation("src/utils.js utils")

**Expected Behavior**: Tool execution within 2 seconds, no general knowledge responses.

**Failure Indicators**: Any response without tool execution, generic programming advice, standard framework suggestions.
98 changes: 98 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
[*.{kt,kts}]
charset = utf-8
end_of_line = lf
indent_size = 4
indent_style = space
insert_final_newline = true
max_line_length = 150
tab_width = 4
ij_continuation_indent_size = 4
ij_formatter_off_tag = @formatter:off
ij_formatter_on_tag = @formatter:on
ij_formatter_tags_enabled = false
ij_smart_tabs = false
ij_wrap_on_typing = false
ij_kotlin_align_in_columns_case_branch = false
ij_kotlin_align_multiline_binary_operation = false
ij_kotlin_align_multiline_extends_list = false
ij_kotlin_align_multiline_method_parentheses = false
ij_kotlin_align_multiline_parameters = false
ij_kotlin_align_multiline_parameters_in_calls = false
ij_kotlin_allow_trailing_comma = true
ij_kotlin_allow_trailing_comma_on_call_site = true
ij_kotlin_assignment_wrap = normal
ij_kotlin_blank_lines_after_class_header = 0
ij_kotlin_blank_lines_around_block_when_branches = 0
ij_kotlin_blank_lines_before_declaration_with_comment_or_annotation_on_separate_line = 1
ij_kotlin_block_comment_at_first_column = true
ij_kotlin_call_parameters_new_line_after_left_paren = true
ij_kotlin_call_parameters_right_paren_on_new_line = true
ij_kotlin_call_parameters_wrap = normal
ij_kotlin_catch_on_new_line = false
ij_kotlin_class_annotation_wrap = split_into_lines
ij_kotlin_code_style_defaults = KOTLIN_OFFICIAL
ij_kotlin_continuation_indent_for_chained_calls = true
ij_kotlin_continuation_indent_for_expression_bodies = false
ij_kotlin_continuation_indent_in_argument_lists = true
ij_kotlin_continuation_indent_in_elvis = true
ij_kotlin_continuation_indent_in_if_conditions = true
ij_kotlin_continuation_indent_in_parameter_lists = false
ij_kotlin_continuation_indent_in_supertype_lists = true
ij_kotlin_else_on_new_line = false
ij_kotlin_enum_constants_wrap = split_into_lines
ij_kotlin_extends_list_wrap = on_every_item
ij_kotlin_field_annotation_wrap = normal
ij_kotlin_finally_on_new_line = false
ij_kotlin_if_rparen_on_new_line = true
ij_kotlin_import_nested_classes = true
ij_kotlin_imports_layout=*,java.**,javax.**,kotlin.**,^
ij_kotlin_insert_whitespaces_in_simple_one_line_method = true
ij_kotlin_keep_blank_lines_before_right_brace = 0
ij_kotlin_keep_blank_lines_in_code = 1
ij_kotlin_keep_blank_lines_in_declarations = 1
ij_kotlin_keep_first_column_comment = true
ij_kotlin_keep_indents_on_empty_lines = false
ij_kotlin_keep_line_breaks = true
ij_kotlin_lbrace_on_next_line = false
ij_kotlin_line_comment_add_space = true
ij_kotlin_line_comment_at_first_column = false
ij_kotlin_method_annotation_wrap = normal
ij_kotlin_method_call_chain_wrap = on_every_item
ij_kotlin_method_parameters_new_line_after_left_paren = true
ij_kotlin_method_parameters_right_paren_on_new_line = true
ij_kotlin_method_parameters_wrap = split_into_lines
ij_kotlin_name_count_to_use_star_import = 999
ij_kotlin_name_count_to_use_star_import_for_members = 999
ij_kotlin_parameter_annotation_wrap = off
ij_kotlin_space_after_comma = true
ij_kotlin_space_after_extend_colon = true
ij_kotlin_space_after_type_colon = true
ij_kotlin_space_before_catch_parentheses = true
ij_kotlin_space_before_comma = false
ij_kotlin_space_before_extend_colon = true
ij_kotlin_space_before_for_parentheses = true
ij_kotlin_space_before_if_parentheses = true
ij_kotlin_space_before_lambda_arrow = true
ij_kotlin_space_before_type_colon = false
ij_kotlin_space_before_when_parentheses = true
ij_kotlin_space_before_while_parentheses = true
ij_kotlin_spaces_around_additive_operators = true
ij_kotlin_spaces_around_assignment_operators = true
ij_kotlin_spaces_around_equality_operators = true
ij_kotlin_spaces_around_function_type_arrow = true
ij_kotlin_spaces_around_logical_operators = true
ij_kotlin_spaces_around_multiplicative_operators = true
ij_kotlin_spaces_around_range = false
ij_kotlin_spaces_around_relational_operators = true
ij_kotlin_spaces_around_unary_operator = false
ij_kotlin_spaces_around_when_arrow = true
ij_kotlin_variable_annotation_wrap = off
ij_kotlin_while_on_new_line = false
ij_kotlin_wrap_elvis_expressions = 1
ij_kotlin_wrap_expression_body_functions = 1
ij_kotlin_wrap_first_method_in_call_chain = false
ktlint_standard_no-wildcard-imports = disabled
ktlint_standard_filename = disabled
ktlint_standard_package-name = disabled
ktlint_standard_annotation = disabled
ktlint_standard_kdoc-wrapping = disabled
16 changes: 13 additions & 3 deletions .githooks/pre-commit
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
./gradlew spotlessApply
git add `git diff --name-only`
exit 0
#!/bin/bash
echo "Running spotless check"
./gradlew spotlessApply

echo "Running PixelDefinitions lint fix (npm run lint.fix)"
pushd PixelDefinitions >/dev/null
npm install
# Auto fix pixel-schema lint issues
npm run lint.fix
popd >/dev/null

git add `git diff --name-only --cached`
exit 0
1 change: 1 addition & 0 deletions .github/.java-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
17
6 changes: 6 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# This is the module where the Android Design System resides
# Any changes to the source files of this module require approval from @malmstein or @nalcalag.
/android-design-system/design-system/ @malmstein @mikescamell
/android-design-system/design-system-internal/ @malmstein @mikescamell
/saved-sites/ @malmstein
/example-feature/ @cdrussell
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
blank_issues_enabled: false
24 changes: 9 additions & 15 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,14 @@
<!--
Note: This checklist is a reminder of our shared engineering expectations. Feel free to change it, although assigning a GitHub reviewer and the items in bold are required.
-->

Task/Issue URL:
Tech Design URL:
CC:

**Description**:

### Description

**Steps to test this PR**:
1.
1.
### Steps to test this PR

_Feature 1_
- [ ]
- [ ]

---
###### Internal references:
[Software Engineering Expectations](https://app.asana.com/0/59792373528535/199064865822552)
[Technical Design Template](https://app.asana.com/0/59792373528535/184709971311943)
### UI changes
| Before | After |
| ------ | ----- |
!(Upload before screenshot)|(Upload after screenshot)|
4 changes: 4 additions & 0 deletions .github/actionlint.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
self-hosted-runner:
labels:
# Stops incorrect warning of android-large-runner being used
- android-large-runner
Loading