duckduckgo / duckduckgo/Android
[repo-status] Daily Repo Status — March 31, 2026
Nobody has claimed this yet.
- Dominant language
- Kotlin
- Stars
- 4.8k
- Forks
- 1.4k
- Avg merge
- 2d 17h
- Merged PRs (30d)
- 170
Description
Latest Release
| Field | Details |
|---|---|
| Version | 5.274.1 (hotfix) |
| Released | 2026-03-30 |
| Target | develop branch |
| APK size | 122 MB (play-release) |
| Downloads | 2,663 |
| Notes | "Various bug fixes and improvements" — hotfix on top of 5.274.0 (released 2026-03-27) |
Two releases in four days signals a fast hotfix cycle.
Recent Commits on main (last 20)
| Date | Author | Commit |
|---|---|---|
| 2026-03-30 | @CDRussell |
Merge branch 'hotfix/5.274.1' |
| 2026-03-30 | @GerardPaligot |
Add kill switch for SERP logo in browser menu header (#8148) |
| 2026-03-30 | @CDRussell |
Updated release notes and version number — 5.274.1 |
| 2026-03-27 | @github-actions |
Merge branch 'release/5.274.0' |
| 2026-03-27 | @github-actions |
Updated version number — 5.274.0 |
| 2026-03-26 | @malmstein |
Rollback First Screen until rolling out (#8120) |
| 2026-03-26 | @GerardPaligot |
Menu item polish: copy, icons, and color consistency (#8110) |
| 2026-03-26 | @landomen |
PIR: Download brokers when scan starts (#8118) |
| 2026-03-26 | @nalcalag |
Update subscription onboarding & modal origins (#8099) |
| 2026-03-26 | @nalcalag |
VPN menu item: Show 'Try for Free' pill only for eligible users (#8111) |
| 2026-03-26 | @karlenDimla |
PIR: Add additional params for foreground pixel (#8113) |
| 2026-03-26 | @GerardPaligot |
Dismiss menu when a new page loads from external app (#8108) |
| 2026-03-26 | @CrisBarreiro |
Reduce risk for key_already_existing and race conditions (#8085) |
| 2026-03-26 | @0nko |
Single tab burn: Fixed updated translations (#8114) |
| 2026-03-26 | @GerardPaligot |
Fire original popup menu pixels from the bottom sheet menu (#8109) |
| 2026-03-26 | @0nko |
Fix: String mismatch that broke the build (#8112) |
| 2026-03-26 | @nalcalag |
New browser menu: Update VPN menu item yellow pill padding (#8107) |
| 2026-03-26 | @0nko |
Single tab burn: Updated string translations (#8096) |
| 2026-03-26 | @LukasPaczos |
Enable SyncFeature#sendSyncSetupWideEvent feature flag by default (#8104) |
| 2026-03-26 | @CDRussell |
Add ability to easily query translation branch status (#8103) |
Pattern: Most recent main activity is the hotfix merge (5.274.1). Prior commits show heavy browser menu work, PIR improvements, subscription updates, and translation fixes all landing on the same day before the 5.274.0 release cut.
Open Pull Requests (20 most recently updated)
| # | Title | Author | Labels | Updated |
|---|---|---|---|---|
#8160 |
Implement unfocused native input state for Duck.ai | @joshliebe |
— | 2026-03-31 |
#8116 |
Make L2 Key writes atomic | @CrisBarreiro |
QA-Optional | 2026-03-31 |
#8141 |
Hatch: Make idle timeout a user setting | @malmstein |
— | 2026-03-31 |
#8159 |
Fix m_aichat_settings_auto_context pixel definition | @malmstein |
— | 2026-03-31 |
#8161 |
Onboarding Brand Design Update: Add browser comparison screen | @mikescamell |
— | 2026-03-31 |
#8154 |
Enforce allowed domains check for Duck Player | @CrisBarreiro |
— | 2026-03-31 |
#8087 |
Fixes for autofill service (multi-process) | @CrisBarreiro |
— | 2026-03-31 |
#8157 |
Add model picker to native input | @joshliebe |
— | 2026-03-31 |
#8135 |
Update copy for sync screen in recovery code flow | @CDRussell |
Pending Translations | 2026-03-31 |
#8158 |
Update autoconsent to v14.67.0 | @daxmobile |
— | 2026-03-31 |
#8152 |
Agentic: Maintenance Worker | @malmstein |
— | 2026-03-30 |
#8081 |
Differentiate Duck.ai tabs in tab switcher | @malmstein |
— | 2026-03-30 |
#8156 |
Check cache to skip network requests when fetching from url and tab | @marcosholgado |
— | 2026-03-30 |
#8083 |
Remove duplicated JS subscription handler | @cmonfortep |
— | 2026-03-30 |
#8100 |
feat: add KSP processor for ContentScopePrivacyFeature boilerplate | @aibrahim- |
— | 2026-03-30 |
#8149 |
Add fire button to contextual Duck.ai sheet | @aitorvs |
— | 2026-03-30 |
#8133 |
Instrument WebView errors with raw error code pixel | @malmstein |
— | 2026-03-30 |
#8090 |
Rename safe ppro references to subscriptions | @cmonfortep |
— | 2026-03-30 |
#8128 |
Data clearing plugin: New modules and API | @0nko |
QA-Optional | 2026-03-29 |
#8086 |
Add DRM enabled status to broken site feedback reports | @jonathanKingston |
— | 2026-03-29 |
Recently Closed / Merged Pull Requests (last 20)
| # | Title | Author | Labels | Merged | Status |
|---|---|---|---|---|---|
#8123 |
Update origin and pixels for new subscription modal | @nalcalag |
QA-Optional | 2026-03-31 | Merged |
#8139 |
Control animation on search and chat selection | @YoussefKeyrouz |
— | 2026-03-31 | Merged |
#8121 |
Add pixels for tracking default toggle position | @YoussefKeyrouz |
privacy review required | 2026-03-31 | Merged |
#8119 |
Upgrade progress bar | @aibrahim- |
— | 2026-03-30 | Merged |
#8155 |
Display back history with a long press on back button | @GerardPaligot |
— | 2026-03-30 | Merged |
#8115 |
Add default toggle position for new and existing users | @YoussefKeyrouz |
— | 2026-03-30 | Merged |
#8124 |
Update Default Browser settings icon | @LukasPaczos |
— | 2026-03-30 | Merged |
#8150 |
Update custom header tests to use UTC | @CDRussell |
QA-Optional | 2026-03-30 | Merged |
#8147 |
Hatch: Fix for empty tab titles | @malmstein |
— | 2026-03-30 | Merged |
#8131 |
Android: Remove postCtaExperience and onboardingHomeScreenWidget feature flags | @anikiki |
— | 2026-03-30 | Merged |
#8148 |
Add kill switch for SERP logo in browser menu header | @GerardPaligot |
— | 2026-03-30 | Merged |
#8102 |
Prevent Asana tasks from being created by strings-changed E2E workflow | @malmstein |
— | 2026-03-30 | Merged |
#8145 |
Make adding labels a separate step | @landomen |
— | 2026-03-30 | Merged |
#8143 |
Update PIR broker bundle - 2026-03-30 | @daxmobile |
automated pr, pir | 2026-03-30 | Merged |
#8093 |
Wire Default Toggle Setting to New Tab Page behaviour | @YoussefKeyrouz |
— | 2026-03-27 | Merged |
#8072 |
Add setting to select toggle position (input screen) | @YoussefKeyrouz |
— | 2026-03-26 | Merged |
#8117 |
Sanitize intent fallback URLs to prevent JavaScript execution | @not-a-rootkit |
— | 2026-03-28 | Merged |
#8134 |
[Android Maintenance] Remove unused DuckChatWebViewFragment | @malmstein |
— | — | Closed (not merged) |
#8070 |
Translations for sync "recovery" section in sync settings | @CDRussell |
QA-Optional | 2026-03-27 | Merged |
#8008 |
Update sync settings screen with new recovery section | @CDRussell |
— | 2026-03-27 | Merged |
Open Issues (15 most recently updated)
| # | Title | Author | Labels | Updated |
|---|---|---|---|---|
#7725 |
[Bug] DDG browser is DoS-ing my site (excessive favicon requests) | @Kangaroux |
bug, needs triage | 2026-03-30 |
#8144 |
[Bug] Crash when switching tabs (ViewPager2 LayoutTransition conflict) | @JeffHuang04 |
bug, needs triage | 2026-03-30 |
#8153 |
[repo-status] Daily Repo Status — March 30, 2026 | @github-actions |
report, daily-status | 2026-03-30 |
#7844 |
[Bug] DDG refuses to download files from directories secured with basic auth | @frie |
bug, needs triage | 2026-03-13 |
#7805 |
[Bug] Authorize.net AcceptUI.js payment form broken by privacy protections | @whitinger |
bug, needs triage | 2026-02-24 |
#5383 |
[Bug] DDG bookmarks disappeared | @slade-cj |
bug, needs triage | 2026-02-21 |
#4854 |
[Request/Bug] Disable pull-down-to-refresh | @gothgirlwife |
bug, needs triage | 2026-02-20 |
#6062 |
[Bug] Searching bookmarks after deleting a folder returns no results | @seabornlee |
bug, needs triage | 2026-02-20 |
#2799 |
[Bug] Can't specify protocol in "Unprotected Sites" exceptions | @Mugurell |
bug, needs triage | 2026-02-20 |
#4912 |
[Bug] Search Widget doesn't escape single quote | @rkglover |
bug, needs triage | 2026-02-08 |
#7431 |
[Bug] App returns to start page after rotation | @ImDiM |
bug, needs triage | 2026-01-13 |
#6374 |
[Bug] Site icons keep disappearing | @person12675 |
bug, needs triage | 2025-11-07 |
#6996 |
Disabled AI features suggested in widget creation prompt | @Ricky-Tigg |
bug, needs triage | 2025-11-05 |
#6793 |
[Request] Add option to name pages before adding to home screen | @nilsjor |
bug, needs triage | 2025-10-08 |
#2798 |
[Bug] Strange background behind contextual menu in "Unprotected sites" | @Mugurell |
bug, needs triage | 2025-10-02 |
Total open issues in repository: 63
Recently Closed Issues (last 15)
| # | Title | Author | Labels | Updated |
|---|---|---|---|---|
#8151 |
[Bug] Back button long press (back history regression) | @VIMVa |
bug, needs triage | 2026-03-30 |
#8146 |
[repo-status] Daily Repo Status — March 30, 2026 | @github-actions |
report, daily-status | 2026-03-30 |
#8142 |
[Bug] (empty title) | @norbertwe21-afk |
bug, needs triage | 2026-03-30 |
#8140 |
[repo-status] Daily Repo Status — March 29, 2026 | @github-actions |
report, daily-status | 2026-03-30 |
#8137 |
[repo-status] Daily Repo Status — March 28, 2026 | @github-actions |
report, daily-status | 2026-03-29 |
#8138 |
Título da Questão (spam/invalid) | @Roger39476 |
— | 2026-03-28 |
#8122 |
[repo-status] Daily Repo Status — March 27, 2026 | @github-actions |
report, daily-status | 2026-03-28 |
#8095 |
[repo-status] Daily Repo Status — March 26, 2026 | @github-actions |
report, daily-status | 2026-03-27 |
#8073 |
[repo-status] Daily Repo Status — March 25, 2026 | @github-actions |
report, daily-status | 2026-03-26 |
#8062 |
[repo-status] Daily Repo Status — March 24, 2026 | @github-actions |
report, daily-status | 2026-03-25 |
#8054 |
[repo-status] Daily Repo Status — March 23, 2026 | @github-actions |
report, daily-status | 2026-03-24 |
#8052 |
[repo-status] Daily Repo Status — March 22, 2026 | @github-actions |
report, daily-status | 2026-03-23 |
#8051 |
[repo-status] Daily Repo Status — March 21, 2026 | @github-actions |
report, daily-status | 2026-03-22 |
#8035 |
[repo-status] Daily Repo Status — March 20, 2026 | @github-actions |
report, daily-status | 2026-03-21 |
#8038 |
Audio streaming stops after ~2 minutes when app is in background | @stitam |
bug, needs triage | 2026-03-20 |
Note: Nearly all recently closed issues are automated daily status reports. The only genuine user-reported bugs closed in this period are #8151 (back-button long-press, closed likely as duplicate/resolved by #8155) and #8038 (audio streaming — status unclear).
Themes and Patterns
1. Duck.ai / Hatch Feature Blitz
The single largest area of active development. Open PRs include native input states (#8160), model picker (#8157), idle timeout settings (#8141), fire button in contextual sheet (#8149), tab differentiation (#8081), and agentic maintenance worker (#8152). Merges this week include empty tab title fix (#8147) and animation controls (#8139). This feature is clearly in heavy pre-release build-up.
2. New Tab Page Toggle / Input Screen UI
A coordinated multi-PR effort from @YoussefKeyrouz: default toggle position wired to NTP (#8093, merged), toggle position for input screen (#8072, merged), pixels for tracking (#8121, merged with privacy review), and animation control (#8139, merged). This looks like a phased rollout of the toggle/input-screen feature with full pixel coverage.
3. Browser Menu Overhaul
Several recently merged PRs polish the browser menu: copy and icon consistency (#8110), dismissal behavior on external navigation (#8108), pixel firing (#8109), VPN pill padding (#8107), SERP logo kill switch (#8148), and settings icon update (#8124). The menu rewrite appears to be stabilizing post-launch.
4. Sync Recovery Flow
@CDRussell landed a complete sync recovery flow: settings screen update (#8008), translations (#8070), copy update (#8135 still pending translations). #8135 is currently blocked on translations — a common workflow dependency.
5. Security Hardening
Two security fixes this week: intent fallback URL sanitization to block JavaScript execution (#8117, @not-a-rootkit), and L2 key atomicity (#8116, still open). Duck Player domain enforcement (#8154) also adds defense-in-depth.
6. PIR (Privacy Protection / Personal Information Removal)
Automated daily broker bundle updates continue (#8143). Active work includes broker download-on-scan-start (#8118, merged), foreground pixels (#8113, merged), and data clearing plugin new API (#8128, open).
7. Subscriptions / ppro Rename
A module-level rename from ppro to subscriptions is in progress (#8090, open). Modal origin/pixel updates (#8123, merged) accompany this refactor.
8. Code Quality and Architecture
- KSP processor for ContentScopePrivacyFeature boilerplate (
#8100, open) — reduces annotation boilerplate - Removal of stale feature flags postCtaExperience and onboardingHomeScreenWidget (
#8131, merged) - Duplicate JS subscription handler removal (
#8083, open) - Data clearing plugin: new modules and API (
#8128)
9. Triage Backlog
All 63 open issues carry bug + needs triage. No issues appear to have been actively triaged recently. Longer-standing bugs (some from 2023) continue to accumulate. Two new bugs filed in the last 48 hours:
#8144— ViewPager2 / LayoutTransition crash when switching tabs (reproducible, fresh)#8151— Back-button long-press regression (now closed, likely resolved by#8155which adds back-history on long-press)
High-priority untriaged bugs worth attention:
#7725— Excessive favicon polling generating ~10–20 req/s per user, impacting external server operators#7844— Downloads fail for basic-auth-protected directories#7805— Authorize.net AcceptUI.js silently broken by privacy protections
Key Contributors (last 7 days)
| Author | Activity |
|---|---|
@malmstein |
Hatch/agentic PRs, hotfix pipeline, maintenance cleanups |
@YoussefKeyrouz |
Toggle/NTP feature — 4 PRs merged this week |
@GerardPaligot |
Browser menu polish, back-history feature, pixel work |
@CDRussell |
Sync recovery end-to-end, hotfix merge, translation tooling |
@CrisBarreiro |
Security/autofill: L2 atomicity, Duck Player, autofill multi-process |
@joshliebe |
Duck.ai native input: model picker, unfocused state |
@not-a-rootkit |
Security: intent URL sanitization |
@nalcalag |
Subscriptions/VPN menu updates |
@0nko |
Data clearing, single tab burn, translation fixes |
@landomen |
PIR broker download, CI label tooling |
Generated 2026-03-31 — covers open PRs, closed PRs, issues, commits, and release data from the duckduckgo/Android repository.
Generated by Daily Repo Status · gh-aw-workflow-call-id: duckduckgo/Android/Daily Repo Status
Generated by Daily Repo Status · ◷
To install this agentic workflow, run
gh aw add githubnext/agentics/workflows/daily-repo-status.md@b466f28f0f65b68d6f2b10b15b44f51d787b93be
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
This issue is an automated daily repository-status report covering releases, commits, pull requests, and issues. It names no source files, tests, or requested change, so there is no implementation target or completion criterion for a contributor.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, github, kotlin
- Domain
- release
- Issue type
- Documentation
- Difficulty
- 1/5
- Estimated time
- Under an hour
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 10/100