DuckDuckGo Android — Daily Status Report
Date: March 10, 2026 | Branch: develop | Latest Release: v5.270.2
Release Status
|
|
| Latest Release |
v5.270.2 (published March 6, 2026) |
| APK Downloads |
3,313 downloads |
| Release Notes |
"Various bug fixes and improvements" (hotfix release) |
Activity Summary (Last 7 Days: March 3–10, 2026)
| Metric |
Count |
Commits to develop (last 20) |
20 (all within last 2 days) |
| PRs Merged (last 7 days) |
20 |
| PRs Currently Open |
15 |
| Open Issues (total) |
62 |
| Active Contributors |
13+ |
Recently Merged PRs (March 3–10, 2026)
| PR |
Title |
Author |
Merged At |
#7919 |
Update content scope scripts to version 13.29.0 |
daxmobile |
2026-03-10 08:33 UTC |
#7912 |
PIR: Reset PIR only when coming from canRunPIR state |
karlenDimla |
2026-03-10 07:20 UTC |
#7920 |
Add develocity test retry |
landomen |
2026-03-10 05:33 UTC |
#7899 |
Clean up metrics |
marcosholgado |
2026-03-09 17:45 UTC |
#7911 |
Add native omnibar controller and layout coordinator |
joshliebe |
2026-03-09 16:15 UTC |
#7888 |
Integrate RequestBlocklist into WebViewRequestInterceptor |
catalinradoiu |
2026-03-09 14:47 UTC |
#7879 |
Don't show location permission message in SERP |
malmstein |
2026-03-09 14:36 UTC |
#7855 |
Lint cleanup: fix Overdraw issues across 9 modules |
malmstein |
2026-03-09 14:36 UTC |
#7847 |
Migrate to use send() extension function |
marcosholgado |
2026-03-09 14:16 UTC |
#7902 |
Re-route user to purchase when subscription is expired |
cmonfortep |
2026-03-09 14:04 UTC |
#7839 |
Add send() extension function for metrics |
marcosholgado |
2026-03-09 13:59 UTC |
#7834 |
Fix StrictMode disk reads on main thread at app startup |
aitorvs |
2026-03-09 13:55 UTC |
#7880 |
Create the new RequestBlocklist interface and implementation |
catalinradoiu |
2026-03-09 13:11 UTC |
#7909 |
Move recent chats from NativeInputManager to NativeInputWidget |
joshliebe |
2026-03-09 12:59 UTC |
#7877 |
Add persistent storage module |
CDRussell |
2026-03-09 12:30 UTC |
#7892 |
Android: Update dependencies 06/03/2026 |
malmstein |
2026-03-09 11:57 UTC |
#7846 |
Add diagnostics pixels for harmony and prevent corrupted states |
CrisBarreiro |
2026-03-09 11:48 UTC |
#7893 |
Update copy in duck.ai toggle onboarding |
lmac012 |
2026-03-09 10:41 UTC |
#7881 |
Lint cleanup: fix IgnoreWithoutReason and IconLocation issues across 4 modules |
malmstein |
2026-03-09 09:43 UTC |
#7906 |
Update content scope scripts to version 13.28.0 |
daxmobile |
2026-03-09 09:41 UTC |
Currently Open PRs
| PR |
Title |
Author |
Created |
Updated |
Status |
#7921 |
Implement unfocussed native input state |
joshliebe |
2026-03-09 |
2026-03-09 |
Ready |
#7918 |
Implement COUNT_ALWAYS metric type and MetricsPixelNumericValue lint rule |
marcosholgado |
2026-03-09 |
2026-03-09 |
Ready |
#7917 |
Restore ability to run adhoc maestro cloud release tests for hotfixes |
CDRussell |
2026-03-09 |
2026-03-09 |
Ready |
#7916 |
Single tab burn: Delete chats from sync |
0nko |
2026-03-09 |
2026-03-09 |
Ready |
#7915 |
Add the reference tests for the request blocklist functionality |
catalinradoiu |
2026-03-09 |
2026-03-09 |
Ready |
#7914 |
Check if document url is in the exceptions list before blocking the request |
catalinradoiu |
2026-03-09 |
2026-03-10 |
Ready |
#7913 |
Add the integration tests for the request blocklist |
catalinradoiu |
2026-03-09 |
2026-03-09 |
Draft |
#7910 |
Add SyncAutoRestore API and SyncRecovery key |
CDRussell |
2026-03-09 |
2026-03-09 |
Ready |
#7886 |
Add tab tagging in input screen ai chat field |
YoussefKeyrouz |
2026-03-06 |
2026-03-06 |
Ready |
#7883 |
Fix grey gap in split omnibar during snap animation |
aibrahim- |
2026-03-06 |
2026-03-06 |
Ready |
#7882 |
Single tab burn: Deleting Duck.ai chats |
0nko |
2026-03-05 |
2026-03-09 |
Ready |
#7872 |
Improve GlobalActivityStarter with launcher overloads and defensive fixes |
aitorvs |
2026-03-04 |
2026-03-04 |
Ready |
#7814 |
Duck.ai Contextual: Multiple page contents |
malmstein |
2026-02-25 |
2026-03-09 |
Ready |
#7754 |
Add support for Web Telemetry counter |
GuiltyDolphin |
2026-02-17 |
2026-03-09 |
Draft |
#7625 |
Create PageHeader Compose component and templates tab in ADS |
GerardPaligot |
2026-01-29 |
2026-03-08 |
Ready |
Recent Issues (Last 7 Days)
| Issue |
Title |
Author |
Created |
Labels |
#7908 |
[repo-status] Daily Repo Status — March 9, 2026 |
github-actions |
2026-03-09 |
report, daily-status |
#7844 |
[Bug] DuckDuckGo refuses to download files from directories secured with basic auth |
frie |
2026-03-02 |
bug, needs triage |
Notable older open issues still active:
#7725 — DDG browser is DoSing sites (~594k favicon requests per 100 sessions) — HIGH priority, no fix PR yet
#7805 — Authorize.net AcceptUI.js payment form broken by privacy protections
#6062 — Searching bookmarks after deleting a folder returns no results (long-standing)
#5928 — StackOverflowError in bookmark folder traversal (PR #7897 was open for this)
Feature Areas and Patterns
Native Input / Omnibar (joshliebe — very active)
A significant native omnibar refactor is underway. Merged today: native omnibar controller and layout coordinator (#7911) and recent chats moved to NativeInputWidget (#7909). Open PR: implement unfocussed native input state (#7921). This is a coordinated multi-PR rewrite of the browser's input/address bar subsystem.
RequestBlocklist Privacy Infrastructure (catalinradoiu — very active)
A multi-PR chain building a new privacy request blocking layer: interface created (#7880), integrated into WebViewRequestInterceptor (#7888), exception-list checks now open (#7914), with integration tests (#7913 draft) and reference tests (#7915) also queued. Foundational privacy work.
Duck.ai (malmstein, 0nko, lmac012, YoussefKeyrouz — active)
Multiple Duck.ai improvements in flight: contextual multi-page contents (#7814), onboarding copy update (merged #7893), tab tagging in AI chat input (#7886), single-tab burn chat deletion (#7882, #7916).
Metrics System Refactor (marcosholgado — completed chain + new work)
A full metrics refactor chain landed: send() extension function (#7839), migration to use it (#7847), and cleanup (#7899) — all merged. Now a new COUNT_ALWAYS metric type and lint rule (#7918) is open.
PIR (Personal Information Removal) (karlenDimla, landomen)
PIR state machine fix merged today (#7912): reset only when coming from canRunPIR state. Continues stabilization work from last week.
Sync (CDRussell — active)
Persistent storage module landed (#7877). Open: SyncAutoRestore API and SyncRecovery key (#7910). Sync infrastructure is receiving focused investment.
Subscriptions (cmonfortep)
Re-route to purchase when subscription expired landed (#7902).
Lint / Code Quality Sprint (malmstein)
Two lint cleanup PRs merged today covering 13 modules: Overdraw issues (#7855) and IgnoreWithoutReason/IconLocation issues (#7881).
Content Scope Scripts (daxmobile — automated)
Two automated dependency updates landed back-to-back: v13.28.0 (#7906) and v13.29.0 (#7919).
Performance / Startup (aitorvs)
StrictMode disk reads on main thread at app startup fixed (#7834).
Issues to Watch
| Issue |
Title |
Priority |
#7725 |
DDG browser is DoSing sites (~594k favicon requests per 100 user sessions) |
HIGH — no fix PR open |
#7844 |
Can't download files from basic-auth secured directories |
Medium — needs triage |
#7805 |
Authorize.net AcceptUI.js payment form broken by privacy protections |
Medium — needs triage |
#6062 |
Searching bookmarks after deleting a folder returns no results |
Medium — long-standing |
#5928 |
StackOverflowError in bookmark folder traversal |
Medium |
Recommended Next Steps
- Prioritize
#7725 — the favicon request flood is a live regression impacting external servers at scale. A dedicated fix PR is still needed.
- Review and merge
#7914 — next step in the RequestBlocklist chain (exceptions list check) to keep the privacy infrastructure moving.
- Review
#7882 and #7916 — single-tab burn Duck.ai chat deletion PRs; merge in order (#7882 before #7916 which handles sync).
- Review
#7921 — native input unfocussed state, part of the active omnibar refactor sprint.
- Triage
#7844 — basic-auth file download failure reported March 2; a week old and still needs triage assignment.
- Promote
#7913 from draft — RequestBlocklist integration tests, needed to complete the blocking layer with test coverage.
Generated by Daily Repo Status · ◷
To install this agentic workflow, run
gh aw add githubnext/agentics/workflows/daily-repo-status.md@b466f28f0f65b68d6f2b10b15b44f51d787b93be
DuckDuckGo Android — Daily Status Report
Date: March 10, 2026 | Branch:
develop| Latest Release: v5.270.2Release Status
Activity Summary (Last 7 Days: March 3–10, 2026)
develop(last 20)Recently Merged PRs (March 3–10, 2026)
#7919#7912#7920#7899#7911#7888#7879#7855#7847send()extension function#7902#7839send()extension function for metrics#7834#7880#7909#7877#7892#7846#7893#7881#7906Currently Open PRs
#7921#7918#7917#7916#7915#7914#7913#7910#7886#7883#7882#7872#7814#7754#7625Recent Issues (Last 7 Days)
#7908#7844Notable older open issues still active:
#7725— DDG browser is DoSing sites (~594k favicon requests per 100 sessions) — HIGH priority, no fix PR yet#7805— Authorize.net AcceptUI.js payment form broken by privacy protections#6062— Searching bookmarks after deleting a folder returns no results (long-standing)#5928— StackOverflowError in bookmark folder traversal (PR#7897was open for this)Feature Areas and Patterns
Native Input / Omnibar (joshliebe — very active)
A significant native omnibar refactor is underway. Merged today: native omnibar controller and layout coordinator (
#7911) and recent chats moved to NativeInputWidget (#7909). Open PR: implement unfocussed native input state (#7921). This is a coordinated multi-PR rewrite of the browser's input/address bar subsystem.RequestBlocklist Privacy Infrastructure (catalinradoiu — very active)
A multi-PR chain building a new privacy request blocking layer: interface created (
#7880), integrated into WebViewRequestInterceptor (#7888), exception-list checks now open (#7914), with integration tests (#7913draft) and reference tests (#7915) also queued. Foundational privacy work.Duck.ai (malmstein, 0nko, lmac012, YoussefKeyrouz — active)
Multiple Duck.ai improvements in flight: contextual multi-page contents (
#7814), onboarding copy update (merged#7893), tab tagging in AI chat input (#7886), single-tab burn chat deletion (#7882,#7916).Metrics System Refactor (marcosholgado — completed chain + new work)
A full metrics refactor chain landed:
send()extension function (#7839), migration to use it (#7847), and cleanup (#7899) — all merged. Now a newCOUNT_ALWAYSmetric type and lint rule (#7918) is open.PIR (Personal Information Removal) (karlenDimla, landomen)
PIR state machine fix merged today (
#7912): reset only when coming fromcanRunPIRstate. Continues stabilization work from last week.Sync (CDRussell — active)
Persistent storage module landed (
#7877). Open: SyncAutoRestore API and SyncRecovery key (#7910). Sync infrastructure is receiving focused investment.Subscriptions (cmonfortep)
Re-route to purchase when subscription expired landed (
#7902).Lint / Code Quality Sprint (malmstein)
Two lint cleanup PRs merged today covering 13 modules: Overdraw issues (
#7855) and IgnoreWithoutReason/IconLocation issues (#7881).Content Scope Scripts (daxmobile — automated)
Two automated dependency updates landed back-to-back: v13.28.0 (
#7906) and v13.29.0 (#7919).Performance / Startup (aitorvs)
StrictMode disk reads on main thread at app startup fixed (
#7834).Issues to Watch
#7725#7844#7805#6062#5928Recommended Next Steps
#7725— the favicon request flood is a live regression impacting external servers at scale. A dedicated fix PR is still needed.#7914— next step in the RequestBlocklist chain (exceptions list check) to keep the privacy infrastructure moving.#7882and#7916— single-tab burn Duck.ai chat deletion PRs; merge in order (#7882before#7916which handles sync).#7921— native input unfocussed state, part of the active omnibar refactor sprint.#7844— basic-auth file download failure reported March 2; a week old and still needs triage assignment.#7913from draft — RequestBlocklist integration tests, needed to complete the blocking layer with test coverage.