<?xml version="1.0"?>
<rdf:RDF
	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:foaf="http://xmlns.com/foaf/0.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns="http://purl.org/rss/1.0/"
>
<channel rdf:about="https://planet.mozilla.org/">
	<title>Planet Mozilla</title>
	<link>https://planet.mozilla.org/</link>
	<description>Planet Mozilla - https://planet.mozilla.org/</description>
	<atom:link rel="self" href="https://planet.mozilla.org/rss10.xml" type="application/rss+xml"/>

	<items>
		<rdf:Seq>
			<rdf:li rdf:resource="https://blog.mozilla.org/?p=88058" />
			<rdf:li rdf:resource="https://blog.mozilla.org/?p=87761" />
			<rdf:li rdf:resource="discourse.mozilla.org-topic-149687" />
			<rdf:li rdf:resource="https://blog.mozilla.org/?p=87765" />
			<rdf:li rdf:resource="https://eqrion.net/wasm-stack-switching-talk/" />
			<rdf:li rdf:resource="https://fxdx.dev/?p=566" />
			<rdf:li rdf:resource="yt:video:myHH89j0JQU" />
			<rdf:li rdf:resource="yt:video:nZupfJy6I0A" />
			<rdf:li rdf:resource="yt:video:V5FgVbxm-cc" />
			<rdf:li rdf:resource="yt:video:k1cvnVKOmM8" />
			<rdf:li rdf:resource="yt:video:wlRaTHhctrA" />
			<rdf:li rdf:resource="yt:video:aGjrXhXNRq8" />
			<rdf:li rdf:resource="yt:video:y7msgjoLjNk" />
			<rdf:li rdf:resource="yt:video:E5j6BoxZ-7w" />
			<rdf:li rdf:resource="https://blog.rust-lang.org/2026/10/02/demoting-i686-windows-targets-to-std-only/" />
			<rdf:li rdf:resource="yt:video:BZVugz_yzzg" />
			<rdf:li rdf:resource="https://blog.thunderbird.net/?p=4630" />
			<rdf:li rdf:resource="yt:video:B635wgZy7Iw" />
			<rdf:li rdf:resource="https://blog.mozilla.org/?p=86415" />
			<rdf:li rdf:resource="yt:video:OTe47t0gGAE" />
			<rdf:li rdf:resource="yt:video:Qg5mmbi7Y2s" />
			<rdf:li rdf:resource="https://blog.rust-lang.org/2026/10/01/Rust-1.99.0/" />
			<rdf:li rdf:resource="https://blog.mozilla.org/community/?p=2555" />
			<rdf:li rdf:resource="tag:this-week-in-rust.org,2026-09-30:/blog/2026/09/30/this-week-in-rust-671/" />
			<rdf:li rdf:resource="https://blog.mozilla.org/addons/?p=9305" />
			<rdf:li rdf:resource="https://blog.mozilla.org/?p=87504" />
			<rdf:li rdf:resource="https://blog.nightly.mozilla.org/?p=2137" />
			<rdf:li rdf:resource="discourse.mozilla.org-topic-149582" />
			<rdf:li rdf:resource="https://blog.mozilla.org/?p=87109" />
			<rdf:li rdf:resource="yt:video:kDQYPzzMuIY" />
			<rdf:li rdf:resource="yt:video:tzDQSnK45dA" />
			<rdf:li rdf:resource="https://blog.thunderbird.net/?p=4621" />
			<rdf:li rdf:resource="discourse.mozilla.org-topic-149552" />
			<rdf:li rdf:resource="tag:this-week-in-rust.org,2026-09-23:/blog/2026/09/23/this-week-in-rust-670/" />
			<rdf:li rdf:resource="discourse.mozilla.org-topic-149538" />
			<rdf:li rdf:resource="discourse.mozilla.org-topic-149536" />
			<rdf:li rdf:resource="discourse.mozilla.org-topic-149532" />
			<rdf:li rdf:resource="yt:video:Y3IOY-kmk70" />
			<rdf:li rdf:resource="https://blog.rust-lang.org/2026/09/22/announcing-a-maintainer-in-residence-scott-schafer-for-the-cargo-team/" />
			<rdf:li rdf:resource="https://blog.mozilla.org/?p=87122" />
			<rdf:li rdf:resource="https://blog.rust-lang.org/2026/09/21/github-actions-leaking-secrets-when-miri-output-is-cached/" />
			<rdf:li rdf:resource="discourse.mozilla.org-topic-149489" />
			<rdf:li rdf:resource="https://blog.mozilla.org/?p=87378" />
			<rdf:li rdf:resource="https://blog.nightly.mozilla.org/?p=2117" />
			<rdf:li rdf:resource="https://blog.mozilla.org/netpolicy/?p=2623" />
			<rdf:li rdf:resource="https://blog.rust-lang.org/2026/09/17/targeted-attacks/" />
			<rdf:li rdf:resource="discourse.mozilla.org-topic-149466" />
			<rdf:li rdf:resource="discourse.mozilla.org-topic-149464" />
			<rdf:li rdf:resource="https://blog.mozilla.org/?p=87204" />
			<rdf:li rdf:resource="https://jonalmeida.com/til/fetch-one-off-github-contributions/" />
			<rdf:li rdf:resource="tag:this-week-in-rust.org,2026-09-16:/blog/2026/09/16/this-week-in-rust-669/" />
			<rdf:li rdf:resource="https://servo.org/blog/2026/09/15/one-year-of-sponsorship/" />
			<rdf:li rdf:resource="https://blog.nightly.mozilla.org/?p=2118" />
			<rdf:li rdf:resource="https://jonalmeida.com/til/do-not-relocate-objdir/" />
			<rdf:li rdf:resource="https://blog.mozilla.org/community/?p=2550" />
			<rdf:li rdf:resource="discourse.mozilla.org-topic-149413" />
			<rdf:li rdf:resource="discourse.mozilla.org-topic-149411" />
			<rdf:li rdf:resource="https://blog.thunderbird.net/?p=4543" />
			<rdf:li rdf:resource="tag:this-week-in-rust.org,2026-09-09:/blog/2026/09/09/this-week-in-rust-668/" />
			<rdf:li rdf:resource="https://blog.nightly.mozilla.org/?p=2108" />
			<rdf:li rdf:resource="https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/" />
			<rdf:li rdf:resource="discourse.mozilla.org-topic-149369" />
			<rdf:li rdf:resource="discourse.mozilla.org-topic-149361" />
			<rdf:li rdf:resource="https://blog.mozilla.org/performance/?p=580" />
			<rdf:li rdf:resource="discourse.mozilla.org-topic-149360" />
			<rdf:li rdf:resource="https://blog.rust-lang.org/2026/09/03/Rust-1.98.1/" />
			<rdf:li rdf:resource="https://blog.thunderbird.net/?p=4540" />
			<rdf:li rdf:resource="https://blog.mozilla.org/?p=86867" />
			<rdf:li rdf:resource="https://fxdx.dev/?p=560" />
			<rdf:li rdf:resource="https://blog.mozilla.org/netpolicy/?p=2611" />
			<rdf:li rdf:resource="https://blog.mozilla.org/?p=86916" />
			<rdf:li rdf:resource="https://blog.rust-lang.org/2026/09/01/Rustup-1.29.1/" />
			<rdf:li rdf:resource="https://blog.mozilla.org/netpolicy/?p=2619" />
			<rdf:li rdf:resource="https://blog.mozilla.org/l10n/?p=1918" />
			<rdf:li rdf:resource="https://servo.org/blog/2026/08/31/july-in-servo/" />
		</rdf:Seq>
	</items>
</channel>

<item rdf:about="https://blog.mozilla.org/?p=88058">
	<title>The Mozilla Blog: Jambu Palaniappan and David Parry-Jones join the Mozilla Corporation Board of Directors</title>
	<link>https://blog.mozilla.org/en/mozilla/palaniappan-parry-jones/</link>
	<content:encoded>&lt;p&gt;Today, we are very pleased to announce two new additions to the Mozilla Corporation Board of Directors: Jambu Palaniappan and David Parry-Jones.&lt;/p&gt;



&lt;p&gt;As we build the next chapter of Mozilla, we’ve been focused on bringing people onto our Board who combine deep operating experience with a real commitment to the values Mozilla stands for. Jambu and David bring deep experience building and leading technology businesses, and each brings a unique perspective to our Board.&lt;/p&gt;



&lt;figure class=&quot;wp-block-image size-large&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-88171&quot; height=&quot;576&quot; src=&quot;https://blog.mozilla.org/wp-content/blogs.dir/278/files/2026/10/Jambu-thumnail-1024x576.png&quot; width=&quot;1024&quot; /&gt;&lt;/figure&gt;



&lt;p&gt;&lt;strong&gt;Jambu Palaniappan&lt;/strong&gt; is the Chief Executive Officer of Checkatrade, where he drives the company’s mission of Powering Great Work. The home improvement platform connects consumers across the UK with quality tradespeople — every year, Checkatrade improves millions of homes and delivers billions of pounds of work to small and medium-sized businesses.&lt;/p&gt;



&lt;p&gt;Before joining Checkatrade, Jambu was Managing Partner and Head of Europe at OMERS Ventures, where he invested in and supported high-growth technology companies. Earlier in his career, he spent several years at Uber and Uber Eats, joining as one of the first 100 employees and leading expansion across Europe, the Middle East, and Africa. Jambu holds a degree in Public Policy and Economics from Vanderbilt University.&lt;/p&gt;



&lt;figure class=&quot;wp-block-image size-large&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-88204&quot; height=&quot;576&quot; src=&quot;https://blog.mozilla.org/wp-content/blogs.dir/278/files/2026/10/David-thumbnail-1-1024x576.png&quot; width=&quot;1024&quot; /&gt;&lt;/figure&gt;



&lt;p&gt;&lt;strong&gt;David Parry-Jones&lt;/strong&gt; is a board director and former Chief Revenue Officer (CRO) with more than 30 years of experience scaling technology businesses internationally. Most recently, he served as CRO at DeepL and previously held senior leadership roles at Microsoft, VMware, and Twilio. He has led large teams across diverse markets and cultures, working with both early-stage companies and global enterprises. &lt;/p&gt;



&lt;p&gt;As a board member and adviser, he brings a practical perspective on growth, international expansion, and building strong teams that turn strategy into results.&lt;/p&gt;



&lt;p&gt;Please join me in welcoming Jambu and David to the Mozilla Corporation Board of Directors.&lt;/p&gt;
&lt;p&gt;The post &lt;a href=&quot;https://blog.mozilla.org/en/mozilla/palaniappan-parry-jones/&quot;&gt;Jambu Palaniappan and David Parry-Jones join the Mozilla Corporation Board of Directors&lt;/a&gt; appeared first on &lt;a href=&quot;https://blog.mozilla.org/en/&quot;&gt;The Mozilla Blog&lt;/a&gt;.&lt;/p&gt;</content:encoded>
	<dc:date>2026-10-07T18:37:41+00:00</dc:date>
	<dc:creator>Anthony Enzor-DeMeo</dc:creator>
</item>
<item rdf:about="https://blog.mozilla.org/?p=87761">
	<title>The Mozilla Blog: 100 days later: Microsoft still steers Windows and Copilot users to Edge, everywhere the law lets it</title>
	<link>https://blog.mozilla.org/en/mozilla/over-the-edge-2-100-days-later/</link>
	<content:encoded>&lt;p&gt;One hundred days ago, Mozilla released Over The Edge 2.0, the second independent report from leading experts on deceptive design Dr. Harry Brignull and Cennydd Bowles, on how Windows, Edge, Bing, and Copilot are designed to steer people away from the browser they chose. &lt;/p&gt;



&lt;p&gt;We published the &lt;a href=&quot;https://research.mozilla.org/browser-competition/over-the-edge-2/&quot;&gt;report&lt;/a&gt;, and the researchers published the &lt;a href=&quot;https://edge.brignull.com/J01/&quot;&gt;evidence&lt;/a&gt; for anyone to analyze. &lt;/p&gt;



&lt;p&gt;Browsers are a powerful tool. So it’s no surprise that the history of the web &lt;a href=&quot;http://www.justice.gov/atr/us-v-microsoft-courts-findings-fact&quot;&gt;has&lt;/a&gt; &lt;a href=&quot;https://blog.mozilla.org/press/2015/07/safeguarding-choice-and-control-online/&quot;&gt;many&lt;/a&gt; &lt;a href=&quot;https://arstechnica.com/tech-policy/2024/04/report-people-are-bailing-on-safari-after-dma-makes-changing-defaults-easier/#page-2:~:text=You%20can,not,-%2E&quot;&gt;examples&lt;/a&gt; of powerful platforms trying to deny people browser choice. Now, as AI reshapes our online experiences, the stakes couldn’t be higher. Browsers are a key distribution layer for AI tools and services, while still determining many of the privacy and security functionality people rely on every day. Steering people toward one browser can therefore shape which AI services reach users and the protections that come with it. &lt;/p&gt;



&lt;p&gt;We also shared the report with Microsoft and talked to them about the issues raised in the report. We knew that an immediate change was unlikely, but we hoped that, when faced with independent evidence of harmful design practices impacting Windows users, they would also want better for people.&lt;/p&gt;



&lt;p&gt;Instead, it became clear that Microsoft will respect user choice only when it is forced to. It is important to think about what that means for a company whose operating system runs on more than a billion machines. Microsoft’s standard for respecting people’s choices is legal compliance. Not what’s best for its users. Not its own published principles. Not what’s technically feasible. Not even what it already does for users in Europe. &lt;/p&gt;



&lt;p&gt;That’s the most shocking part. Not that Microsoft engages in such tactics – &lt;a href=&quot;https://blog.mozilla.org/press/2015/07/safeguarding-choice-and-control-online&quot;&gt;we’ve seen that before.&lt;/a&gt; It’s the fact that a better version of Windows already exists, and it is already available today – but only if you live in the European Economic Area (EEA), where the Digital Markets Act (DMA) forced the issue. If you live in the United States, India, the United Kingdom, or most other locations around the world, your experience and your freedom to choose for yourself are worse.&lt;/p&gt;



&lt;p&gt;One hundred days later, here is what people outside of the EEA still get: &lt;/p&gt;



&lt;ul&gt;
&lt;li&gt;The Windows 10 message “You’re almost done setting up your PC” uses tricky wording to pull people off the default they picked. &lt;/li&gt;



&lt;li&gt;Windows Search and Widgets open links in Edge instead of the browser set as default. &lt;/li&gt;



&lt;li&gt;Windows keeps Edge as the default for common browser file types like PDFs and SVG images, even after another browser has been set as default.&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;And people in the EEA also deserve better: &lt;/p&gt;



&lt;ul&gt;
&lt;li&gt;Edge remains pre-pinned to the taskbar; this seems to directly violate the “principled approach to app pinning and app defaults.” &lt;/li&gt;



&lt;li&gt;Copilot, Microsoft’s AI tool opens web links in a side-panel instead of the browser people chose, in every region tested, Europe included.&lt;/li&gt;



&lt;li&gt;Windows Backup, the tool Microsoft uses to guide people through the migration to Windows 11, silently tries to set Edge as the default when it restores a PC and fails to properly bring the user’s own browser along. &lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;Most of the 2024 patterns are still &lt;a href=&quot;https://research.mozilla.org/files/2024/01/Over-the-Edge-Report-January-2024.pdf&quot;&gt;there.&lt;/a&gt; The 2026 patterns are worse. Microsoft is using new surfaces like Copilot and the migration to Windows 11 to further undermine user choice.&lt;/p&gt;



&lt;p&gt;Our ask has always been simple: First, give all Windows users the fairer designs that are live in the EEA – regardless of where they are located. Second, stop the remaining harmful design practices that persist in the EEA. That means:&lt;/p&gt;



&lt;ul&gt;
&lt;li&gt;Stopping the remaining harmful design tactics in the EEA and ship that standard worldwide.&lt;/li&gt;



&lt;li&gt;Honoring people’s browser choice everywhere it is currently ignored, including Windows Search, Widgets, Copilot, and Windows Backup restoration. &lt;/li&gt;



&lt;li&gt;Applying Microsoft’s own &lt;a href=&quot;https://blogs.windows.com/windowsexperience/2023/03/17/a-principled-approach-to-app-pinning-and-app-defaults-in-windows/&quot;&gt;2023 app pinning principles&lt;/a&gt; to Edge itself. &lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;The Mozilla-commissioned report has never been about intent. It’s about accountability and Microsoft’s responsibility to stop undermining people’s choices. The practices we documented need to change. Statements about intent are not a substitute for action.&lt;/p&gt;



&lt;p&gt;In the past 100 days, we’ve stopped waiting for Microsoft to act. Instead, we’ve stepped up public pressure on the company to respect people’s choices.&lt;/p&gt;



&lt;p&gt;We are also taking the report’s findings to regulators and policymakers. In Europe, the DMA is the only thing that has moved Microsoft. Everywhere else, the lesson is the same: Microsoft ships only when a regulator requires fairer design. &lt;/p&gt;



&lt;p&gt;We hope that regulators in the US, the UK, India, and Brazil are paying attention. &lt;/p&gt;



&lt;p&gt;Microsoft can do better. It already has, for people in the EEA.&lt;/p&gt;



&lt;p&gt;Until it does the same in all jurisdictions, we will keep pointing out the company’s choices and the impact they have on hundreds of millions of users who want something different.&lt;/p&gt;
&lt;p&gt;The post &lt;a href=&quot;https://blog.mozilla.org/en/mozilla/over-the-edge-2-100-days-later/&quot;&gt;100 days later: Microsoft still steers Windows and Copilot users to Edge, everywhere the law lets it&lt;/a&gt; appeared first on &lt;a href=&quot;https://blog.mozilla.org/en/&quot;&gt;The Mozilla Blog&lt;/a&gt;.&lt;/p&gt;</content:encoded>
	<dc:date>2026-10-07T10:00:00+00:00</dc:date>
	<dc:creator>Mozilla</dc:creator>
</item>
<item rdf:about="discourse.mozilla.org-topic-149687">
	<title>Firefox Tooling Announcements: Happy BMO Push Day! (20261006.1)</title>
	<link>https://discourse.mozilla.org/t/happy-bmo-push-day-20261006-1/149687</link>
	<content:encoded>&lt;p&gt;&lt;a href=&quot;https://github.com/mozilla-bteam/bmo/tree/release-20261006.1&quot; rel=&quot;noopener nofollow ugc&quot;&gt;Github Link&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The following changes have been pushed to &lt;a href=&quot;https://bugzilla.mozilla.org&quot;&gt;bugzilla.mozilla.org&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2075358&quot;&gt;Bug 2075358&lt;/a&gt; - Native Mojo REST endpoints serve anonymous requests when requirelogin is enabled&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2074690&quot;&gt;Bug 2074690&lt;/a&gt; - BMO REST API cannot set any DATE-type custom field&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2059957&quot;&gt;Bug 2059957&lt;/a&gt; - Reject Mojolicious-truncated request bodies before native routes dispatch&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1273193&quot;&gt;Bug 1273193&lt;/a&gt; - Get Comments webservice docs don’t mention author&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2078352&quot;&gt;Bug 2078352&lt;/a&gt; - Selenium test 4_test_votes.t fails with Firefox ESR 153 because go_to_bug doesn’t wait for the module expand animation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Discuss these changes in the &lt;a href=&quot;https://matrix.to/#/#bmo:mozilla.org&quot; rel=&quot;noopener nofollow ugc&quot;&gt;BMO Matrix Room&lt;/a&gt;&lt;/p&gt;
            &lt;p&gt;&lt;small&gt;1 post - 1 participant&lt;/small&gt;&lt;/p&gt;
            &lt;p&gt;&lt;a href=&quot;https://discourse.mozilla.org/t/happy-bmo-push-day-20261006-1/149687&quot;&gt;Read full topic&lt;/a&gt;&lt;/p&gt;</content:encoded>
	<dc:date>2026-10-06T21:43:42+00:00</dc:date>
	<dc:creator>dkl1</dc:creator>
</item>
<item rdf:about="https://blog.mozilla.org/?p=87765">
	<title>The Mozilla Blog: Strengthen your online security for free with Firefox</title>
	<link>https://blog.mozilla.org/en/firefox/free-firefox-cybersecurity-features/</link>
	<content:encoded>&lt;p&gt;Every October, Cybersecurity Awareness Month reminds us the importance of protecting our digital lives.&lt;br /&gt;&lt;br /&gt;The theme for 2026 is ‘&lt;em&gt;Don’t Make It Easy for Them,&lt;/em&gt;’ with the &lt;a href=&quot;https://www.staysafeonline.org/&quot;&gt;National Cybersecurity Alliance&lt;/a&gt; (NCA) and the &lt;a href=&quot;https://www.cisa.gov/&quot;&gt;Cybersecurity and Infrastructure Security Agency&lt;/a&gt; (CISA) providing &lt;a href=&quot;https://www.staysafeonline.org/cybersecurity-awareness-month&quot;&gt;simple, actionable steps&lt;/a&gt; users can take to make it harder for cybercriminals to attack.&lt;br /&gt;&lt;br /&gt;Everyone &lt;em&gt;wants&lt;/em&gt; to be safe online, but one of the most common excuses we hear is “I don’t have the time or the money to invest in it right now.” Well, we have good news: you can improve your online security easily, for the low price of $0.&lt;br /&gt;&lt;br /&gt;Firefox provides several free features designed to make it easier to protect your online life and harder for cybercriminals to target you.  &lt;/p&gt;



&lt;h3&gt;&lt;strong&gt;Password manager: Use a unique password for every account&lt;/strong&gt;&lt;/h3&gt;



&lt;figure class=&quot;wp-block-image size-large&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-87777&quot; height=&quot;576&quot; src=&quot;https://blog.mozilla.org/wp-content/blogs.dir/278/files/2026/10/Password-Manager-1024x576.png&quot; width=&quot;1024&quot; /&gt;&lt;/figure&gt;



&lt;p&gt;Reused passwords are one of the easiest ways attackers break into multiple accounts. If one site is breached, your login details could be tested on many others.&lt;br /&gt;&lt;br /&gt;Firefox’s &lt;a href=&quot;https://www.firefox.com/en-US/features/password-manager/&quot;&gt;free password manager&lt;/a&gt; can generate and securely store a &lt;a href=&quot;https://support.mozilla.org/en-US/kb/how-generate-secure-password-firefox?utm_source=www.firefox.com&amp;amp;utm_medium=referral&amp;amp;utm_campaign=password-manager&quot;&gt;strong, unique password&lt;/a&gt; per site, which is the single highest-leverage fix against password stuffing. For convenience, Firefox can automatically fill in your saved login information the next time you access a previously visited site. However, you still have the option to turn off password saving for specific websites, or completely if you’re using a shared device or simply prefer to enter it each time.&lt;br /&gt;&lt;br /&gt;You can &lt;a href=&quot;https://support.mozilla.org/en-US/kb/manage-your-logins-firefox-password-manager&quot;&gt;manage&lt;/a&gt; your stored logins on a singular device at any time. To get a head start, you also have the option to &lt;a href=&quot;https://support.mozilla.org/en-US/kb/import-data-another-browser&quot;&gt;import passwords&lt;/a&gt; saved on several other popular browsers. In addition, you can create a &lt;a href=&quot;https://www.mozilla.org/en-US/account/?utm_source=www.firefox.com&amp;amp;utm_medium=referral&amp;amp;utm_campaign=sync&quot;&gt;free Mozilla account &lt;/a&gt;to safely &lt;a href=&quot;https://www.firefox.com/en-US/features/sync/&quot;&gt;sync&lt;/a&gt; them across your signed-in devices. &lt;/p&gt;



&lt;h3&gt;&lt;strong&gt;VPN: Privacy built into the browser&lt;/strong&gt;&lt;/h3&gt;



&lt;figure class=&quot;wp-block-image size-large&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-87789&quot; height=&quot;576&quot; src=&quot;https://blog.mozilla.org/wp-content/blogs.dir/278/files/2026/10/VPN-1024x576.png&quot; width=&quot;1024&quot; /&gt;&lt;/figure&gt;



&lt;p&gt;Imagine you’re settling into a corner table at a bustling airport cafe, checking some emails on your phone before you board your flight. Or perhaps you took your laptop to the campus library to finally start that research paper you’ve been putting off. Maybe you’re polishing off that last presentation slide between sessions at an out-of-state conference.&lt;br /&gt;&lt;br /&gt;While these moments are routine, connecting to public Wi-Fi anywhere can open a small window of risk – as your IP address, approximate location, and browsing activity can be more exposed on networks you don’t control.&lt;br /&gt;&lt;br /&gt;That’s where Firefox’s &lt;a href=&quot;https://www.firefox.com/landing/vpn/&quot;&gt;free built-in, browser-based VPN&lt;/a&gt; steps in. While Firefox already encrypts your traffic with HTTPS, the built-in VPN feature routes your browsing traffic through a proxy network, hiding your IP address before it reaches a website. This means the sites you visit will see a proxy IP address instead of your own. It offers an industry-leading 50 gigabytes of free VPN-browsing each month, with no extension or extra app to install. Simply sign in, turn it on, and start browsing.&lt;br /&gt;&lt;br /&gt;Firefox’s free built-in VPN first launched on desktop in March, later &lt;a href=&quot;https://support.mozilla.org/en-US/kb/mobile-android-vpn&quot;&gt;expanding to Android&lt;/a&gt; in July. Unlike a standalone or full-service VPN, it’s designed specifically to protect your browsing traffic within Firefox, not your entire device. This means apps, downloads, and other system traffic are not routed through the browser-based VPN. For people who need broader, device-wide VPN protection, Mozilla also offers a separate &lt;a href=&quot;https://www.mozilla.org/products/vpn/&quot;&gt;paid VPN service&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;You can check the full list of regions where built-in VPN in Firefox is currently available &lt;a href=&quot;https://support.mozilla.org/en-US/kb/unable-find-built-vpn-firefox&quot;&gt;here&lt;/a&gt;, and learn more about the differences between Firefox’s free built-in VPN and Mozilla VPN &lt;a href=&quot;https://support.mozilla.org/en-US/kb/built-in-vpn&quot;&gt;here&lt;/a&gt;. &lt;/p&gt;



&lt;h3&gt;&lt;strong&gt;Relay: Contain the damage of any one breach&lt;/strong&gt;&lt;/h3&gt;



&lt;figure class=&quot;wp-block-image size-large&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-87800&quot; height=&quot;576&quot; src=&quot;https://blog.mozilla.org/wp-content/blogs.dir/278/files/2026/10/Relay-1024x576.png&quot; width=&quot;1024&quot; /&gt;&lt;/figure&gt;



&lt;p&gt;Think about how often you give out your personal email address – for an online purchase, RSVPing to an event, or signing up to a new app. Each time, you trust the site owner will protect your information, but, spam piles up and breaches can still happen – even when you think you’re being careful.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://relay.firefox.com/&quot;&gt;Firefox Relay&lt;/a&gt; gives you a smarter way to share. Instead of handing out your real email address, this feature provides secure, random &lt;a href=&quot;http://support.mozilla.org/en-US/kb/create-email-mask-through-firefox-relay&quot;&gt;email masks&lt;/a&gt; to use any time a website, store, or app asks you for your information. It forwards messages to your real email, while keeping your identity hidden to senders. This means if one service gets compromised, your other accounts stay safe.&lt;br /&gt;&lt;br /&gt;You can also use Relay in the U.S. and Canada to &lt;a href=&quot;https://support.mozilla.org/en-US/kb/mask-your-phone-number-relay-phone-masking&quot;&gt;shield your phone number&lt;/a&gt;, so you can receive calls and texts through masks and reply without exposing your real number.&lt;br /&gt;&lt;br /&gt;The best part? To make protecting your privacy even easier, Firefox increased its limit to 50 free email masks earlier this year, allowing you to shield dozens of logins at no cost. &lt;/p&gt;



&lt;h3&gt;&lt;strong&gt;Browse freely: Firefox protects you by default&lt;/strong&gt;&lt;/h3&gt;



&lt;p&gt;Even if you sometimes forget to use Firefox protection tools like password manager, VPN, and Relay, there are multiple always-on features operating within the browser to help keep your session secure and private. These include &lt;a href=&quot;https://support.mozilla.org/en-US/kb/enhanced-tracking-protection-firefox-desktop&quot;&gt;enhanced tracking protection&lt;/a&gt; to block hidden scripts and known trackers that follow you across the web, &lt;a href=&quot;https://www.firefox.com/en-US/features/block-fingerprinting/&quot;&gt;browser fingerprinting protection&lt;/a&gt; to prevent sites from building a unique profile of your device, and &lt;a href=&quot;https://support.mozilla.org/en-US/kb/how-does-phishing-and-malware-protection-work&quot;&gt;warnings&lt;/a&gt; about deceptive or malicious websites.&lt;br /&gt;&lt;br /&gt;Together, Firefox’s individual and always-on security features work to help keep your browsing safe and your data private. So, this Cybersecurity Awareness Month, take a moment to build new habits, try out our free cybersecurity tools, and make life more difficult for cybercriminals. Small steps add up, and we are here to help. Stay safe, stay smart, and keep exploring the web with confidence on Firefox. &lt;/p&gt;
&lt;p&gt;The post &lt;a href=&quot;https://blog.mozilla.org/en/firefox/free-firefox-cybersecurity-features/&quot;&gt;Strengthen your online security for free with Firefox&lt;/a&gt; appeared first on &lt;a href=&quot;https://blog.mozilla.org/en/&quot;&gt;The Mozilla Blog&lt;/a&gt;.&lt;/p&gt;</content:encoded>
	<dc:date>2026-10-06T16:00:00+00:00</dc:date>
	<dc:creator>Mozilla</dc:creator>
</item>
<item rdf:about="https://eqrion.net/wasm-stack-switching-talk/">
	<title>Ryan Hunt: Wasm Stack Switching in SpiderMonkey</title>
	<link>https://eqrion.net/wasm-stack-switching-talk/</link>
	<content:encoded>&lt;p&gt;WebAssembly &lt;a href=&quot;https://github.com/WebAssembly/stack-switching&quot;&gt;stack switching&lt;/a&gt; in SpiderMonkey is the most complex feature I’ve ever implemented.&lt;/p&gt;
&lt;p&gt;It’s one of those projects where you get lost and start rethinking the basics, like “what is the stack even really?”&lt;/p&gt;
&lt;p&gt;It was fun to give a talk on it. Check out the recording below, or &lt;a href=&quot;https://www.youtube.com/watch?v=OvYFHH9AxOw&quot;&gt;on YouTube&lt;/a&gt;.&lt;/p&gt;
&lt;div style=&quot;padding-bottom: 56.25%; height: 0; overflow: hidden;&quot;&gt;
			
		&lt;/div&gt;</content:encoded>
	<dc:date>2026-10-06T15:00:00+00:00</dc:date>
</item>
<item rdf:about="https://fxdx.dev/?p=566">
	<title>Firefox Developer Experience: Firefox WebDriver Newsletter 157</title>
	<link>https://fxdx.dev/firefox-webdriver-newsletter-157/</link>
	<content:encoded>&lt;p id=&quot;block-625ec41a-ebba-4559-8294-ab8d43d24728&quot;&gt;&lt;em&gt;WebDriver is a remote control interface that enables introspection and control of user agents. As such, it can help developers to verify that their websites are working and performing well with all major browsers. The protocol is standardized by the&lt;a href=&quot;https://www.w3.org/&quot;&gt; W3C&lt;/a&gt; and consists of two separate specifications:&lt;a href=&quot;https://w3c.github.io/webdriver/&quot;&gt; WebDriver classic&lt;/a&gt; (HTTP) and the new&lt;a href=&quot;https://w3c.github.io/webdriver-bidi/&quot;&gt; WebDriver BiDi&lt;/a&gt; (Bi-Directional).&lt;/em&gt;&lt;/p&gt;



&lt;p id=&quot;block-dae47e7f-6eed-4378-93bf-87f83964774b&quot;&gt;&lt;em&gt;This newsletter gives an overview of the work we’ve done as part of the Firefox 157 release cycle&lt;/em&gt;.&lt;/p&gt;



&lt;h3&gt;Contributions&lt;/h3&gt;



&lt;p id=&quot;block-0cd229aa-56a4-4acd-88c9-6c0aed1f91ef&quot;&gt;Firefox is an open source project, and we are always happy to receive external code contributions to our WebDriver implementation. We want to give special thanks to everyone who filed issues, bugs, and submitted patches.&lt;/p&gt;



&lt;p id=&quot;block-90d46142-b130-4359-9a16-b2e82ef91416&quot;&gt;In Firefox 157, multiple WebDriver bugs were fixed by contributors:&lt;/p&gt;



&lt;ul id=&quot;block-b10e4a7c-ea74-4805-9e31-4bb37551e682&quot;&gt;
&lt;li&gt;Sameem &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1958852&quot;&gt;merged two internal helpers&lt;/a&gt; (remote/shared/Sync.sys.mjs and remote/marionette/sync.sys.mjs), which removed some code duplication.&lt;/li&gt;



&lt;li&gt;Khalid AlHaddad &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2044153&quot;&gt;unified the navigation commands in Marionette and WebDriver BiDi&lt;/a&gt; to always initiate navigations via browsingContext.loadURI().&lt;/li&gt;



&lt;li&gt;Khalid AlHaddad updated the WebDriver BiDi client used by WebDriver tests &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2046450&quot;&gt;so that browsing_context.locate_nodes returns the nodes array directly&lt;/a&gt; instead of the enclosing result object, matching the updated command response.&lt;/li&gt;
&lt;/ul&gt;



&lt;p id=&quot;block-1dca3827-38c3-478d-a4b2-a1e39af880f5&quot;&gt;WebDriver code is written in JavaScript, Python, and Rust, so any web developer can contribute! Read &lt;a href=&quot;https://firefox-source-docs.mozilla.org/setup/index.html&quot;&gt;how to set up the work environment&lt;/a&gt; and check&lt;a href=&quot;https://codetribute.mozilla.org/projects/automation&quot;&gt; the list of mentored issues&lt;/a&gt; for Marionette or the &lt;a href=&quot;https://codetribute.mozilla.org/languages/javascript?project%3DWebDriver%2520BiDi&quot;&gt;list of mentored JavaScript bugs for WebDriver BiDi&lt;/a&gt;. Join &lt;a href=&quot;https://chat.mozilla.org/#/room/#webdriver:mozilla.org&quot;&gt;our chatroom&lt;/a&gt; if you need any help to get started!&lt;/p&gt;



&lt;h3&gt;All Changes&lt;/h3&gt;



&lt;p&gt;A complete list of developer-facing changes included in this Firefox release is available in the &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/157#webdriver_conformance_webdriver_bidi_marionette&quot;&gt;MDN Firefox 157 Release Notes&lt;/a&gt;.&lt;/p&gt;</content:encoded>
	<dc:date>2026-10-05T14:21:23+00:00</dc:date>
	<dc:creator>Alexandra Borovova</dc:creator>
</item>
<item rdf:about="yt:video:myHH89j0JQU">
	<title>Mozilla Data YouTube Channel: Responsible Data Collection is Good, Actually (Ubisoft Data Summit 2021)</title>
	<link>https://www.youtube.com/watch?v=myHH89j0JQU</link>
	<content:encoded>Firefox Telemetry Engineer and Data Steward Chris H-C (:chutten) gives a talk at Ubisoft's Data Summit 2021 about how Responsible Data Collection as practised at Mozilla makes cataloguing easy, stops instrumentation mistakes before they ship, and allows you to build self-serve analysis tooling that gets everyone invested in data quality. Oh, and it's cheaper, too.</content:encoded>
	<dc:date>2026-10-04T23:55:36+00:00</dc:date>
	<dc:creator>Mozilla Data</dc:creator>
</item>
<item rdf:about="yt:video:nZupfJy6I0A">
	<title>Mozilla Data YouTube Channel: Data Club: Jan-Erik Rediger - Little Bobby Tables - from metrics.yaml to data-filled columns</title>
	<link>https://www.youtube.com/watch?v=nZupfJy6I0A</link>
	<content:encoded>A short story about Little Bobby Tables and how we know what data to fill in where.</content:encoded>
	<dc:date>2026-10-04T19:17:37+00:00</dc:date>
	<dc:creator>Mozilla Data</dc:creator>
</item>
<item rdf:about="yt:video:V5FgVbxm-cc">
	<title>Mozilla Data YouTube Channel: Data Club Lightning Talk: Jan-Erik Rediger - Your personal Glean data pipeline</title>
	<link>https://www.youtube.com/watch?v=V5FgVbxm-cc</link>
	<content:encoded>This talk was given as part of the Data Club Lightning Talk Session on February 11th, 2022.
More on https://blog.mozilla.org/data/2022/02/25/this-week-in-glean-your-personal-glean-data-pipeline
Information about Glean: https://mozilla.github.io/glean/book/index.html</content:encoded>
	<dc:date>2026-10-04T16:52:51+00:00</dc:date>
	<dc:creator>Mozilla Data</dc:creator>
</item>
<item rdf:about="yt:video:k1cvnVKOmM8">
	<title>Mozilla Data YouTube Channel: GLAM Datasets</title>
	<link>https://www.youtube.com/watch?v=k1cvnVKOmM8</link>
	<content:encoded>Marina Samuel and Anthony Miyaguchi talk about the ETL pipeline created for the GLAM project (https://github.com/mozilla/glam).</content:encoded>
	<dc:date>2026-10-04T07:56:23+00:00</dc:date>
	<dc:creator>Mozilla Data</dc:creator>
</item>
<item rdf:about="yt:video:wlRaTHhctrA">
	<title>Mozilla Data YouTube Channel: Data Club: Jeff Silverman - Data Science &amp; Astronomy: AAS 243 &amp; ATDS 6</title>
	<link>https://www.youtube.com/watch?v=wlRaTHhctrA</link>
	<dc:date>2026-10-04T05:05:34+00:00</dc:date>
	<dc:creator>Mozilla Data</dc:creator>
</item>
<item rdf:about="yt:video:aGjrXhXNRq8">
	<title>Mozilla Data YouTube Channel: Introducing Glean Annotations</title>
	<link>https://www.youtube.com/watch?v=aGjrXhXNRq8</link>
	<content:encoded>Leif Oines and Will Lachance introduce Glean Annotations: a process and technology for curating and communicating knowledge about the data we collect in Mozilla's products.</content:encoded>
	<dc:date>2026-10-03T19:51:35+00:00</dc:date>
	<dc:creator>Mozilla Data</dc:creator>
</item>
<item rdf:about="yt:video:y7msgjoLjNk">
	<title>Mozilla Data YouTube Channel: Mozillians sharing the 2021 SciPy Conference experience</title>
	<link>https://www.youtube.com/watch?v=y7msgjoLjNk</link>
	<content:encoded>The 2021 SciPy conference (https://www.scipy2021.scipy.org/) involved the showcasing of the latest open source Python projects for advancement in scientific computing. Mozilla was a diversity sponsor and a few Mozillians attended and shared their experience of the event.</content:encoded>
	<dc:date>2026-10-02T04:24:13+00:00</dc:date>
	<dc:creator>Mozilla Data</dc:creator>
</item>
<item rdf:about="yt:video:E5j6BoxZ-7w">
	<title>Mozilla Data YouTube Channel: Last Lecture: Writing the Data Docs</title>
	<link>https://www.youtube.com/watch?v=E5j6BoxZ-7w</link>
	<content:encoded>Will Lachance gives a last lecture on writing data documentation at Mozilla.</content:encoded>
	<dc:date>2026-10-02T03:38:29+00:00</dc:date>
	<dc:creator>Mozilla Data</dc:creator>
</item>
<item rdf:about="https://blog.rust-lang.org/2026/10/02/demoting-i686-windows-targets-to-std-only/">
	<title>The Rust Programming Language Blog: Demoting i686 Windows targets to std-only</title>
	<link>https://blog.rust-lang.org/2026/10/02/demoting-i686-windows-targets-to-std-only/</link>
	<content:encoded>&lt;p&gt;With Rust 1.100.0, the following changes to 32-bit Windows targets will happen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;i686-pc-windows-msvc&lt;/code&gt; Tier 1 &lt;em&gt;with&lt;/em&gt; host tools target will be demoted to Tier 1 &lt;em&gt;without&lt;/em&gt; host tools.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;i686-pc-windows-gnu&lt;/code&gt; Tier 2 &lt;em&gt;with&lt;/em&gt; host tools target will be demoted to Tier 2 &lt;em&gt;without&lt;/em&gt; host tools.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Builds of the standard library will continue to be distributed, but host tools such as the compiler will be no longer available. &lt;code&gt;i686-pc-windows-msvc&lt;/code&gt; as a Tier 1 target still undergoes CI testing.&lt;/p&gt;
&lt;p&gt;To build 32-bit Windows binaries, cross-compiling from a still-supported host toolchain (such as a 64-bit Windows ones) will be required from now on.&lt;/p&gt;
&lt;h3&gt;&lt;a class=&quot;anchor&quot; href=&quot;https://blog.rust-lang.org/2026/10/02/demoting-i686-windows-targets-to-std-only/#background&quot;&gt;&lt;/a&gt;
Background&lt;/h3&gt;
&lt;p&gt;Desktop and Server 32-bit only x86 CPUs are no longer sold for over 15 years, and general 32-bit Windows support has ended in October 2025. This means that the development platforms these targets are meant for hardly exist these days, and even if they do exist they typically aren't capable enough for development.&lt;/p&gt;
&lt;p&gt;Even on the modern x86_64 hardware, building i686 Windows toolchains has proven to be problematic. We have encountered compiler binaries crashing when built with the i686 MSVC target, and the GNU C++ toolchain failing with OOMs during LLVM build.&lt;/p&gt;
&lt;p&gt;Considering all these things, cross-compiling these targets from a better supported one is what we have found to be the best solution forward. As part of that, we stopped producing host tools for these targets. For the time being, the prebuilt standard library is still available, and in case of &lt;code&gt;i686-pc-windows-msvc&lt;/code&gt; still tested on CI.&lt;/p&gt;
&lt;h3&gt;&lt;a class=&quot;anchor&quot; href=&quot;https://blog.rust-lang.org/2026/10/02/demoting-i686-windows-targets-to-std-only/#what-changes&quot;&gt;&lt;/a&gt;
What Changes?&lt;/h3&gt;
&lt;p&gt;After Rust 1.100, it will no longer be possible to install toolchains on 32-bit Windows hosts. We recommend cross-compiling from a still-supported host (such as a 64-bit Windows toolchain) instead. Other 32-bit platforms are not impacted by this change.&lt;/p&gt;
&lt;p&gt;For more details about these demotions, see &lt;a href=&quot;https://github.com/rust-lang/rfcs/blob/51783df9a76c355de7ceebeae101cba47f8ca463/text/3999-std-only-i686-msvc.md&quot; rel=&quot;external&quot;&gt;RFC 3999&lt;/a&gt; for &lt;code&gt;i686-pc-windows-msvc&lt;/code&gt; demotion, and &lt;a href=&quot;https://github.com/rust-lang/compiler-team/issues/1020&quot; rel=&quot;external&quot;&gt;MCP 1020&lt;/a&gt; for &lt;code&gt;i686-pc-windows-gnu&lt;/code&gt; demotion.&lt;/p&gt;</content:encoded>
	<dc:date>2026-10-02T00:00:00+00:00</dc:date>
	<dc:creator>Mateusz Mikuła, Ralf Jung</dc:creator>
</item>
<item rdf:about="yt:video:BZVugz_yzzg">
	<title>Mozilla Data YouTube Channel: Monitoring Sensitive Data: How do we monitor data we don't store?</title>
	<link>https://www.youtube.com/watch?v=BZVugz_yzzg</link>
	<content:encoded>We try to be responsible with data. For example, we:

- store as little sensitive data as possible
- monitor changes in incoming data on which we've built models

But what happens when those two approaches conflict?

How do we monitor changes in incoming data that we don't want to store?

This talk explains the schema we use to monitor changes in what people are searching for in Firefox...even when we deliberately don't store some of what people are searching for.</content:encoded>
	<dc:date>2026-10-01T23:23:50+00:00</dc:date>
	<dc:creator>Mozilla Data</dc:creator>
</item>
<item rdf:about="https://blog.thunderbird.net/?p=4630">
	<title>Thunderbird Blog: Thunderbird for iOS: A First Look at the Native iPhone Email App in Development</title>
	<link>https://blog.thunderbird.net/2026/10/thunderbird-for-ios-a-first-look-at-the-native-iphone-email-app-in-development/</link>
	<content:encoded>&lt;p&gt;&lt;img alt=&quot;&quot; class=&quot;attachment-640x360 size-640x360 wp-post-image&quot; height=&quot;360&quot; src=&quot;https://blog.thunderbird.net/files/2026/10/Cover2-768x432.jpg&quot; width=&quot;640&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The team has been working hard behind the scenes laying a strong foundation for the Thunderbird iOS app. Rather than leveraging existing code, we are building natively from scratch. This fresh start allows us to take everything we’ve learned from Thunderbird Desktop and Android to ensure a fast, reliable, and modern experience on your iPhone right from the start.&lt;/p&gt;



&lt;p&gt;Our ultimate goal is seamless cross-device experience. Whether you’re sitting at your desktop computer, checking messages on the go, your workflow should feel effortless and unified. &lt;/p&gt;



&lt;p&gt;Right now, we are focused heavily on getting the core foundations right. We are excited about the momentum because having clean architecture today means we can layer on exciting new features much faster in the future.&lt;/p&gt;



&lt;p&gt;Below we’ve captured some of our work in progress. Nothing is final, but we wanted to share what we are cooking up so far. If you have feedback, keep reading on. At the bottom of the post we have  a link to a user research study where we want to hear from you and what you want to see from Thunderbird for iOS.&lt;/p&gt;



&lt;p&gt;&lt;/p&gt;



&lt;h3&gt;&lt;strong&gt;Hassle-free setup&lt;/strong&gt;&lt;/h3&gt;



&lt;p&gt;&lt;/p&gt;


&lt;div class=&quot;wp-block-image&quot;&gt;
&lt;figure class=&quot;aligncenter size-full is-resized&quot;&gt;&lt;a href=&quot;https://blog.thunderbird.net/files/2026/10/Hassel-free-setup-scaled.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-4658&quot; height=&quot;1440&quot; src=&quot;https://blog.thunderbird.net/files/2026/10/Hassel-free-setup-scaled.jpg&quot; style=&quot;width: 838px; height: auto;&quot; width=&quot;2560&quot; /&gt;&lt;/a&gt;&lt;figcaption class=&quot;wp-element-caption&quot;&gt;&lt;em&gt;Adding account user flow with options for email services like Google and Microsoft &lt;/em&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;


&lt;p&gt;We know people are really busy, often doing more than one thing at a time. We’re making login fast, secure, and fully automatic, so whether you’re signing in with a single click or setting up multiple accounts, you can get to your inbox quickly. &lt;/p&gt;



&lt;p&gt;&lt;/p&gt;



&lt;h3&gt;&lt;strong&gt;Solid reliable connections&lt;/strong&gt;&lt;/h3&gt;


&lt;div class=&quot;wp-block-image&quot;&gt;
&lt;figure class=&quot;aligncenter size-full is-resized&quot;&gt;&lt;a href=&quot;https://blog.thunderbird.net/files/2026/10/Sync-scaled.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-4663&quot; height=&quot;1440&quot; src=&quot;https://blog.thunderbird.net/files/2026/10/Sync-scaled.jpg&quot; style=&quot;width: 840px; height: auto;&quot; width=&quot;2560&quot; /&gt;&lt;/a&gt;&lt;figcaption class=&quot;wp-element-caption&quot;&gt;&lt;em&gt;Thunderbird inbox&lt;/em&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;


&lt;p&gt;An email app is only as good as its connection. Behind the scenes, we’re building a background sync that maintains a steady connection with your provider that keeps your inbox up to date while respecting your battery life.&lt;/p&gt;



&lt;p&gt;&lt;/p&gt;



&lt;h3&gt;&lt;strong&gt;Core daily tools&lt;/strong&gt;&lt;/h3&gt;


&lt;div class=&quot;wp-block-image&quot;&gt;
&lt;figure class=&quot;aligncenter size-full is-resized&quot;&gt;&lt;a href=&quot;https://blog.thunderbird.net/files/2026/10/Formatting-scaled.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-4668&quot; height=&quot;1440&quot; src=&quot;https://blog.thunderbird.net/files/2026/10/Formatting-scaled.jpg&quot; style=&quot;width: 841px; height: auto;&quot; width=&quot;2560&quot; /&gt;&lt;/a&gt;&lt;figcaption class=&quot;wp-element-caption&quot;&gt;&lt;em&gt;Formatting toolbar (highlighted to show the details)&lt;/em&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;


&lt;p&gt;Your daily email routine should feel effortless. We’re polishing the essentials: a clutter-free, easy-to-read inbox layout paired with a clean, modern editor that lets you format messages smoothly without getting in your way.&lt;/p&gt;



&lt;h3&gt;&lt;strong&gt;Designed for growth&lt;/strong&gt;&lt;/h3&gt;



&lt;figure class=&quot;wp-block-video&quot;&gt;&lt;video controls=&quot;controls&quot; src=&quot;https://blog.thunderbird.net/files/2026/10/landscape-design1.mp4&quot;&gt;&lt;/video&gt;&lt;/figure&gt;



&lt;p&gt;Thunderbird has always belonged to its community. We’re structuring the app with clean code and an experimental feature flag system so it’s easy for community developers to contribute. This means power users will be able to test out new experimental features early, and external contributors can easily help us extend what the app can do.&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;When can you try it?&lt;/strong&gt;&lt;/p&gt;



&lt;p&gt;Our goal is to have a first version ready for community testing in the next few months.&lt;/p&gt;



&lt;p&gt;Building &lt;em&gt;with&lt;/em&gt; our community, not just for people, is core to what we are trying to do. To help us decide what to build next after our first release, we’d love your input. If you had to pick the top three things that matter most to your daily email routine, what would they be?&lt;/p&gt;



&lt;p&gt;&lt;s&gt;&lt;img alt=&quot;➡&quot; class=&quot;wp-smiley&quot; src=&quot;https://s.w.org/images/core/emoji/14.0.0/72x72/27a1.png&quot; style=&quot;height: 1em;&quot; /&gt; Survey link&lt;/s&gt;&lt;br /&gt;&lt;em&gt;Update: the survey has now closed. Thanks to all that responded! &lt;/em&gt;&lt;/p&gt;



&lt;p&gt;&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;A note to the community &lt;/strong&gt;&lt;/p&gt;



&lt;p&gt;Lastly, we know how long many of you have been asking for and waiting for Thunderbird on iOS. Whether you’ve dropped a comment on our forums, tagged us on social media, or simply kept an eye on our progress, thank you for your patience!&lt;/p&gt;



&lt;p&gt;Bringing Thunderbird to iPhone and iPad isn’t just about building an app; it’s about doing it right so it serves you reliably for years to come. Today, we want to pop open the hood, share where we are, and work with everyone to design the best possible experience.&lt;/p&gt;
&lt;p&gt;The post &lt;a href=&quot;https://blog.thunderbird.net/2026/10/thunderbird-for-ios-a-first-look-at-the-native-iphone-email-app-in-development/&quot;&gt;Thunderbird for iOS: A First Look at the Native iPhone Email App in Development&lt;/a&gt; appeared first on &lt;a href=&quot;https://blog.thunderbird.net&quot;&gt;The Thunderbird Blog&lt;/a&gt;.&lt;/p&gt;</content:encoded>
	<dc:date>2026-10-01T22:14:22+00:00</dc:date>
	<dc:creator>Aly Blenkin</dc:creator>
</item>
<item rdf:about="yt:video:B635wgZy7Iw">
	<title>Mozilla Data YouTube Channel: Glean Dictionary Looker Demo</title>
	<link>https://www.youtube.com/watch?v=B635wgZy7Iw</link>
	<content:encoded>A quick demonstration of the Glean Dictionary's new integration with Mozilla's instance of Looker.</content:encoded>
	<dc:date>2026-10-01T17:48:04+00:00</dc:date>
	<dc:creator>Mozilla Data</dc:creator>
</item>
<item rdf:about="https://blog.mozilla.org/?p=86415">
	<title>The Mozilla Blog: Under the Hood: Prompt tuning Shake to Summarize for recipes</title>
	<link>https://blog.mozilla.org/en/firefox/firefox-ai/prompt-tuning-firefox-shake-to-summarize-recipes/</link>
	<content:encoded>&lt;p&gt;Following the rollout of Firefox’s &lt;a href=&quot;https://blog.mozilla.org/en/firefox/shake-to-summarize-expansion/&quot;&gt;Shake to Summarize feature to Android devices&lt;/a&gt; this May, we wanted to take a closer look at the modeling work behind the feature. In a &lt;a href=&quot;https://blog.mozilla.org/en/firefox/firefox-ai/ai-powering-firefox-shake-to-summarize/&quot;&gt;previous blog post&lt;/a&gt;, we discussed our model selection process. Now that Shake to Summarize has been available on both &lt;a href=&quot;https://blog.mozilla.org/en/firefox/shake-to-summarize/&quot;&gt;iOS&lt;/a&gt; and &lt;a href=&quot;https://support.mozilla.org/en-US/kb/summarize-pages-android&quot;&gt;Android&lt;/a&gt; for a few months, we wanted to take it a step further and outline our approach to prompt development. &lt;br /&gt;&lt;br /&gt;This is the story of a Shake to Summarize use case that required a little extra prompt tuning: online recipes.   &lt;/p&gt;



&lt;h3 class=&quot;wp-block-heading&quot;&gt;Framing the Problem&lt;/h3&gt;



&lt;p&gt;The first step in developing a useful prompt is clearly describing what you want the LLM to do. LLMs thrive on specificity, so the more sharply you can define your task, the better your results are likely to be. &lt;/p&gt;



&lt;p&gt;This is especially important when using smaller LLMs (like we are here), since these little models are not as good at reading between the lines and intuiting unstated intentions as their more powerful cousins are. &lt;/p&gt;



&lt;p&gt;For this application, we were looking to create summaries. On the face of it, this seems pretty straightforward. However, as we iterated on prompts, we quickly discovered that what constitutes a “good” summary depends largely on what one is summarizing. &lt;/p&gt;



&lt;p&gt;For example, a useful summary of a novel should provide us with a quick overview of the plot without getting into too many specific details; we wouldn’t expect the summary to contain anything from the text verbatim. &lt;/p&gt;



&lt;p&gt;In contrast, a summary of a recipe website should include the recipe essentially as written. If the recipe says “cook lovingly” we might be OK with shortening it to “cook,” but if it calls for 4 cups of vegetable broth, a Tbsp of oregano and a tsp of thyme, we want these details relayed to us &lt;em&gt;exactly&lt;/em&gt;. Merely stating, “this recipe calls for some broth and some spices” would not be adequate. &lt;/p&gt;



&lt;h3 class=&quot;wp-block-heading&quot;&gt;Forming the Prompt&lt;/h3&gt;



&lt;p&gt;From here, it became clear that we wanted not just one “summarize” instruction, but a whole set of instructions — one for each category of webpage that we wished to summarize. We worked with the product team to compile a list of article types that we were targeting for this feature. For each article type, we then gave a brief description of what a good summary would look like: &lt;/p&gt;



&lt;p&gt;&lt;strong&gt;Recipe&lt;/strong&gt; – Ingredients as written, along with the key steps, time required, and any tips given by the author or commenters&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;News&lt;/strong&gt; – Only the important details: what happened, when, and what would be the likely consequences to the reader&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;How-to&lt;/strong&gt; – Start with the required materials, skills, tools, etc.,  along with the main steps and any specific warnings called out by the author&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;Review&lt;/strong&gt; – Highlight the bottom line rating. If it is a product review, include the pros and cons, the price, and who the target audience is.&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;Research&lt;/strong&gt; – Key finding and level of confidence the researchers have in their results as well as the projected real-world impact.&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;Opinion&lt;/strong&gt; – The main argument, along with any key evidence cited in support&lt;/p&gt;



&lt;p&gt;We then wrapped this list in some general instructions to ground the model in the task and came up with our initial prompt (formatted for readability) [&lt;a href=&quot;https://github.com/mozilla-mobile/firefox-ios/blob/248a423e5380f1cbe1fa8d467fe4d0c2b01180e4/BrowserKit/Sources/SummarizeKit/Backend/SummarizerInstructions.swift#L13-L25&quot;&gt;source&lt;/a&gt;]:  &lt;/p&gt;



&lt;blockquote class=&quot;wp-block-quote is-style-plain&quot;&gt;
&lt;div class=&quot;wp-block-group is-layout-constrained wp-block-group-is-layout-constrained&quot;&gt;&lt;div class=&quot;wp-block-group__inner-container&quot;&gt;
&lt;p&gt;You are a Content Summarizer. You create mobile-optimized summaries by first understanding what users actually need from each type of content. &lt;/p&gt;



&lt;p&gt;Process: &lt;/p&gt;



&lt;p&gt;   Step 1: Identify and Adapt.&lt;/p&gt;



&lt;p&gt;   Step 2: Based on content type, prioritize: &lt;/p&gt;



&lt;p&gt;Recipe – Servings, Total time, Ingredients list, Key steps, Tips.&lt;/p&gt;



&lt;p&gt;News – What happened, when, where. &lt;/p&gt;



&lt;p&gt;How-to – Total time, Materials, Key steps, Warnings. &lt;/p&gt;



&lt;p&gt;Review – Bottom line rating, price.&lt;/p&gt;



&lt;p&gt;Opinion – Main arguments, Key evidence.&lt;/p&gt;



&lt;p&gt;Personal Blog – Author, main points. &lt;/p&gt;



&lt;p&gt;Fiction – Author, summary of plot.&lt;/p&gt;



&lt;p&gt;All other content types – Provide a brief summary of no more than 6 sentences.&lt;/p&gt;



&lt;p&gt;   Step 3: Format for mobile using concise language and paragraphs with 3 sentences maximum.&lt;/p&gt;



&lt;p&gt;Bold critical details (numbers, warnings, key terms).&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;/blockquote&gt;



&lt;p&gt;We &lt;a href=&quot;https://wiki.mozilla.org/Foxfooding&quot;&gt;Foxfooded&lt;/a&gt; the above prompt and found that it mostly worked pretty well. The summaries the model produced were concise, accurate, and informative. &lt;/p&gt;



&lt;p&gt;The only exception was recipes. &lt;/p&gt;



&lt;p&gt;We found that, when the prompt above was used for recipes, the model tended to summarize too much — often leaving out key ingredients, or in some cases, leaving out the recipe entirely.&lt;/p&gt;



&lt;p&gt;For example, when asked to summarize &lt;a href=&quot;https://cookieandkate.com/best-lentil-soup-recipe/&quot;&gt;a lentil soup recipe&lt;/a&gt; the model returned:&lt;br /&gt;&lt;/p&gt;



&lt;blockquote class=&quot;wp-block-quote&quot;&gt;
&lt;p&gt;&lt;em&gt;The webpage provides a detailed recipe for a &lt;strong&gt;vegan lentil soup&lt;/strong&gt;, which the author claims is the best they’ve ever made. The soup is made with pantry staples like lentils, diced tomatoes, vegetable broth, and spices (cumin, curry powder, thyme), along with fresh vegetables (onion, carrots, garlic) and greens (kale or collard greens). A key step is blending a portion of the soup to create a creamy texture without dairy.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;



&lt;p&gt;The summary is accurate, so far as it goes, but it isn’t exactly useful. If our goal is to have the summary be a quick way to access the recipe itself, without having to read through the narrative preamble, this wouldn’t cut it.  &lt;/p&gt;



&lt;h3 class=&quot;wp-block-heading&quot;&gt;Focusing the Prompt&lt;/h3&gt;



&lt;p&gt;To address this problem, we needed to be more explicit with the instructions we gave the model when summarizing recipes: we needed to tell it which information we were interested in and which it could safely discard. &lt;/p&gt;



&lt;p&gt;Although we could have added this extra guidance directly to the prompt above, doing so risked causing the model to over-index on the recipe formatting and ignore the other article types. Instead, we developed a separate prompt which contained only the recipe instructions and directed recipe summarization requests to use it, rather than the general one [&lt;a href=&quot;https://github.com/mozilla-mobile/firefox-ios/blob/248a423e5380f1cbe1fa8d467fe4d0c2b01180e4/BrowserKit/Sources/SummarizeKit/Backend/SummarizerInstructions.swift#L43-L84&quot;&gt;source&lt;/a&gt;].&lt;/p&gt;



&lt;p&gt;To perform this routing, we used the &lt;a href=&quot;https://developers.google.com/search/docs/appearance/structured-data/intro-structured-data&quot;&gt;structured data&lt;/a&gt; embedded in each webpage. While this categorization could have been handled by another model pass, metadata from the webpage itself allowed us to quickly and deterministically identify the page categories without additional inference overhead. To capture cases where this data is either missing or inaccurate, we also maintain some lightweight recipe guidance in the general prompt. &lt;/p&gt;



&lt;p&gt;After this change, the summary returned by the model for the above recipe became much more usable (shortened for brevity): &lt;/p&gt;



&lt;p&gt;&lt;strong&gt;Servings:&lt;/strong&gt; 6&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;Total Time:&lt;/strong&gt; 50 minutes&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;Prep Time:&lt;/strong&gt; 10 minutes&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;Cook Time:&lt;/strong&gt; 40 minutes&lt;/p&gt;



&lt;h4 class=&quot;wp-block-heading&quot; id=&quot;-ingredients&quot;&gt;&lt;img alt=&quot;🥕&quot; class=&quot;wp-smiley&quot; src=&quot;https://s.w.org/images/core/emoji/14.0.0/72x72/1f955.png&quot; style=&quot;height: 1em;&quot; /&gt; Ingredients&lt;/h4&gt;



&lt;ul&gt;
&lt;li&gt;¼ cup extra virgin olive oil&lt;/li&gt;



&lt;li&gt;1 medium yellow or white onion, chopped&lt;/li&gt;



&lt;li&gt;2 carrots, peeled and chopped&lt;/li&gt;



&lt;li&gt;…&lt;/li&gt;
&lt;/ul&gt;



&lt;h4 class=&quot;wp-block-heading&quot; id=&quot;-instructions&quot;&gt;&lt;img alt=&quot;📋&quot; class=&quot;wp-smiley&quot; src=&quot;https://s.w.org/images/core/emoji/14.0.0/72x72/1f4cb.png&quot; style=&quot;height: 1em;&quot; /&gt; Instructions&lt;/h4&gt;



&lt;ol&gt;
&lt;li&gt;Warm the olive oil in a large Dutch oven or pot over medium heat.&lt;/li&gt;



&lt;li&gt;Add the chopped onion and carrot, cooking until the onion softens and turns translucent, about 5 minutes.&lt;/li&gt;



&lt;li&gt;…&lt;/li&gt;
&lt;/ol&gt;



&lt;h4 class=&quot;wp-block-heading&quot; id=&quot;-tips&quot;&gt;&lt;img alt=&quot;⭐&quot; class=&quot;wp-smiley&quot; src=&quot;https://s.w.org/images/core/emoji/14.0.0/72x72/2b50.png&quot; style=&quot;height: 1em;&quot; /&gt; Tips&lt;/h4&gt;



&lt;ul&gt;
&lt;li&gt;Use an immersion blender for easier blending without transferring soup.&lt;/li&gt;



&lt;li&gt;…&lt;/li&gt;
&lt;/ul&gt;



&lt;h4 class=&quot;wp-block-heading&quot; id=&quot;-nutrition&quot;&gt;&lt;img alt=&quot;🥗&quot; class=&quot;wp-smiley&quot; src=&quot;https://s.w.org/images/core/emoji/14.0.0/72x72/1f957.png&quot; style=&quot;height: 1em;&quot; /&gt; Nutrition&lt;/h4&gt;



&lt;ul&gt;
&lt;li&gt;Calories: 320&lt;/li&gt;



&lt;li&gt;…&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;br /&gt;With this change in place, we ran a quick test over a curated set of recipe sites and found that the new system was more than twice as likely to return a complete and accurate summary than our previous one. Success!&lt;/p&gt;



&lt;p&gt;The system was now working as expected: summaries were useful and recipes were complete.&lt;/p&gt;



&lt;h3 class=&quot;wp-block-heading&quot;&gt;Reflections&lt;/h3&gt;



&lt;p&gt;From this experience we learned that the model produced the best results when it was told explicitly what we wanted it to do. When the instructions were vague or left too much up to the model, performance suffered. &lt;/p&gt;



&lt;p&gt;To this end, we found that framing this problem as a routing problem — where the specific kinds of articles are routed to specific prompts — worked well. Since the task of summarization is not monolithic, our summarization pipeline should not be either.&lt;/p&gt;



&lt;p&gt;Even though our current approach has only a single category-specific prompt, we hypothesize that the system would see further gains by using dedicated prompts for other page types as well. &lt;/p&gt;



&lt;p&gt;More broadly, this experience reinforced an important lesson for us: improving AI systems is not solely about building larger or more capable models. Some of the biggest gains come from reducing ambiguity, narrowing the task, and designing systems that help the model succeed. Within the right harness, smaller, open source models can deliver great value.&lt;/p&gt;



&lt;p&gt;While building more capable models continues to advance the field, our experience shows that thoughtful system design and solid engineering still matter.&lt;/p&gt;
&lt;p&gt;The post &lt;a href=&quot;https://blog.mozilla.org/en/firefox/firefox-ai/prompt-tuning-firefox-shake-to-summarize-recipes/&quot;&gt;Under the Hood: Prompt tuning Shake to Summarize for recipes&lt;/a&gt; appeared first on &lt;a href=&quot;https://blog.mozilla.org/en/&quot;&gt;The Mozilla Blog&lt;/a&gt;.&lt;/p&gt;</content:encoded>
	<dc:date>2026-10-01T16:00:00+00:00</dc:date>
	<dc:creator>Bryan Johns</dc:creator>
</item>
<item rdf:about="yt:video:OTe47t0gGAE">
	<title>Mozilla Data YouTube Channel: An opinionated intro to NLP (text analytics)</title>
	<link>https://www.youtube.com/watch?v=OTe47t0gGAE</link>
	<content:encoded>Rebecca BurWei from Mozilla Data Science gives an introduction to Natural Language Processing.</content:encoded>
	<dc:date>2026-10-01T13:06:27+00:00</dc:date>
	<dc:creator>Mozilla Data</dc:creator>
</item>
<item rdf:about="yt:video:Qg5mmbi7Y2s">
	<title>Mozilla Data YouTube Channel: Data Incident Process</title>
	<link>https://www.youtube.com/watch?v=Qg5mmbi7Y2s</link>
	<content:encoded>Mike Droettboom talks about Data @ Mozilla's process for handling incidents.</content:encoded>
	<dc:date>2026-10-01T10:49:02+00:00</dc:date>
	<dc:creator>Mozilla Data</dc:creator>
</item>
<item rdf:about="https://blog.rust-lang.org/2026/10/01/Rust-1.99.0/">
	<title>The Rust Programming Language Blog: Announcing Rust 1.99.0</title>
	<link>https://blog.rust-lang.org/2026/10/01/Rust-1.99.0/</link>
	<content:encoded>&lt;p&gt;The Rust team is happy to announce a new version of Rust, 1.99.0. Rust is a programming language empowering everyone to build reliable and efficient software.&lt;/p&gt;
&lt;p&gt;If you have a previous version of Rust installed via &lt;code&gt;rustup&lt;/code&gt;, you can get 1.99.0 with:&lt;/p&gt;
&lt;pre class=&quot;giallo z-code&quot;&gt;&lt;code&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;$&lt;/span&gt;&lt;span&gt; rustup update stable&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you don't have it already, you can get &lt;a href=&quot;https://www.rust-lang.org/install.html&quot; rel=&quot;external&quot;&gt;&lt;code&gt;rustup&lt;/code&gt;&lt;/a&gt; from the appropriate page on our website, and check out the &lt;a href=&quot;https://doc.rust-lang.org/stable/releases.html#version-1990-2026-10-01&quot; rel=&quot;external&quot;&gt;detailed release notes for 1.99.0&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you'd like to help us out by testing future releases, you might consider updating locally to use the beta channel (&lt;code&gt;rustup default beta&lt;/code&gt;) or the nightly channel (&lt;code&gt;rustup default nightly&lt;/code&gt;). Please &lt;a href=&quot;https://github.com/rust-lang/rust/issues/new/choose&quot; rel=&quot;external&quot;&gt;report&lt;/a&gt; any bugs you might come across!&lt;/p&gt;
&lt;h3&gt;&lt;a class=&quot;anchor&quot; href=&quot;https://blog.rust-lang.org/2026/10/01/Rust-1.99.0/#what-s-in-1-99-0-stable&quot;&gt;&lt;/a&gt;
What's in 1.99.0 stable&lt;/h3&gt;
&lt;h4&gt;&lt;a class=&quot;anchor&quot; href=&quot;https://blog.rust-lang.org/2026/10/01/Rust-1.99.0/#extern-c-variadics&quot;&gt;&lt;/a&gt;
extern &quot;C&quot; variadics&lt;/h4&gt;
&lt;p&gt;Rust 1.99.0 stabilizes defining C-ABI variadic functions with &quot;C&quot; and
&quot;C-unwind&quot; ABIs. Variadic functions defined this way use a variable argument
list (&lt;code&gt;...&lt;/code&gt;) and accept an arbitrary number of arguments. Rust could already
call externally-defined variadic functions (e.g., &lt;code&gt;libc::printf&lt;/code&gt;). With Rust
1.99, these functions can now be written in Rust itself:&lt;/p&gt;
&lt;pre class=&quot;giallo z-code&quot;&gt;&lt;code&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-comment z-comment&quot;&gt;///&lt;/span&gt;&lt;span class=&quot;z-comment&quot;&gt; SAFETY: must be called with (at least) 2 i32 arguments.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-keyword&quot;&gt;unsafe&lt;/span&gt;&lt;span class=&quot;z-storage z-type&quot;&gt; extern&lt;/span&gt;&lt;span class=&quot;z-punctuation z-definition z-string z-string&quot;&gt; &quot;&lt;/span&gt;&lt;span class=&quot;z-string z-quoted z-string&quot;&gt;C&lt;/span&gt;&lt;span class=&quot;z-punctuation z-definition z-string z-string&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;z-keyword&quot;&gt; fn&lt;/span&gt;&lt;span class=&quot;z-entity z-name z-function&quot;&gt; sum&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span class=&quot;z-storage z-storage z-modifier&quot;&gt;mut&lt;/span&gt;&lt;span class=&quot;z-variable&quot;&gt; args&lt;/span&gt;&lt;span class=&quot;z-keyword z-operator&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;z-keyword z-operator&quot;&gt; ...&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span class=&quot;z-keyword z-operator&quot;&gt; -&amp;gt;&lt;/span&gt;&lt;span class=&quot;z-entity z-name z-type&quot;&gt; i32&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-comment z-comment&quot;&gt;    //&lt;/span&gt;&lt;span class=&quot;z-comment z-line z-double-slash z-comment&quot;&gt; SAFETY: guaranteed by the caller.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-storage z-type&quot;&gt;    let&lt;/span&gt;&lt;span class=&quot;z-variable&quot;&gt; a&lt;/span&gt;&lt;span class=&quot;z-keyword z-operator z-assignment z-keyword z-operator&quot;&gt; =&lt;/span&gt;&lt;span class=&quot;z-keyword&quot;&gt; unsafe&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;span class=&quot;z-variable&quot;&gt; args&lt;/span&gt;&lt;span class=&quot;z-keyword z-operator&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;z-entity z-name z-function&quot;&gt;next_arg&lt;/span&gt;&lt;span class=&quot;z-keyword z-operator&quot;&gt;::&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;z-entity z-name z-type&quot;&gt;i32&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt; }&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-storage z-type&quot;&gt;    let&lt;/span&gt;&lt;span class=&quot;z-variable&quot;&gt; b&lt;/span&gt;&lt;span class=&quot;z-keyword z-operator z-assignment z-keyword z-operator&quot;&gt; =&lt;/span&gt;&lt;span class=&quot;z-keyword&quot;&gt; unsafe&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;span class=&quot;z-variable&quot;&gt; args&lt;/span&gt;&lt;span class=&quot;z-keyword z-operator&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;z-entity z-name z-function&quot;&gt;next_arg&lt;/span&gt;&lt;span class=&quot;z-keyword z-operator&quot;&gt;::&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;z-entity z-name z-type&quot;&gt;i32&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt; }&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-variable&quot;&gt;    a&lt;/span&gt;&lt;span class=&quot;z-keyword z-operator&quot;&gt; +&lt;/span&gt;&lt;span class=&quot;z-variable&quot;&gt; b&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-keyword&quot;&gt;fn&lt;/span&gt;&lt;span class=&quot;z-entity z-name z-function&quot;&gt; foo&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span class=&quot;z-keyword z-operator&quot;&gt; -&amp;gt;&lt;/span&gt;&lt;span class=&quot;z-entity z-name z-type&quot;&gt; i32&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-keyword&quot;&gt;    unsafe&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;span class=&quot;z-entity z-name z-function&quot;&gt; sum&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span class=&quot;z-constant z-numeric&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;z-constant z-numeric z-entity z-name z-type&quot;&gt;i32&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span class=&quot;z-constant z-numeric&quot;&gt; 2&lt;/span&gt;&lt;span class=&quot;z-constant z-numeric z-entity z-name z-type&quot;&gt;i32&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt; }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The type of &lt;code&gt;...&lt;/code&gt; is &lt;a href=&quot;https://doc.rust-lang.org/std/ffi/struct.VaList.html&quot; rel=&quot;external&quot;&gt;&lt;code&gt;VaList&lt;/code&gt;&lt;/a&gt;,
which is ABI-compatible with the C &lt;code&gt;va_list&lt;/code&gt; type across targets. What types can be read from a &lt;code&gt;VaList&lt;/code&gt; is guarded by the
&lt;a href=&quot;https://doc.rust-lang.org/std/ffi/trait.VaArgSafe.html&quot; rel=&quot;external&quot;&gt;&lt;code&gt;VaArgSafe&lt;/code&gt;&lt;/a&gt; trait.&lt;/p&gt;
&lt;p&gt;For more details on c-variadic functions, see the
&lt;a href=&quot;https://doc.rust-lang.org/reference/items/functions.html#c-variadic-functions&quot; rel=&quot;external&quot;&gt;Reference&lt;/a&gt;.
This release also stabilizes support for defining naked variadic functions with
non-&quot;C&quot; ABIs, which must be written via inline assembly.&lt;/p&gt;
&lt;h4&gt;&lt;a class=&quot;anchor&quot; href=&quot;https://blog.rust-lang.org/2026/10/01/Rust-1.99.0/#layout-information-from-raw-pointers&quot;&gt;&lt;/a&gt;
Layout information from raw pointers&lt;/h4&gt;
&lt;p&gt;This release settles the safety requirements for retrieving the size and
alignment on raw pointers to both &lt;code&gt;Sized&lt;/code&gt; (trivially safe, already possible on
stable) and non-&lt;code&gt;Sized&lt;/code&gt; types.&lt;/p&gt;
&lt;p&gt;This is done by stabilizing three functions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://doc.rust-lang.org/stable/core/alloc/struct.Layout.html#method.for_value_raw&quot; rel=&quot;external&quot;&gt;&lt;code&gt;Layout::for_value_raw&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://doc.rust-lang.org/stable/core/mem/fn.size_of_val_raw.html&quot; rel=&quot;external&quot;&gt;&lt;code&gt;mem::size_of_val_raw&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://doc.rust-lang.org/stable/core/mem/fn.align_of_val_raw.html&quot; rel=&quot;external&quot;&gt;&lt;code&gt;mem::align_of_val_raw&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;a class=&quot;anchor&quot; href=&quot;https://blog.rust-lang.org/2026/10/01/Rust-1.99.0/#recommend-against-round-trip-unleaking-after-box-leak&quot;&gt;&lt;/a&gt;
Recommend against round-trip unleaking after &lt;code&gt;Box::leak&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;While there are no changes to the language semantics in Rust 1.99, we have
updated the documentation on &lt;a href=&quot;https://doc.rust-lang.org/std/boxed/struct.Box.html#method.leak&quot; rel=&quot;external&quot;&gt;&lt;code&gt;Box::leak&lt;/code&gt;&lt;/a&gt; to recommend against patterns that
later deallocate that memory. This was done because such code was found to have
problematic interactions with current and future potential compiler optimizations,
and is especially problematic with the upcoming stabilization of custom allocators.
Instead, &lt;a href=&quot;https://doc.rust-lang.org/std/boxed/struct.Box.html#method.into_non_null&quot; rel=&quot;external&quot;&gt;&lt;code&gt;Box::into_non_null&lt;/code&gt;&lt;/a&gt; or &lt;a href=&quot;https://doc.rust-lang.org/std/boxed/struct.Box.html#method.into_raw&quot; rel=&quot;external&quot;&gt;&lt;code&gt;Box::into_raw&lt;/code&gt;&lt;/a&gt; should be preferred.&lt;/p&gt;
&lt;p&gt;This guidance also applies to other &lt;code&gt;leak&lt;/code&gt; functions in the standard library.&lt;/p&gt;
&lt;h4&gt;&lt;a class=&quot;anchor&quot; href=&quot;https://blog.rust-lang.org/2026/10/01/Rust-1.99.0/#stabilized-apis&quot;&gt;&lt;/a&gt;
Stabilized APIs&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://doc.rust-lang.org/stable/std/iter/trait.IntoIterator.html#impl-IntoIterator-for-Box%3C%5BT;+N%5D,+A%3E&quot; rel=&quot;external&quot;&gt;&lt;code&gt;IntoIterator&lt;/code&gt; for &lt;code&gt;Box&amp;lt;[T; N]&amp;gt;&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://doc.rust-lang.org/stable/std/iter/trait.IntoIterator.html#impl-IntoIterator-for-%26Box%3C%5BT;+N%5D,+A%3E&quot; rel=&quot;external&quot;&gt;&lt;code&gt;IntoIterator&lt;/code&gt; for &lt;code&gt;&amp;amp;Box&amp;lt;[T; N]&amp;gt;&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://doc.rust-lang.org/stable/std/iter/trait.IntoIterator.html#impl-IntoIterator-for-%26mut+Box%3C%5BT;+N%5D,+A%3E&quot; rel=&quot;external&quot;&gt;&lt;code&gt;IntoIterator&lt;/code&gt; for &lt;code&gt;&amp;amp;mut Box&amp;lt;[T; N]&amp;gt;&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://doc.rust-lang.org/stable/std/collections/struct.VecDeque.html#method.retain_back&quot; rel=&quot;external&quot;&gt;&lt;code&gt;VecDeque::retain_back&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://doc.rust-lang.org/stable/core/ffi/struct.VaList.html&quot; rel=&quot;external&quot;&gt;&lt;code&gt;core::ffi::VaList&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://doc.rust-lang.org/stable/std/boxed/struct.Box.html#method.into_non_null&quot; rel=&quot;external&quot;&gt;&lt;code&gt;Box::into_non_null&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://doc.rust-lang.org/stable/std/boxed/struct.Box.html#method.from_non_null&quot; rel=&quot;external&quot;&gt;&lt;code&gt;Box::from_non_null&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.into_parts&quot; rel=&quot;external&quot;&gt;&lt;code&gt;Vec::into_parts&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.from_parts&quot; rel=&quot;external&quot;&gt;&lt;code&gt;Vec::from_parts&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://doc.rust-lang.org/stable/core/mem/fn.size_of_val_raw.html&quot; rel=&quot;external&quot;&gt;&lt;code&gt;core::mem::size_of_val_raw&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://doc.rust-lang.org/stable/core/mem/fn.align_of_val_raw.html&quot; rel=&quot;external&quot;&gt;&lt;code&gt;core::mem::align_of_val_raw&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://doc.rust-lang.org/stable/core/alloc/struct.Layout.html#method.for_value_raw&quot; rel=&quot;external&quot;&gt;&lt;code&gt;core::alloc::Layout::for_value_raw&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://doc.rust-lang.org/stable/std/string/struct.String.html#method.from_utf8_lossy_owned&quot; rel=&quot;external&quot;&gt;&lt;code&gt;String::from_utf8_lossy_owned&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://doc.rust-lang.org/stable/std/string/struct.FromUtf8Error.html#method.into_utf8_lossy&quot; rel=&quot;external&quot;&gt;&lt;code&gt;string::FromUtf8Error::into_utf8_lossy&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://doc.rust-lang.org/stable/std/iter/struct.StepBy.html#impl-FusedIterator-for-StepBy%3CI%3E&quot; rel=&quot;external&quot;&gt;&lt;code&gt;FusedIterator for StepBy&amp;lt;I&amp;gt;&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://doc.rust-lang.org/stable/std/fs/fn.set_times.html&quot; rel=&quot;external&quot;&gt;&lt;code&gt;std::fs::set_times&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://doc.rust-lang.org/stable/std/fs/fn.set_times_nofollow.html&quot; rel=&quot;external&quot;&gt;&lt;code&gt;std::fs::set_times_nofollow&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;a class=&quot;anchor&quot; href=&quot;https://blog.rust-lang.org/2026/10/01/Rust-1.99.0/#other-changes&quot;&gt;&lt;/a&gt;
Other changes&lt;/h4&gt;
&lt;p&gt;Check out everything that changed in &lt;a href=&quot;https://github.com/rust-lang/rust/releases/tag/1.99.0&quot; rel=&quot;external&quot;&gt;Rust&lt;/a&gt;, &lt;a href=&quot;https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-199-2026-10-01&quot; rel=&quot;external&quot;&gt;Cargo&lt;/a&gt;, and &lt;a href=&quot;https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-199&quot; rel=&quot;external&quot;&gt;Clippy&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;&lt;a class=&quot;anchor&quot; href=&quot;https://blog.rust-lang.org/2026/10/01/Rust-1.99.0/#contributors-to-1-99-0&quot;&gt;&lt;/a&gt;
Contributors to 1.99.0&lt;/h3&gt;
&lt;p&gt;Many people came together to create Rust 1.99.0. We couldn't have done it without all of you. &lt;a href=&quot;https://thanks.rust-lang.org/rust/1.99.0/&quot; rel=&quot;external&quot;&gt;Thanks!&lt;/a&gt;&lt;/p&gt;</content:encoded>
	<dc:date>2026-10-01T00:00:00+00:00</dc:date>
	<dc:creator>The Rust Release Team</dc:creator>
</item>
<item rdf:about="https://blog.mozilla.org/community/?p=2555">
	<title>About:Community: A fresh Firefox and MozFest count down</title>
	<link>https://blog.mozilla.org/community/2026/09/30/newsletter-sep-2026/</link>
	<content:encoded>&lt;p&gt;Hi Mozillian,&lt;/p&gt;
&lt;p&gt;In this edition, we’re exploring the new Firefox design, Mozilla’s recent partnership with Mistral to expand choice in AI-powered browsing, and several ways to get involved with MozFest. You can join a livestream about the value of bringing open-source communities together in person, volunteer at MozFest in Barcelona, or take part in the latest privacy discussion from the Firefox community on Reddit.&lt;/p&gt;
&lt;p&gt;Read on for the latest updates and opportunities to participate!&lt;/p&gt;
&lt;p&gt;&lt;b&gt;More modern. More flexible. Still Firefox.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.mozilla.org/community/files/2026/09/distilled_nova_header_generic.webp&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-2556&quot; height=&quot;1080&quot; src=&quot;https://blog.mozilla.org/community/files/2026/09/distilled_nova_header_generic.webp&quot; width=&quot;1920&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Firefox 157 introduces a new Firefox design with updated colors, icons and themes that make the browser feel more modern while preserving the familiar Firefox experience. The release also brings back Compact Mode and adds easier theme selection, new wallpapers and more ways to customize the New Tab page. Underneath the new look, Firefox remains independent and open source, with built-in privacy protections and controls that let you decide how your browser works, including how AI features appear.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.mozilla.org/firefox/new-firefox-design/&quot;&gt;Learn more&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Mozilla and Mistral partner to expand AI choice&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Mozilla and Mistral have announced a partnership aimed at increasing competition and preserving user choice in AI-powered browsing. As part of the collaboration, the open-source Mistral Small 4 model is coming to Firefox Smart Window Beta as a new option for users in the US and Canada. Smart Window Beta is also expanding to France with official French-language support, with additional European markets planned. Users can continue choosing from multiple AI models, reinforcing Firefox’s commitment to avoiding lock-in and keeping the web open to different technologies and providers.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.mozilla.org/firefox/mozilla-mistral-partnership/&quot;&gt;Learn more&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Does open source need IRL? The case for MozFest&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Is showing up in person important for open source? Join the &lt;a href=&quot;https://bit.ly/owners_not_renters&quot;&gt;&lt;i&gt;Owners Not Renters&lt;/i&gt;&lt;/a&gt; livestream on Tuesday, September 29, to hear the story behind MozFest and explore why gathering in person still matters for open-source communities ahead of MozFest, taking place October 28–30 in Barcelona. Kali Villarosa (MoFo), Seher Shafiq (MoFo) and Brian Behlendorf (co-founded Apache) will join host Marcus Rein for an open conversation, followed by a live Q&amp;amp;A. Bring your questions and your hot takes!&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://streamyard.com/watch/p26zyuKEgmTs&quot;&gt;Watch and participate&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;MozFest call for Volunteers&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;From 28–30 October 2026, the Mozilla Foundation will host the Mozilla Festival in Barcelona, bringing together people from diverse fields to explore how we can work collectively to “re-wild” the web. To help bring the Festival to life, we’re building a team of volunteers. By joining, you’ll help deliver a major event in support of Mozilla’s mission while also having opportunities to participate in sessions throughout the three-day Festival.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.mozillafoundation.org/festival/volunteer/&quot;&gt;Sign up to volunteer&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;From the Reddit Community&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Privacy conversations are going mainstream, and Firefox has been at this for 20+ years. In light of a recent video making the rounds about the importance of privacy, the Firefox Team shared a rundown of built-in privacy features (ad blocking, tracking protection, encrypted sync, a free VPN, and more). Jump in at r/firefox and share your own privacy tips and configs!&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.reddit.com/r/firefox/s/HkIy9KtpG0&quot;&gt;Join the discussion&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;P.S.&lt;/p&gt;
&lt;p&gt;Enjoyed these updates? Subscribe to the &lt;a href=&quot;https://community.mozilla.org/newsletter&quot;&gt;Mozilla Community Newsletter&lt;/a&gt; and get the latest updates delivered straight to your inbox.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;</content:encoded>
	<dc:date>2026-09-30T17:01:00+00:00</dc:date>
	<dc:creator>Rizki Kelimutu</dc:creator>
</item>
<item rdf:about="tag:this-week-in-rust.org,2026-09-30:/blog/2026/09/30/this-week-in-rust-671/">
	<title>This Week In Rust: This Week in Rust 671</title>
	<link>https://this-week-in-rust.org/blog/2026/09/30/this-week-in-rust-671/</link>
	<content:encoded>&lt;p&gt;Hello and welcome to another issue of &lt;em&gt;This Week in Rust&lt;/em&gt;!
&lt;a href=&quot;https://www.rust-lang.org/&quot;&gt;Rust&lt;/a&gt; is a programming language empowering everyone to build reliable and efficient software.
This is a weekly summary of its progress and community.
Want something mentioned? Tag us at
&lt;a href=&quot;https://bsky.app/profile/thisweekinrust.bsky.social&quot;&gt;@thisweekinrust.bsky.social&lt;/a&gt; on Bluesky or
&lt;a href=&quot;https://mastodon.social/@thisweekinrust&quot;&gt;@ThisWeekinRust&lt;/a&gt; on mastodon.social, or
&lt;a href=&quot;https://github.com/rust-lang/this-week-in-rust&quot;&gt;send us a pull request&lt;/a&gt;.
Want to get involved? &lt;a href=&quot;https://github.com/rust-lang/rust/blob/main/CONTRIBUTING.md&quot;&gt;We love contributions&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This Week in Rust&lt;/em&gt; is openly developed &lt;a href=&quot;https://github.com/rust-lang/this-week-in-rust&quot;&gt;on GitHub&lt;/a&gt; and archives can be viewed at &lt;a href=&quot;https://this-week-in-rust.org/&quot;&gt;this-week-in-rust.org&lt;/a&gt;.
If you find any errors in this week's issue, &lt;a href=&quot;https://github.com/rust-lang/this-week-in-rust/pulls&quot;&gt;please submit a PR&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Want TWIR in your inbox? &lt;a href=&quot;https://this-week-in-rust.us11.list-manage.com/subscribe?u=fd84c1c757e02889a9b08d289&amp;amp;id=0ed8b72485&quot;&gt;Subscribe here&lt;/a&gt;.&lt;/p&gt;
&lt;h4&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#updates-from-rust-community&quot;&gt;Updates from Rust Community&lt;/a&gt;&lt;/h4&gt;


&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#newsletters&quot;&gt;Newsletters&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://scientificcomputing.rs/monthly/2026-09&quot;&gt;Scientific Computing in Rust #22 (September 2026)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.theembeddedrustacean.com/p/the-embedded-rustacean-issue-81&quot;&gt;The Embedded Rustacean Issue #81&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#observationsthoughts&quot;&gt;Observations/Thoughts&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://mnwa.hashnode.dev/can-safe-rust-ever-beat-google-s-c-brotli&quot;&gt;Can safe Rust ever beat Google's C Brotli?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://micro-rust.github.io/posts/001-i2c-dma-handler/&quot;&gt;Building a DMA based driver for the RP2350 I2C (safety not included)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://dimforge.com/blog/2026/09/25/advanced-soft-bodies-for-games-in-the-rapier-physics-engine/&quot;&gt;Advanced soft-bodies for games with the Rapier physics engine&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.cloudflare.com/rust-workers-emscripten-target/&quot;&gt;Supporting native Rust in Workers with the new Emscripten target for wasm-bindgen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eli.thegreenplace.net/2026/rusty-thoughts-on-parse-dont-validate/&quot;&gt;Rusty thoughts on &quot;Parse, don't validate&quot;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://shnatsel.github.io/state-of-simd-rust-2026/&quot;&gt;The state of SIMD in Rust in 2026&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.jochen.fyi/posts/how-do-you-stop-being-a-rust-novice&quot;&gt;How do you stop being a Rust novice?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://corrode.dev/blog/named-arguments-at-home/&quot;&gt;We Have Named Arguments at Home&lt;/a&gt;: a reply to the blog post &lt;em&gt;Arguing about arguments&lt;/em&gt; mentioned in the last issue&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://kobzol.github.io/rust/2026/09/30/stf-august-september-2026.html&quot;&gt;Upstream Rust maintenance report (August-September 2026)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://kerkour.com/rust-kernel&quot;&gt;Rust in the kernel? What about Rust without the kernel!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://lwn.net/SubscriberLink/1095553/7f34252658f8b8d1/&quot;&gt;Compiling the kernel with gccrs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://lwn.net/SubscriberLink/1095721/e1d863e5fd827753/&quot;&gt;Listening to the radio with Rust&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://lwn.net/SubscriberLink/1095731/a5ecc9da2388b8ec/&quot;&gt;Native support for Rust on the GPU&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#rust-walkthroughs&quot;&gt;Rust Walkthroughs&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://nnethercote.github.io/2026/09/30/how-to-speed-up-the-rust-compiler-in-september-2026.html&quot;&gt;How to speed up the Rust compiler in September 2026&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://oluseun.dev/blogs/real-time-notifications-sse-pubsub.html&quot;&gt;Building Real-Time Notifications with SSE and Pub/Sub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://dzania.github.io/green-threads-from-scratch/&quot;&gt;Green Threads from Scratch&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.schneems.com/2026/09/24/a-type-stronger-than-the-sum-of-its-components/&quot;&gt;A Type Stronger than the Sum of its Components&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://lucumr.pocoo.org/2026/9/29/deser/&quot;&gt;Deser: Rethinking Rust Serialization&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://rustunit.com/blog/2026/09-04-bevy-ios-crates-objc2/&quot;&gt;Dropping Swift from our Bevy iOS crates&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://wolfgirl.dev/blog/2026-09-29-pining-for-arc-downcasting-in-rust/&quot;&gt;Pining for Arc Downcasting in Rust&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://tokio.rs/blog/2026-09-24-topcoat-server-applications&quot;&gt;Topcoat is pushing the boundary of server applications with Rust&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developerlife.com/2026/09/25/rust-reborrowing/&quot;&gt;Rust Reborrowing, Aliasing, and Mutable References&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://liw.fi/distilled-rust/&quot;&gt;A very condensed introduction of the basics of Rust&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[video] &lt;a href=&quot;https://youtu.be/bs8bpAZ10SM&quot;&gt;Making Our GPUI App Interactive with State and Events&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[ES] &lt;a href=&quot;https://codigolinea.com/domain-flow-effects-dfe-arquitectura-rust/&quot;&gt;Domain–Flow–Effects (DFE): an architecture designed for Rust&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#miscellaneous&quot;&gt;Miscellaneous&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;[DE]&lt;a href=&quot;https://cryptpad.fr/form/#/2/form/view/ppm1DazKFfZxfLB8Fw6-7W0vBC1kFV9KgkHQWqY7UU0/&quot;&gt;Rust &amp;amp; Linux Community Event – November 20–21, 2026 @ TUXEDO, Augsburg – Help us choose the workshop topic&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#crate-of-the-week&quot;&gt;Crate of the Week&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;This week's crate is &lt;a href=&quot;https://github.com/velvia/ying-profiler&quot;&gt;ying-profiler&lt;/a&gt;, a native Rust sampling memory profiler.&lt;/p&gt;
&lt;p&gt;Thanks to &lt;a href=&quot;https://users.rust-lang.org/t/crate-of-the-week/2704/1683&quot;&gt;Evan Chan&lt;/a&gt; for the self-suggestion!&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://users.rust-lang.org/t/crate-of-the-week/2704&quot;&gt;Please submit your suggestions and votes for next week&lt;/a&gt;!&lt;/p&gt;
&lt;h4&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#calls-for-testing&quot;&gt;Calls for Testing&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;An important step for RFC implementation is for people to experiment with the
implementation and give feedback, especially before stabilization.&lt;/p&gt;
&lt;p&gt;If you are a feature implementer and would like your RFC to appear in this list, add a
&lt;code&gt;call-for-testing&lt;/code&gt; label to your RFC along with a comment providing testing instructions and/or
guidance on which aspect(s) of the feature need testing.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;No calls for testing were issued this week by
&lt;a href=&quot;https://github.com/rust-lang/rust/issues?q=state%3Aopen%20label%3Acall-for-testing%20state%3Aopen&quot;&gt;Rust&lt;/a&gt;,
&lt;a href=&quot;https://github.com/rust-lang/cargo/issues?q=state%3Aopen%20label%3Acall-for-testing%20state%3Aopen&quot;&gt;Cargo&lt;/a&gt;,
&lt;a href=&quot;https://github.com/rust-lang/rustup/issues?q=state%3Aopen%20label%3Acall-for-testing%20state%3Aopen&quot;&gt;Rustup&lt;/a&gt; or
&lt;a href=&quot;https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing%20state%3Aopen&quot;&gt;Rust language RFCs&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/rust-lang/this-week-in-rust/issues&quot;&gt;Let us know&lt;/a&gt; if you would like your feature to be tracked as a part of this list.&lt;/p&gt;
&lt;h4&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#call-for-participation-projects-and-speakers&quot;&gt;Call for Participation; projects and speakers&lt;/a&gt;&lt;/h4&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#cfp-projects&quot;&gt;CFP - Projects&lt;/a&gt;&lt;/h5&gt;
&lt;p&gt;Always wanted to contribute to open-source projects but did not know where to start?
Every week we highlight some tasks from the Rust community for you to pick and get started!&lt;/p&gt;
&lt;p&gt;Some of these tasks may also have mentors available, visit the task page for more information.&lt;/p&gt;


&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/zaydmulani09/unsynced/issues/1&quot;&gt;unsynced - strace frontend fails on pwritev2 with offset -1 (current file offset)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/zaydmulani09/unsynced/issues/2&quot;&gt;unsynced - Model hard links (link/linkat) instead of warning&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/zaydmulani09/unsynced/issues/3&quot;&gt;unsynced - Add an ext4 data=writeback persistence profile&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/wuisabel-gif/MemWhale/issues/253&quot;&gt;MemoryWhale - Cover friendly errors for incomplete &lt;code&gt;mw&lt;/code&gt; arguments&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/wuisabel-gif/MemWhale/issues/254&quot;&gt;MemoryWhale - Lock down &lt;code&gt;mw --help&lt;/code&gt; output&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/AndreaBozzo/dataprof/issues/840&quot;&gt;dataprof - Remote Parquet refusal messages should say to download the file when the server ignores Range&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/AndreaBozzo/dataprof/issues/827&quot;&gt;dataprof - &lt;code&gt;ScoreBounds::dimension_scores&lt;/code&gt; docs still list estimated key counts as unbounded&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/AndreaBozzo/dataprof/issues/824&quot;&gt;dataprof - The progress &lt;code&gt;finished&lt;/code&gt; event under-counts rows when a row cap stops the incremental engine&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you are a Rust project owner and are looking for contributors, please submit tasks &lt;a href=&quot;https://github.com/rust-lang/this-week-in-rust?tab=readme-ov-file#call-for-participation-guidelines&quot;&gt;here&lt;/a&gt; or through a &lt;a href=&quot;https://github.com/rust-lang/this-week-in-rust&quot;&gt;PR to TWiR&lt;/a&gt; or by reaching out on &lt;a href=&quot;https://bsky.app/profile/thisweekinrust.bsky.social&quot;&gt;Bluesky&lt;/a&gt; or &lt;a href=&quot;https://mastodon.social/@thisweekinrust&quot;&gt;Mastodon&lt;/a&gt;!&lt;/p&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#cfp-events&quot;&gt;CFP - Events&lt;/a&gt;&lt;/h5&gt;
&lt;p&gt;Are you a new or experienced speaker looking for a place to share something cool? This section highlights events that are being planned and are accepting submissions to join their event as a speaker.&lt;/p&gt;



&lt;p&gt;If you are an event organizer hoping to expand the reach of your event, please submit a link to the website through a &lt;a href=&quot;https://github.com/rust-lang/this-week-in-rust&quot;&gt;PR to TWiR&lt;/a&gt; or by reaching out on &lt;a href=&quot;https://bsky.app/profile/thisweekinrust.bsky.social&quot;&gt;Bluesky&lt;/a&gt; or &lt;a href=&quot;https://mastodon.social/@thisweekinrust&quot;&gt;Mastodon&lt;/a&gt;!&lt;/p&gt;
&lt;h4&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#updates-from-the-rust-project&quot;&gt;Updates from the Rust Project&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;546 pull requests were &lt;a href=&quot;https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2026-09-22..2026-09-29&quot;&gt;merged in the last week&lt;/a&gt;&lt;/p&gt;
&lt;h6&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#compiler&quot;&gt;Compiler&lt;/a&gt;&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/154724&quot;&gt;computing &lt;code&gt;crate_hash&lt;/code&gt; from metadata encoding instead of HIR (implements #94878)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/156949&quot;&gt;detect missing else in let statement&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/162361&quot;&gt;give noalias back to refs in closures&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/161775&quot;&gt;implement forced keywords (&lt;code&gt;k#&lt;/code&gt;)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/163190&quot;&gt;use SmallVec in LocalizedConstraintGraph&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h6&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#library&quot;&gt;Library&lt;/a&gt;&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/162832&quot;&gt;add &lt;code&gt;Div&lt;/code&gt; and &lt;code&gt;Mul&lt;/code&gt; for &lt;code&gt;Complex&amp;lt;{float}&amp;gt;&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/156882&quot;&gt;alloc: stabilise &lt;code&gt;Allocator&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/129036&quot;&gt;additional &lt;code&gt;NonZero&lt;/code&gt; conversions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/159564&quot;&gt;allow elided (&lt;code&gt;'static&lt;/code&gt;) lifetimes in &lt;code&gt;thread_local!&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/152972&quot;&gt;implement &lt;code&gt;PartialEq&amp;lt;VecDeque&amp;lt;U&amp;gt;&amp;gt;&lt;/code&gt; for &lt;code&gt;Vec&amp;lt;T&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;amp;[T]&lt;/code&gt;, &lt;code&gt;&amp;amp;mut [T]&lt;/code&gt;, &lt;code&gt;[T; N]&lt;/code&gt;, &lt;code&gt;&amp;amp;[T; N]&lt;/code&gt; and &lt;code&gt;&amp;amp;mut [T; N]&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/161791&quot;&gt;make dropping an empty BTreeMap free&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/163366&quot;&gt;stabilize SyncView&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/160436&quot;&gt;stabilize &lt;code&gt;Box::take&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/161712&quot;&gt;stabilize &lt;code&gt;Result::into_{ok,err}&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/161015&quot;&gt;stabilize &lt;code&gt;funnel_shifts&lt;/code&gt; (including &lt;code&gt;const&lt;/code&gt;)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/161710&quot;&gt;stabilize &lt;code&gt;mem::conjure_zst&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/163459&quot;&gt;stabilize &lt;code&gt;vec_try_remove&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/163099&quot;&gt;use wrapping arithmetic in &lt;code&gt;from_str_radix&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h6&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#cargo&quot;&gt;Cargo&lt;/a&gt;&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/pull/17498&quot;&gt;&lt;code&gt;builtin-deps&lt;/code&gt;: add builtin dependencies manifest syntax&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/pull/17215&quot;&gt;&lt;code&gt;config&lt;/code&gt;: add build.profile, install.profile&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/pull/17517&quot;&gt;&lt;code&gt;metadata&lt;/code&gt;: mirror package features in &lt;code&gt;features_v2&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/pull/17499&quot;&gt;&lt;code&gt;builtin-deps&lt;/code&gt;: fix builtin dependencies manifest validation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/pull/17515&quot;&gt;&lt;code&gt;diag&lt;/code&gt;: Don't report unused normal deps when static libs are skipped&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/pull/17509&quot;&gt;&lt;code&gt;package&lt;/code&gt;: preserve feature metadata in normalized manifests&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h6&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#rustdoc&quot;&gt;Rustdoc&lt;/a&gt;&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/163268&quot;&gt;correctly check that an item is not &lt;code&gt;doc(hidden)&lt;/code&gt; with &lt;code&gt;--generate-link-to-definition&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/162862&quot;&gt;fix intra doc link resolution when a doc comment is composed of both inner and outer doc comment&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/163133&quot;&gt;fix invalid jump to def link when &lt;code&gt;#[rustc_allow_incoherent_impl]&lt;/code&gt; is involved&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/162976&quot;&gt;fix quadratic naming of duplicate sidebar links&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h6&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#clippy&quot;&gt;Clippy&lt;/a&gt;&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-clippy/pull/17614&quot;&gt;&lt;code&gt;while_let_loop&lt;/code&gt;: detect the pattern when the loop has a label&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-clippy/pull/17030&quot;&gt;add new &lt;code&gt;try_from_instead_of_from_str&lt;/code&gt; lint&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-clippy/pull/17752&quot;&gt;don't suggest &lt;code&gt;Box::leak&lt;/code&gt; in &lt;code&gt;nonnull_unchecked_on_box_ptr&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-clippy/pull/16951&quot;&gt;fix &lt;code&gt;collapsible_match&lt;/code&gt; consuming/mutation checking&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-clippy/pull/17759&quot;&gt;fix &lt;code&gt;match_str_case&lt;/code&gt; matching str inside or patterns&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-clippy/pull/17678&quot;&gt;improve doc attr span tracking for proc-macro&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h6&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#rust-analyzer&quot;&gt;Rust-Analyzer&lt;/a&gt;&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-analyzer/pull/23386&quot;&gt;don't fail extension activation when the server fails to start&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-analyzer/pull/23406&quot;&gt;add &lt;code&gt;type_match&lt;/code&gt; relevance for type-alias&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-analyzer/pull/23416&quot;&gt;coercion safe fn to unsafe fn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-analyzer/pull/23382&quot;&gt;complete 'false' in cfg attribute&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-analyzer/pull/23414&quot;&gt;complete attr value inside string without quotes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-analyzer/pull/23185&quot;&gt;const eval cast of single-variant &lt;code&gt;enum&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-analyzer/pull/23413&quot;&gt;deduplicate 'derive' and 'test' attribute macro&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-analyzer/pull/23408&quot;&gt;do not type match unknown type&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-analyzer/pull/23410&quot;&gt;don't clear semantic tokens cache on refresh&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-analyzer/pull/23365&quot;&gt;hover show impl header when impl with trait&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-analyzer/pull/23409&quot;&gt;panic in async closures with higher-ranked trait bounds&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-analyzer/pull/23421&quot;&gt;return UB instead of panicking when reading the discriminant of an uninhabited &lt;code&gt;enum&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#rust-compiler-performance-triage&quot;&gt;Rust Compiler Performance Triage&lt;/a&gt;&lt;/h5&gt;
&lt;p&gt;This week was fairly positive. We had no pure regressions, and most of the results came from a few architectural improvements with mixed or mostly positive impact. Some improvements also come from addressing previously triaged regression caused by missing no_alias annotation for references in closures.&lt;/p&gt;
&lt;p&gt;The biggest improvement this week is in rustdoc, from tackling quadratic behaviour when generating sidebar links. This was reported by a user, but the effect didn't show up in our benchmarks, so we added a special stress test for it.&lt;/p&gt;
&lt;p&gt;Triage done by &lt;strong&gt;@panstromek&lt;/strong&gt;.
Revision range: &lt;a href=&quot;https://perf.rust-lang.org/?start=3670d2532bdf51abbe0b8fea22284d7ca340ffe3&amp;amp;end=c1070d69382b8d2f2eb65119c738a77d9e324c9e&amp;amp;absolute=false&amp;amp;stat=instructions%3Au&quot;&gt;3670d253..c1070d69&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Summary&lt;/strong&gt;:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style=&quot;text-align: center;&quot;&gt;(instructions:u)&lt;/th&gt;
&lt;th style=&quot;text-align: center;&quot;&gt;mean&lt;/th&gt;
&lt;th style=&quot;text-align: center;&quot;&gt;range&lt;/th&gt;
&lt;th style=&quot;text-align: center;&quot;&gt;count&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;Regressions ❌ &lt;br /&gt; (primary)&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;0.6%&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;[0.2%, 0.8%]&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;Regressions ❌ &lt;br /&gt; (secondary)&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;1.4%&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;[0.1%, 5.8%]&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;30&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;Improvements ✅ &lt;br /&gt; (primary)&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;-0.6%&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;[-1.7%, -0.2%]&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;192&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;Improvements ✅ &lt;br /&gt; (secondary)&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;-1.5%&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;[-82.5%, -0.1%]&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;101&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;All ❌✅ (primary)&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;-0.6%&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;[-1.7%, 0.8%]&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;200&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;0 Regressions, 2 Improvements, 6 Mixed; 3 of them in rollups
26 artifact comparisons made in total&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/rust-lang/rustc-perf/blob/7409c0adce96db29bbfa5030136401590f768577/triage/2026/2026-09-29.md&quot;&gt;Full report here&lt;/a&gt;&lt;/p&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#approved-rfcs&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/rust-lang/rfcs/commits/master&quot;&gt;Approved RFCs&lt;/a&gt;&lt;/h5&gt;
&lt;p&gt;Changes to Rust follow the Rust &lt;a href=&quot;https://github.com/rust-lang/rfcs#rust-rfcs&quot;&gt;RFC (request for comments) process&lt;/a&gt;. These
are the RFCs that were approved for implementation this week:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;No RFCs were approved this week.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#final-comment-period&quot;&gt;Final Comment Period&lt;/a&gt;&lt;/h5&gt;
&lt;p&gt;Every week, &lt;a href=&quot;https://www.rust-lang.org/team.html&quot;&gt;the team&lt;/a&gt; announces the 'final comment period' for RFCs and key PRs
which are reaching a decision. Express your opinions now.&lt;/p&gt;
&lt;h6&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#tracking-issues-prs&quot;&gt;Tracking Issues &amp;amp; PRs&lt;/a&gt;&lt;/h6&gt;
&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#rust&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/issues?q=is%3Aopen%20label%3Afinal-comment-period%20sort%3Aupdated-desc%20state%3Aopen&quot;&gt;Rust&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/157712&quot;&gt;Stop using dlltool for generating import libraries on MinGW&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/154170&quot;&gt;Stabilize &lt;code&gt;ptr::try_cast_aligned&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[disposition: close] &lt;a href=&quot;https://github.com/rust-lang/rust/issues/161916&quot;&gt;1.99 beta crater regression: overflow evaluating the requirement&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/163161&quot;&gt;implement FCW for &lt;code&gt;rustc_allowed_through_unstable_modules&lt;/code&gt; items&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/163267&quot;&gt;fix &lt;code&gt;VisibleForLeakCheck&lt;/code&gt; in &lt;code&gt;RegionOutlives&lt;/code&gt; fast path&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/146099&quot;&gt;Stabilize &lt;code&gt;debug_closure_helpers&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/161998&quot;&gt; Support type-relative assoc item paths in generic param defaults &amp;amp; const param types&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/162974&quot;&gt;FCW for &lt;code&gt;#[panic_handler]&lt;/code&gt; on &lt;code&gt;unsafe fn&lt;/code&gt;.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/157273&quot;&gt;Stabilize &lt;code&gt;optimize&lt;/code&gt; attribute&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/159744&quot;&gt;Allow unary operand types to be inferred later&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/162460&quot;&gt;Feat - &lt;code&gt;#[inline(always)] + #[target_feature(enable = &quot;....&quot;)]&lt;/code&gt; #2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/issues/139984&quot;&gt;Tracking Issue for &lt;code&gt;CStr::display&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/162652&quot;&gt;Syntactically reject leading parenthesized precise capturing lists in bare trait object types (&lt;code&gt;(use&amp;lt;…&amp;gt;)+&lt;/code&gt;)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#rust-rfcs&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/rust-lang/rfcs/issues?q=state%3Aopen%20label%3Afinal-comment-period%20state%3Aopen&quot;&gt;Rust RFCs&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rfcs/pull/3983&quot;&gt;&lt;code&gt;f16b&lt;/code&gt; type&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#cargo_1&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/issues?q=is%3Aopen%20label%3Afinal-comment-period%20sort%3Aupdated-desc%20state%3Aopen&quot;&gt;Cargo&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/pull/17488&quot;&gt;feat(trim-paths): stabilize &lt;code&gt;profile.trim-paths&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#compiler-team-mcps-only&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/rust-lang/compiler-team/issues?q=label%3Amajor-change%20label%3Afinal-comment-period%20state%3Aopen&quot;&gt;Compiler Team&lt;/a&gt; &lt;a href=&quot;https://forge.rust-lang.org/compiler/mcp.html&quot;&gt;(MCPs only)&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/compiler-team/issues/1038&quot;&gt;Create new Tier 3 Target for QTEE: &lt;code&gt;aarch64-unknown-qtee&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;No Items entered Final Comment Period this week for
&lt;a href=&quot;https://github.com/rust-lang/lang-team/issues?q=is%3Aopen%20label%3Afinal-comment-period%20sort%3Aupdated-desc%20state%3Aopen&quot;&gt;Language Team&lt;/a&gt;,
&lt;a href=&quot;https://github.com/rust-lang/reference/issues?q=is%3Aopen%20label%3Afinal-comment-period%20sort%3Aupdated-desc%20state%3Aopen&quot;&gt;Language Reference&lt;/a&gt;,
&lt;a href=&quot;https://github.com/rust-lang/leadership-council/issues?q=state%3Aopen%20label%3Afinal-comment-period%20state%3Aopen&quot;&gt;Leadership Council&lt;/a&gt; or
&lt;a href=&quot;https://github.com/rust-lang/unsafe-code-guidelines/issues?q=is%3Aopen%20label%3Afinal-comment-period%20sort%3Aupdated-desc%20state%3Aopen&quot;&gt;Unsafe Code Guidelines&lt;/a&gt;.&lt;/em&gt;
Let us know if you would like your PRs, Tracking Issues or RFCs to be tracked as a part of this list.&lt;/p&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#new-and-updated-rfcs&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/rust-lang/rfcs/pulls&quot;&gt;New and Updated RFCs&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rfcs/pull/4008&quot;&gt;Make trait methods callable in const contexts, take III&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#upcoming-events&quot;&gt;Upcoming Events&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Rusty Events between 2026-09-30 - 2026-10-28 🦀&lt;/p&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#virtual&quot;&gt;Virtual&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;2026-09-30 | Virtual (Cardiff, UK) | &lt;a href=&quot;https://www.meetup.com/rust-and-c-plus-plus-in-cardiff&quot;&gt;Rust and C++ Cardiff&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-and-c-plus-plus-in-cardiff/events/316486941/&quot;&gt;&lt;strong&gt;Operating Systems Book Club: Segmentation and Introduction to Paging&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-01 | Virtual | &lt;a href=&quot;https://rustfoundation.org/event/livestream-smarter-coding-agents-for-rust-with-symposium/&quot;&gt;Rust Foundation &amp;amp; JetBrains&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://info.jetbrains.com/rustrover-livestream-october01-2026.html#form&quot;&gt;&lt;strong&gt;Livestream: Smarter Coding Agents for Rust with Symposium&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-02 | Virtual | &lt;a href=&quot;https://luma.com/rust-girona&quot;&gt;Rust Girona&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://luma.com/yqxvguts&quot;&gt;&lt;strong&gt;Sessió setmanal de codificació / Weekly coding session&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-03 | Virtual (Amsterdam, NL) | &lt;a href=&quot;https://www.meetup.com/bevy-game-development/events/&quot;&gt;Bevy Game Development&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/bevy-game-development/events/316736369/&quot;&gt;&lt;strong&gt;Bevy Meetup #14&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-04 | Virtual (Dallas, TX, US) | &lt;a href=&quot;https://www.meetup.com/dallasrust&quot;&gt;Dallas Rust User Meetup&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/dallasrust/events/316134009/&quot;&gt;&lt;strong&gt;Rust Deep Learning: First Sunday&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-06 | Virtual (London, UK) | &lt;a href=&quot;https://www.meetup.com/women-in-rust&quot;&gt;Women in Rust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/women-in-rust/events/315773044/&quot;&gt;&lt;strong&gt;👋 Community Catch Up&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-07 | Virtual (Indianapolis, IN, US) | &lt;a href=&quot;https://www.meetup.com/indyrs&quot;&gt;Indy Rust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/indyrs/events/wqzhftyjcnbkb/&quot;&gt;&lt;strong&gt;Indy.rs - with Social Distancing&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-08 | Virtual (Berlin, DE) | &lt;a href=&quot;https://www.meetup.com/rust-berlin&quot;&gt;Rust Berlin&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-berlin/events/315907995/&quot;&gt;&lt;strong&gt;Rust Hack and Learn&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-08 | Virtual (Nürnberg, DE) | &lt;a href=&quot;https://www.meetup.com/rust-noris&quot;&gt;Rust Nuremberg&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-noris/events/315619617/&quot;&gt;&lt;strong&gt;Rust Nürnberg online&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-10 | Virtual (Gdansk, PL) | &lt;a href=&quot;https://www.meetup.com/stacja-it-trojmiasto&quot;&gt;Stacja IT Trójmiasto&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/stacja-it-trojmiasto/events/316381946/&quot;&gt;&lt;strong&gt;[BEZPŁATNIE] Programowanie w języku Rust&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-10 | Hybrid (Kuala Lumpur, Malaysia) | &lt;a href=&quot;https://discord.gg/Uz88bnZA3B&quot;&gt;Rust Malaysia Meetup&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://forms.gle/721DxqrPeHXY6omP9&quot;&gt;&lt;strong&gt;Rust Meetup October 2026&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-13 | Virtual (Dallas, TX, US) | &lt;a href=&quot;https://www.meetup.com/dallasrust&quot;&gt;Dallas Rust User Meetup&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/dallasrust/events/310254772/&quot;&gt;&lt;strong&gt;Second Tuesday&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-14 - 2026-10-17 | Hybrid (Barcelona, ES) | &lt;a href=&quot;https://eurorust.eu/&quot;&gt;EuroRust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eurorust.eu/&quot;&gt;&lt;strong&gt;EuroRust 2026&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-18 | Virtual (Dallas, TX, US) | &lt;a href=&quot;https://www.meetup.com/dallasrust&quot;&gt;Dallas Rust User Meetup&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/dallasrust/events/316563013/&quot;&gt;&lt;strong&gt;Rust Deep Learning: Third Sunday&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-20 | Virtual (Washington, DC, US) | &lt;a href=&quot;https://www.meetup.com/rustdc&quot;&gt;Rust DC&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rustdc/events/fhvsztyjcnbbc/&quot;&gt;&lt;strong&gt;Mid-month Rustful&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-21 | Hybrid (Vancouver, CA) | &lt;a href=&quot;https://www.meetup.com/vancouver-rust&quot;&gt;Vancouver Rust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/vancouver-rust/events/315210233/&quot;&gt;&lt;strong&gt;Disposable Agent Sandboxes in Rust&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-22 | Virtual (Berlin, DE) | &lt;a href=&quot;https://www.meetup.com/rust-berlin/events/&quot;&gt;Rust Berlin&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-berlin/events/316272609/&quot;&gt;&lt;strong&gt;Rust Hack and Learn&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-27 | Virtual (Dallas, TX, US) | &lt;a href=&quot;https://www.meetup.com/dallasrust/events/&quot;&gt;Dallas Rust User Meetup&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/dallasrust/events/310254771/&quot;&gt;&lt;strong&gt;Fourth Tuesday Rust Bookclub&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-27 | Virtual (London, UK) | &lt;a href=&quot;https://www.meetup.com/women-in-rust/events/&quot;&gt;Women in Rust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/women-in-rust/events/315297195/&quot;&gt;&lt;strong&gt;Lunch &amp;amp; Learn: Reasoning with Async Rust&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#asia&quot;&gt;Asia&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;2026-10-09 | Hybrid (Kuala Lumpur, MY) | &lt;a href=&quot;https://discord.gg/Uz88bnZA3B&quot;&gt;Rust Malaysia Meetup&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://forms.gle/721DxqrPeHXY6omP9&quot;&gt;&lt;strong&gt;Rust Meetup August 2026&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#europe&quot;&gt;Europe&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;2026-09-30 | Basel, CH | &lt;a href=&quot;https://www.meetup.com/rust-basel&quot;&gt;Rust Basel&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-basel/events/315986893/&quot;&gt;&lt;strong&gt;Rust Meetup #16 @ ERNI&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-30 | Berlin, DE | &lt;a href=&quot;https://www.meetup.com/rust-berlin&quot;&gt;Rust Berlin&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-berlin/events/316661690/&quot;&gt;&lt;strong&gt;Rust Berlin Talks: The next generation&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-01 | Berlin, DE | &lt;a href=&quot;https://www.meetup.com/rust-berlin/events/&quot;&gt;Rust Berlin&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-berlin/events/316763107/&quot;&gt;&lt;strong&gt;Rust Berlin on location 🏳️‍🌈 – Edition 018&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-01 | Oxford, GB | &lt;a href=&quot;https://www.meetup.com/oxford-rust-meetup-group/events/&quot;&gt;Oxford ACCU/Rust Meetup.&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/oxford-rust-meetup-group/events/316708765/&quot;&gt;&lt;strong&gt;Embedded Rust for Duffers&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-05 | München, DE | &lt;a href=&quot;https://www.meetup.com/rust-munich&quot;&gt;Rust Munich&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-munich/events/316244709/&quot;&gt;&lt;strong&gt;Rust Munich 2026 / 3&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-08 | Oslo, NO | &lt;a href=&quot;https://www.meetup.com/rust-oslo&quot;&gt;Rust Oslo&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-oslo/events/316564477/&quot;&gt;&lt;strong&gt;Rust Hack'n'Learn at Kampen Bistro&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-08 | Geneva, CH | &lt;a href=&quot;https://www.posttenebraslab.ch/wiki/events/monthly_meeting/rust_meetup&quot;&gt;Rust Geneva&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.posttenebraslab.ch/wiki/events/monthly_meeting/rust_meetup&quot;&gt;&lt;strong&gt;Rust Meetup Geneva&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-14 | Barcelona, ES | &lt;a href=&quot;https://www.meetup.com/bcnrust&quot;&gt;BcnRust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/bcnrust/events/316316234/&quot;&gt;&lt;strong&gt;22nd bcnrust session&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-14 - 2026-10-17 | Hybrid (Barcelona, ES) | &lt;a href=&quot;https://eurorust.eu/&quot;&gt;EuroRust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eurorust.eu/&quot;&gt;&lt;strong&gt;EuroRust 2026&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-20 | Leipzig, DE | &lt;a href=&quot;https://www.meetup.com/rust-modern-systems-programming-in-leipzig&quot;&gt;Rust - Modern Systems Programming in Leipzig&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-modern-systems-programming-in-leipzig/events/313816496/&quot;&gt;&lt;strong&gt;Topic TBD&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#north-america&quot;&gt;North America&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;2026-10-01 | Saint Louis, MO, US | &lt;a href=&quot;https://www.meetup.com/stl-rust&quot;&gt;STL Rust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/stl-rust/events/316410027/&quot;&gt;&lt;strong&gt;Building a Minimal, Rootless Container in Rust&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-03 | Boston, MA, US | &lt;a href=&quot;https://www.meetup.com/bostonrust&quot;&gt;Boston Rust Meetup&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/bostonrust/events/316378820/&quot;&gt;&lt;strong&gt;Alewife Rust Lunch, Oct 3&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-08 | Lehi, UT, US | &lt;a href=&quot;https://www.meetup.com/utah-rust/events/&quot;&gt;Utah Rust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/utah-rust/events/316708351/&quot;&gt;&lt;strong&gt;Lightning Talks N' Chill&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-08 | New York, NY, US | &lt;a href=&quot;https://www.meetup.com/rust-nyc/events/&quot;&gt;Rust NYC&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-nyc/events/316698929/&quot;&gt;&lt;strong&gt;Rust NYC: Zero Knowledge Proofs &amp;amp; GPUs in Rendering&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-08 | San Diego, CA, US | &lt;a href=&quot;https://www.meetup.com/san-diego-rust&quot;&gt;San Diego Rust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/san-diego-rust/events/316319730/&quot;&gt;&lt;strong&gt;San Diego Rust October Meetup - Back in person!&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-10 | Boston, MA, US | &lt;a href=&quot;https://www.meetup.com/bostonrust&quot;&gt;Boston Rust Meetup&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/bostonrust/events/316378823/&quot;&gt;&lt;strong&gt;Back Bay Rust Lunch, Oct 10&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-14 | Los Angeles, CA, US | &lt;a href=&quot;https://www.meetup.com/rust-los-angeles&quot;&gt;Rust Los Angeles&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-los-angeles/events/315795432/&quot;&gt;&lt;strong&gt;Rust LA October: AI &amp;amp; Rust w/ Oxen.AI &amp;amp; Origin Lab!&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-20 | San Francisco, CA, US | &lt;a href=&quot;https://www.meetup.com/san-francisco-rust-study-group&quot;&gt;San Francisco Rust Study Group&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/san-francisco-rust-study-group/events/315783988/&quot;&gt;&lt;strong&gt;Rust Hacking in Person&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-21 | Hybrid (Vancouver, CA) | &lt;a href=&quot;https://www.meetup.com/vancouver-rust&quot;&gt;Vancouver Rust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/vancouver-rust/events/315210233/&quot;&gt;&lt;strong&gt;Disposable Agent Sandboxes in Rust&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-21 | San Francisco, CA, US | &lt;a href=&quot;https://luma.com/bayarearust&quot;&gt;Bay Area Rust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://luma.com/ur4pm34i&quot;&gt;&lt;strong&gt;Bay Area Rust - Embedded Meetup&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-28 | Austin, TX, US | &lt;a href=&quot;https://www.meetup.com/rust-atx/events/&quot;&gt;Rust ATX&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-atx/events/316655403/&quot;&gt;&lt;strong&gt;Rust Lunch - Fareground&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#south-america&quot;&gt;South America&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;2026-10-08 | Buenos Aires, AR | &lt;a href=&quot;https://www.meetup.com/rust-argentina&quot;&gt;Rust en Español&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-argentina/events/316664266/&quot;&gt;&lt;strong&gt;WebApp Ergonomics y Secretos Distribuidos.&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you are running a Rust event please add it to the &lt;a href=&quot;https://www.google.com/calendar/embed?src=apd9vmbc22egenmtu5l6c5jbfc%40group.calendar.google.com&quot;&gt;calendar&lt;/a&gt; to get
it mentioned here. Please remember to add a link to the event too.
Email the &lt;a href=&quot;mailto:community-team@rust-lang.org&quot;&gt;Rust Community Team&lt;/a&gt; for access.&lt;/p&gt;
&lt;h4&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#jobs&quot;&gt;Jobs&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Please see the latest &lt;a href=&quot;https://www.reddit.com/r/rust/comments/1wo5btb/official_rrust_whos_hiring_thread_for_jobseekers/&quot;&gt;Who's Hiring thread on r/rust&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#quote-of-the-week&quot;&gt;Quote of the Week&lt;/a&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;The community is obnoxiously helpful. I asked a simple question on the Rust community Discord server. What is the best way to read a file in Rust? I expected a straightforward response. Instead, I got back a 2,000-word essay on the inner workings of IO, buffering, error handling, and ownership, plus links to four different blog posts and three different approaches depending on file size, and a working code example.&lt;/p&gt;
&lt;p&gt;...&lt;/p&gt;
&lt;p&gt;The Rust community has weaponized education against me. I'm now a better engineer than I was yesterday against my will.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;– &lt;a href=&quot;https://youtu.be/B2gmKy3pHkw?si=4QRLux5X55fTx8c8&amp;amp;t=196&quot;&gt;tris on youtube&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Thanks to &lt;a href=&quot;https://users.rust-lang.org/t/twir-quote-of-the-week/328/1806&quot;&gt;MusicalNinjaDad&lt;/a&gt; for the suggestion!&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://users.rust-lang.org/t/twir-quote-of-the-week/328&quot;&gt;Please submit quotes and vote for next week!&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This Week in Rust is edited by:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/nellshamrell&quot;&gt;nellshamrell&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/llogiq&quot;&gt;llogiq&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/ericseppanen&quot;&gt;ericseppanen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/extrawurst&quot;&gt;extrawurst&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/U007D&quot;&gt;U007D&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/mariannegoldin&quot;&gt;mariannegoldin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/bdillo&quot;&gt;bdillo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/opeolluwa&quot;&gt;opeolluwa&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/bnchi&quot;&gt;bnchi&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/KannanPalani57&quot;&gt;KannanPalani57&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/tzilist&quot;&gt;tzilist&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Email list hosting is sponsored by &lt;a href=&quot;https://foundation.rust-lang.org/&quot;&gt;The Rust Foundation&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;small&gt;&lt;a href=&quot;https://www.reddit.com/r/rust/comments/1wuo2o9/this_week_in_rust_671/&quot;&gt;Discuss on r/rust&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;</content:encoded>
	<dc:date>2026-09-30T04:00:00+00:00</dc:date>
	<dc:creator>TWiR Contributors</dc:creator>
</item>
<item rdf:about="https://blog.mozilla.org/addons/?p=9305">
	<title>Mozilla Addons Blog: Nova is here: what changes for your Firefox theme</title>
	<link>https://blog.mozilla.org/addons/2026/09/29/nova-is-here-what-changes-for-your-firefox-theme/</link>
	<content:encoded>&lt;p&gt;On September 29, Firefox 157 shipped Nova, the biggest refresh of the Firefox interface since Proton back in 2021. The browser frame is cleaner, the sidebar plays a bigger role, and vertical tabs are a first-class layout. Your theme continues to load, and most color and image properties work as they did before.&lt;/p&gt;
&lt;p&gt;What does change is where those colors and images display, how some of them look next to each other, and a handful of properties that no longer have a visible effect. Most themes will look fine. Some, especially themes built around a background image, look different enough that you will want to take a look.&lt;/p&gt;
&lt;p&gt;This post walks through what changed compared with the Proton interface, what to check in your theme, and what is still being worked on. If you only have five minutes, jump to the checklist.&lt;/p&gt;
&lt;h3&gt;&lt;a href=&quot;https://blog.mozilla.org/addons/files/2026/09/Nova-Compact-Mode-ENG-2048x1152-1.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-medium wp-image-9306&quot; height=&quot;326&quot; src=&quot;https://blog.mozilla.org/addons/files/2026/09/Nova-Compact-Mode-ENG-2048x1152-1-580x326.png&quot; width=&quot;580&quot; /&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;h3&gt;&lt;b&gt;What changed in the browser frame&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;The toolbar and sidebar now sit flush with the window edges, with no gaps between them.&lt;/p&gt;
&lt;p&gt;For your theme, this means your frame color and background image have less empty space around them, and the edges where the toolbar, sidebar, and page meet are more visible.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; border: 1px solid #000000;&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style=&quot;border: 1px solid #000000; padding: 6px 10px;&quot;&gt;Area&lt;/th&gt;
&lt;th style=&quot;border: 1px solid #000000; padding: 6px 10px;&quot;&gt;Proton&lt;/th&gt;
&lt;th style=&quot;border: 1px solid #000000; padding: 6px 10px;&quot;&gt;Nova (Firefox 157)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;border: 1px solid #000000; padding: 6px 10px;&quot;&gt;Toolbar and sidebar&lt;/td&gt;
&lt;td style=&quot;border: 1px solid #000000; padding: 6px 10px;&quot;&gt;Flush with the window, no gaps or floating borders&lt;/td&gt;
&lt;td style=&quot;border: 1px solid #000000; padding: 6px 10px;&quot;&gt;Same as before&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;border: 1px solid #000000; padding: 6px 10px;&quot;&gt;Horizontal tabs&lt;/td&gt;
&lt;td style=&quot;border: 1px solid #000000; padding: 6px 10px;&quot;&gt;Theme background applied to the tab strip&lt;/td&gt;
&lt;td style=&quot;border: 1px solid #000000; padding: 6px 10px;&quot;&gt;Same as before&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;border: 1px solid #000000; padding: 6px 10px;&quot;&gt;Vertical tabs&lt;/td&gt;
&lt;td style=&quot;border: 1px solid #000000; padding: 6px 10px;&quot;&gt;Tab bar color on the tab strip&lt;/td&gt;
&lt;td style=&quot;border: 1px solid #000000; padding: 6px 10px;&quot;&gt;Tab bar color also shows on the toolbar&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;border: 1px solid #000000; padding: 6px 10px;&quot;&gt;Sidebar&lt;/td&gt;
&lt;td style=&quot;border: 1px solid #000000; padding: 6px 10px;&quot;&gt;Separate panel&lt;/td&gt;
&lt;td style=&quot;border: 1px solid #000000; padding: 6px 10px;&quot;&gt;Shares the theme background with the toolbar area&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;&lt;b&gt;colors, accents and tabs&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;b&gt;Accent color.&lt;/b&gt; The default Firefox theme uses Nova’s purple accent. Every other theme, including yours, uses the operating system’s accent color for buttons and other accented controls. Themes cannot set the accent color through the manifest, and is why your theme cannot show the purple you see in the default theme.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Focus and link colors.&lt;/b&gt; Firefox still applies its own blue and cyan to focus rings and some links when a theme other than the default is active.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;The selected tab.&lt;/b&gt; Proton always drew a shadow under the selected tab, which helped it stand out even when a theme did not style it. Nova removes that shadow. If your theme relies on it, the selected tab can blend into the tab strip. Set the selected tab colors, with &lt;code style=&quot;color: #1a7f37;&quot;&gt;tab_selected&lt;/code&gt; and &lt;code style=&quot;color: #1a7f37;&quot;&gt;tab_line&lt;/code&gt;, so the selected tab stands out.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Button hover colors.&lt;/b&gt; Your &lt;code style=&quot;color: #1a7f37;&quot;&gt;button_background_hover&lt;/code&gt; and &lt;code style=&quot;color: #1a7f37;&quot;&gt;button_background_active&lt;/code&gt; colors also apply to buttons on the tab strip, and for buttons that sit on your frame background with vertical tabs. A solid color picked to match the toolbar can almost disappear there. Semi-transparent colors, for example rgba(0, 0, 0, 0.15) for hover and rgba(0, 0, 0, 0.3) for pressed, work on both backgrounds.&lt;/p&gt;
&lt;h3&gt;&lt;b&gt;Sidebar and vertical tabs&lt;/b&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;The sidebar shares your background.&lt;/b&gt; The theme background now continues under the sidebar, so the sidebar and the toolbar area appear as one surface.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Set sidebar colors explicitly.&lt;/b&gt; Use &lt;code style=&quot;color: #1a7f37;&quot;&gt;sidebar&lt;/code&gt; and &lt;code style=&quot;color: #1a7f37;&quot;&gt;sidebar_text&lt;/code&gt; for sidebar panels. If you leave them out, Firefox picks colors for you, relevant to your theme’s color.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;code style=&quot;color: #1a7f37;&quot;&gt;sidebar_border&lt;/code&gt; is now a separator.&lt;/b&gt; The sidebar splitter is gone; the property now colors the line between the sidebar and the page.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Sidebar buttons follow your text color.&lt;/b&gt; Buttons and icons in the sidebar are derived from your text color rather than your toolbar button colors, so they can look slightly different from the toolbar.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Vertical tabs and the toolbar.&lt;/b&gt; With vertical tabs, your tab bar color is also applied to the toolbar. If those two colors were chosen to contrast, check how they look together.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Expand on hover.&lt;/b&gt; In Firefox 157, a sidebar that expands on hover may not show your theme’s background. This is fixed in Firefox 158.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;/h3&gt;
&lt;h3&gt;&lt;b&gt;Properties that changed or no longer work&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;Some theme properties behave differently in Nova. Your theme still loads if it uses them; they just have no visible effect, or style something different.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; border: 1px solid #000000;&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style=&quot;border: 1px solid #000000; padding: 6px 10px;&quot;&gt;Property&lt;/th&gt;
&lt;th style=&quot;border: 1px solid #000000; padding: 6px 10px;&quot;&gt;In Nova&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;border: 1px solid #000000; padding: 6px 10px;&quot;&gt;&lt;code style=&quot;color: #1a7f37;&quot;&gt;ntp_text&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;border: 1px solid #000000; padding: 6px 10px;&quot;&gt;No longer styles the new tab page search box&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;border: 1px solid #000000; padding: 6px 10px;&quot;&gt;&lt;code style=&quot;color: #1a7f37;&quot;&gt;popup_text&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;border: 1px solid #000000; padding: 6px 10px;&quot;&gt;No longer styles the address bar dropdown; other popups still use it&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;border: 1px solid #000000; padding: 6px 10px;&quot;&gt;&lt;code style=&quot;color: #1a7f37;&quot;&gt;sidebar_highlight&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;border: 1px solid #000000; padding: 6px 10px;&quot;&gt;No visible effect; the default highlight color is used&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;border: 1px solid #000000; padding: 6px 10px;&quot;&gt;&lt;code style=&quot;color: #1a7f37;&quot;&gt;sidebar_highlight_text&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;border: 1px solid #000000; padding: 6px 10px;&quot;&gt;No visible effect&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;border: 1px solid #000000; padding: 6px 10px;&quot;&gt;&lt;code style=&quot;color: #1a7f37;&quot;&gt;toolbar_bottom_separator&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;border: 1px solid #000000; padding: 6px 10px;&quot;&gt;Acts as a separator next to or below the toolbar and around the page&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/theme&quot;&gt;theme manifest reference on MDN&lt;/a&gt; is being updated with these changes.&lt;/p&gt;
&lt;h3&gt;&lt;b&gt;Themes with background images&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;Themes using images are where you are most likely to see a difference. Your image can now show behind the sidebar and vertical tabs, and an image designed for a wide, short toolbar rarely looks good stretched or tiled down a vertical panel. In our testing of popular themes, the image themes that look off in the sidebar mostly did before Nova too. We did test a number of themes but we invite you to do your own testing. Nova makes the sidebar more visible, so the issues are easier to notice.&lt;/p&gt;
&lt;p&gt;You can now choose where your images go with the &lt;code style=&quot;color: #1a7f37;&quot;&gt;backgrounds_area&lt;/code&gt; property, available from Firefox 156:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;“auto” (the default): Firefox decides from &lt;code style=&quot;color: #1a7f37;&quot;&gt;additional_backgrounds_alignment&lt;/code&gt;. If any image is aligned to the vertical center or bottom, images stay in the top toolbars; otherwise they cover the whole window.&lt;/li&gt;
&lt;li&gt;“window”: images cover the whole window, including behind the sidebar and vertical tabs.&lt;/li&gt;
&lt;li&gt;“top_toolbars”: images stay in the toolbars at the top of the window, and the sidebar uses your frame color.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If your image was made for the toolbar only, “top_toolbars” with a frame color that suits the image is usually the quickest fix.&lt;/p&gt;
&lt;p&gt;Also set a toolbar color, even a semi-transparent one. Without it, notification bars that appear above the page sit directly on your image and can be hard to read.&lt;/p&gt;
&lt;h3&gt;&lt;b&gt;New Gradient Support&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;Nova’s color themes use gradients, and you can too. The &lt;a href=&quot;https://github.com/FirefoxUX/acorn-themes/tree/main/themes/nova&quot;&gt;Nova theme manifests&lt;/a&gt; are the best working example; look at how they set colors for each surface, including the sidebar. &lt;code style=&quot;color: #1a7f37;&quot;&gt;backgrounds_area&lt;/code&gt; applies to gradients the same way it applies to images. Older versions of Firefox ignore color properties they don’t recognize, so your theme still loads there; if you use a feature older versions reject, set &lt;code style=&quot;color: #1a7f37;&quot;&gt;strict_min_version&lt;/code&gt; in your manifest.&lt;/p&gt;
&lt;h3&gt;&lt;b&gt;Checklist: what to check in your theme&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;Install your theme in Firefox 157 and look at it in each of these states:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Horizontal tabs and vertical tabs.&lt;/li&gt;
&lt;li&gt;Sidebar closed, open, and expanded on hover. Also toggle “Customize sidebar” while the sidebar is open or expanded.&lt;/li&gt;
&lt;li&gt;Compact density, if your users are likely to use it (under settings -&amp;gt; appearance density(.&lt;/li&gt;
&lt;li&gt;A private window.&lt;/li&gt;
&lt;li&gt;Light and dark system settings, since the accent follows the operating system.&lt;/li&gt;
&lt;li&gt;Hover over the buttons on the tab strip.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Then, if something looks off:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Set &lt;code style=&quot;color: #1a7f37;&quot;&gt;tab_selected&lt;/code&gt; and &lt;code style=&quot;color: #1a7f37;&quot;&gt;tab_line&lt;/code&gt; so the selected tab stands out without Firefox’s old shadow.&lt;/li&gt;
&lt;li&gt;Set &lt;code style=&quot;color: #1a7f37;&quot;&gt;sidebar&lt;/code&gt; and &lt;code style=&quot;color: #1a7f37;&quot;&gt;sidebar_text&lt;/code&gt; to colors that match your theme.&lt;/li&gt;
&lt;li&gt;Use semi-transparent &lt;code style=&quot;color: #1a7f37;&quot;&gt;button_background_hover&lt;/code&gt; and &lt;code style=&quot;color: #1a7f37;&quot;&gt;button_background_active&lt;/code&gt; colors.&lt;/li&gt;
&lt;li&gt;Check that your tab bar and toolbar colors work together with vertical tabs enabled.&lt;/li&gt;
&lt;li&gt;For image themes, choose a &lt;code style=&quot;color: #1a7f37;&quot;&gt;backgrounds_area&lt;/code&gt; and set a toolbar color.&lt;/li&gt;
&lt;li&gt;Remove or ignore properties that no longer have an effect.&lt;/li&gt;
&lt;li&gt;Publish an update on AMO so your users get the changes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;/h4&gt;
&lt;h3&gt;&lt;b&gt;What we are still working on&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;Nova will evolve after launch. Firefox 158 ships on October 13 with the expand-on-hover sidebar fix. We are also working on these, with no release date yet:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Focus and link colors that fit your theme instead of the fixed blue and cyan.&lt;/li&gt;
&lt;li&gt;A &lt;code style=&quot;color: #1a7f37;&quot;&gt;popup_icons&lt;/code&gt; color for icons in menus and panels, separate from toolbar icons.&lt;/li&gt;
&lt;li&gt;Theme colors for hover and selected states inside sidebar panels.&lt;/li&gt;
&lt;li&gt;Better hover states for tab strip buttons.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We will post again when these land.&lt;/p&gt;
&lt;h3&gt;&lt;b&gt;For users who prefer the old look&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;Some of your users may miss Proton. From September 29, Mozilla is featuring a &lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/firefox-proton/&quot;&gt;Firefox Proton&lt;/a&gt; theme in the Add-ons Manager for anyone who wants the previous look. It is a normal theme, so users can switch between it and yours at any time.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Resources&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/theme&quot;&gt;Theme manifest reference on MDN&lt;/a&gt;: every color, image, and property, including &lt;code style=&quot;color: #1a7f37;&quot;&gt;backgrounds_area&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://extensionworkshop.com/documentation/themes/static-themes/&quot;&gt;Static themes on Extension Workshop &lt;/a&gt;: updated for Nova.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/FirefoxUX/acorn-themes/tree/main/themes/nova&quot;&gt;Nova theme manifests&lt;/a&gt;: worked examples for gradients and sidebar colors; the themes themselves are on AMO, for example &lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/nova-sun/&quot;&gt;Nova Sun&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;b&gt;Questions?&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;We want your theme to look its best in Nova. If something looks wrong and the checklist does not fix it, tell us on &lt;a href=&quot;https://discourse.mozilla.org/c/add-ons/35&quot;&gt;Discourse&lt;/a&gt; and include a link to your theme and a screenshot. Those reports help us find the cases that need a Firefox fix rather than a theme change.&lt;/p&gt;
&lt;p&gt;Thank you for making Firefox look like you and like your users.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;The post &lt;a href=&quot;https://blog.mozilla.org/addons/2026/09/29/nova-is-here-what-changes-for-your-firefox-theme/&quot;&gt;Nova is here: what changes for your Firefox theme&lt;/a&gt; appeared first on &lt;a href=&quot;https://blog.mozilla.org/addons&quot;&gt;Mozilla Add-ons Community Blog&lt;/a&gt;.&lt;/p&gt;</content:encoded>
	<dc:date>2026-09-29T15:34:37+00:00</dc:date>
	<dc:creator>cbacharakis</dc:creator>
</item>
<item rdf:about="https://blog.mozilla.org/?p=87504">
	<title>The Mozilla Blog: More modern. More flexible. Still Firefox.</title>
	<link>https://blog.mozilla.org/en/firefox/new-firefox-design-is-here/</link>
	<content:encoded>&lt;p&gt;What comes to mind when you think of Firefox? Is it our best-in-class &lt;a href=&quot;https://blog.mozilla.org/firefox/firefox-now-available-with-enhanced-tracking-protection-by-default/&quot;&gt;privacy features&lt;/a&gt; and &lt;a href=&quot;https://blog.mozilla.org/firefox/ad-blocker-on-ios/&quot;&gt;ad blocking&lt;/a&gt; capabilities? Our partnerships with &lt;a href=&quot;https://blog.mozilla.org/firefox/wrexham-afc-firefox-partnership/&quot;&gt;Wrexham&lt;/a&gt;, &lt;a href=&quot;https://blog.mozilla.org/firefox/firefox-nvidia-geforce-now-partnership/&quot;&gt;NVIDIA&lt;/a&gt; or &lt;a href=&quot;https://blog.mozilla.org/firefox/mozilla-mistral-partnership/&quot;&gt;Mistral&lt;/a&gt;? Or maybe our adorable mascot &lt;a href=&quot;https://blog.mozilla.org/firefox/meet-kit/&quot;&gt;Kit&lt;/a&gt;?&lt;/p&gt;



&lt;p&gt;If you’ve been following Firefox this year, you’ve seen us add new ways to get things done while giving you more choice over how you browse. That includes browsing two pages &lt;a href=&quot;https://blog.mozilla.org/firefox/split-view/&quot;&gt;side by side&lt;/a&gt;, adding an extra layer of privacy with &lt;a href=&quot;https://blog.mozilla.org/firefox/built-in-vpn/&quot;&gt;built-in VPN&lt;/a&gt;, blocking &lt;a href=&quot;https://blog.mozilla.org/firefox/ad-blocker-on-ios/&quot;&gt;trackers&lt;/a&gt; for smoother scrolling and faster load times, and deciding how &lt;a href=&quot;https://blog.mozilla.org/firefox/firefox-ai-on-your-terms/&quot;&gt;AI&lt;/a&gt; shows up in Firefox. &lt;/p&gt;



&lt;p&gt;For the past few months, many of you have also been &lt;a href=&quot;https://blog.nightly.mozilla.org/2026/07/27/new-firefox-design/&quot;&gt;trying out&lt;/a&gt; our new Firefox design in Nightly and sharing your thoughts with us as we continued to refine the experience.&lt;/p&gt;



&lt;p&gt;Today, we’re rolling out that design with FX 157 to everyone using Firefox across desktop and mobile devices. Firefox has done a lot of growing over the last year; now it looks the part. &lt;/p&gt;



&lt;figure class=&quot;wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio&quot;&gt;&lt;div class=&quot;wp-block-embed__wrapper&quot;&gt;

&lt;/div&gt;&lt;/figure&gt;



&lt;h3&gt;&lt;strong&gt;A more modern Firefox&lt;/strong&gt;&lt;/h3&gt;



&lt;p&gt;When we first shared our plans to &lt;a href=&quot;https://blog.mozilla.org/firefox/new-firefox-design/&quot;&gt;design Firefox for the future&lt;/a&gt;, we said we wanted Firefox to feel “current, but not generic. Warm, but still precise.” &lt;/p&gt;



&lt;p&gt;That design ethos now carries across all of Firefox. We’ve refreshed the colors, icons and themes throughout the browser, from the tabs and toolbars you use every day to your New Tab page, Private Browsing experience and more, with no cost to your browser performance. &lt;/p&gt;



&lt;p&gt;This shared design language across desktop and mobile gives Firefox a consistent foundation for new features and experiences, while keeping the personality that makes Firefox unique. &lt;/p&gt;



&lt;h3&gt;&lt;strong&gt;Make Firefox yours&lt;/strong&gt;&lt;/h3&gt;



&lt;p&gt;We’ve added more choices for how Firefox looks and works, including the return of a feature many of you asked for:&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;Compact Mode is back.&lt;/strong&gt; As people started trying the new design, we heard from many of you who wanted to fit more into your browser window. Compact Mode reduces the size of your tabs and toolbar to give more of your screen to the web, with an auto-compact option for smaller screens.&lt;/p&gt;



&lt;figure class=&quot;wp-block-image size-large&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-87517&quot; height=&quot;576&quot; src=&quot;https://blog.mozilla.org/wp-content/blogs.dir/278/files/2026/09/Nova-Compact-Mode-ENG-1024x576.png&quot; width=&quot;1024&quot; /&gt;&lt;/figure&gt;



&lt;p&gt;&lt;strong&gt;Find your look.&lt;/strong&gt; A new theme picker makes it easier to explore different looks for Firefox, with new themes and wallpapers to choose from.&lt;/p&gt;



&lt;figure class=&quot;wp-block-image size-large&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-87669&quot; height=&quot;576&quot; src=&quot;https://blog.mozilla.org/wp-content/blogs.dir/278/files/2026/09/In-Line-New-Style-1024x576.png&quot; width=&quot;1024&quot; /&gt;&lt;/figure&gt;



&lt;p&gt;&lt;strong&gt;Set up New Tab your way.&lt;/strong&gt; Choose what you want to see on your homepage. Now, you have a dedicated space to pin and organize shortcuts so sites you use all the time stay put.&lt;/p&gt;



&lt;figure class=&quot;wp-block-image size-large&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-87687&quot; height=&quot;523&quot; src=&quot;https://blog.mozilla.org/wp-content/blogs.dir/278/files/2026/09/Firefox_Distilled_Nova_PinnedShortcut_01-1024x523.png&quot; width=&quot;1024&quot; /&gt;&lt;/figure&gt;



&lt;h3&gt;&lt;strong&gt;Refined, not reinvented&lt;/strong&gt;&lt;/h3&gt;



&lt;p&gt;Themes and wallpapers may change over time, but the things that made people choose Firefox in the first place are still the same. We’re still independent and open source, with privacy protections built into the browser and controls that put you in charge of how Firefox works for you.&lt;/p&gt;



&lt;p&gt;This carries through everything we build, from the height of your toolbars and what belongs on your New Tab page to which &lt;a href=&quot;https://blog.mozilla.org/firefox/ai-controls/&quot;&gt;AI features&lt;/a&gt; show up in your browser, which &lt;a href=&quot;https://support.mozilla.org/kb/smart-window-models&quot;&gt;model&lt;/a&gt; you choose and what &lt;a href=&quot;https://support.mozilla.org/kb/smart-window-memories&quot;&gt;context&lt;/a&gt; you want it to have.&lt;/p&gt;



&lt;p&gt;Today’s Firefox is a renewal, grounded in the same principles that have shaped it from the beginning, with a new design built to carry Firefox forward. &lt;/p&gt;



&lt;p&gt;For those who have come with us on this journey, thank you for helping us shape the future of Firefox. &lt;/p&gt;



&lt;p&gt;If you’ve been away on hiatus, welcome back. Try the latest Firefox and let us know what you think.&lt;/p&gt;
&lt;p&gt;The post &lt;a href=&quot;https://blog.mozilla.org/en/firefox/new-firefox-design-is-here/&quot;&gt;More modern. More flexible. Still Firefox.&lt;/a&gt; appeared first on &lt;a href=&quot;https://blog.mozilla.org/en/&quot;&gt;The Mozilla Blog&lt;/a&gt;.&lt;/p&gt;</content:encoded>
	<dc:date>2026-09-29T13:00:00+00:00</dc:date>
	<dc:creator>Mozilla</dc:creator>
</item>
<item rdf:about="https://blog.nightly.mozilla.org/?p=2137">
	<title>Firefox Nightly: Shoutout to More Layouts – These Weeks in Firefox: Issue 210</title>
	<link>https://blog.nightly.mozilla.org/2026/09/28/shoutout-to-more-layouts-these-weeks-in-firefox-issue-210/</link>
	<content:encoded>&lt;h3&gt;Highlights&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/user_profile?user_id=791955&quot;&gt;Rév O’Conner&lt;/a&gt; added a settings popup to &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1594489&quot;&gt;control the layout of the Inspector&lt;/a&gt;. “Auto” automatically switches the layout at a given toolbox width.
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.nightly.mozilla.org/files/2026/09/image6-2.png&quot;&gt;&lt;img alt=&quot;Firefox Developer Tools Inspector showing a layout menu with options “Auto,” “Side by side,” and “Stacked.” “Side by side” is selected, displaying the HTML markup tree on the left and the CSS Rules panel on the right.&quot; class=&quot;aligncenter size-full wp-image-2134&quot; height=&quot;708&quot; src=&quot;https://blog.nightly.mozilla.org/files/2026/09/image6-2.png&quot; width=&quot;696&quot; /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;The new sidebar (sidebar.revamp) and switcher setting will &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2070260&quot;&gt;be enabled by default for users along with Nova&lt;/a&gt; in DevEdition, Beta and Release channels. To ease the transition for old sidebar users, the “Open tools from sidebar” option will be unchecked for those users to more closely resemble the old sidebar experience. The migration won’t apply to users who had already tried the new sidebar and reverted back.&lt;/li&gt;
&lt;li&gt;The custom wallpaper library for the New Tab page is coming along! This allows you to save multiple images to your wallpaper folder, rather than replacing one image at a time. While it’s still in development, you can test it by setting &lt;code&gt;browser.newtabpage.activity-stream.newtabWallpapers.customWallpaper.library.enabled&lt;/code&gt; to true, starting in Firefox 157.
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.nightly.mozilla.org/files/2026/09/image7-2.png&quot;&gt;&lt;img alt=&quot;Firefox New Tab's “Your images” customization subpanel showing two uploaded image thumbnails: a city street with a red streetcar and a hummingbird perched on a branch. The first image is selected with a purple outline. A dashed “Add an image” tile with a plus button appears beside them.&quot; class=&quot;aligncenter size-full wp-image-2135&quot; height=&quot;230&quot; src=&quot;https://blog.nightly.mozilla.org/files/2026/09/image7-2.png&quot; width=&quot;420&quot; /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Mark &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1082078&quot;&gt;added an MDN search engine for Nightly and Developer Edition&lt;/a&gt;. Select it from the menus, or type @mdn &amp;lt;search term&amp;gt;.
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.nightly.mozilla.org/files/2026/09/image2-2.png&quot;&gt;&lt;img alt=&quot;Firefox address bar with @mdn typed and highlighted. A suggestion below reads “@mdn – Search with MDN,” demonstrating the MDN search shortcut.&quot; class=&quot;aligncenter size-full wp-image-2130&quot; height=&quot;121&quot; src=&quot;https://blog.nightly.mozilla.org/files/2026/09/image2-2.png&quot; width=&quot;318&quot; /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.nightly.mozilla.org/files/2026/09/image1-2.png&quot;&gt;&lt;img alt=&quot;Firefox address bar using the MDN search shortcut with “marquee” typed. The suggestion dropdown includes “Search with MDN” and MDN results for the HTML element, the ARIA marquee role, and HTMLMarqueeElement.&quot; class=&quot;aligncenter size-full wp-image-2129&quot; height=&quot;231&quot; src=&quot;https://blog.nightly.mozilla.org/files/2026/09/image1-2.png&quot; width=&quot;532&quot; /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Friends of the Firefox team&lt;/h3&gt;
&lt;h3&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/buglist.cgi?title=Resolved%20bugs%20(excluding%20employees)&amp;amp;quicksearch=2059452%2C2062133%2C2063031%2C2063851%2C2064117%2C2041444%2C2063466%2C2064482%2C2064740%2C2059240%2C2031465%2C2040974%2C206439%2C2060303%2C2062876%2C2003172%2C1944206%2C1969880%2C2064899%2C1776179%2C2060460%2C2065815%2C1695881%2C1910664%2C2062096%2C2066512%2C2065655%2C2064541%2C2066478%2C2065468%2C2062143%2C2021799%2C2044153%2C2064544%2C2067302%2C1625924%2C2065302%2C2058970%2C2068156%2C2068157%2C2054228%2C2067000%2C2059673%2C2057730%2C2062751%2C2066877%2C2067179%2C2046450%2C2000150%2C1958852%2C2063319%2C1892289%2C1941575%2C2004273%2C2069092%2C2069280%2C1594489%2C2064575%2C1703780%2C1955255%2C2070615%2C2069534%2C2070951%2C2069515%2C2070739%2C2070378%2C2059979%2C2069414%2C2068992%2C2070721&quot;&gt;Resolved bugs (excluding employees)&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/niklasbaumgardner/NewContributorScraper&quot;&gt;Script to find new contributors from bug list&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;Volunteers that fixed more than one bug&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;:Benjamin Peterson&lt;/li&gt;
&lt;li&gt;Amadi&lt;/li&gt;
&lt;li&gt;any1here&lt;/li&gt;
&lt;li&gt;Caleb Pickard&lt;/li&gt;
&lt;li&gt;Chris Vander Linden&lt;/li&gt;
&lt;li&gt;Gopalarathnam Venkatesan&lt;/li&gt;
&lt;li&gt;Igor [:ExplodingJoysticks]&lt;/li&gt;
&lt;li&gt;Khalid AlHaddad&lt;/li&gt;
&lt;li&gt;Lukáš Lipinský&lt;/li&gt;
&lt;li&gt;Mayank Bansal&lt;/li&gt;
&lt;li&gt;Nazeer Ahmed Shaikh&lt;/li&gt;
&lt;li&gt;Noah Varghese&lt;/li&gt;
&lt;li&gt;Sameem [:sameembaba]&lt;/li&gt;
&lt;li&gt;Sebastian Zartner [:sebo]&lt;/li&gt;
&lt;li&gt;sfshah&lt;/li&gt;
&lt;li&gt;Xiaosen Zhuang&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;New contributors (🌟 = first patch)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Amadi:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2059979&quot;&gt;Network monitor opens files in last tab&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2065302&quot;&gt;Remove the unused _discarded field in UrlbarParentController.sys.mjs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2066478&quot;&gt;Update comments that point at the removed openUILinkIn function&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2069414&quot;&gt;Screenshot default filename contains trailing whitespace on pages without title&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Caleb Pickard
&lt;ul&gt;
&lt;li&gt;🌟&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2058970&quot;&gt; Remove BROWSER_SEARCH_PREF constant&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2070951&quot;&gt;The phrase “The count URI loads…” appears repeatedly in the search telemetry code. It should read “The count *of* URI loads…”&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;dchen705: &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2065655&quot;&gt;Remove unnecessary module import in browser/components/urlbar/tests/browser/head.js&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ekerin Agboola: &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2064541&quot;&gt;Remove old documentation related to the removed SEARCH_SUGGESTIONS_LATENCY_MS histogram&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Igor [:ExplodingJoysticks]:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1910664&quot;&gt;Cleanup dead code in PageThumbs (preserveAspectRatio)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1944206&quot;&gt;Dead code in services/crypto/modules/utils.sys.mjs#&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Gopalarathnam Venkatesan:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2000150&quot;&gt;“Add class” button (.cls) should be disabled when a class can’t be added to the selected node&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2003172&quot;&gt;Remove unused lightweightThemes.getMoreURL pref&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2062096&quot;&gt;Remove orphaned selectHistoryMode JSDoc from browser/components/preferences/tests/privacy/&lt;/a&gt;&lt;a href=&quot;http://head.js&quot;&gt;head.js&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2065468&quot;&gt;gBrowser.selectedTabs does not return tabs in tab order&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;🌟 Jieke Jiang: &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2067179&quot;&gt;Remove unused AboutReaderParent._getArticle&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;🌟 Andrew: &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2031465&quot;&gt;White flash on startup caused by abouthome_cache storing  incompatible startup frame&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;🌟 Rév O’Conner: &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1594489&quot;&gt;Inspector does not respect panel layout&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;🌟 Kana: &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2062133&quot;&gt;browser_privatebrowsing_resetPBM.js awaits an array instead of Promise.all, so the tab-close wait does nothing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Raúl:&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2066877&quot;&gt; L10nCache.add() throws on an unknown Fluent ID instead of reporting it&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;🌟 Samuel Mbabhazi: &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2054228&quot;&gt;Use new color syntax throughout the DevTools&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;K: &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2064575&quot;&gt;“Go to line” sets a cursor line which does not exist in footer location indicator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;sfshah:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2004273&quot;&gt;Turn devtools/client/jsonview/converter-child.js into an ES class&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;🌟 &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2067302&quot;&gt;Fix misspellings in SearchService.shouldShowInstallPrompt&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Nazeer Ahmed Shaikh
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1703780&quot;&gt;Remove deprecated logs from tt(c) harness&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;🌟 &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2064544&quot;&gt;test_dont_suggest_default_engine task is duplicated in browser_contextualsearch.js mochitest&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Noah Varghese:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1625924&quot;&gt;Make browser/components/syncedtabs/sidebar.xhtml an HTML file&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;🌟 &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2021799&quot;&gt;Remove usages of “six” from toolkit/components/telemetry/tests/marionette/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Valerie Racine (:v-racine): &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2069534&quot;&gt;Fix incorrect assertion message in browser_adoptTab_failure.js&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;🌟 Xiaosen Zhuang:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2069280&quot;&gt;Fix the undefined –border-color-dead-row custom property in aboutMemory.css&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2069515&quot;&gt;Use documentGlobal instead of the removed ownerGlobal in FormAutofillPreferences&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Project Updates&lt;/h3&gt;
&lt;h4&gt;Add-ons / Web Extensions&lt;/h4&gt;
&lt;h5&gt;Addon Manager &amp;amp; about:addons&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;As part of Project Nova related work:
&lt;ul&gt;
&lt;li&gt;Fixed responsive layout issues that caused horizontal scrolling in about:addons at high zoom levels –&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2059864&quot;&gt; Bug 2059864&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fixed the “Discover extensions” button appearing multiple times in about:addons –&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2070281&quot;&gt; Bug 2070281&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Added telemetry for theme-picker shown events and for appearance/native-theme changes in about:addons –&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2069417&quot;&gt; Bug 2069417&lt;/a&gt; /&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2070341&quot;&gt; Bug 2070341&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Added an accessible name to the themes mode control in about:addons, fixed in Firefox 158 and uplifted to the Firefox 157 beta channel –&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2064563&quot;&gt; Bug 2064563&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;Thanks to Mark Kennedy for the help on fixing this accessibility gap&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Updated the built-in dark and light theme previews to use the nova style –&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2070274&quot;&gt; Bug 2070274&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;Thanks to Emilio Cobos Álvarez for the fix to the default light and dark theme previews.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Fixed the Nova default and AMO curated theme previews to follow the OS light/dark mode while ignoring the Website appearance setting, fixed in Firefox 158 and uplifted to the Firefox 157 beta channel –&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2070562&quot;&gt; Bug 2070562&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Stopped setting unused taarId session cookies for AMO on startup –&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1871561&quot;&gt; Bug 1871561&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;Thanks to Manuel Bucher for helping us to clean up these unused internals.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;WebExtension APIs&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;Fixed webRequest requestBody parsing so POST form fields named __proto__ are no longer dropped –&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2061470&quot;&gt; Bug 2061470&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Changed alarms.clearAll() to resolve with undefined instead of a boolean, starting in Firefox 157 –&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2067229&quot;&gt; Bug 2067229&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;Thanks to Ollie Hensman-Crook for the fix to the alarms API.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Implemented native messaging support via xdg-native-messaging-proxy for Flatpak and Snap builds –&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1955255&quot;&gt; Bug 1955255&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;Thanks to Jan Horak for the native messaging work on Linux packaging.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;As part of Florian Quèze effort to &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2062142&quot;&gt;investigate and fix intermittent failures&lt;/a&gt;:
&lt;ul&gt;
&lt;li&gt;Made windows.update() wait for the window to actually resize or move before resolving, fixing an intermittent Linux test failure –&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1307759&quot;&gt; Bug 1307759&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fixed a pageAction popup incorrectly opening via a commands API shortcut while the extension was already shutting down –&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2039637&quot;&gt; Bug 2039637&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fixed action.openPopup() rejecting when a tab hover preview was showing, a regression from Bug 2022281 in Firefox 150, with the fix shipping in Firefox 157 and no uplift planned –&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2062229&quot;&gt; Bug 2062229&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;DevTools&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;The team has a few sizable ongoing projects.
&lt;ul&gt;
&lt;li&gt;Bomsy is working on moving Stylesheets to the Debugger so we can retire the (XUL-based) Style Editor, and turn the Debugger into a “Sources” panel (keeping all the existing functionality of course).  (pref: devtools.debugger.features.stylesheets-in-debugger)&lt;/li&gt;
&lt;li&gt;Alex is investigating ways to better handle CSS authored text and CSSOM changes in the Inspector, building information directly from the Rust CSS engine, with the hope it will bring performance improvement editing styles in the Rules view.&lt;/li&gt;
&lt;li&gt;Nicolas is implementing a way to show to the user how the engine goes from a CSS declaration value to the computed value so it’s easier to follow what’s the result of the different call sites, or how the different units (em, %, vmin, …) are computed to their final (e.g. px) values.   (pref: devtools.inspector.css-explainers)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;External contributions&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/user_profile?user_id=766005&quot;&gt;Chris Vander Linden&lt;/a&gt; finalized a multi-months project to add a search toolbar in the Netmonitor Raw Response panel, adapting and reusing the component we are using in the Debugger (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1941575&quot;&gt;#1941575&lt;/a&gt;)
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.nightly.mozilla.org/files/2026/09/image4-2.png&quot;&gt;&lt;img alt=&quot;Firefox Developer Tools Network panel showing the Response tab for an HTML request with a new find bar. The response source contains several elements, with matches for “script” highlighted in yellow. The find bar at the bottom shows the search term “script” and indicates “1 of 9 results.”&quot; class=&quot;aligncenter size-full wp-image-2132&quot; height=&quot;570&quot; src=&quot;https://blog.nightly.mozilla.org/files/2026/09/image4-2.png&quot; width=&quot;1062&quot; /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/user_profile?user_id=786063&quot;&gt;Amadi&lt;/a&gt; made the “Open in new tab” context menu entry to open tab next to the selected tab, not at the very end of the tab list (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2059979&quot;&gt;#2059979&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/user_profile?user_id=440227&quot;&gt;Mayank Bansal&lt;/a&gt; optimized the performance of console.clear() (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2068156&quot;&gt;#2068156&lt;/a&gt;, &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2068157&quot;&gt;#2068157&lt;/a&gt;, &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2067000&quot;&gt;#2067000&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/user_profile?user_id=786821&quot;&gt;Benoit&lt;/a&gt; added JSON Lines (JSONL/NDJSON) support in the Netmonitor Response panel (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2059673&quot;&gt;#2059673&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/user_profile?user_id=793841&quot;&gt;Gopalarathnam Venkatesan&lt;/a&gt; made the “Add class” button (.cls) to be disabled when a class can’t be added to the selected node (e.g. it’s a text node, or a comment, or the doctype node) (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2000150&quot;&gt;#2000150&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/user_profile?user_id=792331&quot;&gt;K&lt;/a&gt; fixed an issue with the “Go to line” action in the Debugger (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2064575&quot;&gt;#2064575&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/user_profile?user_id=794861&quot;&gt;Samuel Mbabhazi&lt;/a&gt; refactored our CSS codebase to use new color syntax (e.g. rgb(255 0 0) instead of rgb(255, 0, 0)) (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2054228&quot;&gt;#2054228&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/user_profile?user_id=794411&quot;&gt;sfshah&lt;/a&gt; turned devtools/client/jsonview/converter-child.js into an ES class (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2004273&quot;&gt;#2004273&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;Team/Project Update&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/user_profile?user_id=149052&quot;&gt;Florian Quèze [:florian]&lt;/a&gt; is working on fixing test flakiness in devtools/client/debugger and already landed an impressive stack of patches (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2001947&quot;&gt;#2001947&lt;/a&gt;, &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2070917&quot;&gt;#2070917&lt;/a&gt;, &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2070920&quot;&gt;#2070920&lt;/a&gt;, &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2070932&quot;&gt;#2070932&lt;/a&gt;, &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2070970&quot;&gt;#2070970&lt;/a&gt;, &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2027953&quot;&gt;#2027953&lt;/a&gt;, &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1932082&quot;&gt;#1932082&lt;/a&gt;, &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2070923&quot;&gt;#2070923&lt;/a&gt;, &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2070933&quot;&gt;#2070933&lt;/a&gt;, &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1814093&quot;&gt;#1814093&lt;/a&gt;, &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1868969&quot;&gt;#1868969&lt;/a&gt;, &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2071238&quot;&gt;#2071238&lt;/a&gt;)
&lt;ul&gt;
&lt;li&gt;that also includes fixing various accessibility issues that were spotted by a11y_checks &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2070911&quot;&gt;#2070911&lt;/a&gt;, &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2070955&quot;&gt;#2070955&lt;/a&gt;, &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2071227&quot;&gt;#2071227&lt;/a&gt;, &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2071231&quot;&gt;#2071231&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Note that &lt;a href=&quot;https://bugzilla.mozilla.org/user_profile?user_id=559949&quot;&gt;Julian Descottes [:jdescottes]&lt;/a&gt; also has an ongoing quest to reduce intermittent failures in our codebase and fixed a few those last 2 weeks (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1767707&quot;&gt;#1767707&lt;/a&gt;, &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2069100&quot;&gt;2069100&lt;/a&gt;, &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2009386&quot;&gt;#2009386&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;[florian] 24 patches landed on Friday, you can see the impact on &lt;a href=&quot;https://tests.firefox.dev/tests.html?path=devtools%2Fclient%2Fdebugger&quot;&gt;https://tests.firefox.dev/tests.html?path=devtools%2Fclient%2Fdebugger&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/user_profile?user_id=557153&quot;&gt;Nicolas Chevobbe [:nchevobbe]&lt;/a&gt; fixed a few issues spotted by Jake in the Inspector for the new-ish attr()CSS function (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2068479&quot;&gt;#2068479&lt;/a&gt;, &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2068480&quot;&gt;#2068480&lt;/a&gt;, &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2068483&quot;&gt;#2068483&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/user_profile?user_id=283262&quot;&gt;Alexandre Poirot [:ochameau]&lt;/a&gt; fixed an OOM crash when viewing source mapped file for a large wasm module with many workers (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2058286&quot;&gt;#2058286&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/user_profile?user_id=559949&quot;&gt;Julian Descottes [:jdescottes]&lt;/a&gt; improved performance of the Inspector when Devtools was opened on a page with many grid elements (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1988868&quot;&gt;#1988868&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/user_profile?user_id=656417&quot;&gt;Hubert Boma Manilla (:bomsy)&lt;/a&gt; fixed an infinite loop in the Debugger search if you were searching for $ on a big JS file (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2068517&quot;&gt;#2068517&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;WebDriver&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Sameem &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1958852&quot;&gt;merged two internal helpers&lt;/a&gt; (remote/shared/Sync.sys.mjs and remote/marionette/sync.sys.mjs) which removed some code duplication.&lt;/li&gt;
&lt;li&gt;Khalid AlHaddad &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2044153&quot;&gt;unified the navigation commands in Marionette and WebDriver BiDi&lt;/a&gt; to always initiate navigations via browsingContext.loadURI().&lt;/li&gt;
&lt;li&gt;Khalid AlHaddad updated the WebDriver BiDi client used by WebDriver tests &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2046450&quot;&gt;so that browsing_context.locate_nodes returns the nodes array directly&lt;/a&gt; instead of the enclosing result object, matching the updated command response.&lt;/li&gt;
&lt;li&gt;Julian Descottes &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2069952&quot;&gt;made the destinationFolder mandatory&lt;/a&gt; when calling the browser.setDownloadBehavior command with type=”allowed” – which aligns us with the specification. In order to restore the default behavior without having to specify a folder, clients should call setDownloadBehavior with null instead.&lt;/li&gt;
&lt;li&gt;Henrik Skupin fixed a bug in geckodriver where &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2065088&quot;&gt;specifying androidIntentArguments in the capabilities caused the default intent arguments to be omitted&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Fluent&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;According to &lt;a href=&quot;http://arewefluentyet.com&quot;&gt;arewefluentyet.com&lt;/a&gt;, ~74.77% of our strings are now using Fluent!&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Lint, Docs and Workflow&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;According to &lt;a href=&quot;http://arewemozsrcyet.com&quot;&gt;arewemozsrcyet.com&lt;/a&gt;, ~59% of our modules are now using moz-src.&lt;/li&gt;
&lt;li&gt;eslint-plugin-mozilla has switched &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2067148&quot;&gt;from using Mocha to Jest for tests&lt;/a&gt;.
&lt;ul&gt;
&lt;li&gt;Planning on future updates to investigate getting devtools &amp;amp; newtab to use the jest installed at the top-level, rather than separately installed copies.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Information Management/Sidebar&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;We’re working away on bug fixes for sidebar, vertical tabs, split-view, and Nova&lt;/li&gt;
&lt;li&gt;Thanks Florian (:fqueze) for landing a set of patches that have &lt;a href=&quot;https://tests.firefox.dev/tests.html?path=browser%2Fcomponents%2Fsidebar%2Ftests%2Fbrowser#issues=ftc&quot;&gt;markedly reduced test flakiness&lt;/a&gt; in the Sidebar component&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;New Tab Page&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Custom wallpaper library
&lt;ul&gt;
&lt;li&gt;Dre&lt;a href=&quot;https://bugzil.la/2066561&quot;&gt; added a “Your images” folder to the wallpaper picker&lt;/a&gt; on the New Tab Page, letting users save and switch between multiple custom wallpapers directly from the picker UI (desktop channels), which reduces friction for users who frequently change backgrounds.&lt;/li&gt;
&lt;li&gt;Dre&lt;a href=&quot;https://bugzil.la/2066557&quot;&gt; implemented storage and migration for multiple custom wallpapers&lt;/a&gt; so users keep their existing wallpaper during upgrade while gaining the ability to save and switch multiple wallpapers — migration moves old single-wallpaper prefs into the new multi-wallpaper storage and the NTP now reads the wallpaper array at load/sync points.&lt;/li&gt;
&lt;li&gt;Dre&lt;a href=&quot;https://bugzil.la/2066555&quot;&gt; updated New Tab Page strings to support multiple custom wallpapers&lt;/a&gt; so users now see accurate, localized labels and accessibility text when managing or switching between multiple custom backgrounds, reducing confusion in the UI during wallpaper selection.&lt;/li&gt;
&lt;li&gt;Dre&lt;a href=&quot;https://bugzil.la/2066562&quot;&gt; added a delete affordance for saved custom wallpapers&lt;/a&gt; inside the New Tab Page picker so users can remove unwanted images from their saved set without going to profile files or prefs, improving manageability of user-provided wallpapers.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;We’ve &lt;a href=&quot;https://bugzil.la/2018708&quot;&gt;completed&lt;/a&gt; a &lt;a href=&quot;https://bugzil.la/2018711&quot;&gt;mass&lt;/a&gt; &lt;a href=&quot;https://bugzil.la/2018712&quot;&gt;migration&lt;/a&gt; of &lt;a href=&quot;https://bugzil.la/2018713&quot;&gt;our&lt;/a&gt; &lt;a href=&quot;https://bugzil.la/2024070&quot;&gt;unit&lt;/a&gt; &lt;a href=&quot;https://bugzil.la/2062299&quot;&gt;tests&lt;/a&gt; &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2062310&quot;&gt;from Mocha (not mochi) / Karma to Jest/RTL&lt;/a&gt;, &lt;a href=&quot;https://bugzil.la/2062300&quot;&gt;which&lt;/a&gt; is &lt;a href=&quot;https://bugzil.la/2062304&quot;&gt;more&lt;/a&gt; &lt;a href=&quot;https://bugzil.la/2062305&quot;&gt;modern&lt;/a&gt; &lt;a href=&quot;https://bugzil.la/2062306&quot;&gt;and&lt;/a&gt; &lt;a href=&quot;https://bugzil.la/2062307&quot;&gt;actively&lt;/a&gt; maintained.&lt;/li&gt;
&lt;li&gt;Sections is now enabled globally for all regions that show the content feed!&lt;/li&gt;
&lt;li&gt;Reem Hamoui fixed&lt;a href=&quot;https://bugzil.la/2037467&quot;&gt; Lists widget&lt;/a&gt; so that keyboard users can now tab to completed items on the New Tab Page and see a visible selection/focus state&lt;/li&gt;
&lt;li&gt;Reem Hamoui fixed the&lt;a href=&quot;https://bugzil.la/2037472&quot;&gt; Timer widget&lt;/a&gt; so that keyboard users can toggle focus vs break modes with standard keys (Enter/Space/arrow keys) thanks to restored keyboard handlers and tabindex semantics.&lt;/li&gt;
&lt;li&gt;Reem Hamoui made it so that &lt;a href=&quot;https://bugzil.la/2042496&quot;&gt;screenreaders now announce wallpaper names via added &lt;/a&gt;aria-labels/alt text and role improvements in the Customize UI.&lt;/li&gt;
&lt;li&gt;Maxx Crawford made it so that the Customize UI &lt;a href=&quot;https://bugzil.la/2055858&quot;&gt;now filters wallpapers by their metadata&lt;/a&gt; and no longer surfaces images marked hidden or in specific visibility groups.&lt;/li&gt;
&lt;li&gt;Irene Ni&lt;a href=&quot;https://bugzil.la/2058284&quot;&gt; added Section Layout Name (String) telemetry to newtab content impression &amp;amp; click events&lt;/a&gt; so impressions/clicks now carry layout identifiers for more granular UX and A/B analysis&lt;/li&gt;
&lt;li&gt;Reem Hamoui&lt;a href=&quot;https://bugzil.la/2059851&quot;&gt; added accessible names (aria-label/aria-labelledby) to the HNT Customize panel back buttons&lt;/a&gt; to fix screen-reader discoverability and keyboard/AT announcement when navigating the New Tab Customize flow.&lt;/li&gt;
&lt;li&gt;Nina Pypchenko [:nina-py]&lt;a href=&quot;https://bugzil.la/2060731&quot;&gt; preserved iframe rendering for New Tab Page widgets during drag operations to prevent iframe-backed widgets from going blank while being moved&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Nina Pypchenko [:nina-py] restored the&lt;a href=&quot;https://bugzil.la/2066037&quot;&gt; Stocks widget dropdown and menu visibility under High Contrast Mode&lt;/a&gt; by adjusting contrast-aware CSS and ARIA roles so users relying on HCM can access stock controls again.&lt;/li&gt;
&lt;li&gt;Nina Pypchenko [:nina-py] fixed a&lt;a href=&quot;https://bugzil.la/2066039&quot;&gt; results text overflow for long search queries in the Stocks widget&lt;/a&gt; by adding word-wrap/clamping to result lines, preventing layout breakage and truncated controls when users enter long symbols or queries.&lt;/li&gt;
&lt;li&gt;Nina Pypchenko [:nina-py] added&lt;a href=&quot;https://bugzil.la/2066344&quot;&gt; telemetry for theme selection in the New Tab customization panel&lt;/a&gt; by emitting a selection ping on change, enabling measurement of user theme choices without changing UX.&lt;/li&gt;
&lt;li&gt;Irene Ni restored the&lt;a href=&quot;https://bugzil.la/2066474&quot;&gt; Lists widget switcher checkmark for the selected list&lt;/a&gt; by fixing menu item selection-state rendering so users can again see which list is active in the switcher.&lt;/li&gt;
&lt;li&gt;Reem Hamoui&lt;a href=&quot;https://bugzil.la/2066639&quot;&gt; updated the Privacy widget CTA and spacing&lt;/a&gt; on the New Tab Page, adjusting CSS/layout and CTA copy so the action is more discoverable and has a clearer tap/click target across responsive breakpoints.&lt;/li&gt;
&lt;li&gt;Reem Hamoui&lt;a href=&quot;https://bugzil.la/2066846&quot;&gt; updated the zero-state copy for the New Tab Privacy widget&lt;/a&gt; to clarify what the widget does and the next steps for users when no privacy events or trackers are present, reducing confusion for first-time or cleared-state users.&lt;/li&gt;
&lt;li&gt;Maxx Crawford&lt;a href=&quot;https://bugzil.la/2068811&quot;&gt; landed Fluent strings for the Nova launch New Tab customization callout&lt;/a&gt;, enabling localized text in the New Tab customization callout so users in supported locales see translated UI instead of missing-string fallbacks.&lt;/li&gt;
&lt;li&gt;Nina Pypchenko&lt;a href=&quot;https://bugzil.la/2070284&quot;&gt; made the customization panel reset when closed&lt;/a&gt;, ensuring about:newtab customization state (temporary tile/layout previews) is cleared on close so users no longer see stale previews when reopening the panel.&lt;/li&gt;
&lt;li&gt;Dão Gottwald&lt;a href=&quot;https://bugzil.la/2069383&quot;&gt; fixed New Tab to pick up system High Contrast Mode on Linux and macOS&lt;/a&gt;, restoring correct high-contrast colors/contrast on those platforms for users who rely on OS-level accessibility settings.&lt;/li&gt;
&lt;li&gt;Irene Ni&lt;a href=&quot;https://bugzil.la/2070290&quot;&gt; restored theme matching for New Tab context menus by reapplying theme-aware CSS variables in the New Tab Page contextmenu styles&lt;/a&gt;, fixing mismatched colors for users with custom/light/dark themes.&lt;/li&gt;
&lt;li&gt;Dustin Whisman&lt;a href=&quot;https://bugzil.la/2070294&quot;&gt; fixed New Tab section context menu button color regression by adjusting the section-contextmenu button style rules&lt;/a&gt; (button color variables and state selectors) so section actions now respect theme contrast.&lt;/li&gt;
&lt;li&gt;Irene Ni&lt;a href=&quot;https://bugzil.la/2071406&quot;&gt; restored transparency to New Tab card backgrounds&lt;/a&gt; by removing opaque background rules so cards correctly display background images/themes and improve visual consistency across DPI/compositing setups.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Picture-in-Picture&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Thanks to Sebastian Zartner [:sebo] for &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2070721&quot;&gt;fixing broken Dailymotion captions on the PiP player&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;kpatenio &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2055069&quot;&gt;fixed YouTube’s displayed playback speed settings being out of sync with PiP&lt;/a&gt;.
&lt;ul&gt;
&lt;li&gt;Reminder that the playback speed settings can be enabled with media.videocontrols.picture-in-picture.playback-speed.enabled.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.nightly.mozilla.org/files/2026/09/image3-2.png&quot;&gt;&lt;img alt=&quot;Firefox's Picture-in-Picture player showing the playback speed control over a video. A popup contains a speed slider and buttons for 0.75×, 1.0×, 1.25×, 1.5×, and 2.0× playback, with 1.0× selected. The video behind the control is titled “More speed.”&quot; class=&quot;aligncenter size-full wp-image-2131&quot; height=&quot;425&quot; src=&quot;https://blog.nightly.mozilla.org/files/2026/09/image3-2.png&quot; width=&quot;753&quot; /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Thanks to Sylvestre Ledru [:Sylvestre] for helping fix a broken link in our &lt;a href=&quot;https://firefox-source-docs.mozilla.org/toolkit/components/pictureinpicture/pictureinpicture/index.html&quot;&gt;PiP docs &lt;/a&gt;as a part of &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2071683&quot;&gt;Bug 2071683&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Search and Urlbar&lt;/h4&gt;
&lt;h5&gt;Address Bar&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;Dao and Moritz are working on bringing the full urlbar experience into the newtab page, now enabled on nightly and going through polish and improvements.. (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2068104&quot;&gt;Bug 2068104&lt;/a&gt;,&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2068633&quot;&gt; Bug 2068633&lt;/a&gt;, &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2069260&quot;&gt;Bug 2069260&lt;/a&gt;, &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2064747&quot;&gt;Bug 2064747&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Drew enabled AMP and Wikipedia by default in AT, BE, CH, ES, IE, LU, NL, PL, PT and SE. (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2066294&quot;&gt;Bug 2066294&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;James gated adaptive autofill page results behind a minimum score threshold. (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2066171&quot;&gt;Bug 2066171&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;any1here stopped disabled Manage AI and Labs quick actions being displayed when disabled. (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2070378&quot;&gt;Bug 2070378&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;Search&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;Dale landed the Recent Searches widget which will be be used launched as an experiment (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2063718&quot;&gt;Bug 2063718&lt;/a&gt;)
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.nightly.mozilla.org/files/2026/09/image5-2.png&quot;&gt;&lt;img alt=&quot;The Firefox newtab search widget showing the &amp;quot;Recent searches&amp;quot; tab selected next to a &amp;quot;Trending&amp;quot; tab. Five recent search queries are listed, each with a history icon, including “back doune the rabbit hol…,” “isthismusic back doune,” “wrexham shirt sponsor,” “walt disco album,” and “moz-src.”&quot; class=&quot;aligncenter size-full wp-image-2133&quot; height=&quot;606&quot; src=&quot;https://blog.nightly.mozilla.org/files/2026/09/image5-2.png&quot; width=&quot;704&quot; /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Caleb fixed the search box eating the first character typed into it. (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1953361&quot;&gt;Bug 1953361&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Mark configured Wikipedia search for Sardinian (sc) to use the Sardinian Wikipedia rather than the Italian one. (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2057690&quot;&gt;Bug 2057690&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;Places&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;Marco fixed bookmarked Google Maps using Google’s default favicon. (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1575809&quot;&gt;Bug 1575809&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Marco fixed the Downloads and History windows going full-screen instead of floating on macOS. (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2058062&quot;&gt;Bug 2058062&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Tests&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Dashboards:
&lt;ul&gt;
&lt;li&gt;Most frequent oranges: &lt;a href=&quot;https://tests.firefox.dev/intermittent.html#date=21days&quot;&gt;https://tests.firefox.dev/intermittent.html#date=21days&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Folders with the most flaky tests: &lt;a href=&quot;https://tests.firefox.dev/flaky.html?kind=mochitest#date=21days&amp;amp;view=list&quot;&gt;https://tests.firefox.dev/flaky.html?kind=mochitest#date=21days&amp;amp;view=list&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Issues of tests in a given folder: &lt;a href=&quot;https://tests.firefox.dev/tests.html&quot;&gt;https://tests.firefox.dev/tests.html&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;Eg &lt;a href=&quot;https://tests.firefox.dev/tests.html?path=devtools%2Fclient%2Fdebugger&quot;&gt;devtools debugger tests&lt;/a&gt; shows progress of the recent effort to fix these tests recently&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Flakiness burn down
&lt;ul&gt;
&lt;li&gt;Multi-agent Claude sessions running for hours investigating and fixing tests of a given set provided in the prompt. Still iterating on the process. Did this 3 times so far:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2062142&quot;&gt;Bug 2062142 – [meta] Fix the flakiness in browser/components/extensions/test/browser&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Top 20 intermittent mochitest bugs annotated by sheriffs.
&lt;ul&gt;
&lt;li&gt;Probably what made the mochitest line go down for the first time on &lt;a href=&quot;https://tests.firefox.dev/&quot;&gt;https://tests.firefox.dev/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;And what &lt;a href=&quot;https://tests.firefox.dev/tests.html?path=browser%2Fcomponents%2Fsidebar%2Ftests%2Fbrowser#issues=ftc&quot;&gt;helped with the sidebar component&lt;/a&gt;, even though sidebar wasn’t my target.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2070797&quot;&gt;Bug 2070797 – [meta] Fix the flakiness in devtools/client/debugger/test/mochitest&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://tests.firefox.dev/tests.html?path=devtools%2Fclient%2Fdebugger%2Ftest%2Fmochitest&quot;&gt;https://tests.firefox.dev/tests.html?path=devtools%2Fclient%2Fdebugger%2Ftest%2Fmochitest&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Profile your claude session for cost and context size: &lt;a href=&quot;https://github.com/fqueze/claude-profiler&quot;&gt;https://github.com/fqueze/claude-profiler&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;To monitor cost during your sessions, try &lt;a href=&quot;https://github.com/padenot/foxtail&quot;&gt;https://github.com/padenot/foxtail&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</content:encoded>
	<dc:date>2026-09-28T19:31:43+00:00</dc:date>
	<dc:creator>Mike Conley</dc:creator>
</item>
<item rdf:about="discourse.mozilla.org-topic-149582">
	<title>Firefox Tooling Announcements: MozPhab 2.21.0 Released</title>
	<link>https://discourse.mozilla.org/t/mozphab-2-21-0-released/149582</link>
	<content:encoded>&lt;p&gt;Bugs resolved in Moz-Phab 2.21.0:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/2068637&quot;&gt;bug 2068637&lt;/a&gt; code review bot fails to apply patches when the parent is not known&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/2073291&quot;&gt;bug 2073291&lt;/a&gt; &lt;code&gt;moz-phab submit&lt;/code&gt; could load reviewers and review groups in parallel with revisions and diffs&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/2075401&quot;&gt;bug 2075401&lt;/a&gt; “Phabricator Error: Validation errors” from &lt;code&gt;moz-phab submit&lt;/code&gt; should display the revision&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Discuss these changes in &lt;span class=&quot;hashtag-raw&quot;&gt;#engineering-workflow&lt;/span&gt; on Slack or &lt;span class=&quot;hashtag-raw&quot;&gt;#Conduit&lt;/span&gt; Matrix.&lt;/p&gt;
            &lt;p&gt;&lt;small&gt;1 post - 1 participant&lt;/small&gt;&lt;/p&gt;
            &lt;p&gt;&lt;a href=&quot;https://discourse.mozilla.org/t/mozphab-2-21-0-released/149582&quot;&gt;Read full topic&lt;/a&gt;&lt;/p&gt;</content:encoded>
	<dc:date>2026-09-25T18:18:22+00:00</dc:date>
	<dc:creator>sheehan</dc:creator>
</item>
<item rdf:about="https://blog.mozilla.org/?p=87109">
	<title>The Mozilla Blog: Classic, Private, or Smart? Choose the right Firefox window for every task</title>
	<link>https://blog.mozilla.org/en/firefox/firefox-window-types/</link>
	<content:encoded>&lt;p&gt;We spend a lot of time browsing online. Whether you are researching for work, planning a trip, paying your bills, or scrolling through social media, your browser is there for it all.&lt;br /&gt;&lt;br /&gt;While all these tasks are very different in nature, a lot of people still tend to stick to the same window type for all their use cases. But what if there was a different way to browse?&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;You may have noticed Firefox now has three window options for desktop. On top of the Classic and Private windows you’ve known for years, a third choice has been rolling out in beta: Smart Window. This optional AI-powered browsing experience is built to move your work forward and help finish what you started online.&lt;br /&gt;&lt;br /&gt;Following the recent addition of &lt;a href=&quot;http://blog.mozilla.org/en/firefox/firefox-smart-window/&quot;&gt;several new Smart Window capabilities&lt;/a&gt;, we thought now would be the perfect time for a breakdown of what each of our three window options actually does, and when to use them. &lt;/p&gt;



&lt;h3&gt;&lt;strong&gt;Classic: Timeless and tailored to you&lt;/strong&gt; &lt;/h3&gt;



&lt;p&gt;&lt;strong&gt;Classic Window &lt;/strong&gt;is still the most customizable option of the three. While Private and Smart windows share many of the same features and capabilities as Classic, a Classic Window offers the widest range of Firefox’s standard personalization options. It gives you the broadest canvas for tailoring Firefox to the way you browse.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What makes it &lt;em&gt;Classic&lt;/em&gt;:&lt;/strong&gt; &lt;/p&gt;



&lt;ul&gt;
&lt;li&gt;Full oversight over &lt;a href=&quot;https://support.mozilla.org/en-US/kb/customize-firefox-controls-buttons-and-toolbars&quot;&gt;controls, buttons, and toolbars&lt;/a&gt;.&lt;/li&gt;



&lt;li&gt;Access to the entire Firefox &lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/extensions/?_gl=1*1sltase*_ga*Nzk5Mzk1OTA0LjE3ODQ1NTM5OTA.*_ga_2VC139B3XV*czE3ODY3MTU0MzMkbzQ2JGcwJHQxNzg2NzE1NDMzJGo2MCRsMCRoMA..&quot;&gt;add-ons library&lt;/a&gt;.&lt;/li&gt;



&lt;li&gt;Advanced &lt;a href=&quot;https://support.mozilla.org/en-US/kb/firefox-advanced-customization-and-configuration&quot;&gt;customization and configuration options&lt;/a&gt;. &lt;/li&gt;



&lt;li&gt;The ability to sync your &lt;a href=&quot;https://support.mozilla.org/en-US/kb/how-do-i-set-sync-my-computer&quot;&gt;history, bookmarks, and open tabs&lt;/a&gt; across your signed-in devices. &lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;strong&gt;When to use it:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Classic is your home base. It’s the best place to start customizing around your browsing needs, whether that means an extension setup specifically tailored to your workflow, a special theme that matches your style, or just the familiar Firefox experience you created over years of tweaking to your personal taste. While many customizations are also available on Private and Smart window, Classic offers the most extensive line-up of optional browser features, extensions, and aesthetics to personalize your setup.&lt;br /&gt;&lt;br /&gt;Classic is the right move for general browsing like scrolling through social media, conducting a quick Google search, or reading online articles. It’s also the best place to start if you are looking to build your browser around you.  &lt;/p&gt;



&lt;h3&gt;&lt;strong&gt;Private Window: Browse with greater peace of mind&lt;/strong&gt; &lt;/h3&gt;



&lt;p&gt;&lt;a href=&quot;https://support.mozilla.org/en-US/kb/private-browsing-use-firefox-without-history&quot;&gt;&lt;strong&gt;Private Window&lt;/strong&gt;&lt;/a&gt; stays true to its name and number one priority: it’s designed to limit the information associated with your browser session. When a Private Window is closed, Firefox doesn’t retain session information, such as what you searched for, the sites you visited, or the cookies they set.&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;What makes it &lt;em&gt;Private&lt;/em&gt;:&lt;/strong&gt;&lt;/p&gt;



&lt;ul&gt;
&lt;li&gt;Pages visited from a Private Window will not be added to the list of sites in Firefox’s History menu, the Library window’s history list, nor the address bar drop-down list.&lt;/li&gt;



&lt;li&gt;Nothing entered into text boxes on web pages and Search bar will be saved for Form autocomplete.&lt;/li&gt;



&lt;li&gt;Cookies set in a Private Window are kept only temporarily in memory, separate from your regular cookies, and are discarded after your last Private Window is closed.&lt;/li&gt;



&lt;li&gt;&lt;a href=&quot;https://support.mozilla.org/en-US/kb/extensions-private-browsing&quot;&gt;Extensions are off by default in a Private Window&lt;/a&gt;, unless you explicitly grant them permission. &lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;strong&gt;When to use it:&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;A Private Window is recommended when you don’t want activity from a browsing session sitting in your history, such as shopping for a gift. It’s also helpful when browsing on a shared device, ensuring your history, logins, and cookies will not be saved for the next person.&lt;br /&gt;&lt;br /&gt;You may not need a Private Window every time you open your browser, but it’s always there for you when you do. &lt;/p&gt;



&lt;h3&gt;&lt;strong&gt;Smart Window: Firefox’s privacy-first, AI-powered browsing experience to help get stuff done&lt;/strong&gt; &lt;/h3&gt;



&lt;figure class=&quot;wp-block-image size-large&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-87297&quot; height=&quot;576&quot; src=&quot;https://blog.mozilla.org/wp-content/blogs.dir/278/files/2026/09/Firefox_SmartWindow_Distilled_Header_022-1024x576.png&quot; width=&quot;1024&quot; /&gt;&lt;/figure&gt;



&lt;p&gt;&lt;a href=&quot;https://support.mozilla.org/en-US/kb/smart-window&quot;&gt;&lt;strong&gt;Smart Window&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; &lt;/strong&gt;is Firefox’s newest window type, currently rolling out in Beta to users in the U.S., Canada, and France. Think of it as a Classic Firefox window with a built-in AI assistant layered on top – one that you can choose to have utilize your open tabs, recent browsing, and the page in front of you, so it can help you do more without switching contexts – all with the privacy and security you expect from Firefox.&lt;strong&gt;&lt;br /&gt;&lt;br /&gt;What makes it &lt;em&gt;Smart&lt;/em&gt;:&lt;/strong&gt; &lt;/p&gt;



&lt;ul&gt;
&lt;li&gt;A built-in assistant that can summarize pages, generate recommendations, compare information, and plan tasks using your open tabs.&lt;/li&gt;



&lt;li&gt;The ability to retrieve current web information and display the sources behind its response without taking you to a separate search results page, supported by &lt;a href=&quot;https://blog.mozilla.org/en/firefox/firefox-exa-partnership/&quot;&gt;Firefox’s new partnership with Exa&lt;/a&gt;.&lt;/li&gt;



&lt;li&gt;Suggested groups for related tabs. &lt;/li&gt;



&lt;li&gt;Visual previews of pages from your browsing history, so you can surface the page you’re looking for more easily among similar results without opening each one.&lt;/li&gt;



&lt;li&gt;The choice of &lt;a href=&quot;https://support.mozilla.org/en-US/kb/smart-window-models&quot;&gt;three AI models&lt;/a&gt; to power the assistant, as well as the option to bring your own model.&lt;/li&gt;



&lt;li&gt;Optional “&lt;a href=&quot;https://support.mozilla.org/en-US/kb/smart-window-memories&quot;&gt;memories&lt;/a&gt;,” built from either your Smart Window chats or your browsing activity in both Smart and Classic windows, or both. Memories help the assistant give you more helpful, personalized answers over time. They are stored locally on your device and can be deleted at any time.  &lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;strong&gt;When to use it:&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;Smart Window shines when you need a little extra help finishing what you started. Its ability to work with the context you choose to share can help you make progress on ongoing tasks that may require more than one session, like trip or event planning, comparison price shopping, or conducting research for work or personal reasons.&lt;br /&gt;&lt;br /&gt;And with Smart Window’s optional memories, which learn your patterns and preferences over time (with your permission), Smart Window gets more useful the more you use it, keeping you from having to spell everything out from scratch each time.   &lt;/p&gt;



&lt;h3&gt;&lt;strong&gt;Selecting the right window for the job&lt;/strong&gt;&lt;/h3&gt;



&lt;p&gt;None of these windows is “better” than the others, they’re built for different moments.&lt;br /&gt;&lt;br /&gt;The good news is you are never locked into one. Firefox lets you move between all three depending on what you’re doing, so you can choose the window that fits each task.&lt;br /&gt;&lt;br /&gt;You can access Classic and Private windows at any time from the Firefox menu. As for Smart Window, it remains in beta, with current availability to people in the U.S., Canada, and France.&lt;br /&gt;&lt;br /&gt;To try Smart Window, visit &lt;a href=&quot;https://www.firefox.com/smart-window&quot;&gt;https://www.firefox.com/smart-window&lt;/a&gt;. Or, if it’s not available in your region yet, you can &lt;a href=&quot;https://www.firefox.com/smart-window&quot;&gt;sign up&lt;/a&gt; to be notified when it is.&lt;br /&gt; &lt;/p&gt;
&lt;p&gt;The post &lt;a href=&quot;https://blog.mozilla.org/en/firefox/firefox-window-types/&quot;&gt;Classic, Private, or Smart? Choose the right Firefox window for every task&lt;/a&gt; appeared first on &lt;a href=&quot;https://blog.mozilla.org/en/&quot;&gt;The Mozilla Blog&lt;/a&gt;.&lt;/p&gt;</content:encoded>
	<dc:date>2026-09-24T17:00:00+00:00</dc:date>
	<dc:creator>Mozilla</dc:creator>
</item>
<item rdf:about="yt:video:kDQYPzzMuIY">
	<title>Mozilla Data YouTube Channel: Towards a Telemetry Taxonomy</title>
	<link>https://www.youtube.com/watch?v=kDQYPzzMuIY</link>
	<content:encoded>Leif Oines talks about an effort to define a more complete taxonomy for Mozilla's data.</content:encoded>
	<dc:date>2026-09-24T07:53:42+00:00</dc:date>
	<dc:creator>Mozilla Data</dc:creator>
</item>
<item rdf:about="yt:video:tzDQSnK45dA">
	<title>Mozilla Data YouTube Channel: Outreachy Mentorship: A Retrospective</title>
	<link>https://www.youtube.com/watch?v=tzDQSnK45dA</link>
	<content:encoded>Will Lachance does a retrospective on the Glean Dictionary outreachy internship. 

See also &quot;Linh's Outreachy Internship Highlights&quot; https://www.youtube.com/watch?v=UJdIkHDPgGQ

To learn more about Outreachy, see https://www.outreachy.org/</content:encoded>
	<dc:date>2026-09-24T02:26:51+00:00</dc:date>
	<dc:creator>Mozilla Data</dc:creator>
</item>
<item rdf:about="https://blog.thunderbird.net/?p=4621">
	<title>Thunderbird Blog: Thunderbird Monthly Development Digest: September 2026</title>
	<link>https://blog.thunderbird.net/2026/09/thunderbird-monthly-development-digest-september-2026/</link>
	<content:encoded>&lt;p&gt;&lt;img alt=&quot;&quot; class=&quot;attachment-640x360 size-640x360 wp-post-image&quot; height=&quot;360&quot; src=&quot;https://blog.thunderbird.net/files/2026/09/blog-banner-developer7-768x432.jpg&quot; width=&quot;640&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Greetings once more from the Thunderbird development team!&lt;/p&gt;



&lt;p&gt;As the Northern hemisphere summer comes to an end and a slew of PTO, company holidays and projects have wrapped up, what better time to share progress and next steps on the work the Thunderbird Desktop Engineering team has on their plates!?&lt;/p&gt;



&lt;h4&gt;&lt;strong&gt;Exchange support moving well&lt;/strong&gt;&lt;/h4&gt;



&lt;p&gt;The powerhouse Exchange engineering team had some great momentum over the summer and completed their work on implementation of the Graph protocol to support email accounts – well in advance of their deadline. They have since moved on to start work to support Exchange calendars using the Graph protocol which is a significant milestone given that our calendar code hasn’t had significant changes for some time.&lt;/p&gt;



&lt;p&gt;While some team members are now juggling multiple projects, good progress has been made to wrestle the foundations into place, with calendar discovery and persistence in place, along with display of calendar items. Following a brief hiatus to focus on other priorities, the team is once again back into gear.&lt;/p&gt;



&lt;p&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2051349&quot;&gt;&lt;u&gt;Keep track of our Graph API Calendar implementation here.&lt;/u&gt;&lt;/a&gt; &lt;/p&gt;



&lt;h4&gt;&lt;strong&gt;Account Setup &amp;amp; Authentication&lt;/strong&gt;&lt;/h4&gt;



&lt;p&gt;Since I last wrote, many of the account setup and account authentication improvements have landed (mostly in versions 156 &amp;amp; 157), unlocking some important security use cases which are becoming more frequently requested and mandated by organizations and legislation around the world. &lt;/p&gt;



&lt;p&gt;While diving into the code is an enjoyable adventure, the newly-minted articles devoted to the topic of Oauth customization might be a better starting point for most:&lt;br /&gt;&lt;a href=&quot;https://support.mozilla.org/kb/tb-custom-oauth&quot;&gt;&lt;u&gt;Knowledge Base – Custom OAuth for Thunderbird&lt;/u&gt;&lt;/a&gt;&lt;/p&gt;



&lt;h4&gt;&lt;strong&gt;UI overhauls – why just one?!&lt;/strong&gt;&lt;/h4&gt;



&lt;p&gt;The front end engineering team has completed the rebuild of our account setup manual configuration flows to include new protocol options and security customizations, so it is time to pick up where we left off on our &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1754600&quot;&gt;&lt;u&gt;Calendar UI rebuild&lt;/u&gt;&lt;/a&gt;.&lt;/p&gt;



&lt;p&gt;The majority of the front end team is now either focused on Calendar Event data write operations stemming from the Event Read dialog (delete event, RSVPs, Reminders) – or beginning the largest part of the journey, which is the implementation of a new Calendar Create/Edit dialog, along with REDUX-based state management, a new WYSIWYG editor and more reusable components such as date pickers.&lt;/p&gt;



&lt;p&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2061179&quot;&gt;&lt;u&gt;Follow the Calendar Event Create/Edit work here&lt;/u&gt;&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;While that work is underway, why not weave in some more improvements?!&lt;/p&gt;



&lt;p&gt;After some extensive user research and testing, our design team has begun work to improve the Settings UI, starting with some updates to humanize and homogenize the various options, headings and guidance provided in that area of the application.&lt;/p&gt;



&lt;p&gt;&lt;a href=&quot;https://thunderbird.topicbox.com/groups/planning/T63740035c93f7413-Mf287d9d4c2567f014396390a&quot;&gt;&lt;u&gt;Read more about that journey here&lt;/u&gt;&lt;/a&gt;&lt;/p&gt;



&lt;h4&gt;&lt;strong&gt;Contributions are on the rise! Some AI guidance…&lt;/strong&gt;&lt;/h4&gt;



&lt;p&gt;In the past few months, we’ve seen a wonderful increase in contributions from community members – partially thanks to our move away from Mercurial to a more familiar Git-based workflow – and partially thanks to many LLMs doing a great job of interpreting our public codebase and making it far more accessible. Or it could be that our team is just such a friendly bunch that we’ve attracted a great group of people willing to support.&lt;/p&gt;



&lt;p&gt;Whatever the reason, we’re happy to see new names. faces and ideas in our chats and review queue!!&lt;/p&gt;



&lt;p&gt;Having said that…We’ve reached the point where the velocity of work is beginning to pile up and clog our review queue – so I felt it might be time to share some guidance to make the process easier for both external contributors and the internal review team. Bear in mind that while we use AI workflows in several areas, our goal is to preserve a codebase which can be maintained by humans. We’re working on a policy that may word some of these points better, but from the past few months of my experience here’s what I see as being helpful:&lt;/p&gt;



&lt;ol&gt;
&lt;li&gt;Keep patches to a digestible size and understandable complexity – Contributions should save more development time than it takes to review. If the patch contribution creates heavy work for maintainers, it will be deprioritized – so the best approach is to break the work up into pieces that can be understood more easily and discussed together. Bear in mind that many cloud-based models aren’t primarily designed to be frugal with token usage so it’s easy for patches to grow (much) larger than they actually need to be to solve the problem. Be specific with prompts to minimize the surface area of changes so they are reviewable.&lt;/li&gt;



&lt;li&gt;Humanize or write comments (within code and throughout the code review process) by hand – While we’ve become accustomed to interacting with a variety of automated systems in our daily lives, a good chunk of the joy involved in our work is to share knowledge with each other and refine the code so that it can be reused and understood by humans.&lt;/li&gt;



&lt;li&gt;Be wary of license infringement – much of our work is under the MPL license and we must all take care not to introduce refactored code that originally came from licensed software which can be rewritten and translated using LLM, then relabelled under our licence.&lt;/li&gt;



&lt;li&gt;Be transparent – it will often help to share prompts and your model when submitting code for review. Refining all aspects of our workflow is important, and we can all benefit from a collective evolution of skills and prompts that improve over time with input from the team and community.&lt;/li&gt;



&lt;li&gt;We encourage contact with a member of the team to discuss approach and architecture&lt;strong&gt; in advance&lt;/strong&gt; of spending time and tokens on a patch. Some areas of the codebase are already slated for redevelopment and it’s not always obvious what is underway and planned. Having a quick conversation to say “Hey, I’m thinking about working on this” is a great start to landing something that spends less time in review and uses less tokens, energy &amp;amp; the world’s natural resources.&lt;/li&gt;



&lt;li&gt;Of course if none of these guidelines are followed, we’ll still be very happy to receive help from the wider community – the process may just take longer and be a bit less pleasant.&lt;/li&gt;
&lt;/ol&gt;



&lt;h4&gt;&lt;strong&gt;Enterprise&lt;/strong&gt;&lt;/h4&gt;



&lt;p&gt;As parts of the world turn their infrastructure priorities toward digital sovereignty, we’ve seen an increase in interest from governments, institutions and organizations around the world who are looking to either improve their existing FOSS-based infrastructure or deploy for the first time. That has resulted in some focused efforts throughout Q3 to improve our Enterprise security and policy framework to bring it in line with the strides that the Firefox engineering team has made, and also roll out more Thunderbird-specific administrative mechanisms that allow granular control over end user configurations. Read more about your options and follow the work below:&lt;/p&gt;



&lt;p&gt;&lt;a href=&quot;https://enterprise.thunderbird.net/manage-updates-policies-and-customization/thunderbird-preferences-enterprise&quot;&gt;&lt;u&gt;Thunderbird Enterprise Policies and Relevant Preferences&lt;/u&gt;&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2053247&quot;&gt;&lt;u&gt;Thunderbird Enterprise PoC Work Items&lt;/u&gt;&lt;/a&gt;&lt;/p&gt;



&lt;h4&gt;&lt;strong&gt;Maintenance, Upstream adaptations, Recent Features and Fixes&lt;/strong&gt;&lt;/h4&gt;



&lt;p&gt;Waves of changes from upstream Firefox have continually kept the team on their toes throughout July &amp;amp; August, but the small but mighty gang have kept Daily builds largely intact each day. In addition, the team and contributor community have continued landing a series of reliability, stability, and usability improvements across the application. Recent highlights include:&lt;/p&gt;



&lt;ul&gt;
&lt;li&gt;Nico has a series of calendar improvements in the works with several now cleared for landing: &lt;a href=&quot;https://phabricator.services.mozilla.com/D319397&quot;&gt;&lt;u&gt;D319397&lt;/u&gt;&lt;/a&gt;, &lt;a href=&quot;https://phabricator.services.mozilla.com/D320418&quot;&gt;&lt;u&gt;D320418&lt;/u&gt;&lt;/a&gt;, &lt;a href=&quot;https://phabricator.services.mozilla.com/D320419&quot;&gt;&lt;u&gt;D320419 &lt;/u&gt;&lt;/a&gt;&lt;/li&gt;



&lt;li&gt;Hurtmut has again come to the rescue with a number of patches but most recently &lt;a href=&quot;https://phabricator.services.mozilla.com/D323922&quot;&gt;&lt;u&gt;solved a widespread filtering problem&lt;/u&gt;&lt;/a&gt; introduced upstream which will need to be uplifted as a matter of urgency.&lt;/li&gt;



&lt;li&gt;Richard pushed many patches since my last update, many related to upstream changes required after the Firefox project “Nova” was unleashed. He’s also been on the lookout for other breaking changes such as &lt;a href=&quot;https://phabricator.services.mozilla.com/D315848&quot;&gt;&lt;u&gt;XUL attribute modifications&lt;/u&gt;&lt;/a&gt;.&lt;/li&gt;



&lt;li&gt;Max was on fire and in constant comms with the team to deliver a large number of important changes but also helped to refine some of our processes relating to AI-driven workflows. Recently, he led an investigation into growing concerns over &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2028760&quot;&gt;&lt;u&gt;instability with connections with Gmail accounts in Bug 2028760&lt;/u&gt;&lt;/a&gt;.&lt;/li&gt;



&lt;li&gt;and many more which are listed in &lt;a href=&quot;https://www.thunderbird.net/en-US/thunderbird/156.0beta/releasenotes/&quot;&gt;&lt;u&gt;release notes for beta&lt;/u&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;If you would like to see new features as they land, and help us find some early bugs, you can try running &lt;a href=&quot;https://archive.mozilla.org/pub/thunderbird/nightly/latest-comm-central/&quot;&gt;&lt;u&gt;daily&lt;/u&gt;&lt;/a&gt; and check the pushlog to see what has recently landed. This assistance is immensely helpful for catching problems early.&lt;/p&gt;



&lt;h3&gt;—&lt;/h3&gt;



&lt;p&gt;&lt;strong&gt;Toby Pilling&lt;/strong&gt;&lt;/p&gt;



&lt;p&gt;Senior Manager, Desktop Engineering&lt;/p&gt;
&lt;p&gt;The post &lt;a href=&quot;https://blog.thunderbird.net/2026/09/thunderbird-monthly-development-digest-september-2026/&quot;&gt;Thunderbird Monthly Development Digest: September 2026&lt;/a&gt; appeared first on &lt;a href=&quot;https://blog.thunderbird.net&quot;&gt;The Thunderbird Blog&lt;/a&gt;.&lt;/p&gt;</content:encoded>
	<dc:date>2026-09-23T22:35:00+00:00</dc:date>
	<dc:creator>Toby Pilling</dc:creator>
</item>
<item rdf:about="discourse.mozilla.org-topic-149552">
	<title>Firefox Tooling Announcements: MozPhab 2.20.0 Released</title>
	<link>https://discourse.mozilla.org/t/mozphab-2-20-0-released/149552</link>
	<content:encoded>&lt;p&gt;Bugs resolved in Moz-Phab 2.20.0:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/2066178&quot;&gt;bug 2066178&lt;/a&gt; Drop support for Python 3.9&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/2068605&quot;&gt;bug 2068605&lt;/a&gt; preserve file logging from moz-phab list --format json and moz-phab patch --raw&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/2071586&quot;&gt;bug 2071586&lt;/a&gt; Review queue reminders should ignore group reviews (at least optionally)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/2073088&quot;&gt;bug 2073088&lt;/a&gt; &lt;code&gt;moz-phab submit&lt;/code&gt; is getting the file size from hg/git even if it could infer it from the blob itself&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/2074036&quot;&gt;bug 2074036&lt;/a&gt; List index out of range&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Discuss these changes in &lt;span class=&quot;hashtag-raw&quot;&gt;#engineering-workflow&lt;/span&gt; on Slack or &lt;span class=&quot;hashtag-raw&quot;&gt;#Conduit&lt;/span&gt; Matrix.&lt;/p&gt;
            &lt;p&gt;&lt;small&gt;1 post - 1 participant&lt;/small&gt;&lt;/p&gt;
            &lt;p&gt;&lt;a href=&quot;https://discourse.mozilla.org/t/mozphab-2-20-0-released/149552&quot;&gt;Read full topic&lt;/a&gt;&lt;/p&gt;</content:encoded>
	<dc:date>2026-09-23T16:45:33+00:00</dc:date>
	<dc:creator>sheehan</dc:creator>
</item>
<item rdf:about="tag:this-week-in-rust.org,2026-09-23:/blog/2026/09/23/this-week-in-rust-670/">
	<title>This Week In Rust: This Week in Rust 670</title>
	<link>https://this-week-in-rust.org/blog/2026/09/23/this-week-in-rust-670/</link>
	<content:encoded>&lt;p&gt;Hello and welcome to another issue of &lt;em&gt;This Week in Rust&lt;/em&gt;!
&lt;a href=&quot;https://www.rust-lang.org/&quot;&gt;Rust&lt;/a&gt; is a programming language empowering everyone to build reliable and efficient software.
This is a weekly summary of its progress and community.
Want something mentioned? Tag us at
&lt;a href=&quot;https://bsky.app/profile/thisweekinrust.bsky.social&quot;&gt;@thisweekinrust.bsky.social&lt;/a&gt; on Bluesky or
&lt;a href=&quot;https://mastodon.social/@thisweekinrust&quot;&gt;@ThisWeekinRust&lt;/a&gt; on mastodon.social, or
&lt;a href=&quot;https://github.com/rust-lang/this-week-in-rust&quot;&gt;send us a pull request&lt;/a&gt;.
Want to get involved? &lt;a href=&quot;https://github.com/rust-lang/rust/blob/main/CONTRIBUTING.md&quot;&gt;We love contributions&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This Week in Rust&lt;/em&gt; is openly developed &lt;a href=&quot;https://github.com/rust-lang/this-week-in-rust&quot;&gt;on GitHub&lt;/a&gt; and archives can be viewed at &lt;a href=&quot;https://this-week-in-rust.org/&quot;&gt;this-week-in-rust.org&lt;/a&gt;.
If you find any errors in this week's issue, &lt;a href=&quot;https://github.com/rust-lang/this-week-in-rust/pulls&quot;&gt;please submit a PR&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Want TWIR in your inbox? &lt;a href=&quot;https://this-week-in-rust.us11.list-manage.com/subscribe?u=fd84c1c757e02889a9b08d289&amp;amp;id=0ed8b72485&quot;&gt;Subscribe here&lt;/a&gt;.&lt;/p&gt;
&lt;h4&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#updates-from-rust-community&quot;&gt;Updates from Rust Community&lt;/a&gt;&lt;/h4&gt;


&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#official&quot;&gt;Official&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.rust-lang.org/2026/09/17/targeted-attacks/&quot;&gt;Be alert: targeted attacks on prominent Rustaceans&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.rust-lang.org/2026/09/21/github-actions-leaking-secrets-when-miri-output-is-cached/&quot;&gt;GitHub Actions leaking secrets when Miri output is cached&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.rust-lang.org/inside-rust/2026/09/21/maintainer-spotlight-alejandra-gonzalez-blyxyas/&quot;&gt;Maintainer spotlight: Alejandra González (@blyxyas)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.rust-lang.org/2026/09/22/announcing-a-maintainer-in-residence-scott-schafer-for-the-cargo-team/&quot;&gt;Announcing a Maintainer in Residence: Scott Schafer for the Cargo team&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#foundation&quot;&gt;Foundation&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://rustfoundation.org/media/guest-post-rust-is-tier-1-language-at-microsoft/&quot;&gt;Guest Post: Rust Is Tier-1 Language at Microsoft&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#projecttooling-updates&quot;&gt;Project/Tooling Updates&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://linebender.org/blog/fearless-simd-1-0/&quot;&gt;Fearless SIMD v1.0 is here&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.guillaume-gomez.fr/articles/2026-09-22+Syncing+Rust+GCC+backend+or+how+to+test+Murphy%27s+law&quot;&gt;Syncing Rust GCC backend or how to test Murphy's law&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://davidlattimore.github.io/posts/2026/09/18/benchmarking-wild-vs-mold.html&quot;&gt;Benchmarking Wild vs Mold &lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#observationsthoughts&quot;&gt;Observations/Thoughts&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://steveklabnik.com/writing/arguing-about-arguments/&quot;&gt;Arguing about arguments&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://levelup.gitconnected.com/nine-rules-for-vibe-validation-of-vibe-coded-algorithms-20db019f5583&quot;&gt;Nine Rules for Vibe Validation of Vibe-Coded (Rust) Algorithms&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#rust-walkthroughs&quot;&gt;Rust Walkthroughs&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;[video] &lt;a href=&quot;https://www.youtube.com/watch?v=ZxxUqoUTgnA&quot;&gt;Understanding Rust Ownership by Building a Zero-Copy Log Line Parser&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://matklad.github.io/2026/09/19/finding-bugs.html&quot;&gt;Finding Bugs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://dev.to/dimanovikov/why-datadiff-matches-arrays-by-key-instead-of-computing-tree-edit-distance-2ehp&quot;&gt;Why datadiff matches arrays by key instead of computing tree edit distance&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[video] &lt;a href=&quot;https://www.youtube.com/watch?v=dLx8usb759E&quot;&gt;RustCurious lesson 10: Three Ways to Fix Any Borrowing Error&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://sam.dev/blog/faster-sha1-collision-detection&quot;&gt;Solving for faster SHA-1 collision detection&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://kerkour.com/rust-docker&quot;&gt;Small and secure Docker images for Rust: Alpine vs Debian vs Scratch&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#crate-of-the-week&quot;&gt;Crate of the Week&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;This week's crate is &lt;a href=&quot;https://github.com/brmmm3/fastlogging-rs&quot;&gt;fastlogging-rs&lt;/a&gt;, a fast logger which supports 8 different programming languages.&lt;/p&gt;
&lt;p&gt;Thanks to &lt;a href=&quot;https://users.rust-lang.org/t/crate-of-the-week/2704/1673&quot;&gt;brmmm3&lt;/a&gt; for the self-suggestion!&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://users.rust-lang.org/t/crate-of-the-week/2704&quot;&gt;Please submit your suggestions and votes for next week&lt;/a&gt;!&lt;/p&gt;
&lt;h4&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#calls-for-testing&quot;&gt;Calls for Testing&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;An important step for RFC implementation is for people to experiment with the
implementation and give feedback, especially before stabilization.&lt;/p&gt;
&lt;p&gt;If you are a feature implementer and would like your RFC to appear in this list, add a
&lt;code&gt;call-for-testing&lt;/code&gt; label to your RFC along with a comment providing testing instructions and/or
guidance on which aspect(s) of the feature need testing.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;No calls for testing were issued this week by
&lt;a href=&quot;https://github.com/rust-lang/rust/issues?q=state%3Aopen%20label%3Acall-for-testing%20state%3Aopen&quot;&gt;Rust&lt;/a&gt;,
&lt;a href=&quot;https://github.com/rust-lang/cargo/issues?q=state%3Aopen%20label%3Acall-for-testing%20state%3Aopen&quot;&gt;Cargo&lt;/a&gt;,
&lt;a href=&quot;https://github.com/rust-lang/rustup/issues?q=state%3Aopen%20label%3Acall-for-testing%20state%3Aopen&quot;&gt;Rustup&lt;/a&gt; or
&lt;a href=&quot;https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing%20state%3Aopen&quot;&gt;Rust language RFCs&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/rust-lang/this-week-in-rust/issues&quot;&gt;Let us know&lt;/a&gt; if you would like your feature to be tracked as a part of this list.&lt;/p&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#rfcs&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing&quot;&gt;RFCs&lt;/a&gt;&lt;/h5&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#rust&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/labels/call-for-testing&quot;&gt;Rust&lt;/a&gt;&lt;/h5&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#rustup&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/rust-lang/rustup/labels/call-for-testing&quot;&gt;Rustup&lt;/a&gt;&lt;/h5&gt;
&lt;p&gt;If you are a feature implementer and would like your RFC to appear on the above list, add the new &lt;code&gt;call-for-testing&lt;/code&gt;
label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature
need testing.&lt;/p&gt;
&lt;h4&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#call-for-participation-projects-and-speakers&quot;&gt;Call for Participation; projects and speakers&lt;/a&gt;&lt;/h4&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#cfp-projects&quot;&gt;CFP - Projects&lt;/a&gt;&lt;/h5&gt;
&lt;p&gt;Always wanted to contribute to open-source projects but did not know where to start?
Every week we highlight some tasks from the Rust community for you to pick and get started!&lt;/p&gt;
&lt;p&gt;Some of these tasks may also have mentors available, visit the task page for more information.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/lacs-project/sysknife/issues/482&quot;&gt;sysknife - A successful automatic rollback renders to the operator as unknown&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/lacs-project/sysknife/issues/480&quot;&gt;sysknife - sysknife-setup --uninstall deletes .mcp.json whole, taking every other MCP server with it&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/lacs-project/sysknife/issues/268&quot;&gt;sysknife - audit export publishes request_hash, an unsalted hash over unredacted params, with no statement of its sensitivity&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/apache/iggy/issues/4165&quot;&gt;Apache Iggy - Python SDK: expose consumer shutdown and offset drain timeout&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/apache/iggy/issues/4163&quot;&gt;Apache Iggy - Python SDK: expose client disconnect and shutdown lifecycle methods&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;If you are a Rust project owner and are looking for contributors, please submit tasks &lt;a href=&quot;https://github.com/rust-lang/this-week-in-rust?tab=readme-ov-file#call-for-participation-guidelines&quot;&gt;here&lt;/a&gt; or through a &lt;a href=&quot;https://github.com/rust-lang/this-week-in-rust&quot;&gt;PR to TWiR&lt;/a&gt; or by reaching out on &lt;a href=&quot;https://bsky.app/profile/thisweekinrust.bsky.social&quot;&gt;Bluesky&lt;/a&gt; or &lt;a href=&quot;https://mastodon.social/@thisweekinrust&quot;&gt;Mastodon&lt;/a&gt;!&lt;/p&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#cfp-events&quot;&gt;CFP - Events&lt;/a&gt;&lt;/h5&gt;
&lt;p&gt;Are you a new or experienced speaker looking for a place to share something cool? This section highlights events that are being planned and are accepting submissions to join their event as a speaker.&lt;/p&gt;



&lt;p&gt;If you are an event organizer hoping to expand the reach of your event, please submit a link to the website through a &lt;a href=&quot;https://github.com/rust-lang/this-week-in-rust&quot;&gt;PR to TWiR&lt;/a&gt; or by reaching out on &lt;a href=&quot;https://bsky.app/profile/thisweekinrust.bsky.social&quot;&gt;Bluesky&lt;/a&gt; or &lt;a href=&quot;https://mastodon.social/@thisweekinrust&quot;&gt;Mastodon&lt;/a&gt;!&lt;/p&gt;
&lt;h4&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#updates-from-the-rust-project&quot;&gt;Updates from the Rust Project&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;618 pull requests were &lt;a href=&quot;https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2026-09-15..2026-09-22&quot;&gt;merged in the last week&lt;/a&gt;&lt;/p&gt;
&lt;h6&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#compiler&quot;&gt;Compiler&lt;/a&gt;&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/163027&quot;&gt;A couple polonius constraints perf improvements&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/162747&quot;&gt;AST lowering cleanups&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/162922&quot;&gt;an assortment of polonius tweaks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/147876&quot;&gt;check &lt;code&gt;tainted_by_error&lt;/code&gt; in LateLint&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/162925&quot;&gt;even more cleanups for &lt;code&gt;rustc_builtin_macros&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/162712&quot;&gt;perf: keep the first macro syntax-context mapping inline&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/153662&quot;&gt;suggest fully qualified path on method name collision&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h6&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#library&quot;&gt;Library&lt;/a&gt;&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/163007&quot;&gt;add &lt;code&gt;Dir::try_clone&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/162750&quot;&gt;add case mapping fast paths for Latin-1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/162865&quot;&gt;complex conjugate, negation and default&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/147790&quot;&gt;constify comparison traits on sliced types&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/156216&quot;&gt;implement const Iterator for Range&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/162856&quot;&gt;stabilize &lt;code&gt;CommandExt::show_window&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/160544&quot;&gt;stabilize &lt;code&gt;feature(trim_prefix_suffix)&lt;/code&gt; ({&lt;code&gt;str&lt;/code&gt;,&lt;code&gt;[T]&lt;/code&gt;, &lt;code&gt;Path&lt;/code&gt;}&lt;code&gt;::trim_prefix&lt;/code&gt; and {&lt;code&gt;str&lt;/code&gt;, &lt;code&gt;[T]&lt;/code&gt;}&lt;code&gt;::trim_suffix&lt;/code&gt;)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/160108&quot;&gt;stabilize &lt;code&gt;windows_process_extensions_main_thread_handle&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h6&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#cargo&quot;&gt;Cargo&lt;/a&gt;&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/pull/17489&quot;&gt;&lt;code&gt;build-rs&lt;/code&gt;: make &lt;code&gt;unstable&lt;/code&gt; compile&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/pull/17485&quot;&gt;account for (uplift) hardlinks when calculating clean file size&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/pull/17469&quot;&gt;fix: return correct package specs when resolving workspace deps&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/pull/17486&quot;&gt;remove -Zasymmetric-token / cargo:paseto&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/pull/17479&quot;&gt;report the number of errors with &lt;code&gt;build.warnings='deny'&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h6&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#rustdoc&quot;&gt;Rustdoc&lt;/a&gt;&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/163036&quot;&gt;Correctly handle &lt;code&gt;dyn&lt;/code&gt; trait methods linking for jump to def feature&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/162669&quot;&gt;Correctly handle intra-doc links on inlined same item with different names&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h6&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#clippy&quot;&gt;Clippy&lt;/a&gt;&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-clippy/pull/16592&quot;&gt;add &lt;code&gt;must_use_without_reason&lt;/code&gt; lint&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-clippy/pull/17731&quot;&gt;fix &lt;code&gt;const_trait_impl&lt;/code&gt; related infinite loop in &lt;code&gt;needless_borrows_for_generic_args&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-clippy/pull/16778&quot;&gt;generalize &lt;code&gt;extend_with_drain&lt;/code&gt; to &lt;code&gt;VecDeque&lt;/code&gt; and &lt;code&gt;BinaryHeap&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-clippy/pull/17631&quot;&gt;lint &lt;code&gt;suboptimal_flops&lt;/code&gt; for &lt;code&gt;mul_add&lt;/code&gt;, &lt;code&gt;custom_abs&lt;/code&gt; and &lt;code&gt;radians&lt;/code&gt; in const context&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-clippy/pull/16885&quot;&gt;lint nested &lt;code&gt;format_args!&lt;/code&gt; for uninlined args&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h6&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#rust-analyzer&quot;&gt;Rust-Analyzer&lt;/a&gt;&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-analyzer/pull/23407&quot;&gt;prioritise required items in trait autocomplete&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-analyzer/pull/23384&quot;&gt;support completions inside &lt;code&gt;cfg!()&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-analyzer/pull/23390&quot;&gt;support hover on cfg predicate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-analyzer/pull/23395&quot;&gt;complete cfg value in string&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-analyzer/pull/23405&quot;&gt;correct order deprecated const in builtin ty&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-analyzer/pull/23399&quot;&gt;not complete attr args when before exists args&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-analyzer/pull/23375&quot;&gt;watch include roots recursively once, not every directory&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#rust-compiler-performance-triage&quot;&gt;Rust Compiler Performance Triage&lt;/a&gt;&lt;/h5&gt;


&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#approved-rfcs&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/rust-lang/rfcs/commits/master&quot;&gt;Approved RFCs&lt;/a&gt;&lt;/h5&gt;
&lt;p&gt;Changes to Rust follow the Rust &lt;a href=&quot;https://github.com/rust-lang/rfcs#rust-rfcs&quot;&gt;RFC (request for comments) process&lt;/a&gt;. These
are the RFCs that were approved for implementation this week:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;No RFCs were approved this week.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#final-comment-period&quot;&gt;Final Comment Period&lt;/a&gt;&lt;/h5&gt;
&lt;p&gt;Every week, &lt;a href=&quot;https://www.rust-lang.org/team.html&quot;&gt;the team&lt;/a&gt; announces the 'final comment period' for RFCs and key PRs
which are reaching a decision. Express your opinions now.&lt;/p&gt;
&lt;h6&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#tracking-issues-prs&quot;&gt;Tracking Issues &amp;amp; PRs&lt;/a&gt;&lt;/h6&gt;
&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#rust_1&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/issues?q=is%3Aopen%20label%3Afinal-comment-period%20sort%3Aupdated-desc%20state%3Aopen&quot;&gt;Rust&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/issues/162130&quot;&gt;Types FCP v2: Supertrait item shadowing stabilization&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/161904&quot;&gt;declare C and C-unwind as mutually ABI-compatible&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/157973&quot;&gt;Distinguish &lt;code&gt;repr(C)&lt;/code&gt; ZSTs from others in ABI compatibility rules&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/162536&quot;&gt;Implement Default for NumBuffer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/160877&quot;&gt;rustc: Stabilize the WebAssembly &lt;code&gt;wide-arithmetic&lt;/code&gt; feature&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/159564&quot;&gt;Allow elided ('static) lifetimes in &lt;code&gt;thread_local!&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/161710&quot;&gt;Stabilize &lt;code&gt;mem::conjure_zst&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/157144&quot;&gt;Prevent mutating the global environment pointer in &lt;code&gt;CommandExt::exec&lt;/code&gt; and opt to use execve and resolve path manually&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/146099&quot;&gt;Stabilize &lt;code&gt;debug_closure_helpers&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/129036&quot;&gt;Additional NonZero conversions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/161015&quot;&gt;Stabilize &lt;code&gt;funnel_shifts&lt;/code&gt; (including &lt;code&gt;const&lt;/code&gt;)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/161712&quot;&gt;Stabilize &lt;code&gt;Result::into_{ok,err}&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/161163&quot;&gt;windows: stabilise inherit_handles&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#cargo_1&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/issues?q=is%3Aopen%20label%3Afinal-comment-period%20sort%3Aupdated-desc%20state%3Aopen&quot;&gt;Cargo&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/issues/17456&quot;&gt;OUT_DIR is also set when running the program&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/pull/17215&quot;&gt;feat(config): Add build.profile, install.profile&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/pull/17329&quot;&gt;fix(git)!: Default to net.git-fetch-with-cli if git is present&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#compiler-team-mcps-only&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/rust-lang/compiler-team/issues?q=label%3Amajor-change%20label%3Afinal-comment-period%20state%3Aopen&quot;&gt;Compiler Team&lt;/a&gt; &lt;a href=&quot;https://forge.rust-lang.org/compiler/mcp.html&quot;&gt;(MCPs only)&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/compiler-team/issues/1037&quot;&gt;Create a new tier 3 target: &lt;code&gt;wasm32-webp2&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/compiler-team/issues/1039&quot;&gt;Test wasm in CI with threads &amp;amp; unwinding&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#leadership-council&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/rust-lang/leadership-council/issues?q=state%3Aopen%20label%3Afinal-comment-period%20state%3Aopen&quot;&gt;Leadership Council&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/leadership-council/issues/325&quot;&gt;Formulate a &lt;code&gt;trusted-contributors&lt;/code&gt; marker team&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/leadership-council/issues/320&quot;&gt;Participation in Outreachy Dec 2026 (dedication of funds)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;No Items entered Final Comment Period this week for
&lt;a href=&quot;https://github.com/rust-lang/rfcs/issues?q=state%3Aopen%20label%3Afinal-comment-period%20state%3Aopen&quot;&gt;Rust RFCs&lt;/a&gt;,
&lt;a href=&quot;https://github.com/rust-lang/lang-team/issues?q=is%3Aopen%20label%3Afinal-comment-period%20sort%3Aupdated-desc%20state%3Aopen&quot;&gt;Language Team&lt;/a&gt;,
&lt;a href=&quot;https://github.com/rust-lang/reference/issues?q=is%3Aopen%20label%3Afinal-comment-period%20sort%3Aupdated-desc%20state%3Aopen&quot;&gt;Language Reference&lt;/a&gt; or
&lt;a href=&quot;https://github.com/rust-lang/unsafe-code-guidelines/issues?q=is%3Aopen%20label%3Afinal-comment-period%20sort%3Aupdated-desc%20state%3Aopen&quot;&gt;Unsafe Code Guidelines&lt;/a&gt;.&lt;/em&gt;
Let us know if you would like your PRs, Tracking Issues or RFCs to be tracked as a part of this list.&lt;/p&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#new-and-updated-rfcs&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/rust-lang/rfcs/pulls&quot;&gt;New and Updated RFCs&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;No New or Updated RFCs were created this week.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#upcoming-events&quot;&gt;Upcoming Events&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Rusty Events between 2026-09-23 - 2026-10-21 🦀&lt;/p&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#virtual&quot;&gt;Virtual&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;2026-09-24 | Virtual (Berlin, DE) | &lt;a href=&quot;https://www.meetup.com/rust-berlin&quot;&gt;Rust Berlin&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-berlin/events/315907979/&quot;&gt;&lt;strong&gt;Rust Hack and Learn&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-24 | Virtual (Charlottesville, VA, US) | &lt;a href=&quot;https://www.meetup.com/charlottesville-rust-meetup&quot;&gt;Charlottesville Rust Meetup&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/charlottesville-rust-meetup/events/316460694/&quot;&gt;&lt;strong&gt;Rust Cells — Interior Mutability from Rust Core to Tock OS&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-29 | Virtual (London, UK) | &lt;a href=&quot;https://www.meetup.com/women-in-rust&quot;&gt;Women in Rust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/women-in-rust/events/315691730/&quot;&gt;&lt;strong&gt;Lunch &amp;amp; Learn: Crates, Tips &amp;amp; Tricks Lightning Talks - Bring your ideas!&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-30 | Virtual (Cardiff, UK) | &lt;a href=&quot;https://www.meetup.com/rust-and-c-plus-plus-in-cardiff&quot;&gt;Rust and C++ Cardiff&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-and-c-plus-plus-in-cardiff/events/316486941/&quot;&gt;&lt;strong&gt;Operating Systems Book Club: Segmentation and Introduction to Paging&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-02 | Virtual | &lt;a href=&quot;https://luma.com/rust-girona&quot;&gt;Rust Girona&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://luma.com/yqxvguts&quot;&gt;&lt;strong&gt;Sessió setmanal de codificació / Weekly coding session&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-04 | Virtual (Dallas, TX, US) | &lt;a href=&quot;https://www.meetup.com/dallasrust&quot;&gt;Dallas Rust User Meetup&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/dallasrust/events/316134009/&quot;&gt;&lt;strong&gt;Rust Deep Learning: First Sunday&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-06 | Virtual (London, UK) | &lt;a href=&quot;https://www.meetup.com/women-in-rust&quot;&gt;Women in Rust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/women-in-rust/events/315773044/&quot;&gt;&lt;strong&gt;👋 Community Catch Up&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-07 | Virtual (Indianapolis, IN, US) | &lt;a href=&quot;https://www.meetup.com/indyrs&quot;&gt;Indy Rust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/indyrs/events/wqzhftyjcnbkb/&quot;&gt;&lt;strong&gt;Indy.rs - with Social Distancing&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-08 | Virtual (Berlin, DE) | &lt;a href=&quot;https://www.meetup.com/rust-berlin&quot;&gt;Rust Berlin&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-berlin/events/315907995/&quot;&gt;&lt;strong&gt;Rust Hack and Learn&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-08 | Virtual (Nürnberg, DE) | &lt;a href=&quot;https://www.meetup.com/rust-noris&quot;&gt;Rust Nuremberg&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-noris/events/315619617/&quot;&gt;&lt;strong&gt;Rust Nürnberg online&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-10 | Virtual (Gdansk, PL) | &lt;a href=&quot;https://www.meetup.com/stacja-it-trojmiasto&quot;&gt;Stacja IT Trójmiasto&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/stacja-it-trojmiasto/events/316381946/&quot;&gt;&lt;strong&gt;[BEZPŁATNIE] Programowanie w języku Rust&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-13 | Virtual (Dallas, TX, US) | &lt;a href=&quot;https://www.meetup.com/dallasrust&quot;&gt;Dallas Rust User Meetup&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/dallasrust/events/310254772/&quot;&gt;&lt;strong&gt;Second Tuesday&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-14 - 2026-10-17 | Hybrid (Barcelona, ES) | &lt;a href=&quot;https://eurorust.eu/&quot;&gt;EuroRust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eurorust.eu/&quot;&gt;&lt;strong&gt;EuroRust 2026&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-18 | Virtual (Dallas, TX, US) | &lt;a href=&quot;https://www.meetup.com/dallasrust&quot;&gt;Dallas Rust User Meetup&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/dallasrust/events/316563013/&quot;&gt;&lt;strong&gt;Rust Deep Learning: Third Sunday&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-20 | Virtual (Washington, DC, US) | &lt;a href=&quot;https://www.meetup.com/rustdc&quot;&gt;Rust DC&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rustdc/events/fhvsztyjcnbbc/&quot;&gt;&lt;strong&gt;Mid-month Rustful&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-21 | Hybrid (Vancouver, CA) | &lt;a href=&quot;https://www.meetup.com/vancouver-rust&quot;&gt;Vancouver Rust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/vancouver-rust/events/315210233/&quot;&gt;&lt;strong&gt;Disposable Agent Sandboxes in Rust&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#asia&quot;&gt;Asia&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;2026-09-23 | Maharashtra, IN | &lt;a href=&quot;https://hasgeek.com/rustpune&quot;&gt;Rust Pune&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://hasgeek.com/rustpune/exploring-standard-traits-in-rust/&quot;&gt;&lt;strong&gt;Exploring standard traits in Rust&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#europe&quot;&gt;Europe&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;2026-09-24 | Aarhus, DK | &lt;a href=&quot;https://www.meetup.com/rust-aarhus&quot;&gt;Rust Aarhus&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-aarhus/events/316236528/&quot;&gt;&lt;strong&gt;Talk Night at SkyTEM&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-24 | Amsterdam, NL | &lt;a href=&quot;https://www.meetup.com/rust-amsterdam-group&quot;&gt;Rust Developers Amsterdam Group&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-amsterdam-group/events/316162802/&quot;&gt;&lt;strong&gt;Rust Meetup @ BlockTech&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-24 | Frankfurt, DE | &lt;a href=&quot;https://www.meetup.com/rust-rhein-main&quot;&gt;Rust Rhein-Main&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-rhein-main/events/316328297/&quot;&gt;&lt;strong&gt;AI Agentic Coding&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-24 | London, UK | &lt;a href=&quot;https://www.meetup.com/rust-london-user-group&quot;&gt;Rust London User Group&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-london-user-group/events/316560409/&quot;&gt;&lt;strong&gt;Rust London, Lloyds Banking Group, with Luca Palmieri &amp;amp; Mainmatter&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-25 | Edinburgh, UK | &lt;a href=&quot;https://www.meetup.com/rust-edi&quot;&gt;Rust and Friends&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-and-friends/events/316610395/&quot;&gt;&lt;strong&gt;Rust and Friends (daytime coffee)&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-26 | Stockholm, SE | &lt;a href=&quot;https://www.meetup.com/stockholm-rust&quot;&gt;Stockholm Rust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/stockholm-rust/events/316570423/&quot;&gt;&lt;strong&gt;Ferris' Fika Forum #30&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-28 | Augsburg, DE | &lt;a href=&quot;https://rust-augsburg.github.io/meetup&quot;&gt;Rust Meetup Augsburg&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://rust-augsburg.github.io/meetup/Meetup_21.html&quot;&gt;&lt;strong&gt;Rust Meetup #21: Maximilian Grauvogl &amp;amp; Marcel Fink - From Bits to Bugs: A Rust generator for SUIT Manifests and Structure-Aware Parser Fuzzing&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-29 | Manchester, UK | &lt;a href=&quot;https://www.meetup.com/rust-manchester&quot;&gt;Rust Manchester&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-manchester/events/316200964/&quot;&gt;&lt;strong&gt;Rust Manchester September Code Night&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-29 | Milano, IT | &lt;a href=&quot;https://www.meetup.com/rust-language-milano&quot;&gt;Rust Language Milan&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-language-milan/events/316654592/&quot;&gt;&lt;strong&gt;Why Rust is not really OOP?&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-30 | Basel, CH | &lt;a href=&quot;https://www.meetup.com/rust-basel&quot;&gt;Rust Basel&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-basel/events/315986893/&quot;&gt;&lt;strong&gt;Rust Meetup #16 @ ERNI&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-30 | Berlin, DE | &lt;a href=&quot;https://www.meetup.com/rust-berlin&quot;&gt;Rust Berlin&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-berlin/events/316661690/&quot;&gt;&lt;strong&gt;Rust Berlin Talks: The next generation&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-05 | München, DE | &lt;a href=&quot;https://www.meetup.com/rust-munich&quot;&gt;Rust Munich&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-munich/events/316244709/&quot;&gt;&lt;strong&gt;Rust Munich 2026 / 3&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-08 | Oslo, NO | &lt;a href=&quot;https://www.meetup.com/rust-oslo&quot;&gt;Rust Oslo&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-oslo/events/316564477/&quot;&gt;&lt;strong&gt;Rust Hack'n'Learn at Kampen Bistro&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-10 | Geneva, CH | &lt;a href=&quot;https://www.posttenebraslab.ch/wiki/events/monthly_meeting/rust_meetup&quot;&gt;Rust Geneva&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.posttenebraslab.ch/wiki/events/monthly_meeting/rust_meetup&quot;&gt;&lt;strong&gt;Rust Meetup Geneva&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-14 | Barcelona, ES | &lt;a href=&quot;https://www.meetup.com/bcnrust&quot;&gt;BcnRust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/bcnrust/events/316316234/&quot;&gt;&lt;strong&gt;22nd bcnrust session&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-14 - 2026-10-17 | Hybrid (Barcelona, ES) | &lt;a href=&quot;https://eurorust.eu/&quot;&gt;EuroRust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eurorust.eu/&quot;&gt;&lt;strong&gt;EuroRust 2026&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-20 | Leipzig, DE | &lt;a href=&quot;https://www.meetup.com/rust-modern-systems-programming-in-leipzig&quot;&gt;Rust - Modern Systems Programming in Leipzig&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-modern-systems-programming-in-leipzig/events/313816496/&quot;&gt;&lt;strong&gt;Topic TBD&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#north-america&quot;&gt;North America&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;2026-09-23 | Austin, TX, US | &lt;a href=&quot;https://www.meetup.com/rust-atx&quot;&gt;Rust ATX&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-atx/events/xvkdgtyjcmbfc/&quot;&gt;&lt;strong&gt;Rust Lunch - Fareground&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-23 | Austin, TX, US | &lt;a href=&quot;https://www.meetup.com/rust-atx&quot;&gt;Rust ATX&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-atx/events/316404827/&quot;&gt;&lt;strong&gt;Rust Lunch - Fareground&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-24 | Atlanta, GA, US | &lt;a href=&quot;https://www.meetup.com/rust-atl&quot;&gt;Rust Atlanta&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-atl/events/313539333/&quot;&gt;&lt;strong&gt;Rust-Atl&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-26 | Boston, MA, US | &lt;a href=&quot;https://www.meetup.com/bostonrust&quot;&gt;Boston Rust Meetup&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/bostonrust/events/316378817/&quot;&gt;&lt;strong&gt;Harvard Rust Lunch, Sep 26&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-01 | Saint Louis, MO, US | &lt;a href=&quot;https://www.meetup.com/stl-rust&quot;&gt;STL Rust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/stl-rust/events/316410027/&quot;&gt;&lt;strong&gt;Building a Minimal, Rootless Container in Rust&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-03 | Boston, MA, US | &lt;a href=&quot;https://www.meetup.com/bostonrust&quot;&gt;Boston Rust Meetup&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/bostonrust/events/316378820/&quot;&gt;&lt;strong&gt;Alewife Rust Lunch, Oct 3&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-08 | San Diego, CA, US | &lt;a href=&quot;https://www.meetup.com/san-diego-rust&quot;&gt;San Diego Rust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/san-diego-rust/events/316319730/&quot;&gt;&lt;strong&gt;San Diego Rust October Meetup - Back in person!&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-10 | Boston, MA, US | &lt;a href=&quot;https://www.meetup.com/bostonrust&quot;&gt;Boston Rust Meetup&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/bostonrust/events/316378823/&quot;&gt;&lt;strong&gt;Back Bay Rust Lunch, Oct 10&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-14 | Los Angeles, CA, US | &lt;a href=&quot;https://www.meetup.com/rust-los-angeles&quot;&gt;Rust Los Angeles&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-los-angeles/events/315795432/&quot;&gt;&lt;strong&gt;Rust LA October: AI &amp;amp; Rust w/ Oxen.AI &amp;amp; Origin Lab!&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-20 | San Francisco, CA, US | &lt;a href=&quot;https://www.meetup.com/san-francisco-rust-study-group&quot;&gt;San Francisco Rust Study Group&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/san-francisco-rust-study-group/events/315783988/&quot;&gt;&lt;strong&gt;Rust Hacking in Person&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-21 | Hybrid (Vancouver, CA) | &lt;a href=&quot;https://www.meetup.com/vancouver-rust&quot;&gt;Vancouver Rust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/vancouver-rust/events/315210233/&quot;&gt;&lt;strong&gt;Disposable Agent Sandboxes in Rust&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#oceania&quot;&gt;Oceania&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;2026-09-29 | Barton, AU | &lt;a href=&quot;https://www.meetup.com/rust-canberra&quot;&gt;Canberra Rust User Group&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-canberra/events/316398052/&quot;&gt;&lt;strong&gt;September Meetup&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#south-america&quot;&gt;South America&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;2026-10-08 | Buenos Aires, AR | &lt;a href=&quot;https://www.meetup.com/rust-argentina&quot;&gt;Rust en Español&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-argentina/events/316664266/&quot;&gt;&lt;strong&gt;WebApp Ergonomics y Secretos Distribuidos.&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you are running a Rust event please add it to the &lt;a href=&quot;https://www.google.com/calendar/embed?src=apd9vmbc22egenmtu5l6c5jbfc%40group.calendar.google.com&quot;&gt;calendar&lt;/a&gt; to get
it mentioned here. Please remember to add a link to the event too.
Email the &lt;a href=&quot;mailto:community-team@rust-lang.org&quot;&gt;Rust Community Team&lt;/a&gt; for access.&lt;/p&gt;
&lt;h4&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#jobs&quot;&gt;Jobs&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Please see the latest &lt;a href=&quot;https://www.reddit.com/r/rust/comments/1wo5btb/official_rrust_whos_hiring_thread_for_jobseekers/&quot;&gt;Who's Hiring thread on r/rust&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#quote-of-the-week&quot;&gt;Quote of the Week&lt;/a&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;operational pedantics&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;– &lt;a href=&quot;https://rust-lang.zulipchat.com/#narrow/channel/136281-t-opsem/topic/Looping.20opsem.20into.20libs.20changes/near/626044816&quot;&gt;Clar Fon on rust zulip&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Thanks to &lt;a href=&quot;https://users.rust-lang.org/t/twir-quote-of-the-week/328/1803&quot;&gt;Jules Bertholet&lt;/a&gt; for the suggestion!&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://users.rust-lang.org/t/twir-quote-of-the-week/328&quot;&gt;Please submit quotes and vote for next week!&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This Week in Rust is edited by:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/nellshamrell&quot;&gt;nellshamrell&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/llogiq&quot;&gt;llogiq&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/ericseppanen&quot;&gt;ericseppanen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/extrawurst&quot;&gt;extrawurst&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/U007D&quot;&gt;U007D&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/mariannegoldin&quot;&gt;mariannegoldin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/bdillo&quot;&gt;bdillo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/opeolluwa&quot;&gt;opeolluwa&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/bnchi&quot;&gt;bnchi&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/KannanPalani57&quot;&gt;KannanPalani57&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/tzilist&quot;&gt;tzilist&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Email list hosting is sponsored by &lt;a href=&quot;https://foundation.rust-lang.org/&quot;&gt;The Rust Foundation&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;small&gt;&lt;a href=&quot;https://www.reddit.com/r/rust/comments/1woppw3/this_week_in_rust_670&quot;&gt;Discuss on r/rust&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;</content:encoded>
	<dc:date>2026-09-23T04:00:00+00:00</dc:date>
	<dc:creator>TWiR Contributors</dc:creator>
</item>
<item rdf:about="discourse.mozilla.org-topic-149538">
	<title>Firefox Tooling Announcements: Happy BMO Push Day! (20260922.1)</title>
	<link>https://discourse.mozilla.org/t/happy-bmo-push-day-20260922-1/149538</link>
	<content:encoded>&lt;p&gt;&lt;a href=&quot;https://github.com/mozilla-bteam/bmo/tree/release-20260922.1&quot; rel=&quot;noopener nofollow ugc&quot;&gt;Github Link&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The following changes have been pushed to &lt;a href=&quot;https://bugzilla.mozilla.org&quot;&gt;bugzilla.mozilla.org&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;Thanks to Kohei for his work on the newly revised Guided Bug Entry form! If you want to check it out yourself, then click on the &lt;strong&gt;Switch to Bugzilla Helper&lt;/strong&gt; link at the bottom of the enter bug product selection page. Normally users without &lt;strong&gt;canconfirm&lt;/strong&gt; permissions will see the Guided Bug page by default which a large percentage of our Bugzilla users.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1995464&quot;&gt;Bug 1995464&lt;/a&gt; - Overhaul guided bug entry form&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2002553&quot;&gt;Bug 2002553&lt;/a&gt; - BMO rest api search: Failed to fetch key from network storage when an attachment has been deleted&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Discuss these changes in the &lt;a href=&quot;https://matrix.to/#/#bmo:mozilla.org&quot; rel=&quot;noopener nofollow ugc&quot;&gt;BMO Matrix Room&lt;/a&gt;&lt;/p&gt;
            &lt;p&gt;&lt;small&gt;1 post - 1 participant&lt;/small&gt;&lt;/p&gt;
            &lt;p&gt;&lt;a href=&quot;https://discourse.mozilla.org/t/happy-bmo-push-day-20260922-1/149538&quot;&gt;Read full topic&lt;/a&gt;&lt;/p&gt;</content:encoded>
	<dc:date>2026-09-22T22:25:20+00:00</dc:date>
	<dc:creator>dkl1</dc:creator>
</item>
<item rdf:about="discourse.mozilla.org-topic-149536">
	<title>Firefox Tooling Announcements: Firefox Profiler Deployment (September 22, 2026)</title>
	<link>https://discourse.mozilla.org/t/firefox-profiler-deployment-september-22-2026/149536</link>
	<content:encoded>&lt;p&gt;The latest version of the &lt;a href=&quot;https://profiler.firefox.com/&quot; rel=&quot;noopener nofollow ugc&quot;&gt;Firefox Profiler&lt;/a&gt; is now live! Check out the full changelog below to see what’s changed:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Highlights:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[fatadel] Show a category breakdown in profiler-cli (&lt;a href=&quot;https://github.com/firefox-devtools/profiler/pull/6256&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#6256&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;[fatadel] Show allocation data in the cli (&lt;a href=&quot;https://github.com/firefox-devtools/profiler/pull/6246&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#6246&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;[Florian Quèze] profiler-cli: add a thread list command (&lt;a href=&quot;https://github.com/firefox-devtools/profiler/pull/6273&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#6273&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;[Florian Quèze] profiler-cli: add a thread list command (&lt;a href=&quot;https://github.com/firefox-devtools/profiler/pull/6273&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#6273&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;[Nazım Can Altınova] Add a permalink command to profiler-cli for already published profiles (&lt;a href=&quot;https://github.com/firefox-devtools/profiler/pull/6331&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#6331&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;[Florian Quèze] profiler-cli: add profile markers for cross-thread marker search (&lt;a href=&quot;https://github.com/firefox-devtools/profiler/pull/6276&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#6276&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;[Nazım Can Altınova] Add &lt;code&gt;--with-samply&lt;/code&gt; to “profiler-cli load” (&lt;a href=&quot;https://github.com/firefox-devtools/profiler/pull/6339&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#6339&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Other Changes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[Florian Quèze] profiler-cli: name the process in the thread banner, and follow the queried thread (&lt;a href=&quot;https://github.com/firefox-devtools/profiler/pull/6269&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#6269&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;[fatadel] Drive PII sanitization from marker schemas (&lt;a href=&quot;https://github.com/firefox-devtools/profiler/pull/6291&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#6291&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;[fatadel] Move FileIO table labels into marker schemas (&lt;a href=&quot;https://github.com/firefox-devtools/profiler/pull/6296&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#6296&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;[Markus Stange] Add missing finishRawMarkerTableBuilder. (&lt;a href=&quot;https://github.com/firefox-devtools/profiler/pull/6318&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#6318&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;[fatadel] Fix the upload error button contrast (&lt;a href=&quot;https://github.com/firefox-devtools/profiler/pull/6315&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#6315&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;[Markus Stange] Allow typed arrays in the nativeSymbols table (&lt;a href=&quot;https://github.com/firefox-devtools/profiler/pull/6300&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#6300&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;[Markus Stange] Remove brittle test. (&lt;a href=&quot;https://github.com/firefox-devtools/profiler/pull/6322&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#6322&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;[Markus Stange] Fix file extension typo. (&lt;a href=&quot;https://github.com/firefox-devtools/profiler/pull/6325&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#6325&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;[Markus Stange] Typed arrays + flags for the FuncTable (&lt;a href=&quot;https://github.com/firefox-devtools/profiler/pull/6323&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#6323&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;[fatadel] Convert extension text markers to structured payloads (&lt;a href=&quot;https://github.com/firefox-devtools/profiler/pull/6314&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#6314&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;[Florian Quèze] profiler-cli: include per-marker fields and data in --list --json (&lt;a href=&quot;https://github.com/firefox-devtools/profiler/pull/6275&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#6275&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;[Markus Stange] Speed up call tree sidebar by sharing work with the activity graph (&lt;a href=&quot;https://github.com/firefox-devtools/profiler/pull/6329&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#6329&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;[Nazım Can Altınova] &lt;img alt=&quot;:clockwise_vertical_arrows:&quot; class=&quot;emoji&quot; height=&quot;20&quot; src=&quot;https://emoji.discourse-cdn.com/twitter/clockwise_vertical_arrows.png?v=15&quot; title=&quot;:clockwise_vertical_arrows:&quot; width=&quot;20&quot; /&gt; Sync: l10n → main (Sept 22, 2026) (&lt;a href=&quot;https://github.com/firefox-devtools/profiler/pull/6341&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#6341&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;[Nazım Can Altınova] Bump profiler-cli version to 0.10.0 (&lt;a href=&quot;https://github.com/firefox-devtools/profiler/pull/6342&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#6342&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Big thanks to our amazing localizers for making this release possible:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;el: Jim Spentzos&lt;/li&gt;
&lt;li&gt;ro: robbp&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Find out more about the Firefox Profiler on &lt;a href=&quot;https://profiler.firefox.com&quot; rel=&quot;noopener nofollow ugc&quot;&gt;profiler.firefox.com&lt;/a&gt;! If you have any questions, join the discussion on our &lt;a href=&quot;https://chat.mozilla.org/#/room/#profiler:mozilla.org&quot; rel=&quot;noopener nofollow ugc&quot;&gt;Matrix channel&lt;/a&gt;!&lt;/p&gt;
            &lt;p&gt;&lt;small&gt;1 post - 1 participant&lt;/small&gt;&lt;/p&gt;
            &lt;p&gt;&lt;a href=&quot;https://discourse.mozilla.org/t/firefox-profiler-deployment-september-22-2026/149536&quot;&gt;Read full topic&lt;/a&gt;&lt;/p&gt;</content:encoded>
	<dc:date>2026-09-22T16:42:20+00:00</dc:date>
	<dc:creator>canova</dc:creator>
</item>
<item rdf:about="discourse.mozilla.org-topic-149532">
	<title>Firefox Tooling Announcements: Firefox DevTools MCP 0.10.4 released</title>
	<link>https://discourse.mozilla.org/t/firefox-devtools-mcp-0-10-4-released/149532</link>
	<content:encoded>&lt;p&gt;Firefox DevTools MCP (firefox-devtools-mcp) 0.10.4 is out on &lt;a href=&quot;https://www.npmjs.com/package/@mozilla/firefox-devtools-mcp&quot; rel=&quot;noopener nofollow ugc&quot;&gt;npm&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Changes&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This release only contains additional hooks and configuration files to register Firefox DevTools MCP on various third-party aggregators, as well as a new task to automatically register the mcp on &lt;a href=&quot;https://registry.modelcontextprotocol.io/&quot; rel=&quot;noopener nofollow ugc&quot;&gt;https://registry.modelcontextprotocol.io/&lt;/a&gt; on release.&lt;/p&gt;
&lt;p&gt;Full changelog: &lt;a class=&quot;inline-onebox&quot; href=&quot;https://github.com/mozilla/firefox-devtools-mcp/releases/tag/v0.10.4&quot; rel=&quot;noopener nofollow ugc&quot;&gt;Release v0.10.4 · mozilla/firefox-devtools-mcp · GitHub&lt;/a&gt;&lt;br /&gt;
Repository and issues: GitHub - mozilla/firefox-devtools-mcp: Model Context Protocol server for Firefox DevTools - enables AI assistants to inspect and control Firefox browser through WebDriver BiDi · GitHub&lt;br /&gt;
Public chatroom: &lt;a href=&quot;https://chat.mozilla.org/#/room/#firefox-devtools-mcp:mozilla.org&quot; rel=&quot;noopener nofollow ugc&quot;&gt;https://chat.mozilla.org/#/room/#firefox-devtools-mcp:mozilla.org&lt;/a&gt;&lt;/p&gt;
            &lt;p&gt;&lt;small&gt;1 post - 1 participant&lt;/small&gt;&lt;/p&gt;
            &lt;p&gt;&lt;a href=&quot;https://discourse.mozilla.org/t/firefox-devtools-mcp-0-10-4-released/149532&quot;&gt;Read full topic&lt;/a&gt;&lt;/p&gt;</content:encoded>
	<dc:date>2026-09-22T12:43:12+00:00</dc:date>
	<dc:creator>jdescottes</dc:creator>
</item>
<item rdf:about="yt:video:Y3IOY-kmk70">
	<title>Mozilla Data YouTube Channel: Data Club Talk: Jan-Erik Rediger - The Glean UniFFI migration and how no one noticed</title>
	<link>https://www.youtube.com/watch?v=Y3IOY-kmk70</link>
	<content:encoded>Given at the Mozilla Data Club on August 12th, 2022.</content:encoded>
	<dc:date>2026-09-22T00:07:18+00:00</dc:date>
	<dc:creator>Mozilla Data</dc:creator>
</item>
<item rdf:about="https://blog.rust-lang.org/2026/09/22/announcing-a-maintainer-in-residence-scott-schafer-for-the-cargo-team/">
	<title>The Rust Programming Language Blog: Announcing a Maintainer in Residence: Scott Schafer for the Cargo team</title>
	<link>https://blog.rust-lang.org/2026/09/22/announcing-a-maintainer-in-residence-scott-schafer-for-the-cargo-team/</link>
	<content:encoded>&lt;p&gt;At the end of August, we &lt;a href=&quot;https://blog.rust-lang.org/2026/08/26/announcing-our-first-maintainers-in-residence/&quot; rel=&quot;external&quot;&gt;announced&lt;/a&gt; our first Maintainers in Residence, Rust Project contributors who are funded for their upstream contributions and &lt;a href=&quot;https://blog.rust-lang.org/inside-rust/2026/01/12/what-is-maintenance-anyway/&quot; rel=&quot;external&quot;&gt;maintenance work&lt;/a&gt; from the &lt;a href=&quot;https://github.com/sponsors/rustfoundation&quot; rel=&quot;external&quot;&gt;Rust Foundation Maintainers Fund&lt;/a&gt; (RFMF). Since then, the Rust Leadership Council has dedicated more funds from its Project Priorities budget to RFMF, and together with AWS also providing additional funds, this allowed us to open a new full-time Maintainer in Residence (MiR) position to support the Cargo team. We would like to thank the Rust Leadership Council, AWS, and also the Rust Foundation for providing us with this opportunity! If you would like to help us hire more maintainers to improve Rust, consider &lt;a href=&quot;https://github.com/sponsors/rustfoundation&quot; rel=&quot;external&quot;&gt;donating&lt;/a&gt; to RFMF.&lt;/p&gt;
&lt;p&gt;This post explains why we chose to support the Cargo team specifically, and introduces &lt;a href=&quot;https://blog.rust-lang.org/2026/09/22/announcing-a-maintainer-in-residence-scott-schafer-for-the-cargo-team/#introducing-scott-schafer&quot;&gt;Scott Schafer&lt;/a&gt;, the new Cargo Maintainer in Residence.&lt;/p&gt;
&lt;h3&gt;&lt;a class=&quot;anchor&quot; href=&quot;https://blog.rust-lang.org/2026/09/22/announcing-a-maintainer-in-residence-scott-schafer-for-the-cargo-team/#why-cargo&quot;&gt;&lt;/a&gt;
Why Cargo?&lt;/h3&gt;
&lt;p&gt;The new MiR full-time position is dedicated to helping with the maintenance of &lt;a href=&quot;https://github.com/rust-lang/cargo&quot; rel=&quot;external&quot;&gt;Cargo&lt;/a&gt;, our build system and package manager. The Cargo project is deeply involved in many new Rust features, improvements, and &lt;a href=&quot;https://goals.rust-lang.org/2026/goals.html#cargo-team&quot; rel=&quot;external&quot;&gt;Project Goals&lt;/a&gt;. Combined with its cross-cutting nature, where it has to support many different use-cases and integrate with several other tools, it takes a lot of work just to keep up with its maintenance needs, let alone support so many feature requests and proposed changes.&lt;/p&gt;
&lt;p&gt;Because of that, the Cargo team has sometimes struggled with meeting its maintenance demands. You might remember that for several years, it actually held a &lt;a href=&quot;https://blog.rust-lang.org/inside-rust/2022/03/31/cargo-team-changes/&quot; rel=&quot;external&quot;&gt;feature freeze&lt;/a&gt;, to reduce Cargo's internal tech debt, perform necessary refactorings, go through the issue and pull request backlog, and come up with scalable internal development and design processes, so that they could eventually go back to even thinking about adding new features.&lt;/p&gt;
&lt;p&gt;Recently, some changes occurred within the team, which made it more difficult for them to meet their maintenance baseline. Some members of the team left, while others lost their dedicated funding for working on Cargo maintenance and had to scale down their involvement. The Funding team thus considered it very important to support this team, given that we had an opportunity to do so. And thus we decided to hire a full-time maintainer to work on Cargo for (at least) the next 12 months.&lt;/p&gt;
&lt;p&gt;Even though we know that a single full-time maintainer will not completely solve the maintenance struggles of the Cargo team, we hope that it will improve the situation, and provide a bit of a relief for the team.&lt;/p&gt;
&lt;h3&gt;&lt;a class=&quot;anchor&quot; href=&quot;https://blog.rust-lang.org/2026/09/22/announcing-a-maintainer-in-residence-scott-schafer-for-the-cargo-team/#introducing-scott-schafer&quot;&gt;&lt;/a&gt;
Introducing Scott Schafer&lt;/h3&gt;
&lt;aside style=&quot;float: right; clear: both; margin-left: 10px;&quot;&gt;
  &lt;img alt=&quot;A photo of Scott Schafer&quot; src=&quot;https://blog.rust-lang.org/2026/09/22/announcing-a-maintainer-in-residence-scott-schafer-for-the-cargo-team/scott.jpg&quot; style=&quot;width: 12em; border: 1px solid white;&quot; width=&quot;460&quot; /&gt;
&lt;/aside&gt;
&lt;p&gt;We are very happy to welcome Scott Schafer (&lt;a href=&quot;https://github.com/Muscraft&quot; rel=&quot;external&quot;&gt;@muscraft&lt;/a&gt;) into the Maintainer in Residence role! Scott has joined the Cargo team &lt;a href=&quot;https://blog.rust-lang.org/inside-rust/2023/04/06/cargo-new-members/&quot; rel=&quot;external&quot;&gt;three years ago&lt;/a&gt;, and apart from working on Cargo, he is also the lead of the Rust &lt;a href=&quot;https://rust-lang.org/governance/teams/#team-docker&quot; rel=&quot;external&quot;&gt;Docker team&lt;/a&gt;, which prepares official Docker images for every Rust version.&lt;/p&gt;
&lt;p&gt;Apart from working on general maintenance of Cargo, Scott has implemented Cargo's &lt;a href=&quot;https://doc.rust-lang.org/cargo/reference/workspaces.html#the-package-table&quot; rel=&quot;external&quot;&gt;Workspace inheritance&lt;/a&gt; feature, and has also spearheaded a complex multi-year effort to switch the rendering of diagnostics in the Rust compiler to use the &lt;a href=&quot;https://github.com/rust-lang/annotate-snippets-rs&quot; rel=&quot;external&quot;&gt;annotate-snippets&lt;/a&gt; crate. This effort has been completed in the Rust 1.93.0 release. Thanks to it, the same diagnostics interface can now be shared between the compiler and Cargo (and also other tools), which amongst other things unblocked further development of the Cargo linting system, which has now been stabilized and will ship in the Rust 1.100.0 release.&lt;/p&gt;
&lt;p&gt;Everyone we talked about was very excited about Scott becoming a Cargo Maintainer in Residence, and we share that feeling. We wish Scott all the best in his new role, and we are very happy that we can support his maintenance work.&lt;/p&gt;
&lt;p&gt;Here is what Scott thinks about it:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I am incredibly excited to work on Cargo full-time! There have been so many things that I wish I could've worked on over the years, that I will now be able to get to. I hope that my efforts will bring Cargo into a more maintainable state.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;&lt;a class=&quot;anchor&quot; href=&quot;https://blog.rust-lang.org/2026/09/22/announcing-a-maintainer-in-residence-scott-schafer-for-the-cargo-team/#conclusion&quot;&gt;&lt;/a&gt;
Conclusion&lt;/h3&gt;
&lt;p&gt;We are incredibly happy that we keep getting more funds for the Rust Foundation Maintainers Fund, which allows us to support Rust Project contributors. The funding team will be working with the supported maintainers, and also the funders, to ensure that they are all happy with the arrangement, so that we can secure stable funding for Rust maintenance for years to come.&lt;/p&gt;
&lt;p&gt;If you would like to help us support more Rust maintainers, consider &lt;a href=&quot;https://github.com/sponsors/rustfoundation&quot; rel=&quot;external&quot;&gt;donating&lt;/a&gt; to RFMF!&lt;/p&gt;</content:encoded>
	<dc:date>2026-09-22T00:00:00+00:00</dc:date>
	<dc:creator>Jakub Beránek</dc:creator>
</item>
<item rdf:about="https://blog.mozilla.org/?p=87122">
	<title>The Mozilla Blog: Stay focused wherever you work with Firefox mobile browsers</title>
	<link>https://blog.mozilla.org/en/firefox/stay-focused-wherever-you-work-with-firefox-mobile-browsers/</link>
	<content:encoded>&lt;p&gt;When it’s Monday morning and you’re on the subway, in a coffee shop, or squeezing in a few email replies after your morning workout, your phone becomes your digital office. But every time you open your browser, you risk getting struck with any combination of distracting ads, auto-playing videos, and open tabs from the previous week competing for your attention.&lt;br /&gt;&lt;br /&gt;For many remote and on-the-go workers, your mobile browser can become a minefield of interruptions and distractions, slowing you down when you need to focus most.&lt;br /&gt;&lt;br /&gt;Luckily, there are multiple Firefox features that can help ensure your mobile browser is a focused, productive workspace. &lt;/p&gt;



&lt;h3&gt;&lt;strong&gt;Reduce distractions and clutter with Ad Blocker for Firefox on iOS&lt;/strong&gt; &lt;/h3&gt;



&lt;figure class=&quot;wp-block-image size-large&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-87039&quot; height=&quot;576&quot; src=&quot;https://blog.mozilla.org/wp-content/blogs.dir/278/files/2026/08/iOS-AdBlocker-1024x576.jpg&quot; width=&quot;1024&quot; /&gt;&lt;/figure&gt;



&lt;p&gt;Opening a link shared via text or email can save time and keep things moving when a client or coworker needs a fast response. However, once it’s actually opened, there is a lot of opportunity for various pop-ups, overlays, and ads to get in between you and what you came in to do.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://blog.mozilla.org/en/firefox/ad-blocker-on-ios/&quot;&gt;Ad Blocker for Firefox on iOS&lt;/a&gt; was built to reduce distractions and screen clutter while you browse, so you can stay focused on the task at hand. It’s a built-in, optional feature that blocks many &lt;a href=&quot;https://support.mozilla.org/en-US/kb/block-ads-firefox-ios&quot;&gt;intrusive ad formats, third-party ad networks, and ad-related trackers&lt;/a&gt;. That means no separate extension required, and you decide if and when to use it. &lt;br /&gt;&lt;br /&gt;Because Firefox’s &lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/&quot;&gt;strong line-up of ad-blocking and privacy extensions&lt;/a&gt; on desktop and Android are &lt;a href=&quot;https://blog.mozilla.org/netpolicy/2026/09/01/browsers-compete-on-privacy-when-the-operating-system-allows/&quot;&gt;not available in the same way on iOS&lt;/a&gt;, we built Ad Blocker for Firefox directly into the browser. To decide what gets blocked, Ad Blocker uses the EasyList filter and Apple’s WebKit Content Blocker technology. It won’t impact every ad or sponsored content on a new tab, as those presented directly by host sites and displayed in search results will still be visible.&lt;br /&gt;&lt;br /&gt;To try Ad Blocker on iOS, go to Settings &amp;gt; Browsing &amp;gt; Ad Blocker and turn it on to enjoy a cleaner browsing experience. &lt;/p&gt;



&lt;h3&gt;&lt;strong&gt;Get the gist faster with Shake to Summarize&lt;/strong&gt; &lt;/h3&gt;



&lt;figure class=&quot;wp-block-image size-large&quot;&gt;&lt;img alt=&quot;Three smartphone screens showing Firefox article summarized with Apple Intelligence on translation updates for Chinese, Japanese, and Korean users.&quot; class=&quot;wp-image-81609&quot; height=&quot;610&quot; src=&quot;https://blog.mozilla.org/wp-content/blogs.dir/278/files/2025/08/shake-to-summarize-summaries-1024x610.png&quot; width=&quot;1024&quot; /&gt;&lt;/figure&gt;



&lt;p&gt;When you’re on a deadline, scanning through heavy text, ads, and filler content can turn a quick scan into an infinite scroll session.&lt;br /&gt;&lt;br /&gt;Firefox’s Shake to Summarize feature helps people get the gist in seconds on both iOS and Android. To use it, simply shake your phone on any web page under 5,000 words, and a clean summary of the page’s content will instantly appear. It can also be activated by tapping the “Summarize Page” option under “More” in the three-dot menu.&lt;br /&gt;&lt;br /&gt;Like all Firefox features, we built Shake to Summarize with your privacy and protection in mind. This means using device-specific technology to keep your data secure. You can learn more about the AI powering this feature &lt;a href=&quot;https://blog.mozilla.org/en/firefox/firefox-ai/ai-powering-firefox-shake-to-summarize/&quot;&gt;here&lt;/a&gt;.   &lt;br /&gt;&lt;br /&gt;The feature launched on iOS last September, received a strong response from users, and earned a special mention in &lt;a href=&quot;https://blog.mozilla.org/firefox/shake-to-summarize-time-best-inventions/&quot;&gt;TIME’s Best Inventions of 2025&lt;/a&gt;. It is now available on iOS and Android in English, German, French, Spanish, Portuguese, Italian, and Japanese. &lt;/p&gt;



&lt;h3&gt;&lt;strong&gt;Keep your tabs tidy with Tab Groups on Android&lt;/strong&gt; &lt;/h3&gt;



&lt;figure class=&quot;wp-block-image size-large&quot;&gt;&lt;img alt=&quot;Illustration of Tab Groups in Firefox for Android, showing tabs being grouped, named and color-coded, then displayed together in a single organized group.&quot; class=&quot;wp-image-86457&quot; height=&quot;576&quot; src=&quot;https://blog.mozilla.org/wp-content/blogs.dir/278/files/2026/07/Distilled_TabGroupsAndroid_Inline02-1024x576.jpg&quot; width=&quot;1024&quot; /&gt;&lt;/figure&gt;



&lt;p&gt;Just like us, our smartphones tend to live multiple lives: work, personal, and everything in between. While it can be incredibly convenient to have everything you need for all parts of your life on one device, things can get cluttered fast.&lt;br /&gt;&lt;br /&gt;One minute you are knee-deep in a client proposal and the next you’re flicking through the countless Google searches from over the weekend. “How old is Harry Styles?” and “Movie times near me” – while pertinent when you were off the clock 24 hours ago – have absolutely nothing to do with the work you are trying to get done now.&lt;br /&gt;&lt;br /&gt;To help make sure your prep for Thursday’s client meeting doesn’t get lost in your pop music deep dive from the weekend, you can &lt;a href=&quot;https://blog.mozilla.org/en/firefox/tab-groups-android/&quot;&gt;group related tabs in Firefox for Android&lt;/a&gt;. Each group can be labeled and assigned a color, appearing as a single, searchable card in the tab tray rather than separate tabs, so it’s easy to locate when needed. You can open, rename, recolor, and delete these cards whenever you want.&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;To use Tab Groups on Android, simply drag one tab onto another, or select a few and tap “Add to group.” Label the group, choose a color, and you’re all set. To try it out, download the latest version of &lt;a href=&quot;https://www.firefox.com/en-US/download/android/&quot;&gt;Firefox for Android&lt;/a&gt;. iOS support for this feature is on the way. &lt;/p&gt;



&lt;h3&gt;&lt;strong&gt;Pick up where you left off across devices with Firefox Sync&lt;/strong&gt;&lt;/h3&gt;



&lt;p&gt;Sometimes we start a task on one device and finish it on another. Maybe you found an article on your computer that you want to read on the subway on your phone. Or, perhaps you want to pull out your laptop and finish filling out that lease application you started on your tablet.&lt;br /&gt;&lt;br /&gt;Enable &lt;a href=&quot;https://www.firefox.com/en-US/features/sync/&quot;&gt;Firefox Sync&lt;/a&gt; and you can resume tasks you paused in your browser when switching across your mobile phone, tablet, and laptop. The feature lets you access your open tabs, bookmarks, and passwords across all the devices you access Firefox on.&lt;br /&gt;&lt;br /&gt;The best part? We put your &lt;a href=&quot;https://www.mozilla.org/en-US/privacy/firefox/?utm_source=www.firefox.com&amp;amp;utm_medium=referral&amp;amp;utm_campaign=sync&quot;&gt;data privacy&lt;/a&gt; first. Firefox Sync uses end-to-end encryption so your synced data is encrypted before it reaches Mozilla’s servers.&lt;br /&gt;&lt;br /&gt;To take your browsing experience with you wherever you go, connect your &lt;a href=&quot;https://support.mozilla.org/en-US/kb/sync-bookmarks-logins-and-browsing-history-firefox&quot;&gt;iOS&lt;/a&gt; or &lt;a href=&quot;https://support.mozilla.org/en-US/kb/how-set-firefox-sync-firefox-android&quot;&gt;Android&lt;/a&gt; phone to your &lt;a href=&quot;https://www.mozilla.org/en-US/account/?utm_source=www.firefox.com&amp;amp;utm_medium=referral&amp;amp;utm_campaign=sync&quot;&gt;Mozilla account &lt;/a&gt;and start syncing with your other devices. &lt;/p&gt;



&lt;h3&gt;&lt;strong&gt;Take back control of your focus with Firefox&lt;/strong&gt;&lt;/h3&gt;



&lt;p&gt;For remote and on-the-go workers, focus is everything.&lt;br /&gt;&lt;br /&gt;With Firefox features like built-in ad blocking on iOS, Shake to Summarize for instant insights, and Tab Groups on Android to keep your work and personal digital spaces organized, you can transform your phone from a distraction hub into a productive workspace.&lt;br /&gt;&lt;br /&gt;Download the latest version of &lt;a href=&quot;https://www.firefox.com/en-US/download/android/&quot;&gt;Firefox for Android&lt;/a&gt; or &lt;a href=&quot;https://www.firefox.com/en-US/download/ios/&quot;&gt;Firefox for iOS&lt;/a&gt; today to test out any of the above features available on your device – and take back control of your attention.&lt;/p&gt;
&lt;p&gt;The post &lt;a href=&quot;https://blog.mozilla.org/en/firefox/stay-focused-wherever-you-work-with-firefox-mobile-browsers/&quot;&gt;Stay focused wherever you work with Firefox mobile browsers&lt;/a&gt; appeared first on &lt;a href=&quot;https://blog.mozilla.org/en/&quot;&gt;The Mozilla Blog&lt;/a&gt;.&lt;/p&gt;</content:encoded>
	<dc:date>2026-09-21T17:00:00+00:00</dc:date>
	<dc:creator>Mozilla</dc:creator>
</item>
<item rdf:about="https://blog.rust-lang.org/2026/09/21/github-actions-leaking-secrets-when-miri-output-is-cached/">
	<title>The Rust Programming Language Blog: GitHub Actions leaking secrets when Miri output is cached</title>
	<link>https://blog.rust-lang.org/2026/09/21/github-actions-leaking-secrets-when-miri-output-is-cached/</link>
	<content:encoded>&lt;p&gt;The Rust Security Response Team was notified that Miri stores all environment variables to &lt;code&gt;target/&lt;/code&gt;, allowing secrets to persist in caches.&lt;/p&gt;
&lt;p&gt;While not necessary a vulnerability in and of itself, when paired with GitHub Actions caching behavior, it is possible for this to expose secrets to PRs.&lt;/p&gt;
&lt;h3&gt;&lt;a class=&quot;anchor&quot; href=&quot;https://blog.rust-lang.org/2026/09/21/github-actions-leaking-secrets-when-miri-output-is-cached/#overview&quot;&gt;&lt;/a&gt;
Overview&lt;/h3&gt;
&lt;p&gt;GitHub Actions makes it possible to cache directories between runs. Typical setups allow CI runs on &lt;code&gt;main&lt;/code&gt; (and other branches) to &lt;em&gt;write&lt;/em&gt; to cache, and PRs can only &lt;em&gt;read&lt;/em&gt; from cache (preventing cache poisoning). Rust projects tend to speed up CI by caching binaries built by &lt;code&gt;cargo install&lt;/code&gt; and sometimes the contents of &lt;code&gt;target/&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;PR CI can be triggered by anyone who can open PRs on your repository. GitHub requires maintainer approval for the &lt;em&gt;first&lt;/em&gt; PR, but future PRs will rerun CI on every push. Anyone who has previously landed a change can trigger a CI run extracting information from cached &lt;code&gt;target/&lt;/code&gt; and then cover their tracks by pushing a second commit to the PR.&lt;/p&gt;
&lt;p&gt;GitHub sometimes hides overwritten commits in its UI, making this kind of attack harder to detect. CI run logs and overwritten commits are also deleted after a few months.&lt;/p&gt;
&lt;p&gt;When &lt;code&gt;cargo miri&lt;/code&gt; is invoked, Miri needs to retain build-relevant environment variables between runs&lt;sup class=&quot;footnote-reference&quot; id=&quot;fr-1-1&quot;&gt;&lt;a href=&quot;https://blog.rust-lang.org/2026/09/21/github-actions-leaking-secrets-when-miri-output-is-cached/#fn-1&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;. The current code to do so achieves this by storing &lt;a href=&quot;https://github.com/rust-lang/miri/blob/165a9c3c96f0f4e6232278e62cb64648215bbc37/cargo-miri/src/util.rs#L40-L42&quot; rel=&quot;external&quot;&gt;all environment variables to &lt;code&gt;target/&lt;/code&gt;&lt;/a&gt;. This, of course, persists when &lt;code&gt;target/&lt;/code&gt; is cached.&lt;/p&gt;
&lt;p&gt;If your environment contained secrets, these can now be accessed by PRs via the cache.&lt;/p&gt;
&lt;h3&gt;&lt;a class=&quot;anchor&quot; href=&quot;https://blog.rust-lang.org/2026/09/21/github-actions-leaking-secrets-when-miri-output-is-cached/#our-fix&quot;&gt;&lt;/a&gt;
Our fix&lt;/h3&gt;
&lt;p&gt;Our &lt;a href=&quot;https://github.com/rust-lang/miri/pull/5337&quot; rel=&quot;external&quot;&gt;short term fix&lt;/a&gt; for this is to make Miri only preserve &lt;code&gt;CARGO_*&lt;/code&gt; environment variables (excepting &lt;code&gt;CARGO_*_TOKEN&lt;/code&gt;) and &lt;code&gt;OUT_DIR&lt;/code&gt;. In the longer term, Miri and cargo may figure out better ways to inform Miri of the relevant list of environment variables. Note that this patch may not be available on nightly yet.&lt;/p&gt;
&lt;p&gt;We also performed an ecosystem scan of GitHub repositories and identified 1 repository with this issue and 7 repositories that do not appear to be vulnerable but should be cautious anyway. We have reached out to those maintainers.&lt;/p&gt;
&lt;h3&gt;&lt;a class=&quot;anchor&quot; href=&quot;https://blog.rust-lang.org/2026/09/21/github-actions-leaking-secrets-when-miri-output-is-cached/#am-i-affected&quot;&gt;&lt;/a&gt;
Am I affected?&lt;/h3&gt;
&lt;p&gt;It is likely that our scan was imperfect, so we recommend you check your own GitHub Actions setups if you run Miri.&lt;/p&gt;
&lt;p&gt;You are vulnerable if:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You run &lt;code&gt;cargo miri&lt;/code&gt; in CI&lt;/li&gt;
&lt;li&gt;The step that runs &lt;code&gt;cargo miri&lt;/code&gt; &lt;a href=&quot;https://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/use-secrets#using-secrets-in-a-workflow&quot; rel=&quot;external&quot;&gt;has access to secrets&lt;/a&gt; as an environment variable:
&lt;ul&gt;
&lt;li&gt;By being passed in to the step itself as an environment variable&lt;/li&gt;
&lt;li&gt;By being set in &lt;code&gt;env&lt;/code&gt; for the workflow&lt;/li&gt;
&lt;li&gt;By being passed in to a previous step that persists it in the environment somehow&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;The workflow being used caches the &lt;code&gt;target&lt;/code&gt; directory, usually done via &lt;a href=&quot;https://github.com/actions/cache&quot; rel=&quot;external&quot;&gt;&lt;code&gt;actions/cache&lt;/code&gt;&lt;/a&gt; or &lt;a href=&quot;https://github.com/swatinem/rust-cache&quot; rel=&quot;external&quot;&gt;&lt;code&gt;swatinem/rust-cache&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;The cache is accessible to PRs (common and often the intended use case)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Possible quick fixes include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Disabling cache for that job.&lt;/li&gt;
&lt;li&gt;Scoping secrets to steps in that job that do not call Miri.&lt;/li&gt;
&lt;li&gt;Temporarily disabling Miri.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Once done, &lt;a href=&quot;https://docs.github.com/en/actions/how-tos/manage-workflow-runs/manage-caches#deleting-cache-entries&quot; rel=&quot;external&quot;&gt;please clear the cache&lt;/a&gt;. Consider rotating any secrets that might have leaked.&lt;/p&gt;
&lt;p&gt;The Miri release in the upcoming nightly (2026-09-22) will no longer have this problem.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Even if you do not run Miri,&lt;/strong&gt; ensure jobs that can write to public caches do not have access to secrets. Many tools do not have special handling for secrets, and assume the entire environment can be written to the filesystem.&lt;/p&gt;
&lt;h3&gt;&lt;a class=&quot;anchor&quot; href=&quot;https://blog.rust-lang.org/2026/09/21/github-actions-leaking-secrets-when-miri-output-is-cached/#threat-model&quot;&gt;&lt;/a&gt;
Threat model&lt;/h3&gt;
&lt;p&gt;We consider it bad practice to have a cache that can easily be tainted by secrets.&lt;/p&gt;
&lt;p&gt;If caching &lt;code&gt;target/&lt;/code&gt;, it is worth making sure that the inputs to processes that create &lt;code&gt;target/&lt;/code&gt; (anything invoking &lt;code&gt;cargo&lt;/code&gt;) do not have secrets available. It is generally rare for standard &lt;code&gt;cargo&lt;/code&gt; build/test subcommands to need any secrets or tokens&lt;sup class=&quot;footnote-reference&quot; id=&quot;fr-2-1&quot;&gt;&lt;a href=&quot;https://blog.rust-lang.org/2026/09/21/github-actions-leaking-secrets-when-miri-output-is-cached/#fn-2&quot;&gt;2&lt;/a&gt;&lt;/sup&gt;, so this is mostly a matter of being careful about having secrets exposed as environment variables to the entire job.&lt;/p&gt;
&lt;p&gt;Cargo/Miri/Rust does not guarantee that environment variables will be safe from being copied into &lt;code&gt;target/&lt;/code&gt;. While we are treating this as a security issue and patching it out of an abundance of caution, this is not something you should rely on in general. Beyond official Rust tooling, it is possible for build scripts to be doing things that lead to the environment being stored in compilation artifacts.&lt;/p&gt;
&lt;h3&gt;&lt;a class=&quot;anchor&quot; href=&quot;https://blog.rust-lang.org/2026/09/21/github-actions-leaking-secrets-when-miri-output-is-cached/#acknowledgements&quot;&gt;&lt;/a&gt;
Acknowledgements&lt;/h3&gt;
&lt;p&gt;Thanks to &lt;a href=&quot;https://github.com/obi1kenobi&quot; rel=&quot;external&quot;&gt;Predrag Gruevski&lt;/a&gt; of OpenAI for reporting this issue to us. Furthermore, the ecosystem scan was performed using Codex access and credits donated by OpenAI, which we also thank them for.&lt;/p&gt;
&lt;p&gt;Issue triage and remediation was performed by Manish Goregaokar, Ralf Jung, Ben Kimock, Weihang Lo, Jacob Finkelman, Walter Pearce, Josh Stone, and Mark Rousskov.&lt;/p&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn-1&quot;&gt;
&lt;p&gt;Miri is invoked multiple times by &lt;code&gt;cargo miri&lt;/code&gt; for complicated reasons &lt;a href=&quot;https://blog.rust-lang.org/2026/09/21/github-actions-leaking-secrets-when-miri-output-is-cached/#fr-1-1&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn-2&quot;&gt;
&lt;p&gt;In theory it could come up with build scripts reading from the network &lt;a href=&quot;https://blog.rust-lang.org/2026/09/21/github-actions-leaking-secrets-when-miri-output-is-cached/#fr-2-1&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;</content:encoded>
	<dc:date>2026-09-21T00:00:00+00:00</dc:date>
	<dc:creator>Manish Goregaokar</dc:creator>
</item>
<item rdf:about="discourse.mozilla.org-topic-149489">
	<title>Firefox Tooling Announcements: Firefox DevTools MCP 0.10.3 released</title>
	<link>https://discourse.mozilla.org/t/firefox-devtools-mcp-0-10-3-released/149489</link>
	<content:encoded>&lt;p&gt;Firefox DevTools MCP (firefox-devtools-mcp) 0.10.3 is out on &lt;a href=&quot;https://www.npmjs.com/package/@mozilla/firefox-devtools-mcp&quot; rel=&quot;noopener nofollow ugc&quot;&gt;npm&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;New features:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;New tool: &lt;code&gt;close_firefox_session&lt;/code&gt; — ends the browser session: it releases the connection when the server is attached to an existing Firefox, and closes the browser when the server started it.&lt;/li&gt;
&lt;li&gt;New parameter: &lt;code&gt;fullPage&lt;/code&gt; for &lt;code&gt;screenshot_page&lt;/code&gt; — captures the whole scrollable document instead of the viewport.&lt;/li&gt;
&lt;li&gt;New parameter: &lt;code&gt;downloadFolder&lt;/code&gt; for &lt;code&gt;set_download_behavior&lt;/code&gt; — only used when setting the “allowed” behavior, it sets the folder where downloads should be stored and defaults to &lt;code&gt;~/.firefox-devtools-mcp/output/downloads&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Bug fixes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No longer fails to find the Firefox binary on Linux with Flatpak.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;restart_firefox&lt;/code&gt; now rejects when used against a server started with &lt;code&gt;--connectExisting&lt;/code&gt;, whereas it used to restart the WebDriver session without restarting the browser and silently ignored all its configuration parameters.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Other changes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Servers started with &lt;code&gt;--connectExisting&lt;/code&gt; now disconnect after 30 minutes without any tool call.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;restart_firefox&lt;/code&gt; is now part of the mozilla-internal package, and should only be used in controlled environments, as it allows the agent to restart the browser with a custom configuration. Instead, the new tool &lt;code&gt;close_firefox_session&lt;/code&gt; can be used whenever clients do not need to update the browser configuration, and will have a more consistent behavior.&lt;/li&gt;
&lt;li&gt;Path checks for the &lt;code&gt;saveTo&lt;/code&gt; parameters have been improved to avoid overlapping with existing profile folders&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Install:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;claude mcp add firefox-devtools npx &lt;span class=&quot;mention&quot;&gt;@mozillamozilla&lt;/span&gt;/firefox-devtools-mcp@latest&lt;/p&gt;
&lt;p&gt;codex mcp add firefox-devtools – npx &lt;span class=&quot;mention&quot;&gt;@mozilla&lt;/span&gt;/firefox-devtools-mcp@latest&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;For internal Firefox development, swap &lt;code&gt;firefox-devtools-mcp&lt;/code&gt; with &lt;code&gt;firefox-devtools-mcp-moz&lt;/code&gt; in order to benefit from additional tools, such as chrome-privileged script execution.&lt;/p&gt;
&lt;p&gt;Special thanks to all the contributors who filed issues and submitted patches for this release: &lt;a href=&quot;https://matrix.to/#/@f3tch:mozilla.org&quot; rel=&quot;noopener nofollow ugc&quot;&gt;f3tch&lt;/a&gt; (&lt;a href=&quot;https://github.com/f3tchcodes&quot; rel=&quot;noopener nofollow ugc&quot;&gt;github&lt;/a&gt;), &lt;a href=&quot;https://github.com/shoemoney&quot; rel=&quot;noopener nofollow ugc&quot;&gt;shoemoney&lt;/a&gt; and &lt;a href=&quot;https://github.com/mightykatun&quot; rel=&quot;noopener nofollow ugc&quot;&gt;mightykatun&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Full changelog: &lt;a class=&quot;inline-onebox&quot; href=&quot;https://github.com/mozilla/firefox-devtools-mcp/releases/tag/v0.10.3&quot; rel=&quot;noopener nofollow ugc&quot;&gt;Release v0.10.3 · mozilla/firefox-devtools-mcp · GitHub&lt;/a&gt;&lt;br /&gt;
Repository and issues: &lt;a class=&quot;inline-onebox&quot; href=&quot;https://github.com/mozilla/firefox-devtools-mcp&quot; rel=&quot;noopener nofollow ugc&quot;&gt;GitHub - mozilla/firefox-devtools-mcp: Model Context Protocol server for Firefox DevTools - enables AI assistants to inspect and control Firefox browser through WebDriver BiDi · GitHub&lt;/a&gt;&lt;br /&gt;
Public chatroom: &lt;a href=&quot;https://chat.mozilla.org/#/room/#firefox-devtools-mcp:mozilla.org&quot; rel=&quot;noopener nofollow ugc&quot;&gt;https://chat.mozilla.org/#/room/#firefox-devtools-mcp:mozilla.org&lt;/a&gt;&lt;/p&gt;
            &lt;p&gt;&lt;small&gt;1 post - 1 participant&lt;/small&gt;&lt;/p&gt;
            &lt;p&gt;&lt;a href=&quot;https://discourse.mozilla.org/t/firefox-devtools-mcp-0-10-3-released/149489&quot;&gt;Read full topic&lt;/a&gt;&lt;/p&gt;</content:encoded>
	<dc:date>2026-09-18T10:14:45+00:00</dc:date>
	<dc:creator>jdescottes</dc:creator>
</item>
<item rdf:about="https://blog.mozilla.org/?p=87378">
	<title>The Mozilla Blog: Mila and Mozilla announce new initiative to build trustworthy open source AI for everyone, with Canadian government support</title>
	<link>https://blog.mozilla.org/en/mozilla/mila-canada-open-source-ai-initiative/</link>
	<content:encoded>&lt;figure class=&quot;wp-block-image size-full&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-86275&quot; height=&quot;667&quot; src=&quot;https://blog.mozilla.org/wp-content/blogs.dir/278/files/2026/06/Screenshot-2026-06-23-at-08-57-20-Illustration-Visual-Elements-Mozilla-Brand.png&quot; width=&quot;936&quot; /&gt;&lt;/figure&gt;



&lt;p&gt;Today at ALL IN, Canada’s largest AI and technology event, &lt;a href=&quot;http://www.mozilla.org&quot;&gt;Mozilla&lt;/a&gt; and &lt;a href=&quot;http://www.mila.quebec&quot;&gt;Mila&lt;/a&gt; announced a new initiative and fresh investment to build an open source AI foundation layer that enables organizations and institutions to own and operate advanced AI systems locally, ensuring full control over their technology and data. &lt;/p&gt;



&lt;p&gt;Doubling down on its commitment to open source AI, the Government of Canada announced its support for the initiative. Mila will lead the technical delivery and coordination of the project, while Mozilla contributes technical expertise. It also provided the initial $5 million investment to kick off the project. &lt;a href=&quot;http://www.hypertec.com&quot;&gt;Hypertec&lt;/a&gt; is committing an additional $1 million in first-year funding to accelerate initial Canadian deployments of the open source AI foundation layer on Hypertec hardware. &lt;/p&gt;



&lt;p&gt;“Canada has a choice: depend on technologies developed elsewhere, or build more of what we need here at home,” said The Honourable Evan Solomon, Minister of Artificial Intelligence and Digital Innovation and Minister responsible for the Federal Economic Development Agency for Southern Ontario. &lt;em&gt;“&lt;/em&gt;Open source AI gives Canadian businesses and institutions greater control over their technology and data, while making powerful tools more affordable, accessible, and easier to adapt. By supporting this work, we are strengthening Canada’s capacity to build and adopt AI on our own terms.” &lt;/p&gt;



&lt;p&gt;Mila and Mozilla will lead the work together: Mila drawing on a world-class community of close to 2,000 researchers and professionals, Mozilla as technical partner from industry, bringing 25 years of experience stewarding open infrastructure others build on. Mila and Mozilla are actively engaging new partners, inviting companies, research institutions, funders, governments, and developers to join and support this work.&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;



&lt;h3&gt;&lt;strong&gt;What’s being built&lt;/strong&gt;&lt;/h3&gt;



&lt;p&gt;The goal is simple: make owning your AI as easy as renting it. Using open source models was never the hard part. Turning a raw open source model into something a small business, a hospital, a local charity, or a government can run in production — secure, reliable, plugged into everything else — takes an engineering team most organizations and institutions do not have and months they can’t spare. &lt;/p&gt;



&lt;p&gt;The goal is to offer businesses and organizations a ready-to-use AI package that they can run privately and keep under their own control, rather than having to build a complex system themselves or rely entirely on expensive, pay-per-use proprietary AI services.&lt;/p&gt;



&lt;p&gt;For example, a small manufacturer could use the system as a private AI assistant for its employees. It could search the company’s manuals, procedures, and past project files; help staff draft reports or answer technical questions; and help its software team write and improve code. Because the system is designed to be able to run locally, the company could do this while keeping its proprietary information and data within its own environment.&lt;/p&gt;



&lt;p&gt;That also means lower costs. For the vast majority of everyday business tasks, companies will be able to use open source AI running on open source tools instead of paying a commercial provider every time an employee makes a request. But this requires reducing the technical work and expense involved in putting open source AI into practice.&lt;/p&gt;



&lt;p&gt;This initiative was founded to solve that problem, building the free layer that makes owning open source AI easy — the same kind of layer the web was built on. It has two halves: An open standard, published as interface contracts, so any part of the stack can be swapped for a better one. And a working “reference implementation” any organization can install on its own machines or the ones it chooses, running the models and controls it chooses against its own data, with governance and access control built in from the start. The ambition is that with the standards and foundation in place, open source AI can be built anywhere, by anyone. &lt;/p&gt;



&lt;p&gt;“Six months ago, we announced our partnership with Mozilla to advance open source and sovereign AI. Today, we are bringing that work to a whole new level,” said Valérie Pisano, President and CEO of Mila. “By delivering an open, secure AI foundation layer, we empower organizations, from small businesses to non-profits to governments, to own their technological future so they can run, control, and maintain AI models themselves. At Mila, our research community has always believed that for AI to be trustworthy and accessible, it must be built on open standards that keep control in local hands.”&lt;/p&gt;



&lt;h3&gt;&lt;strong&gt;The work already underway&lt;/strong&gt;&lt;/h3&gt;



&lt;p&gt;Over the last six months, Mila and Mozilla have been designing the architecture, deciding which open source components belong at each layer, and testing that the whole system works end to end. This investment builds on that progress. &lt;/p&gt;



&lt;p&gt;Working alongside Mila and Mozilla, Hypertec will help move the initiative from research and reference implementation to real-world adoption by Canadian businesses and institutions, providing a practical, private, and cost-effective path to deploy AI while maintaining greater control over their data and technology.&lt;/p&gt;



&lt;p&gt;“AI is advancing at an extraordinary pace and has the potential to transform our economy and society for the better. Canada has an important role to play in ensuring that AI is developed and adopted responsibly, said Simon Ahdoot, CEO of Hypertec Group. “Hypertec is proud to help turn open source innovation into AI that Canadian organizations can deploy securely and under their own control. This is exactly the kind of partnership between government, research, and Canadian industry needed to realize the full potential of AI.”&lt;/p&gt;



&lt;h3&gt;Why now&lt;/h3&gt;



&lt;p&gt;Mozilla’s&lt;a href=&quot;https://stateofopensource.ai/&quot;&gt; State of Open Source AI report&lt;/a&gt; found that while 79% of developers adding AI functionality use open models, only 53% of teams ever reach production, stopped by cost, security, integration, and maintenance. This work aims to change that.&lt;/p&gt;



&lt;p&gt;“AI today is at a crossroads, where it could be closed and owned by a few, or open and available to every coder, developer, enterprise, and nation,” said Mark Surman, President of Mozilla. That’s what we’re building — an open source AI ecosystem that fits together as seamlessly as the web, and that anyone, anywhere can build on.  We’re so grateful to Canada for scaling this work, and call on partners across sectors — from enterprises and governments to coders and startups — to join us in building this future.” &lt;/p&gt;



&lt;p&gt;Within six months, Mozilla and Mila expect to publish working reference implementations for enterprise, government and public-interest use cases. The two-year ambition is bigger: to have solved this problem outright, so that open source AI can be adopted fully and easily, anywhere, by anyone.&lt;/p&gt;
&lt;p&gt;The post &lt;a href=&quot;https://blog.mozilla.org/en/mozilla/mila-canada-open-source-ai-initiative/&quot;&gt;Mila and Mozilla announce new initiative to build trustworthy open source AI for everyone, with Canadian government support&lt;/a&gt; appeared first on &lt;a href=&quot;https://blog.mozilla.org/en/&quot;&gt;The Mozilla Blog&lt;/a&gt;.&lt;/p&gt;</content:encoded>
	<dc:date>2026-09-17T19:30:00+00:00</dc:date>
	<dc:creator>Mozilla</dc:creator>
</item>
<item rdf:about="https://blog.nightly.mozilla.org/?p=2117">
	<title>Firefox Nightly: High-speed Release Trains – These Weeks in Firefox: Issue 209</title>
	<link>https://blog.nightly.mozilla.org/2026/09/17/high-speed-release-trains-these-weeks-in-firefox-issue-209/</link>
	<content:encoded>&lt;h3&gt;Highlights&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.firefox.com/en-US/firefox/155.0/releasenotes/&quot;&gt;Firefox 155 just released!&lt;/a&gt; That’s the first release that went through the full &lt;a href=&quot;https://groups.google.com/a/mozilla.org/g/dev-platform/c/qlaQ1YSlOP8&quot;&gt;2-week release cycle process.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;The WebExtensions team added a new backgrounds_area theme property so themes can explicitly &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2059526&quot;&gt;control whether background images apply to the whole window or only the top toolbars&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;Thanks to Emilio for the new theme property to control background image placement!&lt;/li&gt;
&lt;li&gt;This is targeting Firefox 156, and developer documentation &lt;a href=&quot;https://github.com/mdn/content/pull/45362#top&quot;&gt;will be added to MDN soon&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;The multi-context address bar for New Tab has been enabled in Nightly!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt=&quot;The multi-context address bar for New Tab displaying various search results&quot; class=&quot;aligncenter size-full wp-image-2111&quot; height=&quot;523&quot; src=&quot;https://blog.nightly.mozilla.org/files/2026/09/image5.png&quot; width=&quot;922&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;ul&gt;
&lt;li&gt;There are a number of known bugs to address before this can ride. We’re tentatively aiming to have this release sometime in Q4.&lt;/li&gt;
&lt;li&gt;Notice an issue with it? &lt;a href=&quot;https://bugzilla.mozilla.org/enter_bug.cgi?product=Firefox&amp;amp;component=Address+Bar&amp;amp;status_whiteboard=[sng][mcab-hnt]&amp;amp;blocked=mcab-hnt&quot;&gt;File a bug here&lt;/a&gt;!&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Volunteer contributor Andrew fixed&lt;a href=&quot;https://bugzil.la/2031465&quot;&gt; a white flash for the New Tab page on startup&lt;/a&gt; for users that have dark mode enabled by default.&lt;/li&gt;
&lt;li&gt;The DevTools team has made it possible to inspect and edit stylesheets from within the JavaScript Debugger pane.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt=&quot;Stylesheet editor within the DevTools JavaScript Debugger pane&quot; class=&quot;aligncenter size-full wp-image-2109&quot; height=&quot;730&quot; src=&quot;https://blog.nightly.mozilla.org/files/2026/09/image7.png&quot; width=&quot;810&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;ul&gt;
&lt;li&gt;The feature can also be enabled from the experimental section in the devtools settings panel, or by setting devtools.debugger.features.stylesheets-in-debugger to true in about:config.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Friends of the Firefox team&lt;/h3&gt;
&lt;h4&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/buglist.cgi?title=Resolved%20bugs%20(excluding%20employees)&amp;amp;quicksearch=2039602%2C2061020%2C2062989%2C2059452%2C2062133%2C2063031%2C2063851%2C2064117%2C2041444%2C2063466%2C2064482%2C2064740%2C2059240%2C2031465%2C2040974%2C206439%2C2060303%2C2062876%2C2003172%2C1944206%2C1969880%2C2064899%2C1776179%2C2060460%2C2065815%2C1695881%2C1910664%2C2062096%2C2066512%2C2065655%2C2064541%2C2066478%2C2065468%2C2062143&quot;&gt;Resolved bugs (excluding employees)&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/niklasbaumgardner/NewContributorScraper&quot;&gt;Script to find new contributors from bug list&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;Volunteers that fixed more than one bug&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;:Benjamin Peterson&lt;/li&gt;
&lt;li&gt;ExplodingJoysticks&lt;/li&gt;
&lt;li&gt;Gopalarathnam Venkatesan&lt;/li&gt;
&lt;li&gt;Khalid AlHaddad&lt;/li&gt;
&lt;li&gt;Lukáš Lipinský&lt;/li&gt;
&lt;li&gt;Chris Van Linden&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;New contributors (🌟 = first patch)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;🌟 Amadi: &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2066478&quot;&gt;Update comments that point at the removed openUILinkIn function&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;🌟 dchen705: &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2065655&quot;&gt;Remove unnecessary module import in browser/components/urlbar/tests/browser/head.js&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ekerin Agboola: &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2064541&quot;&gt;Remove old documentation related to the removed SEARCH_SUGGESTIONS_LATENCY_MS histogram&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ExplodingJoysticks:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1910664&quot;&gt;Cleanup dead code in PageThumbs (preserveAspectRatio)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1944206&quot;&gt;Dead code in services/crypto/modules/utils.sys.mjs#&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Gopalarathnam Venkatesan:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2003172&quot;&gt;Remove unused lightweightThemes.getMoreURL pref&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2062096&quot;&gt;Remove orphaned selectHistoryMode JSDoc from browser/components/preferences/tests/privacy/&lt;/a&gt;&lt;a href=&quot;http://head.js&quot;&gt;head.js&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;🌟 &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2062989&quot;&gt;Fix incorrect ‘this’ in the Sync add-on install error handler&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2065468&quot;&gt;gBrowser.selectedTabs does not return tabs in tab order&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;🌟 Andrew: &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2031465&quot;&gt;White flash on startup caused by abouthome_cache storing  incompatible startup frame&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;🌟 Kana: &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2062133&quot;&gt;browser_privatebrowsing_resetPBM.js awaits an array instead of Promise.all, so the tab-close wait does nothing&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Project Updates&lt;/h3&gt;
&lt;h4&gt;Add-ons / Web Extensions&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;As part of Nova about:addons work:
&lt;ul&gt;
&lt;li&gt;Restyled the Extensions panel empty states to match the Figma specs, including a new illustration for the disabled add-ons and private browsing states –&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2058450&quot;&gt; Bug 2058450&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fixed a jiggle effect when scrolling through theme previews in about:addons –&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2059917&quot;&gt; Bug 2059917&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Added spacing between message bars and their sibling elements in the about:addons page (empty state promo, theme appearance mode control) –&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2066436&quot;&gt; Bug 2066436&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Set focus on the extension permissions prompt dialog so keyboard users can reach it –&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2059855&quot;&gt; Bug 2059855&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Removed activeAddons/activeTheme/activeGMPlugins from the legacy telemetry environment, now collected only through Glean –&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2055613&quot;&gt; Bug 2055613&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;DevTools&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/user_profile?user_id=557153&quot;&gt;Nicolas Chevobbe [:nchevobbe]&lt;/a&gt; fixed an issue in the inspector to stop showing the HTML editor for nodes (e.g text or whitespace nodes) which should not be editable when F2 is pressed. (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2064213&quot;&gt;#2064213&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/user_profile?user_id=446518&quot;&gt;Sebastian Zartner [:sebo]&lt;/a&gt; updated the documentation for the Rules view to include details around the  @media emulation panel added some weeks back. (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2063851&quot;&gt;#2063851&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt=&quot;Emulation panel within the DevTools Rules view.&quot; class=&quot;aligncenter size-full wp-image-2110&quot; height=&quot;376&quot; src=&quot;https://blog.nightly.mozilla.org/files/2026/09/image6.png&quot; width=&quot;1110&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/user_profile?user_id=766005&quot;&gt;Chris Van Linden&lt;/a&gt; fixed an styling issue in debugger editor file search bar where the button hover background overlapped the focus outline (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2063466&quot;&gt;#2063466&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/user_profile?user_id=557153&quot;&gt;Nicolas Chevobbe [:nchevobbe]&lt;/a&gt;  fixed an a11y issue where the keyboard focused sliders in the fonts panel did not have the correct contrast against the background. This allows keyboard users to easily see which control currently has focus. (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2062576&quot;&gt;#2062576&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/user_profile?user_id=656417&quot;&gt;Hubert Boma Manilla (:bomsy)&lt;/a&gt; added telemetry to track the usage of styles sheets shown in the debugger (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2060500&quot;&gt;#2060500&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;WebDriver&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Khalid AlHaddad improved Marionette and Remote Agent to &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2040974&quot;&gt;quit Firefox with a custom error code&lt;/a&gt; when they failed to start their server.&lt;/li&gt;
&lt;li&gt;Khalid AlHaddad updated the moz:debugging module to &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2060460&quot;&gt;properly handle nested pauses&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Sameem updated the handling of user contexts to &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1969880&quot;&gt;clean up the settings set per a user context (e.g., proxy settings or accepting of insecure certificates) also when a user context is removed outside of WebDriver BiDi&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Henrik Skupin updated the &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2026697&quot;&gt;WebDriver:GetElementTagName command to return the element’s qualified name&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Henrik Skupin improved the &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2054442&quot;&gt;Perform Actions command in both Marionette and WebDriver Bidi to dispatch intermediate events at more precise intervals&lt;/a&gt; when duration is greater than 0.&lt;/li&gt;
&lt;li&gt;Alexandra Borovova updated &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2066782&quot;&gt;the “browsingContext.startScreencast” command to handle a screencast file creation on operating systems that don’t have a dedicated download folder&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Lint, Docs and Workflow&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;The TypeScript linter has been &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1975512&quot;&gt;promoted to tier-2&lt;/a&gt;.
&lt;ul&gt;
&lt;li&gt;There is no automation for the core type updates yet.&lt;/li&gt;
&lt;li&gt;However, several areas have been working on support, hence the promotion to tier 2.&lt;/li&gt;
&lt;li&gt;Until we get the automation in place, we will not be ready for wider roll-out, as it will be more likely that core patches will break the TypeScript reporting.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;New Tab Page&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Developer experience improvement: it’s no longer necessary to create the WebPack bundles when updating New Tab JSX / SCSS files. This occurs automatically during the ./mach build [faster] step. Thanks to &lt;a href=&quot;mailto:nbarrett@mozilla.com&quot;&gt;&lt;span&gt;Nathan Barrett&lt;/span&gt;&lt;/a&gt; for his work there!&lt;/li&gt;
&lt;li&gt;Mike Kaply made it so that&lt;a href=&quot;https://bugzil.la/1983258&quot;&gt; New Tab Settings honor Locked Preferences in policy&lt;/a&gt; by making the New Tab settings UI read and respect policy-locked preferences and disabling corresponding controls so managed/enterprise users cannot override locked prefs from the settings surface.&lt;/li&gt;
&lt;li&gt;Mike Conley landed a patch to address &lt;a href=&quot;https://bugzil.la/2016440&quot;&gt;potential shutdown hangs / crashes when newtab trainhop XPIs are in the midst of being downloaded during a shutdown&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Irene Ni made it so that we &lt;a href=&quot;https://bugzil.la/2035622&quot;&gt;always show an add shortcut button for New Tab shortcuts&lt;/a&gt; when hovering the outside edge of the shortcuts area&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt=&quot;&amp;quot;Plus&amp;quot; button located to the right of New Tab shortcuts.&quot; class=&quot;aligncenter size-full wp-image-2115&quot; height=&quot;173&quot; src=&quot;https://blog.nightly.mozilla.org/files/2026/09/image1.png&quot; width=&quot;287&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Irene Ni fixed&lt;a href=&quot;https://bugzil.la/2056249&quot;&gt; some &amp;lt;hr&amp;gt;&lt;/a&gt; seperators that were leaking out of some containers by scoping the HR rules to the briefing-card container.&lt;/li&gt;
&lt;li&gt;Reem Hamoui&lt;a href=&quot;https://bugzil.la/2056347&quot;&gt; added missing alt text/ARIA labels to the New Tab Page weather widget&lt;/a&gt;, restoring screen‑reader semantics for weather images in the NTP widgets.&lt;/li&gt;
&lt;li&gt;Jack Brown&lt;a href=&quot;https://bugzil.la/2060343&quot;&gt; added scroll100 and scroll250 boolean metrics to the newtab ping&lt;/a&gt; to capture 100px/250px scroll‑depth thresholds for analytics—this is a telemetry/schema change with no UI impact.&lt;/li&gt;
&lt;li&gt;Scott Downe&lt;a href=&quot;https://bugzil.la/2061742&quot;&gt; created the ‘spaces’ content layout variant for the New Tab Page&lt;/a&gt;, introducing an alternate DOM/CSS layout for Spaces that changes tile/content rendering and is gated by the Spaces rollout flag/pref.&lt;/li&gt;
&lt;li&gt;A Stocks widget is in-flight, starting with the US market&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt=&quot;Stocks widget in the New Tab page listing prices for SPY, DIA, ONEQ, and IWM.&quot; class=&quot;aligncenter size-full wp-image-2112&quot; height=&quot;142&quot; src=&quot;https://blog.nightly.mozilla.org/files/2026/09/image4.png&quot; width=&quot;339&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;ul&gt;
&lt;li&gt;Nina Pypchenko [:nina-py]&lt;a href=&quot;https://bugzil.la/2062482&quot;&gt; added a Markets/Watchlist dropdown to the Stocks widget on New Tab&lt;/a&gt; so users can switch views in-place; the dropdown selection is persisted in the widget state.&lt;/li&gt;
&lt;li&gt;Nina Pypchenko [:nina-py]&lt;a href=&quot;https://bugzil.la/2062483&quot;&gt; let users add default tickers to their Stocks Watchlist&lt;/a&gt; so new or reset users see a curated set of tickers and the add-flow now persists defaults to the watchlist storage.&lt;/li&gt;
&lt;li&gt;Nina Pypchenko [:nina-py]&lt;a href=&quot;https://bugzil.la/2062920&quot;&gt; added a small size to the Stocks New Tab widget&lt;/a&gt;, introducing a compact 1×1 Stocks tile in the Firefox New Tab Page layout so users on narrow windows or dense NTP configurations can keep Stocks visible without consuming medium/large slots.&lt;/li&gt;
&lt;li&gt;Nina Pypchenko [:nina-py]&lt;a href=&quot;https://bugzil.la/2063144&quot;&gt; updated the Stocks widget feed to fetch data for individual stock tickers&lt;/a&gt;, changing the widget network layer to per-ticker requests so added symbols get independent, timely updates and per-symbol errors are surfaced instead of breaking the entire feed.&lt;/li&gt;
&lt;li&gt;Nina Pypchenko [:nina-py]&lt;a href=&quot;https://bugzil.la/2063183&quot;&gt; added ticker search to find and add individual stocks&lt;/a&gt;, adding a search/lookup UI and add flow that calls the ticker lookup API and updates widget state/local storage so users can search, add, and immediately see new symbols on their New Tab Page.&lt;/li&gt;
&lt;li&gt;Bryan Olsson added a plural selector to the Fluent string&lt;a href=&quot;https://bugzil.la/2064914&quot;&gt; newtab-stocks-watchlist-full&lt;/a&gt; in the New Tab Page localization so the Stocks widget shows correct singular/plural wording for watchlist sizes across locales, fixing grammar that could confuse users when their watchlist count changes and touching the NTP stocks string bundle used by all localized builds.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;We’ve also started rolling out an experimental Privacy widget&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt=&quot;Privacy widget in the New Tab page showing how many trackers were blocked across two sites.&quot; class=&quot;aligncenter size-full wp-image-2114&quot; height=&quot;149&quot; src=&quot;https://blog.nightly.mozilla.org/files/2026/09/image2.png&quot; width=&quot;351&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;ul&gt;
&lt;li&gt;Reem Hamoui changed the Privacy widget copy color to grey in the New Tab Page so the “Nightly blocks trackers as you browse. You will see them here.” text displays with correct muted contrast (&lt;a href=&quot;https://bugzil.la/2063205&quot;&gt;2063205&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;Reem Hamoui restored the ETP OFF state rendering in the New Tab Page privacy widget so the widget shows the actual ETP OFF status instead of misleading ‘blocks trackers’ copy for users who disable ETP (&lt;a href=&quot;https://bugzil.la/2063525&quot;&gt;2063525&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;Reem Hamoui&lt;a href=&quot;https://bugzil.la/2063958&quot;&gt; applied UX fixes to the New Tab Page privacy widget&lt;/a&gt; to correct alignment, labels, and click-targets so users see and interact with the widget reliably and accessibility attributes behave as expected.&lt;/li&gt;
&lt;li&gt;Reem Hamoui&lt;a href=&quot;https://bugzil.la/2063963&quot;&gt; fixed the blocked-tracker count not updating after opening a new tab&lt;/a&gt; by ensuring the tally is recomputed on tab open (cache invalidation + UI binding refresh), restoring accurate tracker numbers in the widget.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;We’ve also started tinkering with some new layout variants
&lt;ul&gt;
&lt;li&gt;Here’s one such layout (widget column on left):&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt=&quot;Layout variant for the New Tab page, with the Widgets column situated on the left side of the page.&quot; class=&quot;aligncenter size-full wp-image-2113&quot; height=&quot;932&quot; src=&quot;https://blog.nightly.mozilla.org/files/2026/09/image3.png&quot; width=&quot;1465&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;ul&gt;
&lt;li&gt;Irene Ni updated SectionsLayoutFeed’s 7-double-row-2-ad fallback to match Remote Settings so feed layout and ad fallback counts align with remote config, reducing layout mismatches and incorrect ad placements in feeds using the fallback (&lt;a href=&quot;https://bugzil.la/2063684&quot;&gt;2063684&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;Irene Ni&lt;a href=&quot;https://bugzil.la/2065554&quot;&gt; implemented a carousel card type&lt;/a&gt; for the New Tab feed, adding slide-based card rendering and navigation hooks so users get swipeable/rotating cards in the carousel component.&lt;/li&gt;
&lt;li&gt;Irene Ni&lt;a href=&quot;https://bugzil.la/2066504&quot;&gt; deduped impressions for a carousel slide that cycles back into view&lt;/a&gt;, preventing duplicate impression pings when a slide reappears and improving the accuracy of telemetry/ad metrics.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Dre&lt;a href=&quot;https://bugzil.la/2064564&quot;&gt; cleaned up orphaned wallpapers&lt;/a&gt; in the wallpaper service to remove broken entries and reduce wasted storage so users no longer see missing background tiles.&lt;/li&gt;
&lt;li&gt;Dre&lt;a href=&quot;https://bugzil.la/2064767&quot;&gt; uploaded new wallpaper assets to match updated margins&lt;/a&gt; so backgrounds render without cropping or misalignment under the new NTP layout.&lt;/li&gt;
&lt;li&gt;Nina Pypchenko [:nina-py] fixed wallpaper attribution rendering in the Nova New Tab flow by adjusting the Nova-specific NTP component’s conditional rendering (CSS/JS) so the attribution node is not skipped when the nova feature is enabled, restoring photographer/credit metadata on New Tab pages for users on Nova-enabled desktop builds and preventing missing attribution UX.&lt;/li&gt;
&lt;li&gt;We’re in early days in building out the infrastructure for a Recent Searches widget
&lt;ul&gt;
&lt;li&gt;Nina Pypchenko [:nina-py] added a blank widget scaffold to the New Tab Page widget registry for the Search team (&lt;a href=&quot;https://bugzil.la/2065011&quot;&gt;bug 2065011&lt;/a&gt;), creating a no-op/placeholder widget registration hook so the Search team can iterate on experiments without changing current NTP visuals — no immediate visible impact for end-users until the widget is populated.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Dão Gottwald&lt;a href=&quot;https://bugzil.la/2065170&quot;&gt; fixed an unscoped panel-item::part(button) rule that stripped the icon slot from panel-items it didn’t own&lt;/a&gt;, restoring missing icons in New Tab panels and preventing blank/empty buttons in the UI.&lt;/li&gt;
&lt;li&gt;Maxx Crawford added support for&lt;a href=&quot;https://bugzil.la/2066527&quot;&gt; auto-minimized the New Tab widgets section after a short delay&lt;/a&gt;, closing expanded widgets automatically to reduce visual clutter and accidental persistent open state.&lt;/li&gt;
&lt;li&gt;Irene Ni&lt;a href=&quot;https://bugzil.la/2066897&quot;&gt; implemented the Topic Navigation Strip V1 in the New Tab Page&lt;/a&gt;, adding a horizontal topic-nav UI in the New Tab (top-sites/topics area) that improves discoverability and lets users switch topic feeds faster.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Picture-in-Picture&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Pier Angelo Vendrame &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2063031&quot;&gt;made the document PiP video size spoofable under resist fingerprinting&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Lukáš Lipinský &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1776179&quot;&gt;fixed WebVTT tracks failing to display after opening a PiP window&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Search and Urlbar&lt;/h4&gt;
&lt;h6&gt;&lt;strong&gt;Nova UI refresh&lt;/strong&gt;&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;Drew and Daisuke continued polishing the urlbar experience in Nova.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2067360&quot;&gt;Bug 2067360&lt;/a&gt;, &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2063170&quot;&gt;Bug 2063170&lt;/a&gt;, &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2063167&quot;&gt;Bug 2063167&lt;/a&gt;, &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2063127&quot;&gt;Bug 2063127&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h6&gt;&lt;strong&gt;Suggest&lt;/strong&gt;&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;Drew fixed alignment of the explanation text on various result types. &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2063460&quot;&gt;Bug 2063460&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Drew enabled more providers (like Wikipedia) for DE, FR, IT regions. &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2064557&quot;&gt;Bug 2064557&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Drew updated important dates suggestions for 2027 in DE, FR, GB, IT and US regions. &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2064437&quot;&gt;Bug 2064437&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Dao fixed a regression with the result menu being empty on certain results. &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2066758&quot;&gt;Bug 2066758&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h6&gt;&lt;strong&gt;Adaptive autofill&lt;/strong&gt;&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;James is analyzing results of experiments and working with Product to let the feature ride to Release in the near future.&lt;/li&gt;
&lt;/ul&gt;
&lt;h6&gt;&lt;strong&gt;Quick actions&lt;/strong&gt;&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;Dale improved the Open Firefox Labs action. &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2063849&quot;&gt;Bug 2063849&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Dale improved styling of disabled actions. &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2056488&quot;&gt;Bug 2056488&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h6&gt;&lt;strong&gt;Multi Context Address Bar&lt;/strong&gt;&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;Dao and Moritz made great progress with having the urlbar code work in different contexts, including across processes.&lt;/li&gt;
&lt;li&gt;Dao migrated some text input context menus (address bar, search bar, Thunderbird compose subject) onto a single shared menu with a new custom-item API, allowing removal of the legacy moz-input-box component.See &lt;a href=&quot;https://searchfox.org/firefox-main/rev/d02caf81ab6ef0bbe70fcbe4e6388923d1744e96/toolkit/content/editMenuOverlay.js#91-97&quot;&gt;EditContextMenu&lt;/a&gt; for documentation and usage. &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2064369&quot;&gt;Bug 2064369&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Dharma started refactoring the urlbar code to use extended classes. &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2064728&quot;&gt;Bug 2064728&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;New tab search bar has been enabled in Nightly! &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2062212&quot;&gt;Bug 2062212&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/enter_bug.cgi?product=Firefox&amp;amp;component=Address+Bar&amp;amp;status_whiteboard=[sng][mcab-hnt]&amp;amp;blocked=mcab-hnt&quot;&gt;File a bug&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;The uipc variant of urlbar tests is now tier1, failures will be backed out.&lt;/li&gt;
&lt;/ul&gt;
&lt;h6&gt;&lt;strong&gt;Other notable Address Bar fixes&lt;/strong&gt;&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;Dao made tabbing from the urlbar field focus the search field, if present on the toolbar, instead of the search button inside it. &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2009628&quot;&gt;Bug 2009628&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Daisuke addressed an issue where an autofilled URL was ignored just after launching Firefox. &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2057763&quot;&gt;Bug 2057763&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Moritz fixed a regression causing undo to no longer work in the urlbar. &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2061633&quot;&gt;Bug 2061633&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Moritz fixed a regression with the placeholder text in the urlbar showing garbled characters. &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2063779&quot;&gt;Bug 2063779&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;Search&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;Mark added support for POST search engines to the contextual actions in the urlbar. &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2064047&quot;&gt;Bug 2064047&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Caleb fixed an accessibility issue in the add search engine dialog. &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2041438&quot;&gt;Bug 2041438&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;Places&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;Caleb fixed a bug where moving a group of folders could move some bookmarks out of their parent folder. &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2044707&quot;&gt;Bug 2044707&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded>
	<dc:date>2026-09-17T17:14:51+00:00</dc:date>
	<dc:creator>Katherine Patenio</dc:creator>
</item>
<item rdf:about="https://blog.mozilla.org/netpolicy/?p=2623">
	<title>Mozilla Privacy Blog: Pragmatic principles for more rights-respecting age assurance architectures</title>
	<link>https://blog.mozilla.org/netpolicy/2026/09/17/pragmatic-principles-for-more-rights-respecting-age-assurance-architectures/</link>
	<content:encoded>&lt;p&gt;&lt;i&gt;This is the second part of a two-part series in which we explore approaches to protecting children online while safeguarding privacy, security and the open web. &lt;/i&gt;&lt;a href=&quot;https://blog.mozilla.org/netpolicy/2026/07/17/beyond-technical-fixes-protecting-kids-online-without-breaking-the-internet/&quot;&gt;&lt;i&gt;Part one&lt;/i&gt;&lt;/a&gt;&lt;i&gt; covers our concerns regarding age gates, and suggests alternative policy proposals that address the root causes of online harms. Part two explores better ways to build age assurance architectures that respect users’ rights and autonomy.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Across the world, legislation to introduce age gates and social media bans is proliferating. Many governments are still considering age restrictions a straight-forward and cost-effective tool to achieve their child safety goals. However, evidence is mounting that age assurance mandates pose risks to users’ privacy, security, free expression and access to  information, threaten the open web and competition, and undermine policymakers’ goals: enabling young people to have safe and trustworthy experiences online, while enabling the digital economy to grow.&lt;/p&gt;
&lt;p&gt;As we have &lt;a href=&quot;https://blog.mozilla.org/netpolicy/2025/12/19/australias-social-media-ban-why-age-limits-wont-fix-what-is-wrong-with-online-platforms/&quot;&gt;said before,&lt;/a&gt; we believe that blunt tools like social media bans are overly broad, undermine users’ rights and do not address the root causes of online harm. Reducing risks to young people online requires a &lt;a href=&quot;https://blog.mozilla.org/netpolicy/2026/07/17/beyond-technical-fixes-protecting-kids-online-without-breaking-the-internet/&quot;&gt;holistic, privacy-first  approach&lt;/a&gt; to online harms emphasizing enforcement of existing rules, addressing harmful design, and equipping all users with better defaults, more choice and granular controls over their experiences online.&lt;/p&gt;
&lt;p&gt;Age gates alone are insufficient to address online harms, but age signals can contribute to more holistic approaches by helping achieve age-appropriate experiences online. Where age assurance obligations are considered as one tool out of many to foster age-appropriate experiences, their potential benefits must be balanced against their negative implications for users’ privacy and security, access to services, and the openness of the web.&lt;/p&gt;
&lt;h3&gt;From the service to the device – taking stock of regulatory models&lt;/h3&gt;
&lt;p&gt;Implementing age assurance is &lt;a href=&quot;https://kgi.georgetown.edu/wp-content/uploads/2026/07/Assigning-Responsibility-for-Age-Assurance_KGI_July-2026.pdf#h.ma70j4osehnj&quot;&gt;not a single intervention&lt;/a&gt;, but a series of steps. A user’s age is first &lt;b&gt;assessed,&lt;/b&gt; which can happen through a variety of sources of age information and with varying degrees of accuracy. That signal is secondly &lt;b&gt;shared &lt;/b&gt;with the actor responsible for age-appropriate experiences, and thirdly acted upon or &lt;b&gt;enforced&lt;/b&gt; by that actor.&lt;/p&gt;
&lt;p&gt;Dominant approaches to age assurance obligations &lt;b&gt;focus on online platforms&lt;/b&gt; – given that this is where many risks encountered by young people unfold. In practice, this has led  to online services – websites or apps – turning to third-party age assurance providers to perform age assurance, whether through biometric age estimation, age inference based on users’ behavioral data, ID-based checks, or other methods.&lt;/p&gt;
&lt;p&gt;In this model, third-party age assurance companies both assess users’ ages and share that signal with the platforms responsible for implementing it. To retain access to social media platforms, messaging services and many other online offerings, users are thus forced to surrender their sensitive personal data to these age brokers, often a different one for each service.&lt;/p&gt;
&lt;p&gt;Once in the hands of these providers,  peoples’ data is at risk of being &lt;a href=&quot;https://idtechwire.com/exposed-persona-frontend-reveals-extensive-biometric-surveillance-stack-behind-age-verification/&quot;&gt;sold, repurposed or accessed by law enforcement&lt;/a&gt;. The recent &lt;a href=&quot;https://krebsonsecurity.com/2026/09/fbi-probes-service-selling-153m-drivers-licenses/&quot;&gt;data breach&lt;/a&gt; of a ID and age verification provider that exposed more than 153 million IDs underscores that this is not a theoretical concern, but a significant risk for anyone  asked to prove their age online. Rather than being asked to trust companies, some of which have already been exposed for their harmful data practices, people deserve verifiable guarantees that their data is safe and secure.&lt;/p&gt;
&lt;p&gt;Emerging regulatory models are considering the role that &lt;b&gt;device intermediaries&lt;/b&gt;, like operating systems, device manufacturers, and app stores, can play in age assurance. In such models, these actors are either required to communicate an age signal to the actor responsible for acting on it, or to restrict access to services themselves, based on an age signal created at the device level.&lt;/p&gt;
&lt;p&gt;Device intermediary focused approaches, too, come with significant challenges: Given the significant concentration of power among (mobile) operating systems and app stores, such a legislative design can easily further entrench the dominance of Apple and Google, disadvantage open source competitors, and undermine users’ privacy and control, including over their devices. These implications must be &lt;a href=&quot;https://kgi.georgetown.edu/wp-content/uploads/2026/07/Assigning-Responsibility-for-Age-Assurance_KGI_July-2026.pdf#h.3hx3lxj7f0ms&quot;&gt;carefully mitigated&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Principles for better age assurance architectures&lt;/h3&gt;
&lt;p&gt;Every approach to age assurance comes with important trade-offs, and we maintain that there is no age assurance system that mitigates all risks to users’ fundamental rights, access to services, competition and the open web, while being effective in avoiding every instance of under-age access. However, we do believe that better age assurance architectures are possible. In many situations, unverified age signals may be sufficient to provide age -appropriate experiences without undermining fundamental rights. Where stronger assurances are considered necessary, zero knowledge architectures can help protect users’ privacy.&lt;/p&gt;
&lt;p&gt;Better age assurance architectures must be private, secure, accessible to all users, and, crucially, must provide them with autonomy, choice and control. Designing age assurance obligations that live up to these values is a question of governance, not technology. Hence, policymakers have a crucial role to play in defining requirements for rights-respecting age assurance systems.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. Assign&lt;/strong&gt;&lt;b&gt; responsibilities deliberately.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;From people’s devices, to operating systems, app stores and websites or apps, many actors can be involved in age assurance processes. Some of these actors will be better suited to be responsible for certain steps of age assurance processes than others to avoid negative outcomes for fundamental rights and the open web.&lt;/p&gt;
&lt;p&gt;Given that websites and apps know most about their services, their features and content hosted, we argue that they are in the best place to act on age signals to provide age-appropriate experiences. Implementing age signals at this level allows for more granular choices for creating age appropriate experiences. Other actors, like network operators or device vendors, simply do not have the necessary information.&lt;/p&gt;
&lt;p&gt;While websites or apps are best placed to create age appropriate experiences, device intermediaries like operating systems are well-placed to facilitate the privacy-preserving sharing of age signals created locally. Moving age assessments to the device-level allows users to interact with an age provider once, rather than having their age assessed by a different age provider for every service they use. If such approaches are pursued, strong protections need to be in place for open source operating system providers, as well as mandates for the development of open and free standards to avoid fragmentation and competition harms, and to strengthen transparency and user consent&lt;/p&gt;
&lt;p&gt;&lt;b&gt;2. Ensure choice, equity and accessibility. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Age can be attested to, approximated or verified &lt;a href=&quot;https://kgi.georgetown.edu/wp-content/uploads/2026/01/Age_Assurance_Online_Technical-Assessment_Report_KGI.pdf&quot;&gt;in many ways&lt;/a&gt;. Every age assessment method comes with important trade-offs, but people should not be forced to take risks on their personal data and safety to retain access to services and information. Users should thus always have a choice between multiple age providers that are privacy-preserving, non-discriminatory and accessible. This is especially important for young people who often don’t have access to more privacy-preserving age assurance methods, and are expected to hand over their biometric data to stay online.&lt;/p&gt;
&lt;p&gt;The question of which providers are deemed trustworthy enough to participate in such a system is a crucial one. Policymakers must ensure that the options available to people protect their privacy and security, and that a diverse list of providers prevents people from being locked out. Only if everyone has the ability to access age assurance systems through privacy-preserving and rights-respecting providers, will the web remain accessible and open. People should be able to rely on a plurality of institutions, government or private, that can either attest to their age, including face-to-face, or have existing knowledge of their ages that they can share through the use of anonymous credential technology. Examples might be banks, public health and educational institutions, libraries, or services like phone providers, ISPs, subscription services or other services that are able to attest to a user’s age.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;3. Put people in control.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;We should always be in control over what information is shared about us, and to whom. Once an age signal is created, age assurance architectures should empower users to hold that signal – in the form of a credential – on their device. Whether an age signal is shared with an app or website by the operating system or the browser, users must be in control of the decision whether and to whom that information is shared with.&lt;/p&gt;
&lt;p&gt;Users must also retain control over – and trust in – their devices. Digital devices are the interface through which we all navigate increasingly large parts of our lives; they are our trust anchors. Enforcing restrictions at the device level on what people can or cannot do online would undermine the already fragile trust relationship between the two — pushing people toward less secure workarounds, rather than addressing the underlying policy concern.&lt;/p&gt;
&lt;p&gt;This means that it is best when responsibility for &lt;b&gt;sharing&lt;/b&gt; the results of age assessments is performed by users and their devices.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;4. Assess risks end-to-end.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Many jurisdictions require age assurance systems to be “highly effective”. We believe that the effectiveness of an age assurance system should be considered end-to-end, and not be limited to the assessment step: After all, where an older relative or friend is willing to help a child circumvent a block, no technical mechanism can be effective.&lt;/p&gt;
&lt;p&gt;Given these considerations, we think there is value in considering age assurance approaches that empower parents to attest to their child’s age when setting up their device. Coupled with barriers to resetting the age once set, such an age signal would provide a high degree of confidence without requiring invasive proofs of age through biometric analysis or ID document checks. As noted above, such approaches need to ensure that age attestation is not another factor cementing the dominance for a few actors, and that open source projects are meaningfully protected from being locked out of participating in a market.&lt;/p&gt;
&lt;p&gt;Despite those challenges, we believe that it is crucial to not only consider the potential risks young people could encounter online, but also the risks flowing from age assurance systems themselves. Given those risks, parental age attestation can be a lower-risk approach suitable in many contexts.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;5. Leverage zero-knowledge architectures. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Where high-assurance age credentials are used, &lt;a href=&quot;https://en.wikipedia.org/wiki/Zero-knowledge_proof&quot;&gt;zero-knowledge&lt;/a&gt; architectures are the right step towards sharing age signals in a privacy preserving way. Such approaches allow users to verify the truth of a statement about them, like their age or age range, without having to reveal the information on which the statement is based.&lt;/p&gt;
&lt;p&gt;While zero-knowledge architectures are promising, they do not solve every issue. Beyond limiting disclosure of information about people (such as attributes other than their age), hiding the issuer of age credentials (like a bank, public service or educational institution) is key to preserving users’ privacy and choice of assessment methods. This prevents discrimination against users of smaller or less common age providers.&lt;/p&gt;
&lt;p&gt;Likewise, the issuer of an age credential should not know which service or feature someone is accessing with an age proof. The example of &lt;a href=&quot;https://english.elpais.com/technology/2024-01-19/experts-warn-of-the-dangers-and-difficulties-of-a-government-instituted-anti-porn-app-this-has-never-been-successful.html&quot;&gt;Spain’s Catera Digital&lt;/a&gt;, or “porn passport”, shows why: The Spanish age verification system created tokens that the verifying authority could use to infer a user’s browsing history, undermining users’ privacy, trust, and ultimately the adoption of the system.&lt;/p&gt;
&lt;p&gt;Zero-knowledge proofs themselves also do not prevent abuse of age information, such as by using age data in ad targeting. Beyond strict prohibitions on repurposing age data, we believe that any age assurance system should be open source to facilitate trust, accountability and transparency.&lt;/p&gt;
&lt;p&gt;To prevent the sharing of age tokens, we believe rate limits, which restrict how often an age token can be used, are the best and most effective solution. We strongly caution against linking tokens to attested hardware, such as &lt;a href=&quot;https://en.wikipedia.org/wiki/Trusted_Platform_Module&quot;&gt;trusted platform modules (TPMs).&lt;/a&gt; Hardware-bound tokens force users to use specific, approved hardware. Hardware attestations can leak details about the device’s configuration and location, thus enabling tracking or unjustified discrimination at the moment of certification issuance. Attestations undermine users’ freedom over their own devices, including what software they can install and run. People who run older or unsupported devices might be excluded as old, weak hardware is routinely found to be compromised, such that it needs to be revoked. Rate limits offer a far simpler and more robust answer to these challenges.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;6. Don’t break the internet. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;The open internet – and the web built on top of it – is a global public resource that millions depend on every day, and that has become a cornerstone of our societies. This openness thrives on open standards, shared protocols, and interoperability. Age checks risk fragmenting the web in more ways than one: Incompatible requirements will create a patchwork of age-gated communities, and age gates in the hands of a few will push people further into closed ecosystems, undermining the wider digital competition and the decentralization that gives the internet its strength.&lt;/p&gt;
&lt;p&gt;To avoid the hollowing out of fundamental rights online, and the undermining of the open internet, international collaboration and free and open standards are urgently needed to govern age assurance across borders.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;***&lt;/p&gt;
&lt;p&gt;We believe the principles set out above can help mitigate the large-scale erosion of privacy, security, and agency that the first wave of age assurance laws and social media bans has introduced.&lt;/p&gt;
&lt;p&gt;But improved legislative mandates and technical fixes alone are not enough to improve young people’s online experiences in a rights-respecting way. Enabling young people to develop positive relationships with digital technologies is foremost a societal issue, not a technical one. Changing norms around how we engage with technology, what we ask of companies seeking our attention, and how we have conversations about what safety means beyond abstinence and control will require a whole-of-society approach to digital well-being.&lt;/p&gt;
&lt;p&gt;The post &lt;a href=&quot;https://blog.mozilla.org/netpolicy/2026/09/17/pragmatic-principles-for-more-rights-respecting-age-assurance-architectures/&quot;&gt;Pragmatic principles for more rights-respecting age assurance architectures&lt;/a&gt; appeared first on &lt;a href=&quot;https://blog.mozilla.org/netpolicy&quot;&gt;Open Policy &amp;amp; Advocacy&lt;/a&gt;.&lt;/p&gt;</content:encoded>
	<dc:date>2026-09-17T10:08:13+00:00</dc:date>
	<dc:creator>Svea Windwehr</dc:creator>
</item>
<item rdf:about="https://blog.rust-lang.org/2026/09/17/targeted-attacks/">
	<title>The Rust Programming Language Blog: Be alert: targeted attacks on prominent Rustaceans</title>
	<link>https://blog.rust-lang.org/2026/09/17/targeted-attacks/</link>
	<content:encoded>&lt;p&gt;We believe that there is an ongoing campaign targeting rust-lang members and
owners of popular crates that is attempting to compromise devices and accounts
in order to use them to publish malware.&lt;/p&gt;
&lt;h3&gt;&lt;a class=&quot;anchor&quot; href=&quot;https://blog.rust-lang.org/2026/09/17/targeted-attacks/#what-we-ve-seen&quot;&gt;&lt;/a&gt;
What we've seen&lt;/h3&gt;
&lt;p&gt;A video call is set up for something positive — maybe for a job, maybe for a
project, maybe for a contract opportunity — and then that's used as a vector to
either get the target to install something on their computer (such as a
purportedly missing audio codec) or execute another command (for example, via
putting a command on the clipboard).&lt;/p&gt;
&lt;p&gt;These attackers are setting up new but legitimate seeming company profiles,
including plausible LinkedIn presences, in order to pass cursory inspection.&lt;/p&gt;
&lt;p&gt;A &lt;a href=&quot;https://grack.com/blog/2026/06/25/dissecting-a-failed-nation-state-attack/&quot; rel=&quot;external&quot;&gt;previous attack of this form&lt;/a&gt; targeted many prominent Rust developers in
June, and, last month, the &lt;a href=&quot;https://blog.rust-lang.org/2026/08/20/supply-chain-attack-on-arrayref/&quot; rel=&quot;external&quot;&gt;&lt;code&gt;arrayref&lt;/code&gt; crate was briefly compromised through similar
attacks&lt;/a&gt;. At this moment we do not know if these are all a part of the same
campaign.&lt;/p&gt;
&lt;p&gt;This attack style is &lt;a href=&quot;https://kudelskisecurity.com/research/how-dprks-contagious-interview-campaign-targets-developers&quot; rel=&quot;external&quot;&gt;known to be used by the DPRK&lt;/a&gt;, and has been &lt;a href=&quot;https://ashishb.net/security/contagious-interview/&quot; rel=&quot;external&quot;&gt;seen outside of the Rust community as well&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;&lt;a class=&quot;anchor&quot; href=&quot;https://blog.rust-lang.org/2026/09/17/targeted-attacks/#what-you-can-do&quot;&gt;&lt;/a&gt;
What you can do&lt;/h3&gt;
&lt;p&gt;Please take extra care in the near term. Be appropriately suspicious of cold
outreaches, and ensure that any calls you have with new people are on platforms
you trust — ideally, try to be the one who sets up the call on a platform you
already use.&lt;/p&gt;
&lt;p&gt;Please also re-check that your accounts look normal: MFA enabled,
no unexpected logins on platforms that can track that, and so on.&lt;/p&gt;
&lt;p&gt;If you have any concerns about your accounts, please reach out to
&lt;a href=&quot;mailto:help@crates.io&quot;&gt;help@crates.io&lt;/a&gt; (for crates.io account concerns) and/or
&lt;a href=&quot;mailto:security@rust-lang.org&quot;&gt;security@rust-lang.org&lt;/a&gt; (for any other
concerns). We're very happy to help.&lt;/p&gt;</content:encoded>
	<dc:date>2026-09-17T00:00:00+00:00</dc:date>
	<dc:creator>Adam Harvey</dc:creator>
</item>
<item rdf:about="discourse.mozilla.org-topic-149466">
	<title>Firefox Tooling Announcements: Happy BMO Push Day! (20260916.1)</title>
	<link>https://discourse.mozilla.org/t/happy-bmo-push-day-20260916-1/149466</link>
	<content:encoded>&lt;p&gt;&lt;a href=&quot;https://github.com/mozilla-bteam/bmo/tree/release-20260916.1&quot; rel=&quot;noopener nofollow ugc&quot;&gt;Github Link&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The following changes have been pushed to &lt;a href=&quot;https://bugzilla.mozilla.org&quot;&gt;bugzilla.mozilla.org&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2069143&quot;&gt;Bug 2069143&lt;/a&gt; - When retrieving comments for a bug(s) via REST API, remove comments that would be collapsed in the web UI unless explicitly asking for them&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2070247&quot;&gt;Bug 2070247&lt;/a&gt; - Support limiting who can needinfo the Hackbot account&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2061445&quot;&gt;Bug 2061445&lt;/a&gt; - Migrate Bugzilla (system info) REST resource to native Mojo API&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1877201&quot;&gt;Bug 1877201&lt;/a&gt; - Post to &lt;code&gt;bug/{bugid}/comment&lt;/code&gt; returns wrong &lt;code&gt;comment_id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2072224&quot;&gt;Bug 2072224&lt;/a&gt; - Update REST API authentication documentation to reflect per-resource migration to native Mojo auth&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2060932&quot;&gt;Bug 2060932&lt;/a&gt; - Support GitHub-style &amp;lt;details&amp;gt;/&amp;lt;summary&amp;gt; collapsible sections in comments&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2072689&quot;&gt;Bug 2072689&lt;/a&gt; - Buglist link on My Dashboard is broken&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Discuss these changes in the &lt;a href=&quot;https://matrix.to/#/#bmo:mozilla.org&quot; rel=&quot;noopener nofollow ugc&quot;&gt;BMO Matrix Room&lt;/a&gt;&lt;/p&gt;
            &lt;p&gt;&lt;small&gt;1 post - 1 participant&lt;/small&gt;&lt;/p&gt;
            &lt;p&gt;&lt;a href=&quot;https://discourse.mozilla.org/t/happy-bmo-push-day-20260916-1/149466&quot;&gt;Read full topic&lt;/a&gt;&lt;/p&gt;</content:encoded>
	<dc:date>2026-09-16T18:03:55+00:00</dc:date>
	<dc:creator>dkl1</dc:creator>
</item>
<item rdf:about="discourse.mozilla.org-topic-149464">
	<title>Firefox Tooling Announcements: MozPhab 2.19.1 Released</title>
	<link>https://discourse.mozilla.org/t/mozphab-2-19-1-released/149464</link>
	<content:encoded>&lt;p&gt;Bugs resolved in Moz-Phab 2.19.1:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/2071003&quot;&gt;bug 2071003&lt;/a&gt; moz-phab patch --apply-to head moves to a detached HEAD&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Discuss these changes in &lt;span class=&quot;hashtag-raw&quot;&gt;#engineering-workflow&lt;/span&gt; on Slack or &lt;span class=&quot;hashtag-raw&quot;&gt;#Conduit&lt;/span&gt; Matrix.&lt;/p&gt;
            &lt;p&gt;&lt;small&gt;1 post - 1 participant&lt;/small&gt;&lt;/p&gt;
            &lt;p&gt;&lt;a href=&quot;https://discourse.mozilla.org/t/mozphab-2-19-1-released/149464&quot;&gt;Read full topic&lt;/a&gt;&lt;/p&gt;</content:encoded>
	<dc:date>2026-09-16T14:28:36+00:00</dc:date>
	<dc:creator>sheehan</dc:creator>
</item>
<item rdf:about="https://blog.mozilla.org/?p=87204">
	<title>The Mozilla Blog: Mozilla and Mistral: Partnering to expand AI competition and preserve user choice</title>
	<link>https://blog.mozilla.org/en/firefox/mozilla-mistral-partnership/</link>
	<content:encoded>&lt;p&gt;The AI race is shifting. Again. Practically overnight, competition has expanded from “which AI model is best?” to a new high-stakes battle over which models people can access, through which products, and whether people have meaningful choice about AI at all.&lt;/p&gt;



&lt;p&gt;In response, Mozilla and Mistral today &lt;a href=&quot;https://mistral.ai/news/mistral-x-mozilla/&quot;&gt;announced a partnership&lt;/a&gt; built on a shared idea: a new, open-source AI model alternative to Big Tech-default browser ecosystems. The intent: a model deliberately designed to keep the web open to technological diversity, competition, and choice.&lt;/p&gt;



&lt;p&gt;And we’re putting this idea into practice in Firefox. &lt;/p&gt;



&lt;p&gt;Mistral Small 4 is coming to Firefox Smart Window beta (learn more about Firefox Smart Window &lt;a href=&quot;https://blog.mozilla.org/en/firefox/firefox-smart-window/&quot;&gt;here&lt;/a&gt;), becoming a new AI model for Smart Window users in the US and Canada, while expanding Smart Window beta access and French-language support to Firefox users in France. Across all markets where Smart Window beta is available, Firefox users can still choose from a multitude of other AI models. &lt;/p&gt;



&lt;p&gt;“AI is becoming part of how people experience the web every day. We want to make sure that doesn’t mean people are chained to one company’s self-serving pipeline. With the browser sitting at the heart of the web and online experience, it should be a place where different AI providers can compete and open source has a seat at the table.&lt;/p&gt;



&lt;p&gt;This isn’t just a product partnership. A browser shouldn’t be a one-way funnel. It should preserve what made the internet powerful to begin with: the freedom to explore, discover different ideas and tech, and decide for ourselves where to go next,” said Anthony Enzor-DeMeo, CEO of Mozilla Corporation.&lt;/p&gt;



&lt;h3&gt;Choice and competition are worth protecting&lt;/h3&gt;



&lt;p&gt;As AI integration becomes increasingly concentrated, we are in jeopardy of a handful of closed-model companies controlling the browser, the search engine, the AI model, and the surrounding services that connect them. Mozilla and Mistral are betting that independent and interoperable models can offer an alternative to global tech monopolies controlling the next digital era. &lt;/p&gt;



&lt;p&gt;“This partnership represents two open source advocates working together to bring Mistral’s scientific innovations to Mozilla’s consumers around the world. Together, we are bringing privacy, control, and choice to AI-powered web browsing,” said Arthur Mensch, Co-founder and CEO of Mistral.&lt;/p&gt;



&lt;p&gt;Meaningful choice isn’t confined to personal preference for one AI model over another. Web products need to be able to work with different AI providers, and people deserve the option of switching without being locked into a single company’s ecosystem. When a tech layer as far-reaching and influential as AI is controlled by a small handful of players, it risks creating closed systems and closed doors, making it harder for new ideas and better technologies to grow, reach users, and compete on merits. &lt;/p&gt;



&lt;p&gt;Mozilla and Mistral aim to keep that door open. The combination of an independent browser with a frontier European AI company gives people and institutions greater access to useful, responsible AI, the opposite of locking them into one company’s singular technology ecosystem. &lt;/p&gt;



&lt;h3&gt;Selecting Mistral, and expanding to France &lt;/h3&gt;



&lt;figure class=&quot;wp-block-image size-large&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-87281&quot; height=&quot;673&quot; src=&quot;https://blog.mozilla.org/wp-content/blogs.dir/278/files/2026/09/Mistral-partnership-in-Firefox-UI-English1-1-1024x673.png&quot; width=&quot;1024&quot; /&gt;&lt;/figure&gt;



&lt;p&gt;Mozilla selected Mistral Small 4 after evaluating its performance for Smart Window Beta, including multilingual performance, an important part of the fit. The companies approached multilingual and multicultural tuning as a core model feature, rather than simply adapting an English-first experience for a new market. &lt;/p&gt;



&lt;p&gt;For Firefox users, Mistral access starts with Smart Window Beta, a browsing experience designed to turn AI into a useful assistant for the things we do online: making sense of complex search trails, finding something valuable you clicked away from, presenting data sources, and generally picking up where day-to-day internet use got left off. &lt;/p&gt;



&lt;p&gt;France is the first new market for Smart Window with official French-language support. Mozilla is planning additional European expansion later this year.&lt;/p&gt;



&lt;h3&gt;A different kind of AI competition&lt;/h3&gt;



&lt;p&gt;Our Mistral partnership puts an ambitious new AI model approach into practice: a multilingual, globally competitive European AI company reaching people through an independent browser, leveraging openness to create more room for new technologies to compete and succeed. Mistral can reach Firefox users without owning the browser, and Mozilla can integrate and recommend Mistral without removing user choice.&lt;/p&gt;



&lt;p&gt;It is a natural extension of the principles that have shaped Firefox and the open web, and the kind of AI ecosystem we intend to continue building.&lt;/p&gt;
&lt;p&gt;The post &lt;a href=&quot;https://blog.mozilla.org/en/firefox/mozilla-mistral-partnership/&quot;&gt;Mozilla and Mistral: Partnering to expand AI competition and preserve user choice&lt;/a&gt; appeared first on &lt;a href=&quot;https://blog.mozilla.org/en/&quot;&gt;The Mozilla Blog&lt;/a&gt;.&lt;/p&gt;</content:encoded>
	<dc:date>2026-09-16T08:00:00+00:00</dc:date>
	<dc:creator>Mozilla</dc:creator>
</item>
<item rdf:about="https://jonalmeida.com/til/fetch-one-off-github-contributions/">
	<title>Jonathan Almeida: Checkout a Github pull request from one-off contributions</title>
	<link>https://jonalmeida.com/til/fetch-one-off-github-contributions/</link>
	<content:encoded>&lt;p&gt;EDIT: Updated to reference &lt;code&gt;gh&lt;/code&gt; correctly. Thanks flod!&lt;/p&gt;
&lt;p&gt;Sometimes on Github, I need to fetch a patch from a fork I don't typically see everyday so I can try it out locally. I use the line at the top of the patch which has a copy button next to it because it's convenient.&lt;/p&gt;
&lt;div&gt;&lt;img src=&quot;https://jonalmeida.com/til/fetch-one-off-github-contributions/image-1.png&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; /&gt;&lt;/div&gt;
&lt;p&gt;The common steps for this are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Click the contributor's branch and go to their github fork repository.&lt;/li&gt;
&lt;li&gt;Copy the repository link.&lt;/li&gt;
&lt;li&gt;Add a new git remote with an alias (typically their username).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git fetch &amp;lt;alias&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git checkout &amp;lt;alias&amp;gt;/&amp;lt;branch&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Here is a one-liner for it that you can add to your &lt;code&gt;gitconfig&lt;/code&gt;:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot;&gt;&lt;code&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[&lt;/span&gt;&lt;span&gt;alias&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  co&lt;/span&gt;&lt;span&gt; =&lt;/span&gt;&lt;span&gt; &quot;&lt;/span&gt;&lt;span&gt;!f() { PNAME=$(basename `git rev-parse --show-toplevel`); OWNER=$(echo $1 | cut -d':' -f1); BRANCH=$(echo $1 | cut -d':' -f2); git fetch git@github.com:$OWNER/$PNAME.git $BRANCH; git checkout FETCH_HEAD; }; f&lt;/span&gt;&lt;span&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You might ask, why do all of this when the github &lt;code&gt;gh&lt;/code&gt; CLI does this for you?
While it does simplify some tasks, I wanted a solution that was independant to a specific git host. The &lt;code&gt;git@github.com&lt;/code&gt; remote that is used in the alias can be changed or made configurable if desired. This is something that I wouldn't be able to do with platform-dependant &lt;code&gt;gh&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The fetch also works well with &lt;code&gt;jj&lt;/code&gt; too because the fetch and checkout remain headless.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Formatted and commented, it looks less intimidating:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot;&gt;&lt;code&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;f&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  #&lt;/span&gt;&lt;span&gt; Get the repository name from your checkout (assuming it is the&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  #&lt;/span&gt;&lt;span&gt; original directory name as the remote).&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  PNAME&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;$(&lt;/span&gt;&lt;span&gt;basename&lt;/span&gt;&lt;span&gt; `&lt;/span&gt;&lt;span&gt;git&lt;/span&gt;&lt;span&gt; rev-parse&lt;/span&gt;&lt;span&gt; -&lt;/span&gt;&lt;span&gt;-show-toplevel&lt;/span&gt;&lt;span&gt;`&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  #&lt;/span&gt;&lt;span&gt; Parse out the fork's owner.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  #&lt;/span&gt;&lt;span&gt; Example: `&amp;lt;owner&amp;gt;:&amp;lt;branch&amp;gt;`&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  OWNER&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;$(&lt;/span&gt;&lt;span&gt;echo&lt;/span&gt;&lt;span&gt; $&lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt; |&lt;/span&gt;&lt;span&gt; cut&lt;/span&gt;&lt;span&gt; -&lt;/span&gt;&lt;span&gt;d&lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt; -&lt;/span&gt;&lt;span&gt;f1&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  #&lt;/span&gt;&lt;span&gt; Parse out the branch name.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  #&lt;/span&gt;&lt;span&gt; Example: `&amp;lt;owner&amp;gt;:&amp;lt;branch&amp;gt;`&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  BRANCH&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;$(&lt;/span&gt;&lt;span&gt;echo&lt;/span&gt;&lt;span&gt; $&lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt; |&lt;/span&gt;&lt;span&gt; cut&lt;/span&gt;&lt;span&gt; -&lt;/span&gt;&lt;span&gt;d&lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt; -&lt;/span&gt;&lt;span&gt;f2&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  #&lt;/span&gt;&lt;span&gt; Do a fetch of that particular branch using the extracted&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  #&lt;/span&gt;&lt;span&gt; information from above.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  #&lt;/span&gt;&lt;span&gt; This assumes the remote is hosted on github.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  git&lt;/span&gt;&lt;span&gt; fetch&lt;/span&gt;&lt;span&gt; git@github.com:&lt;/span&gt;&lt;span&gt;$&lt;/span&gt;&lt;span&gt;OWNER&lt;/span&gt;&lt;span&gt;/&lt;/span&gt;&lt;span&gt;$&lt;/span&gt;&lt;span&gt;PNAME&lt;/span&gt;&lt;span&gt;.git&lt;/span&gt;&lt;span&gt; $&lt;/span&gt;&lt;span&gt;BRANCH&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  #&lt;/span&gt;&lt;span&gt; Checkout using the alias `FETCH_HEAD` which git provides.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  git&lt;/span&gt;&lt;span&gt; checkout&lt;/span&gt;&lt;span&gt; FETCH_HEAD&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;span&gt; Execute the function!&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;span&gt; It's easier to build a function that holds variables and execute&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;span&gt; rather than in-line it.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;f&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;section class=&quot;article-content&quot; id=&quot;comments&quot;&gt;
  &lt;h3&gt;Comments&lt;/h3&gt;
  &lt;p&gt;With an account on the Fediverse or Mastodon, you can respond to this &lt;a href=&quot;https://mindly.social/@jonalmeida/117279142568496801&quot;&gt;post&lt;/a&gt;. Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one. Known non-private replies are displayed below.&lt;/p&gt;
  &lt;p&gt;Learn how this was implemented from the original source &lt;a class=&quot;link&quot; href=&quot;https://carlschwan.eu/2020/12/29/adding-comments-to-your-static-blog-with-mastodon/&quot;&gt;here.&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;mastodon-comments-list&quot;&gt;
  &lt;button id=&quot;load-comment&quot;&gt;Load comments&lt;/button&gt;&lt;/p&gt;
  &lt;div id=&quot;comments-wrapper&quot;&gt;
    &amp;lt;noscript&amp;gt;&amp;lt;p&amp;gt;Loading comments relies on JavaScript. Try enabling JavaScript and reloading, or visit &amp;lt;a href=&quot;https://mindly.social/@jonalmeida/117279142568496801&quot;&amp;gt;the original post&amp;lt;/a&amp;gt; on Mastodon.&amp;lt;/p&amp;gt;&amp;lt;/noscript&amp;gt;
  &lt;/div&gt;
  &amp;lt;noscript&amp;gt;You need JavaScript to view the comments.&amp;lt;/noscript&amp;gt;
  
&lt;/section&gt;</content:encoded>
	<dc:date>2026-09-16T05:38:50+00:00</dc:date>
	<dc:creator>Jonathan Almeida</dc:creator>
</item>
<item rdf:about="tag:this-week-in-rust.org,2026-09-16:/blog/2026/09/16/this-week-in-rust-669/">
	<title>This Week In Rust: This Week in Rust 669</title>
	<link>https://this-week-in-rust.org/blog/2026/09/16/this-week-in-rust-669/</link>
	<content:encoded>&lt;p&gt;Hello and welcome to another issue of &lt;em&gt;This Week in Rust&lt;/em&gt;!
&lt;a href=&quot;https://www.rust-lang.org/&quot;&gt;Rust&lt;/a&gt; is a programming language empowering everyone to build reliable and efficient software.
This is a weekly summary of its progress and community.
Want something mentioned? Tag us at
&lt;a href=&quot;https://bsky.app/profile/thisweekinrust.bsky.social&quot;&gt;@thisweekinrust.bsky.social&lt;/a&gt; on Bluesky or
&lt;a href=&quot;https://mastodon.social/@thisweekinrust&quot;&gt;@ThisWeekinRust&lt;/a&gt; on mastodon.social, or
&lt;a href=&quot;https://github.com/rust-lang/this-week-in-rust&quot;&gt;send us a pull request&lt;/a&gt;.
Want to get involved? &lt;a href=&quot;https://github.com/rust-lang/rust/blob/main/CONTRIBUTING.md&quot;&gt;We love contributions&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This Week in Rust&lt;/em&gt; is openly developed &lt;a href=&quot;https://github.com/rust-lang/this-week-in-rust&quot;&gt;on GitHub&lt;/a&gt; and archives can be viewed at &lt;a href=&quot;https://this-week-in-rust.org/&quot;&gt;this-week-in-rust.org&lt;/a&gt;.
If you find any errors in this week's issue, &lt;a href=&quot;https://github.com/rust-lang/this-week-in-rust/pulls&quot;&gt;please submit a PR&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Want TWIR in your inbox? &lt;a href=&quot;https://this-week-in-rust.us11.list-manage.com/subscribe?u=fd84c1c757e02889a9b08d289&amp;amp;id=0ed8b72485&quot;&gt;Subscribe here&lt;/a&gt;.&lt;/p&gt;
&lt;h4&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#updates-from-rust-community&quot;&gt;Updates from Rust Community&lt;/a&gt;&lt;/h4&gt;


&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#newsletters&quot;&gt;Newsletters&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://rust-trends.com/newsletter/even-the-linker-is-getting-rewritten-in-rust/&quot;&gt;Rust Trends Issue 82 - Even the Linker Is Getting Rewritten in Rust&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.theembeddedrustacean.com/p/the-embedded-rustacean-issue-80&quot;&gt;The Embedded Rustacean Issue #80&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#projecttooling-updates&quot;&gt;Project/Tooling Updates&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://slint.dev/blog/slint-1.18-released&quot;&gt;Slint 1.18 Released&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#observationsthoughts&quot;&gt;Observations/Thoughts&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://talmondrlm.medium.com/where-does-rust-belong-on-arduino-if-it-belongs-325cbee63c1a&quot;&gt;Where Does Rust Belong on Arduino? If it belongs.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://mversic.github.io/co3/&quot;&gt;CO3: Toward the Optimal FFI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://rust-glancer.github.io/blog/why-lsp-is-hard/&quot;&gt;Why building a Rust LSP is hard · Rust Glancer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.amazon.science/blog/developing-provably-correct-rust-code-with-verus&quot;&gt;Developing provably correct Rust code with Verus&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://dial9-rs.github.io/blog/principles-for-fast-tokio-applications/&quot;&gt;Principles for fast Tokio applications&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#rust-walkthroughs&quot;&gt;Rust Walkthroughs&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://jsgroth.dev/blog/posts/trying-to-make-a-loop-auto-vectorize/&quot;&gt;Trying to Make a Loop Auto-Vectorize&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://msj.prose.sh/does-rust-support-inheritance&quot;&gt;Does Rust Support Inheritance? Yes, No, and Maybe, All in the Same File&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://ai-coustics.com/blog/libpatcher&quot;&gt;Shipping Rust static libraries without symbol collisions&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#rust-walkthroughs_1&quot;&gt;Rust Walkthroughs&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://akesson.io/a-visual-guide-to-rust-async/&quot;&gt;A visual guide to Rust async&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://rust-projects-write-a-redis-clone.github.io/#3.0.0&quot;&gt;Rust Projects - Write a Redis Clone - Version 3.0.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.implrust.com/posts/2026/09/swd-protocol-programmer-embedded-rust/&quot;&gt;Can You Use ESP32 as SWD Programmer for STM32 with Rust?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://rust-blog.github.io/post/wasm-time-panic-traps&quot;&gt;Time and Panic Traps in WebAssembly: It Compiles, but It Crashes in the Browser&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://flakm.com/posts/sqlx_migration_wrapper_til/&quot;&gt;One Lock to Rule Them All&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bitfieldconsulting.com/posts/operators-of-death&quot;&gt;Operators of death: checked arithmetic in Rust&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://kerkour.com/rust-generics&quot;&gt;Rust generics: from Static to Dynamic dispatch&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[video] &lt;a href=&quot;https://www.youtube.com/watch?v=NT2XPvtof-Y&quot;&gt;Your First GPUI App - Building a Desktop UI in Rust&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#research&quot;&gt;Research&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.goose.love/posts/making-a-clippy-lint-faster-by-3133x/&quot;&gt;Optimizing a single Clippy lint by 3133X&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#crate-of-the-week&quot;&gt;Crate of the Week&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;This week's crate is &lt;a href=&quot;https://lib.rs/crates/zenjpeg&quot;&gt;zenjpeg&lt;/a&gt;, a pure Rust JPEG encoder and decoder.&lt;/p&gt;
&lt;p&gt;Thanks to &lt;a href=&quot;https://users.rust-lang.org/t/crate-of-the-week/2704/1669&quot;&gt;Kornel&lt;/a&gt; for the suggestion!&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://users.rust-lang.org/t/crate-of-the-week/2704&quot;&gt;Please submit your suggestions and votes for next week&lt;/a&gt;!&lt;/p&gt;
&lt;h4&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#calls-for-testing&quot;&gt;Calls for Testing&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;An important step for RFC implementation is for people to experiment with the
implementation and give feedback, especially before stabilization.&lt;/p&gt;
&lt;p&gt;If you are a feature implementer and would like your RFC to appear in this list, add a
&lt;code&gt;call-for-testing&lt;/code&gt; label to your RFC along with a comment providing testing instructions and/or
guidance on which aspect(s) of the feature need testing.&lt;/p&gt;
&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#cargo&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/issues?q=state%3Aopen%20label%3Acall-for-testing%20state%3Aopen&quot;&gt;Cargo&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/issues/12137&quot;&gt;Tracking Issue for trim-paths RFC 3127&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/issues/12137#issuecomment-5607218160&quot;&gt;Testing Instructions&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;No calls for testing were issued this week by
&lt;a href=&quot;https://github.com/rust-lang/rust/issues?q=state%3Aopen%20label%3Acall-for-testing%20state%3Aopen&quot;&gt;Rust&lt;/a&gt;,
&lt;a href=&quot;https://github.com/rust-lang/rustup/issues?q=state%3Aopen%20label%3Acall-for-testing%20state%3Aopen&quot;&gt;Rustup&lt;/a&gt; or
&lt;a href=&quot;https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing%20state%3Aopen&quot;&gt;Rust language RFCs&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/rust-lang/this-week-in-rust/issues&quot;&gt;Let us know&lt;/a&gt; if you would like your feature to be tracked as a part of this list.&lt;/p&gt;
&lt;h4&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#call-for-participation-projects-and-speakers&quot;&gt;Call for Participation; projects and speakers&lt;/a&gt;&lt;/h4&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#cfp-projects&quot;&gt;CFP - Projects&lt;/a&gt;&lt;/h5&gt;
&lt;p&gt;Always wanted to contribute to open-source projects but did not know where to start?
Every week we highlight some tasks from the Rust community for you to pick and get started!&lt;/p&gt;
&lt;p&gt;Some of these tasks may also have mentors available, visit the task page for more information.&lt;/p&gt;



&lt;ul&gt;
&lt;li&gt;&lt;em&gt;No Calls for participation were submitted this week.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you are a Rust project owner and are looking for contributors, please submit tasks &lt;a href=&quot;https://github.com/rust-lang/this-week-in-rust?tab=readme-ov-file#call-for-participation-guidelines&quot;&gt;here&lt;/a&gt; or through a &lt;a href=&quot;https://github.com/rust-lang/this-week-in-rust&quot;&gt;PR to TWiR&lt;/a&gt; or by reaching out on &lt;a href=&quot;https://bsky.app/profile/thisweekinrust.bsky.social&quot;&gt;Bluesky&lt;/a&gt; or &lt;a href=&quot;https://mastodon.social/@thisweekinrust&quot;&gt;Mastodon&lt;/a&gt;!&lt;/p&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#cfp-events&quot;&gt;CFP - Events&lt;/a&gt;&lt;/h5&gt;
&lt;p&gt;Are you a new or experienced speaker looking for a place to share something cool? This section highlights events that are being planned and are accepting submissions to join their event as a speaker.&lt;/p&gt;


&lt;ul&gt;
&lt;li&gt;&lt;em&gt;No Calls for papers or presentations were submitted this week.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you are an event organizer hoping to expand the reach of your event, please submit a link to the website through a &lt;a href=&quot;https://github.com/rust-lang/this-week-in-rust&quot;&gt;PR to TWiR&lt;/a&gt; or by reaching out on &lt;a href=&quot;https://bsky.app/profile/thisweekinrust.bsky.social&quot;&gt;Bluesky&lt;/a&gt; or &lt;a href=&quot;https://mastodon.social/@thisweekinrust&quot;&gt;Mastodon&lt;/a&gt;!&lt;/p&gt;
&lt;h4&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#updates-from-the-rust-project&quot;&gt;Updates from the Rust Project&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;523 pull requests were &lt;a href=&quot;https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2026-09-08..2026-09-15&quot;&gt;merged in the last week&lt;/a&gt;&lt;/p&gt;
&lt;h6&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#compiler&quot;&gt;Compiler&lt;/a&gt;&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/162240&quot;&gt;garbage-collect old incremental compilation sessions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/162234&quot;&gt;less clones and more cleanup for &lt;code&gt;rustc_builtin_macros&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/162571&quot;&gt;perf: read hygiene data once when hashing syntax contexts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/162488&quot;&gt;use &lt;code&gt;DenseBit&lt;/code&gt; for &lt;code&gt;drop_live_at&lt;/code&gt; in liveness tracing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/161957&quot;&gt;use &lt;code&gt;Box&amp;lt;[Word]&amp;gt;&lt;/code&gt; for word storage in &lt;code&gt;DenseBitSet&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h6&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#library&quot;&gt;Library&lt;/a&gt;&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/161946&quot;&gt;generalise (most) impls on &lt;code&gt;Box&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/160219&quot;&gt;implement &lt;code&gt;Thread::os_id&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/162495&quot;&gt;reserve items in &lt;code&gt;Extend&lt;/code&gt; implementations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/162685&quot;&gt;stabilize &lt;code&gt;Vec::from_fn&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/161520&quot;&gt;stabilize &lt;code&gt;core::mem::DropGuard&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/162504&quot;&gt;stabilize &lt;code&gt;unsafe_cell_access&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h6&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#cargo_1&quot;&gt;Cargo&lt;/a&gt;&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/pull/17477&quot;&gt;&lt;code&gt;fix(git)&lt;/code&gt;: For git cli, tell users what config we aren't forwarding on error&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/pull/17388&quot;&gt;&lt;code&gt;fix(install)&lt;/code&gt;: use packaged lockfile by default&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/pull/17476&quot;&gt;fix(trim-paths)!: unremap file in one JSON doc&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/pull/17478&quot;&gt;lower the lint level of &lt;code&gt;manual_readme&lt;/code&gt; and &lt;code&gt;non_kebab_case_bins&lt;/code&gt; to &lt;code&gt;allow&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/pull/17470&quot;&gt;specify &lt;code&gt;--edition&lt;/code&gt; in &lt;code&gt;messages&lt;/code&gt; tests&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/pull/17466&quot;&gt;test: add more comprehensive workspace feature unification tests&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h6&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#rustfmt&quot;&gt;Rustfmt&lt;/a&gt;&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rustfmt/pull/7110&quot;&gt;don't treat a raw identifier as a raw string prefix&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rustfmt/pull/6651&quot;&gt;fix adjustment of &lt;code&gt;max_width&lt;/code&gt; within macros&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rustfmt/pull/7065&quot;&gt;reserve width for &lt;code&gt;const&lt;/code&gt; when formatting inline const blocks&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h6&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#clippy&quot;&gt;Clippy&lt;/a&gt;&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-clippy/pull/17671&quot;&gt;&lt;code&gt;map_clone&lt;/code&gt;: avoid suggestions after type-changing coercions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-clippy/pull/16942&quot;&gt;fix &lt;code&gt;collapsible_match&lt;/code&gt; suggesting wrongly for conditional compiled code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-clippy/pull/17703&quot;&gt;enable &lt;code&gt;manual_swap&lt;/code&gt; in const contexts&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h6&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#rust-analyzer&quot;&gt;Rust-Analyzer&lt;/a&gt;&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-analyzer/pull/23359&quot;&gt;cache macro-expanded roots when climbing ancestors&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-analyzer/pull/23318&quot;&gt;do not fill unstable methods in &quot;Implement default members&quot;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-analyzer/pull/23330&quot;&gt;do not panic on json with invalid field name&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-analyzer/pull/23295&quot;&gt;don't panic on doc comments attached to literal expressions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-analyzer/pull/23315&quot;&gt;fix &lt;code&gt;hir::Type&lt;/code&gt; owner mismatches between anon consts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-analyzer/pull/23367&quot;&gt;fix panic when trait solver re-enters itself&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-analyzer/pull/23352&quot;&gt;fix panic when we call &lt;code&gt;impls_trait&lt;/code&gt; for self type of builtin derive impls for generic types&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-analyzer/pull/23323&quot;&gt;stop at eager macro recursion overflow&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-analyzer/pull/23300&quot;&gt;ide: fix doc comment offset calculation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#rust-compiler-performance-triage&quot;&gt;Rust Compiler Performance Triage&lt;/a&gt;&lt;/h5&gt;
&lt;p&gt;There were almost no regressions this week, and several performance improvements! Though some of them
were reverts of regressions from a previous week. &lt;a href=&quot;https://github.com/rust-lang/rust/pull/162422&quot;&gt;#162422&lt;/a&gt; improved the performance of Polonius, whose
performance is getting closer to the previous NLL borrow checker.&lt;/p&gt;
&lt;p&gt;Triage done by &lt;strong&gt;@Kobzol&lt;/strong&gt;.
Revision range: &lt;a href=&quot;https://perf.rust-lang.org/?start=656a9da186dacaf3bf8f7f7296a825d256cb4ae3&amp;amp;end=20d35a3ae8f310f2a002e5f6e0bc583830010cd4&amp;amp;absolute=false&amp;amp;stat=instructions%3Au&quot;&gt;656a9da1..20d35a3a&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Summary&lt;/strong&gt;:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style=&quot;text-align: center;&quot;&gt;(instructions:u)&lt;/th&gt;
&lt;th style=&quot;text-align: center;&quot;&gt;mean&lt;/th&gt;
&lt;th style=&quot;text-align: center;&quot;&gt;range&lt;/th&gt;
&lt;th style=&quot;text-align: center;&quot;&gt;count&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;Regressions ❌ &lt;br /&gt; (primary)&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;-&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;-&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;Regressions ❌ &lt;br /&gt; (secondary)&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;0.4%&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;[0.1%, 0.9%]&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;Improvements ✅ &lt;br /&gt; (primary)&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;-0.7%&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;[-4.4%, -0.1%]&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;199&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;Improvements ✅ &lt;br /&gt; (secondary)&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;-0.9%&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;[-2.7%, -0.1%]&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;222&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;All ❌✅ (primary)&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;-0.7%&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;[-4.4%, -0.1%]&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;199&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;0 Regressions, 5 Improvements, 5 Mixed; 2 of them in rollups
40 artifact comparisons made in total&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/rust-lang/rustc-perf/blob/85651591cba06f7122ef35d459ab76b7f583bc48/triage/2026/2026-09-14.md&quot;&gt;Full report here&lt;/a&gt;.&lt;/p&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#approved-rfcs&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/rust-lang/rfcs/commits/master&quot;&gt;Approved RFCs&lt;/a&gt;&lt;/h5&gt;
&lt;p&gt;Changes to Rust follow the Rust &lt;a href=&quot;https://github.com/rust-lang/rfcs#rust-rfcs&quot;&gt;RFC (request for comments) process&lt;/a&gt;. These
are the RFCs that were approved for implementation this week:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;No RFCs were approved this week.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#final-comment-period&quot;&gt;Final Comment Period&lt;/a&gt;&lt;/h5&gt;
&lt;p&gt;Every week, &lt;a href=&quot;https://www.rust-lang.org/team.html&quot;&gt;the team&lt;/a&gt; announces the 'final comment period' for RFCs and key PRs
which are reaching a decision. Express your opinions now.&lt;/p&gt;
&lt;h6&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#tracking-issues-prs&quot;&gt;Tracking Issues &amp;amp; PRs&lt;/a&gt;&lt;/h6&gt;
&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#rust&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/issues?q=is%3Aopen%20label%3Afinal-comment-period%20sort%3Aupdated-desc%20state%3Aopen&quot;&gt;Rust&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/146099&quot;&gt;Stabilize &lt;code&gt;debug_closure_helpers&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/129036&quot;&gt;Additional NonZero conversions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/162536&quot;&gt;Implement Default for NumBuffer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/159564&quot;&gt;Allow elided ('static) lifetimes in &lt;code&gt;thread_local!&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/161015&quot;&gt;Stabilize &lt;code&gt;funnel_shifts&lt;/code&gt; (including &lt;code&gt;const&lt;/code&gt;)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/161710&quot;&gt;Stabilize &lt;code&gt;mem::conjure_zst&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/161712&quot;&gt;Stabilize &lt;code&gt;Result::into_{ok,err}&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/161163&quot;&gt;windows: stabilise inherit_handles&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/160877&quot;&gt;rustc: Stabilize the WebAssembly &lt;code&gt;wide-arithmetic&lt;/code&gt; feature&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/157144&quot;&gt;Prevent mutating the global environment pointer in &lt;code&gt;CommandExt::exec&lt;/code&gt; and opt to use execve and resolve path manually&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/156882&quot;&gt;alloc: stabilise &lt;code&gt;Allocator&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/160780&quot;&gt;Disallow accesses through an Index projection when a sibling ConstantIndex projection has been moved out of&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/159744&quot;&gt;Allow unary operand types to be inferred later&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#cargo_2&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/issues?q=is%3Aopen%20label%3Afinal-comment-period%20sort%3Aupdated-desc%20state%3Aopen&quot;&gt;Cargo&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/pull/17215&quot;&gt;feat(config): Add build.profile, install.profile&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/issues/17456&quot;&gt;OUT_DIR is also set when running the program&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#leadership-council&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/rust-lang/leadership-council/issues?q=state%3Aopen%20label%3Afinal-comment-period%20state%3Aopen&quot;&gt;Leadership Council&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/leadership-council/pull/110&quot;&gt;Allow observers to participate during meetings&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/leadership-council/pull/331&quot;&gt;Suggest discussing LC candidates with mods&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;No Items entered Final Comment Period this week for
&lt;a href=&quot;https://github.com/rust-lang/rfcs/issues?q=state%3Aopen%20label%3Afinal-comment-period%20state%3Aopen&quot;&gt;Rust RFCs&lt;/a&gt;,
&lt;a href=&quot;https://github.com/rust-lang/compiler-team/issues?q=label%3Amajor-change%20label%3Afinal-comment-period%20state%3Aopen&quot;&gt;Compiler Team&lt;/a&gt;,
&lt;a href=&quot;https://github.com/rust-lang/lang-team/issues?q=is%3Aopen%20label%3Afinal-comment-period%20sort%3Aupdated-desc%20state%3Aopen&quot;&gt;Language Team&lt;/a&gt;,
&lt;a href=&quot;https://github.com/rust-lang/reference/issues?q=is%3Aopen%20label%3Afinal-comment-period%20sort%3Aupdated-desc%20state%3Aopen&quot;&gt;Language Reference&lt;/a&gt; or
&lt;a href=&quot;https://github.com/rust-lang/unsafe-code-guidelines/issues?q=is%3Aopen%20label%3Afinal-comment-period%20sort%3Aupdated-desc%20state%3Aopen&quot;&gt;Unsafe Code Guidelines&lt;/a&gt;.&lt;/em&gt;
Let us know if you would like your PRs, Tracking Issues or RFCs to be tracked as a part of this list.&lt;/p&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#new-and-updated-rfcs&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/rust-lang/rfcs/pulls&quot;&gt;New and Updated RFCs&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rfcs/pull/4006&quot;&gt;Fix broken Zig link in RFC 3308 and typos across RFC texts&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#upcoming-events&quot;&gt;Upcoming Events&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Rusty Events between 2026-09-16 - 2026-10-14 🦀&lt;/p&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#virtual&quot;&gt;Virtual&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;2026-09-16 | Hybrid (Vancouver, CA) | &lt;a href=&quot;https://www.meetup.com/vancouver-rust&quot;&gt;Vancouver Rust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/vancouver-rust/events/314233757/&quot;&gt;&lt;strong&gt;Building a Rust GPU driver in the Linux kernel&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-17 | Hybrid (Seattle, WA, US) | &lt;a href=&quot;https://www.meetup.com/join-srug&quot;&gt;Seattle Rust User Group&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/seattle-rust-user-group/events/315635881/&quot;&gt;&lt;strong&gt;September, 2026 SRUG (Seattle Rust User Group) Meetup&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-18 | Virtual | &lt;a href=&quot;https://luma.com/rust-girona&quot;&gt;Rust Girona&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://luma.com/ibaxicxv&quot;&gt;&lt;strong&gt;Sessió setmanal de codificació / Weekly coding session&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-20 | Virtual (Bengaluru, IN) | &lt;a href=&quot;https://discord.com/invite/pvYY69PvyS&quot;&gt;Embedded Rust Discord&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://discord.gg/t9Cb2gjjq7?event=1546754977374932993&quot;&gt;&lt;strong&gt;Silicon Sundays 3&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-20 | Virtual (Dallas, TX, US) | &lt;a href=&quot;https://www.meetup.com/dallasrust&quot;&gt;Dallas Rust User Meetup&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/dallasrust/events/316133974/&quot;&gt;&lt;strong&gt;Rust Deep Learning: Third Sunday&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-22 | Virtual (Dallas, TX, US) | &lt;a href=&quot;https://www.meetup.com/dallasrust&quot;&gt;Dallas Rust User Meetup&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/dallasrust/events/310254773/&quot;&gt;&lt;strong&gt;Fourth Tuesday Rust Bookclub&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-24 | Virtual (Berlin, DE) | &lt;a href=&quot;https://www.meetup.com/rust-berlin&quot;&gt;Rust Berlin&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-berlin/events/315907979/&quot;&gt;&lt;strong&gt;Rust Hack and Learn&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-24 | Virtual (Charlottesville, VA, US) | &lt;a href=&quot;https://www.meetup.com/charlottesville-rust-meetup&quot;&gt;Charlottesville Rust Meetup&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/charlottesville-rust-meetup/events/316460694/&quot;&gt;&lt;strong&gt;Rust Cells — Interior Mutability from Rust Core to Tock OS&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-29 | Virtual (London, UK) | &lt;a href=&quot;https://www.meetup.com/women-in-rust&quot;&gt;Women in Rust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/women-in-rust/events/315691730/&quot;&gt;&lt;strong&gt;Lunch &amp;amp; Learn: Crates, Tips &amp;amp; Tricks Lightning Talks - Bring your ideas!&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-30 | Virtual (Cardiff, UK) | &lt;a href=&quot;https://www.meetup.com/rust-and-c-plus-plus-in-cardiff&quot;&gt;Rust and C++ Cardiff&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-and-c-plus-plus-in-cardiff/events/316486941/&quot;&gt;&lt;strong&gt;Operating Systems Book Club: Segmentation and Introduction to Paging&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-02 | Virtual | &lt;a href=&quot;https://luma.com/rust-girona&quot;&gt;Rust Girona&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://luma.com/yqxvguts&quot;&gt;&lt;strong&gt;Sessió setmanal de codificació / Weekly coding session&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-04 | Virtual (Dallas, TX, US) | &lt;a href=&quot;https://www.meetup.com/dallasrust&quot;&gt;Dallas Rust User Meetup&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/dallasrust/events/316134009/&quot;&gt;&lt;strong&gt;Rust Deep Learning: First Sunday&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-06 | Virtual (London, UK) | &lt;a href=&quot;https://www.meetup.com/women-in-rust&quot;&gt;Women in Rust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/women-in-rust/events/315773044/&quot;&gt;&lt;strong&gt;👋 Community Catch Up&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-07 | Virtual (Indianapolis, IN, US) | &lt;a href=&quot;https://www.meetup.com/indyrs&quot;&gt;Indy Rust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/indyrs/events/wqzhftyjcnbkb/&quot;&gt;&lt;strong&gt;Indy.rs - with Social Distancing&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-08 | Virtual (Berlin, DE) | &lt;a href=&quot;https://www.meetup.com/rust-berlin&quot;&gt;Rust Berlin&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-berlin/events/315907995/&quot;&gt;&lt;strong&gt;Rust Hack and Learn&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-08 | Virtual (Nürnberg, DE) | &lt;a href=&quot;https://www.meetup.com/rust-noris&quot;&gt;Rust Nuremberg&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-noris/events/315619617/&quot;&gt;&lt;strong&gt;Rust Nürnberg online&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-10 | Virtual (Gdansk, PL) | &lt;a href=&quot;https://www.meetup.com/stacja-it-trojmiasto&quot;&gt;Stacja IT Trójmiasto&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/stacja-it-trojmiasto/events/316381946/&quot;&gt;&lt;strong&gt;[BEZPŁATNIE] Programowanie w języku Rust&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-13 | Virtual (Dallas, TX, US) | &lt;a href=&quot;https://www.meetup.com/dallasrust&quot;&gt;Dallas Rust User Meetup&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/dallasrust/events/310254772/&quot;&gt;&lt;strong&gt;Second Tuesday&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#europe&quot;&gt;Europe&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;2026-09-14 - 2026-09-16 | Berlin, DE | &lt;a href=&quot;https://oxidizeconf.com/&quot;&gt;Oxidize 2026&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://oxidizeconf.com/&quot;&gt;&lt;strong&gt;Oxidize 2026&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-17 | Dortmund, DE | &lt;a href=&quot;https://www.meetup.com/rust-dortmund&quot;&gt;Rust Dortmund&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-dortmund/events/316428507/&quot;&gt;&lt;strong&gt;Rust Dortmund Meetup - From Segfault to Safety @DiWoDo&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-22 | Prague, CZ | &lt;a href=&quot;https://www.meetup.com/rust-prague&quot;&gt;Rust Prague&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-prague/events/316070376/&quot;&gt;&lt;strong&gt;Rust Meetup Prague @ Rockwell Automation&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-24 | Aarhus, DK | &lt;a href=&quot;https://www.meetup.com/rust-aarhus&quot;&gt;Rust Aarhus&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-aarhus/events/316236528/&quot;&gt;&lt;strong&gt;Talk Night at SkyTEM&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-24 | Amsterdam, NL | &lt;a href=&quot;https://www.meetup.com/rust-amsterdam-group&quot;&gt;Rust Developers Amsterdam Group&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-amsterdam-group/events/316162802/&quot;&gt;&lt;strong&gt;Rust Meetup @ BlockTech&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-24 | Frankfurt, DE | &lt;a href=&quot;https://www.meetup.com/rust-rhein-main&quot;&gt;Rust Rhein-Main&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-rhein-main/events/316328297/&quot;&gt;&lt;strong&gt;AI Agentic Coding&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-26 | Stockholm, SE | &lt;a href=&quot;https://www.meetup.com/stockholm-rust&quot;&gt;Stockholm Rust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/stockholm-rust/events/316570423/&quot;&gt;&lt;strong&gt;Ferris' Fika Forum #30&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-28 | Augsburg, DE | &lt;a href=&quot;https://rust-augsburg.github.io/meetup&quot;&gt;Rust Meetup Augsburg&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://rust-augsburg.github.io/meetup/Meetup_21.html&quot;&gt;&lt;strong&gt;Rust Meetup #21: Maximilian Grauvogl &amp;amp; Marcel Fink - From Bits to Bugs: A Rust generator for SUIT Manifests and Structure-Aware Parser Fuzzing&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-29 | Manchester, UK | &lt;a href=&quot;https://www.meetup.com/rust-manchester&quot;&gt;Rust Manchester&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-manchester/events/316200964/&quot;&gt;&lt;strong&gt;Rust Manchester September Code Night&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-30 | Basel, CH | &lt;a href=&quot;https://www.meetup.com/rust-basel&quot;&gt;Rust Basel&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-basel/events/315986893/&quot;&gt;&lt;strong&gt;Rust Meetup #16 @ ERNI&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-05 | München, DE | &lt;a href=&quot;https://www.meetup.com/rust-munich&quot;&gt;Rust Munich&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-munich/events/316244709/&quot;&gt;&lt;strong&gt;Rust Munich 2026 / 3&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-08 | Oslo, NO | &lt;a href=&quot;https://www.meetup.com/rust-oslo&quot;&gt;Rust Oslo&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-oslo/events/316564477/&quot;&gt;&lt;strong&gt;Rust Hack'n'Learn at Kampen Bistro&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-10 | Geneva, CH | &lt;a href=&quot;https://www.posttenebraslab.ch/wiki/events/monthly_meeting/rust_meetup&quot;&gt;Rust Geneva&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.posttenebraslab.ch/wiki/events/monthly_meeting/rust_meetup&quot;&gt;&lt;strong&gt;Rust Meetup Geneva&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-14 | Barcelona, ES | &lt;a href=&quot;https://www.meetup.com/bcnrust&quot;&gt;BcnRust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/bcnrust/events/316316234/&quot;&gt;&lt;strong&gt;22nd bcnrust session&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#north-america&quot;&gt;North America&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;2026-09-16 | Hybrid (Vancouver, CA) | &lt;a href=&quot;https://www.meetup.com/vancouver-rust&quot;&gt;Vancouver Rust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/vancouver-rust/events/314233757/&quot;&gt;&lt;strong&gt;Building a Rust GPU driver in the Linux kernel&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-16 | San Francisco, CA, US | &lt;a href=&quot;https://luma.com/bayarearust&quot;&gt;Bay Area Rust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://luma.com/9oiujuyw&quot;&gt;&lt;strong&gt;Bay Area Rust - Graphics Meetup&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-17 | Hybrid (Seattle, WA, US) | &lt;a href=&quot;https://www.meetup.com/join-srug&quot;&gt;Seattle Rust User Group&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/seattle-rust-user-group/events/315635881/&quot;&gt;&lt;strong&gt;September, 2026 SRUG (Seattle Rust User Group) Meetup&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-17 | Mountain View, CA, US | &lt;a href=&quot;https://www.meetup.com/hackerdojo&quot;&gt;Hacker Dojo&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/hackerdojo/events/316176445/&quot;&gt;&lt;strong&gt;RUST MEETUP at HACKER DOJO&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-19 | Boston, MA, US | &lt;a href=&quot;https://www.meetup.com/bostonrust&quot;&gt;Boston Rust Meetup&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/bostonrust/events/316378813/&quot;&gt;&lt;strong&gt;Boston Common Rust Lunch, Sep 19&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-22 | Chicago, IL, US | &lt;a href=&quot;https://www.meetup.com/chicago-rust-meetup&quot;&gt;Chicago Rust Meetup&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/chicago-rust-meetup/events/316572988/&quot;&gt;&lt;strong&gt;Rust Happy Hour&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-23 | Austin, TX, US | &lt;a href=&quot;https://www.meetup.com/rust-atx&quot;&gt;Rust ATX&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-atx/events/316404827/&quot;&gt;&lt;strong&gt;Rust Lunch - Fareground&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-23 | Austin, TX, US | &lt;a href=&quot;https://www.meetup.com/rust-atx&quot;&gt;Rust ATX&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-atx/events/xvkdgtyjcmbfc/&quot;&gt;&lt;strong&gt;Rust Lunch - Fareground&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-24 | Atlanta, GA, US | &lt;a href=&quot;https://www.meetup.com/rust-atl&quot;&gt;Rust Atlanta&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-atl/events/313539333/&quot;&gt;&lt;strong&gt;Rust-Atl&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-26 | Boston, MA, US | &lt;a href=&quot;https://www.meetup.com/bostonrust&quot;&gt;Boston Rust Meetup&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/bostonrust/events/316378817/&quot;&gt;&lt;strong&gt;Harvard Rust Lunch, Sep 26&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-01 | Saint Louis, MO, US | &lt;a href=&quot;https://www.meetup.com/stl-rust&quot;&gt;STL Rust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/stl-rust/events/316410027/&quot;&gt;&lt;strong&gt;Building a Minimal, Rootless Container in Rust&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-03 | Boston, MA, US | &lt;a href=&quot;https://www.meetup.com/bostonrust&quot;&gt;Boston Rust Meetup&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/bostonrust/events/316378820/&quot;&gt;&lt;strong&gt;Alewife Rust Lunch, Oct 3&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-08 | San Diego, CA, US | &lt;a href=&quot;https://www.meetup.com/san-diego-rust&quot;&gt;San Diego Rust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/san-diego-rust/events/316319730/&quot;&gt;&lt;strong&gt;San Diego Rust October Meetup - Back in person!&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-10 | Boston, MA, US | &lt;a href=&quot;https://www.meetup.com/bostonrust&quot;&gt;Boston Rust Meetup&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/bostonrust/events/316378823/&quot;&gt;&lt;strong&gt;Back Bay Rust Lunch, Oct 10&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-14 | Los Angeles, CA, US | &lt;a href=&quot;https://www.meetup.com/rust-los-angeles&quot;&gt;Rust Los Angeles&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-los-angeles/events/315795432/&quot;&gt;&lt;strong&gt;Rust LA October: AI &amp;amp; Rust w/ Oxen.AI &amp;amp; Origin Lab!&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#oceania&quot;&gt;Oceania&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;2026-09-29 | Barton, AU | &lt;a href=&quot;https://www.meetup.com/rust-canberra&quot;&gt;Canberra Rust User Group&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-canberra/events/316398052/&quot;&gt;&lt;strong&gt;September Meetup&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you are running a Rust event please add it to the &lt;a href=&quot;https://www.google.com/calendar/embed?src=apd9vmbc22egenmtu5l6c5jbfc%40group.calendar.google.com&quot;&gt;calendar&lt;/a&gt; to get
it mentioned here. Please remember to add a link to the event too.
Email the &lt;a href=&quot;mailto:community-team@rust-lang.org&quot;&gt;Rust Community Team&lt;/a&gt; for access.&lt;/p&gt;
&lt;h4&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#jobs&quot;&gt;Jobs&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Please see the latest &lt;a href=&quot;https://www.reddit.com/r/rust/comments/1vtuq1b/official_rrust_whos_hiring_thread_for_jobseekers/&quot;&gt;Who's Hiring thread on r/rust&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#quote-of-the-week&quot;&gt;Quote of the Week&lt;/a&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Every so often I am told about some maths fact that I can only assume someone went to prison for discovering&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;– &lt;a href=&quot;https://users.rust-lang.org/t/as-str-for-integers/142364/17&quot;&gt;Simon Buchan&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Thanks to &lt;a href=&quot;https://users.rust-lang.org/t/twir-quote-of-the-week/328/1799&quot;&gt;Chayim Refael Friedman&lt;/a&gt; for the suggestion!&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://users.rust-lang.org/t/twir-quote-of-the-week/328&quot;&gt;Please submit quotes and vote for next week!&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This Week in Rust is edited by:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/nellshamrell&quot;&gt;nellshamrell&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/llogiq&quot;&gt;llogiq&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/ericseppanen&quot;&gt;ericseppanen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/extrawurst&quot;&gt;extrawurst&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/U007D&quot;&gt;U007D&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/mariannegoldin&quot;&gt;mariannegoldin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/bdillo&quot;&gt;bdillo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/opeolluwa&quot;&gt;opeolluwa&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/bnchi&quot;&gt;bnchi&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/KannanPalani57&quot;&gt;KannanPalani57&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/tzilist&quot;&gt;tzilist&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Email list hosting is sponsored by &lt;a href=&quot;https://foundation.rust-lang.org/&quot;&gt;The Rust Foundation&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;small&gt;&lt;a href=&quot;https://www.reddit.com/r/rust/comments/1wikjqo/this_week_in_rust_669/&quot;&gt;Discuss on r/rust&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;</content:encoded>
	<dc:date>2026-09-16T04:00:00+00:00</dc:date>
	<dc:creator>TWiR Contributors</dc:creator>
</item>
<item rdf:about="https://servo.org/blog/2026/09/15/one-year-of-sponsorship/">
	<title>The Servo Blog: Your Donations at Work: One Year of Sponsored Servo Development</title>
	<link>https://servo.org/blog/2026/09/15/one-year-of-sponsorship/</link>
	<content:encoded>&lt;p&gt;Last September, the Servo project &lt;a href=&quot;https://servo.org/blog/2025/09/17/your-donations-at-work-funding-jdm/&quot;&gt;announced&lt;/a&gt; that long-time maintainer &lt;a href=&quot;https://github.com/jdm&quot;&gt;Josh Bowman-Matthews (@jdm)&lt;/a&gt; would work part-time on improving the Servo contributor experience, entirely funded by the monthly donations on &lt;a href=&quot;https://opencollective.com/servo&quot;&gt;OpenCollective&lt;/a&gt; and &lt;a href=&quot;https://github.com/sponsors/servo&quot;&gt;GitHub&lt;/a&gt;.
In his own words, here is a look back over the past year!&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;First of all, I am enormously grateful to everyone who financially supports Servo, as those donations have enabled me to devote significant time to a project that I care a lot about.
Some highlights from that funded work that I’m proud of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I nominated &lt;strong&gt;8 new &lt;a href=&quot;https://github.com/servo/project/blob/main/governance/README.md#maintainers&quot;&gt;maintainers&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;I reviewed &lt;strong&gt;1150 pull requests&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;I filed &lt;strong&gt;114 issues&lt;/strong&gt; targeted at newer contributors (92% of them have been fixed)&lt;/li&gt;
&lt;li&gt;I wrote &lt;strong&gt;new documentation&lt;/strong&gt; about &lt;a href=&quot;https://book.servo.org/design-documentation/script/garbage-collection-and-refcell.html&quot;&gt;borrow hazards&lt;/a&gt;, &lt;a href=&quot;https://book.servo.org/design-documentation/experimental-features.html&quot;&gt;experimental features&lt;/a&gt;, the &lt;a href=&quot;https://book.servo.org/contributing/getting-started.html#ai-policy-faq&quot;&gt;AI policy&lt;/a&gt;, &lt;a href=&quot;https://book.servo.org/contributing/finding-things-to-do.html&quot;&gt;finding things to do&lt;/a&gt;, and fixing &lt;a href=&quot;https://book.servo.org/contributing/guides/diagnosing-errors/stable-wpt-errors.html&quot;&gt;stable&lt;/a&gt; and &lt;a href=&quot;https://book.servo.org/contributing/guides/diagnosing-errors/intermittent-wpt-errors.html&quot;&gt;intermittent&lt;/a&gt; test failures&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;On top of that, I spent time diagnosing unexpected failures in others’ PRs and fixed numerous intermittent test failures that made merging PRs more difficult for everyone.&lt;/p&gt;
&lt;p&gt;A few pieces of work from this period that stand out to me:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;supporting a &lt;a href=&quot;https://github.com/servo/servo/issues/40600&quot;&gt;large scale rewrite&lt;/a&gt; of Servo’s JS engine integration to address intermittent panics related to garbage collection—I reviewed lots of pull requests, but also filed many issues that enabled the work addressing the panics to be spread across many other contributors&lt;/li&gt;
&lt;li&gt;getting tagged in to help understand test failures, uncovering our &lt;a href=&quot;https://github.com/servo/servo/issues/43149&quot;&gt;broken window.open behaviour&lt;/a&gt;, and eventually making &lt;a href=&quot;https://github.com/servo/servo/pull/46975&quot;&gt;a lot of flaky tests&lt;/a&gt; more stable&lt;/li&gt;
&lt;li&gt;supporting another contributor’s grant proposal to work on Servo that &lt;a href=&quot;https://nlnet.nl/project/Servo-Navigation_Downloads/&quot;&gt;was approved!&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This role I’ve carved out means a lot to me—I’ve found a healthy balance that allows me to spend time with my family as well as make meaningful contributions to Servo, and I get to spend a lot of time looking for ways to make the project more accessible for others.
A big thank you to everybody supporting the project and my work; each individual monthly donation makes a big difference!
I’m excited to see what’s possible in the coming year.&lt;/p&gt;</content:encoded>
	<dc:date>2026-09-15T00:00:00+00:00</dc:date>
</item>
<item rdf:about="https://blog.nightly.mozilla.org/?p=2118">
	<title>Firefox Nightly: The Need for Speed Controls – These Weeks in Firefox: Issue 208</title>
	<link>https://blog.nightly.mozilla.org/2026/09/11/the-need-for-speed-controls-these-weeks-in-firefox-issue-208/</link>
	<content:encoded>&lt;h3&gt;Highlights&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.firefox.com/en-US/firefox/154.0/releasenotes/&quot;&gt;Firefox 154 went out today&lt;/a&gt;! Lots of goodies in there for our users, including &lt;a href=&quot;https://blog.mozilla.org/en/firefox/firefox-nvidia-geforce-now-partnership/&quot;&gt;support for NVIDIA GeForce NOW&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://groups.google.com/a/mozilla.org/g/dev-platform/c/qlaQ1YSlOP8&quot;&gt;new 2 week release cycle is now in effect&lt;/a&gt;. This means that Firefox 155 is slated to hit release on September 1st!
&lt;ul&gt;
&lt;li&gt;You can follow along at &lt;a href=&quot;https://whattrainisitnow.com/&quot;&gt;https://whattrainisitnow.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;As part of the Nova redesign, a “Use Linux system theme” checkbox is being shown on Linux builds for the about:addons theme picker, which will make Firefox’s Nova UI use the colours of the system theme.&lt;/li&gt;
&lt;li&gt;Thanks to Simon Rosen for &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1875517&quot;&gt;adding a new playback speed control to the PiP player&lt;/a&gt;. The feature can be enabled by flipping the pref media.videocontrols.picture-in-picture.playback-speed.enabled.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt=&quot;Playback speed settings panel in a Picture-in-Picture window.&quot; class=&quot;aligncenter size-full wp-image-2121&quot; height=&quot;422&quot; src=&quot;https://blog.nightly.mozilla.org/files/2026/09/image6-1.png&quot; width=&quot;750&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Friends of the Firefox team&lt;/h3&gt;
&lt;h4&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/buglist.cgi?title=Resolved%20bugs%20(excluding%20employees)&amp;amp;quicksearch=2052320%2C2053182%2C2056102%2C1692434%2C2051545%2C2052046%2C2052047%2C2053550%2C2053333%2C2054036%2C2056714%2C2040752%2C2053568%2C2056856%2C1418178%2C2048884%2C1910767%2C2033570%2C2053551%2C2057472%2C2058146%2C2058381%2C1975797%2C2057710%2C2025999%2C2053689%2C1988723%2C2039596%2C2046156%2C2058588%2C1477920%2C2044483%2C2057244%2C2057835%2C2053543%2C2055774%2C2057645%2C2041335%2C2053566%2C2058421%2C1875517%2C2050959%2C2036942%2C2049517%2C2059969%2C1943359%2C2045944%2C2058556%2C1977947%2C2040498%2C2046774%2C1856645%2C2060029%2C2061166%2C2061348%2C2059866%2C2033961%2C2039601%2C2058238%2C2060972%2C1642578%2C2047956%2C2058383%2C1938769%2C2030812%2C2059350%2C2039602%2C2061020%2C2062989&quot;&gt;Resolved bugs (excluding employees)&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/niklasbaumgardner/NewContributorScraper&quot;&gt;Script to find new contributors from bug list&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;Volunteers that fixed more than one bug&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Benoit&lt;/li&gt;
&lt;li&gt;Chris Vander Linden&lt;/li&gt;
&lt;li&gt;Fede&lt;/li&gt;
&lt;li&gt;japandi&lt;/li&gt;
&lt;li&gt;Lukáš Lipinský&lt;/li&gt;
&lt;li&gt;Nirmal Advani&lt;/li&gt;
&lt;li&gt;Ruhollah Majdoddin&lt;/li&gt;
&lt;li&gt;Sameem [:sameembaba]&lt;/li&gt;
&lt;li&gt;Sebastian Zartner [:sebo]&lt;/li&gt;
&lt;li&gt;Zyphrenn&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;New contributors (🌟 = first patch)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Aditi: &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2056102&quot;&gt;Increase the maximum number of PDF.js preferences&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fede:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1418178&quot;&gt;more than six thumbnails needed when Ctrl+Tab is used&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2040498&quot;&gt;Clicking “delete group” on group context menu in tab groups list doesn’t dismiss toolbar panel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2046774&quot;&gt;Tab group context menu actions fail when right-clicking the label or icon of a tab groups list row&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Giulio B: &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2048884&quot;&gt;frameId is wrong in webRequest events triggered via importScripts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;🌟 Gopalarathnam Venkatesan: &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2062989&quot;&gt;Fix incorrect ‘this’ in the Sync add-on install error handler&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;🌟 Kevin Gosse: &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2054036&quot;&gt;nsDataObj::QueryGetData in Firefox returns E_FAIL for formats it doesn’t carry, instead of DV_E_FORMATETC per the COM contract&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;🌟 mikey gough: &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2053551&quot;&gt;Remove three unused devtools.debugger.file-search-* preferences&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;🌟 Nathan Leuz: &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2053550&quot;&gt;Remove unused legacy preference browser.translation.neverForLanguages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;🌟 Priyanshu[:0xanshu]: &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1977947&quot;&gt;“Forget About This Site” dialog is cut off&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;🌟 K: &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1642578&quot;&gt;Disable breakpoints shortcut&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;🌟 Shawn Zivontsis: &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2025999&quot;&gt;Reorder moz_origins composite unique index to UNIQUE(host, prefix)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;🌟 Simon Rosen: &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1875517&quot;&gt;Suggestion: Add speed button for Youtube in picture-in-picture(PiP) modals&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;tanvi.manku: &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2052320&quot;&gt;unnecessary scrollbars in edit dialogs for payments and addresses&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Zyphrenn:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2033961&quot;&gt;browser.tabs.groups.enabled should disable drag-n-drop&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2059969&quot;&gt;“Tab group suggestions” AI control setting still visible when browser.tabs.groups.enabled is false&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Project Updates&lt;/h3&gt;
&lt;h4&gt;Add-ons / Web Extensions&lt;/h4&gt;
&lt;h5&gt;Addon Manager &amp;amp; about:addons&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;As part of Nova about:addons work:
&lt;ul&gt;
&lt;li&gt;Replaced the “more themes” button in the themes list view footer with a promo element when Nova is enabled –&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2057200&quot;&gt; Bug 2057200&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Removed the testing XPI base url pref from ThemesList.sys.mjs –&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2053220&quot;&gt; Bug 2053220&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fixed a mismatch between the popup panel border radius applied by Nova and the border radius applied to the document.body of the WebExtensions popup page loaded into it –&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2057844&quot;&gt; Bug 2057844&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Moved new strings added as part of the about:addons Nova restyling out of the locales preview –&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2052034&quot;&gt; Bug 2052034&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;As part of legacy telemetry cleanups for the Add-ons related telemetry, migrated addons-search-detection telemetry off the legacy telemetry mirroring path, now collected only through Glean –&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2055606&quot;&gt; Bug 2055606&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;WebExtensions Framework&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;Fixed a series of intermittent and CI-reliability test failures across the WebExtensions browser-chrome test suite –&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1575369&quot;&gt; Bug 1575369&lt;/a&gt; /&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1697626&quot;&gt; Bug 1697626&lt;/a&gt; /&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1699341&quot;&gt; Bug 1699341&lt;/a&gt; /&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1974953&quot;&gt; Bug 1974953&lt;/a&gt; /&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2015004&quot;&gt; Bug 2015004&lt;/a&gt; /&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2030542&quot;&gt; Bug 2030542&lt;/a&gt; /&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2062186&quot;&gt; Bug 2062186&lt;/a&gt; /&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2062187&quot;&gt; Bug 2062187&lt;/a&gt; /&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2062189&quot;&gt; Bug 2062189&lt;/a&gt; /&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2062191&quot;&gt; Bug 2062191&lt;/a&gt; /&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2062193&quot;&gt; Bug 2062193&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;Thanks to Florian Quèze for applying his work on an LLM-based system for investigating intermittent tests to investigating and fixing intermittents and perma failures across the WebExtensions test suite.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;DevTools&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/user_profile?user_id=737654&quot;&gt;Ruhollah Majdoddin&lt;/a&gt; fixed issues in the Storage panel to make sure we’re only showing relevant cookies (and their values) for the debugged tab (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1856645&quot;&gt;#1856645&lt;/a&gt;, &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2060029&quot;&gt;#2060029&lt;/a&gt;, &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2061166&quot;&gt;#2061166&lt;/a&gt;) and also did some cleanup in this area (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2061348&quot;&gt;#2061348&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/user_profile?user_id=792331&quot;&gt;sevenwithawp&lt;/a&gt; added a keyboard shortcut (Ctrl+Alt+B, Cmd+Alt+B on Mac) to disable/enable breakpoints (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1642578&quot;&gt;#1642578&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/user_profile?user_id=656417&quot;&gt;Hubert Boma Manilla (:bomsy)&lt;/a&gt; continues his work to display stylesheets in the Debugger (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2051029&quot;&gt;#2051029&lt;/a&gt;, &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2051264&quot;&gt;#2051264&lt;/a&gt;)
&lt;ul&gt;
&lt;li&gt;Preference: devtools.debugger.features.stylesheets-in-debugger&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/user_profile?user_id=557153&quot;&gt;Nicolas Chevobbe [:nchevobbe]&lt;/a&gt; added support for ::picker() rules in pseudo element section (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2042839&quot;&gt;#2042839&lt;/a&gt;)
&lt;ul&gt;
&lt;li&gt;Used by customizable select (&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Learn_web_development/Extensions/Forms/Customizable_select&quot;&gt;MDN&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Preference: dom.select.customizable_select.enabled&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt=&quot;::picker rules for a pseudo element within the DevTools Inspector pane.&quot; class=&quot;aligncenter size-full wp-image-2120&quot; height=&quot;314&quot; src=&quot;https://blog.nightly.mozilla.org/files/2026/09/image7-1.png&quot; width=&quot;842&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/user_profile?user_id=557153&quot;&gt;Nicolas Chevobbe [:nchevobbe]&lt;/a&gt; made CSS explainers work for substitution functions (var(), attr() and env()) (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2041622&quot;&gt;#2041622&lt;/a&gt;)
&lt;ul&gt;
&lt;li&gt;Preference: devtools.inspector.css-explainers&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt=&quot;A tooltip showing a breakdown of a CSS var function&quot; class=&quot;aligncenter size-full wp-image-2125&quot; height=&quot;292&quot; src=&quot;https://blog.nightly.mozilla.org/files/2026/09/image2-1.png&quot; width=&quot;1280&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/user_profile?user_id=559949&quot;&gt;Julian Descottes [:jdescottes]&lt;/a&gt; fixed an accessibility bug in about:debugging where error message where not announced (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2056332&quot;&gt;#2056332&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;WebDriver&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Sameem added &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1943359&quot;&gt;the cleanup logic for subscriptions when a browsing context is destroyed&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Nirmal Advani updated &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2058556&quot;&gt;the Actions API to fire the dblclick event when performing a double-click while holding down the Ctrl key on non-macOS platforms&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Khalid AlHaddad &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2041335&quot;&gt;updated the webdriver bidi moz:debugging module to stop using enterNestedEventLoop&lt;/a&gt; which can avoid conflicts with the regular DevTools’ debugger.&lt;/li&gt;
&lt;li&gt;Alexandra Borovova fixed the &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2030909&quot;&gt;“browsingContext.reload” command to not fail for frames&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;New Tab Page&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Big ticket items:
&lt;ul&gt;
&lt;li&gt;Did a trainhop last week to help with the remote layouts effort&lt;/li&gt;
&lt;li&gt;Doing another trainhop this week to make some spacing optimizations, deploying tomorrow if all goes well&lt;/li&gt;
&lt;li&gt;We will be experimenting with some more layout variations over the next few months
&lt;ul&gt;
&lt;li&gt;Example:&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt=&quot;A layout variation for the New Tab page with the Widgets column on the left and Popular Today column on the right.&quot; class=&quot;aligncenter size-full wp-image-2124&quot; height=&quot;922&quot; src=&quot;https://blog.nightly.mozilla.org/files/2026/09/image3-1.png&quot; width=&quot;1827&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We’ve migrated a &lt;a href=&quot;https://bugzil.la/2018699&quot;&gt;bunch&lt;/a&gt; of &lt;a href=&quot;https://bugzil.la/2018702&quot;&gt;our&lt;/a&gt; &lt;a href=&quot;https://bugzil.la/2018705&quot;&gt;unit&lt;/a&gt; &lt;a href=&quot;https://bugzil.la/2018709&quot;&gt;tests&lt;/a&gt; to Jest/RTL from the deprecated Mocha / Karma framework we’ve historically used.&lt;/li&gt;
&lt;li&gt;Joel added &lt;a href=&quot;https://bugzil.la/2046946]&quot;&gt;a WebNotifications badge to Top Sites on the New Tab Page&lt;/a&gt; which surfaces per-origin unread web-notification state directly on TopSites tiles by rendering a compact badge in the activity-stream/TopSites component—users can now glance at NTP tiles to see which sites have pending web notifications without changing navigation or site state (affects desktop and mobile NTP Top Sites UI). This is something we plan on experimenting with later this year.&lt;/li&gt;
&lt;li&gt;Similarly, Joel &lt;a href=&quot;https://bugzil.la/2046947]&quot;&gt;added a TopSites hover card&lt;/a&gt; with notifications which expands the to show per-site notification items and actions on hover or long-press, enabling users to read and dismiss notifications from the NTP itself rather than opening each site.&lt;/li&gt;
&lt;li&gt;Hanna Alemu&lt;a href=&quot;https://bugzil.la/2050377&quot;&gt; fixed the focus outline for the “Learn how we protect your data” link in NEWTAB_PERSONALIZATION_MESSAGE&lt;/a&gt;, replacing the blue non-rounded ring with the standard rounded focus style via CSS so keyboard and assistive users get a consistent, discoverable focus indicator.&lt;/li&gt;
&lt;li&gt;Maxx Crawford&lt;a href=&quot;https://bugzil.la/2050954&quot;&gt; added logic to show different tip messages throughout the day/week on the New Tab Page&lt;/a&gt; in the upcoming privacy widget, implementing time-of-day/day-of-week selection in the tip renderer so users receive context-varying tips rather than a static message, which affects the tip surface and supports time-targeted experiments.&lt;/li&gt;
&lt;li&gt;Irene Ni&lt;a href=&quot;https://bugzil.la/2051410&quot;&gt; removed the New Tab daily briefing slice from the New Tab Page&lt;/a&gt;, so users will no longer see the daily-briefing card on new tabs and related New Tab slice prefs/registrations were cleaned up.&lt;/li&gt;
&lt;li&gt;Jack Brown&lt;a href=&quot;https://bugzil.la/2051742&quot;&gt; migrated the New Tab ContextMenu/LinkMenu implementation to the panel-list component&lt;/a&gt;, so right-click menus and link context behavior on the New Tab now use panel-list rendering (affects keyboard navigation, theming, and menu perf).&lt;/li&gt;
&lt;li&gt;Irene Ni&lt;a href=&quot;https://bugzil.la/2056255&quot;&gt; removed a root-level &amp;lt;hr&amp;gt; selector from the Weather forecast widget SCSS that leaked global divider styles into the New Tab Page layout&lt;/a&gt;, restoring correct dividers and preventing spacing/layout regressions on about:newtab.&lt;/li&gt;
&lt;li&gt;Irene Ni&lt;a href=&quot;https://bugzil.la/2058938&quot;&gt; enabled the remote-settings-driven sections layout in Nightly&lt;/a&gt;, flipping the remote-settings/sections layout so Nightly users receive Discovery Stream section composition from Remote Settings.&lt;/li&gt;
&lt;li&gt;Irene Ni&lt;a href=&quot;https://bugzil.la/2059104&quot;&gt; automated the New Tab Page locales update for train-hop&lt;/a&gt; to ensure locale bundles are refreshed on train deploys so users see corrected translations and no longer encounter stale labels after a hop.&lt;/li&gt;
&lt;li&gt;Reem Hamoui&lt;a href=&quot;https://bugzil.la/2059741&quot;&gt; fixed the Crossword widget double-counting and removed broad “interaction” user_actions&lt;/a&gt; so telemetry and UX-triggered actions reflect a single user event and analytics driven by user_action are no longer inflated.&lt;/li&gt;
&lt;li&gt;Dre&lt;a href=&quot;https://bugzil.la/2059811&quot;&gt; fixed the “Show more widgets” visibility&lt;/a&gt; by adjusting the widget container overflow/visibility logic so the Show more control is reliably revealed on constrained viewports, restoring widget discoverability.&lt;/li&gt;
&lt;li&gt;Joel&lt;a href=&quot;https://bugzil.la/2060320&quot;&gt; fixed newtab.closed and newtab.sections_impression firing unexpectedly&lt;/a&gt; on the New Tab Page by gating event emission on section visibility and tab lifecycle, which stops spurious impression and close telemetry pings and improves the accuracy of NTP impression/close counts for affected users.&lt;/li&gt;
&lt;li&gt;Joel&lt;a href=&quot;https://bugzil.la/2060323&quot;&gt; added a topsite display customization event to newtab ping&lt;/a&gt;, updating the New Tab ping schema so user topsite layout and appearance changes are emitted as topsite.display_customization events, enabling reliable capture of pin/remove/resize/customization actions in Telemetry.&lt;/li&gt;
&lt;li&gt;Nina Pypchenko [:nina-py]&lt;a href=&quot;https://bugzil.la/2060749&quot;&gt; added widgets.stocks.interaction and flip it on user actions&lt;/a&gt; so explicit click/tap interactions with the Stocks widget now generate widgets.stocks.interaction events, improving engagement capture for the Stocks surface.&lt;/li&gt;
&lt;li&gt;Nina Pypchenko [:nina-py]&lt;a href=&quot;https://bugzil.la/2060787&quot;&gt; migrated the Stocks widget telemetry to the shared useWidgetTelemetry hook&lt;/a&gt;, standardizing how the Stocks widget emits metrics and ping fields to match other widgets, which reduces missing/duplicate events and makes per-widget telemetry consistent across platforms.&lt;/li&gt;
&lt;li&gt;Irene Ni &lt;a href=&quot;https://bugzil.la/2060908&quot;&gt;created an initial JSON dump of Remote Settings sections layouts for cold startup&lt;/a&gt; to prepopulate New Tab Page sections on first launch and reduce layout flash or missing tiles.&lt;/li&gt;
&lt;li&gt;Nina Pypchenko [:nina-py]&lt;a href=&quot;https://bugzil.la/2061063&quot;&gt; added a persistent “New” badge to the Stocks widget until first user interaction&lt;/a&gt;, which improves discoverability of the Stocks card and is cleared on the user’s first click/tap.&lt;/li&gt;
&lt;li&gt;Maxx Crawford&lt;a href=&quot;https://bugzil.la/2061741&quot;&gt; implemented a side-by-side content layout variant for the New Tab Page feed&lt;/a&gt;, which introduces a new responsive layout option that changes feed column behavior and visual density on wider viewports.&lt;/li&gt;
&lt;li&gt;Scott Downe&lt;a href=&quot;https://bugzil.la/2061828&quot;&gt; added support for five-column content feed layouts&lt;/a&gt;, which enables denser content grids for large displays by updating grid logic and responsive breakpoints and affects NTP rendering on wide screens.&lt;/li&gt;
&lt;li&gt;Dre&lt;a href=&quot;https://bugzil.la/2061876&quot;&gt; added a “Celebrations” UI state to the Privacy Widget&lt;/a&gt;, which surfaces milestone/celebratory visuals and transient animations in the Privacy Widget when triggers are satisfied.&lt;/li&gt;
&lt;li&gt;Irene Ni updated the New Tab topsite context menu button to respect&lt;a href=&quot;https://bugzil.la/2062434&quot;&gt; prefers-reduced-motion&lt;/a&gt; via CSS/media-query changes, so users with reduce-motion enabled no longer see the button’s motion/animation.&lt;/li&gt;
&lt;li&gt;Scott Downe&lt;a href=&quot;https://bugzil.la/2062473&quot;&gt; expanded New Tab’s list of region and locales for content support&lt;/a&gt;, updating the New Tab content selection config and region→locale mappings so more users in newly-added locales receive localized tiles and recommendations on the New Tab Page.&lt;/li&gt;
&lt;li&gt;Irene Ni&lt;a href=&quot;https://bugzil.la/2062621&quot;&gt; fixed the New Shortcut / Edit Shortcut prompt background being transparent with the Newtab addon installed&lt;/a&gt;, restoring CSS/background opacity for the edit UI so shortcut editing is readable across themes and addon combinations.&lt;/li&gt;
&lt;li&gt;Maxx Crawford&lt;a href=&quot;https://bugzil.la/2062750&quot;&gt; added a dedicated trainhopConfig.widgetPrivacy payload for the Privacy widget feature&lt;/a&gt;, introducing a per-trainhop config payload in Discovery Stream so Privacy widget rollouts and toggles can be controlled without code deploys.&lt;/li&gt;
&lt;li&gt;Maxx Crawford&lt;a href=&quot;https://bugzil.la/2062753&quot;&gt; added a layout management panel in Discovery Stream Admin&lt;/a&gt;, giving editors an admin UI to modify New Tab/stream layouts (reduces manual config edits and speeds layout experiments).&lt;/li&gt;
&lt;li&gt;Dre reduced the Privacy Widget celebration sparkles on the New Tab Page in&lt;a href=&quot;https://bugzil.la/2062830&quot;&gt; Privacy Widget Celebration: Reduce the Sparkles&lt;/a&gt; by lowering particle counts and throttling animation cadence in the widget’s CSS/JS animation code, reducing visual noise and a small amount of GPU/animation work for users during the celebration without changing privacy settings.&lt;/li&gt;
&lt;li&gt;Maxx Crawford&lt;a href=&quot;https://bugzil.la/2063604&quot;&gt; restored the “Change size” context menu item for the side-by-side experimental New Tab layout&lt;/a&gt; so users with the side-by-side exp layout enabled regain the resize control in widget context menus.&lt;/li&gt;
&lt;li&gt;Maxx Crawford&lt;a href=&quot;https://bugzil.la/2063657&quot;&gt; stopped the sports widget from rendering regardless of the pref&lt;/a&gt; so unwanted sports content no longer appears on New Tab when the pref should prevent it.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Picture-in-Picture&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Thanks to Lukáš Lipinský for &lt;a href=&quot;http://ceskatelevize.cz&quot;&gt;adding live event caption support for ceskatelevize.cz&lt;/a&gt;!&lt;/li&gt;
&lt;li&gt;Thanks to Mike Conley for &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2050059&quot;&gt;fixing play / pause issues with the PiP player on Udemy&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Search and Urlbar&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Nova:&lt;/b&gt; continued work on the Nova redesign, focusing on CSS fixes, tab group and container styling, and tab/address bar polish. Efforts are underway to ensure the UI integrates correctly with platform themes and high-contrast modes.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;IPC Urlbar / Multi-Context Address Bar (MCAB) on New Tab:&lt;/b&gt; Significant progress has been made on the IPC Urlbar implementation. The CI variant is now live and upgraded to Tier 2, allowing for better bug detection. Currently focused on &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2053407&quot;&gt;making content modules content-process-safe&lt;/a&gt; and &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2062209&quot;&gt;preparing for new tab search bar integration&lt;/a&gt;. Here’s moz-urlbar rendering &lt;i&gt;something&lt;/i&gt; on about:newtab for the first time:&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt=&quot;The Firefox New Tab page with an unstyled in-page search bar in the center, showing Google search suggestions for &amp;quot;what's a scotch bonnet&amp;quot;&quot; class=&quot;aligncenter size-full wp-image-2126&quot; height=&quot;1028&quot; src=&quot;https://blog.nightly.mozilla.org/files/2026/09/image1-1.png&quot; width=&quot;1850&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2002830&quot;&gt;Post-MVP work continues on refining the new search bar&lt;/a&gt; that can be added to the toolbar.
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2062823&quot;&gt;Let Tab land on the search input rather than the search button, behind a Nightly-only pref&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://experimenter.services.mozilla.com/nimbus/address-bar-tips-v2-expansion-in-2026-re-launch-2/summary/&quot;&gt;Google address bar messaging&lt;/a&gt; experiment relaunched.&lt;/li&gt;
&lt;li&gt;Search &amp;amp; Suggest Telemetry&lt;b&gt;:&lt;/b&gt; Development is ongoing for search term telemetry, specifically regarding fetching results from Merino for online suggestions. Also preparing to retire legacy telemetry for certain search service metrics.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Favicon &amp;amp; Places:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2047549&quot;&gt;Bookmarks for Google Apps use the root icon instead of the newly released one&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2053482&quot;&gt;CopyFavicon should only copy across same origin pages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=418144&quot;&gt;Favicons are not affected by a hard refresh&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2054381&quot;&gt;Bookmarks/history locked error at startup despite no external process holding places.sqlite&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1736955&quot;&gt;Also trim www from URLs, behind pref&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded>
	<dc:date>2026-09-11T17:32:05+00:00</dc:date>
	<dc:creator>Katherine Patenio</dc:creator>
</item>
<item rdf:about="https://jonalmeida.com/til/do-not-relocate-objdir/">
	<title>Jonathan Almeida: Perf wins from relocating MOZ_OBJDIR have a dev experience cost</title>
	<link>https://jonalmeida.com/til/do-not-relocate-objdir/</link>
	<content:encoded>&lt;p&gt;This is the opposite of what I wanted to write about: relocating your MOZ_OBJDIR outside of your source directory will make your IDE faster.&lt;/p&gt;
&lt;p&gt;In mozilla-central (the firefox monorepo), a default object files directory is created within the same source directory. This is equivalent to the &lt;code&gt;build/&lt;/code&gt; directory you would typically see in other projects.&lt;/p&gt;
&lt;p&gt;While this is typically fine, I've found that Android Studio indexes many of these files and that can be slow when you're not working across all the layers in Gecko and Firefox. I ended up with these build directories that grew over time:&lt;/p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Directory&lt;/th&gt;&lt;th&gt;Last touched&lt;/th&gt;&lt;th&gt;Size&lt;/th&gt;&lt;th&gt;Files&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;obj-aarch64-unknown-linux-android&lt;/td&gt;&lt;td&gt;2025-11-04&lt;/td&gt;&lt;td&gt;29 G&lt;/td&gt;&lt;td&gt;113,116&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;objdir-desktop&lt;/td&gt;&lt;td&gt;2025-11-04&lt;/td&gt;&lt;td&gt;19 G&lt;/td&gt;&lt;td&gt;41,010&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;objdir-frontend&lt;/td&gt;&lt;td&gt;2026-09-09&lt;/td&gt;&lt;td&gt;6.3 G&lt;/td&gt;&lt;td&gt;66,930&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;obj-aarch64-apple-darwin24.5.0&lt;/td&gt;&lt;td&gt;2025-06-16&lt;/td&gt;&lt;td&gt;4 K&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;That's a lot to index! I figured a way around this problem is to move the OBJDIRs out of the source directory and into something like &lt;code&gt;~/.mozbuild&lt;/code&gt;:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot;&gt;&lt;code&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;mk_add_options&lt;/span&gt;&lt;span&gt; MOZ_OBJDIR=&lt;/span&gt;&lt;span&gt;&quot;&lt;/span&gt;&lt;span&gt;$&lt;/span&gt;&lt;span&gt;HOME&lt;/span&gt;&lt;span&gt;/.mozbuild/objdir-frontend&lt;/span&gt;&lt;span&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;While this does speed up IDE indexing, it's at the cost of developer experience, because now our generated code (e.g. &lt;code&gt;FxNimbus&lt;/code&gt;) shows up as red symbols everywhere.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;[insert sad trombone sound clip]&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I'm uncertain if trimming what we index in these OBJDIRs is worth a large enough performance win, so for now I'll ensure I clean-up my stale copies which I'm not actively using.&lt;/p&gt;</content:encoded>
	<dc:date>2026-09-11T00:00:00+00:00</dc:date>
	<dc:creator>Jonathan Almeida</dc:creator>
</item>
<item rdf:about="https://blog.mozilla.org/community/?p=2550">
	<title>About:Community: Game on: Play, share, and help shape Mozilla</title>
	<link>https://blog.mozilla.org/community/2026/09/10/newsletter-aug-2026/</link>
	<content:encoded>&lt;p&gt;P.S. Apologies for the delay in publishing this edition on the community blog. The original newsletter was sent to subscribers on August 27.&lt;/p&gt;
&lt;p&gt;Firefox was leveling up in August! GeForce NOW arrived on Firefox for Windows, JPEG XL support was on the way, and the Firefox + NVIDIA teams joined forces for a Reddit AMA. We also invited SUMO and Mozilla Connect contributors to share their experiences through the Mozilla Contributor Survey, which has since closed (thank you to everyone who took the time to participate!).&lt;/p&gt;
&lt;p&gt;Read on to catch up on what you may have missed and see what the community was up to!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt; GeForce NOW is now available on Firefox for Windows&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.mozilla.org/community/files/2026/09/Kit_Gamer_Purple-BG.gif&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-2552&quot; height=&quot;1080&quot; src=&quot;https://blog.mozilla.org/community/files/2026/09/Kit_Gamer_Purple-BG.gif&quot; width=&quot;1920&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Firefox has joined NVIDIA GeForce NOW’s supported browser lineup, making it possible to stream more than 2,000 PC games directly from Firefox on Windows. There are no downloads, installs, or hardware upgrades required! Just a Windows PC, a GeForce NOW account, and your existing game library.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.mozilla.org/firefox/firefox-nvidia-geforce-now-partnership/&quot;&gt;Learn more&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt; Share your voice in the Mozilla Contributor Survey 2026&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We’re gathering feedback from SUMO and Mozilla Connect contributors to help shape the future of Mozilla’s contributor community. The 2026 Contributor Survey explores what motivates you to contribute, what matters most throughout your contributor journey, and how we can improve areas such as onboarding, recognition, and the upcoming Mozilla Connect migration to SUMO. The survey takes about 10 minutes to complete and is now open until &lt;strong&gt;September 1, 2026, end of day UTC&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://support.mozilla.org/forums/contributors/717716/&quot;&gt;Complete the survey&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt; JPEG XL is coming to Firefox&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Firefox plans to ship support for JPEG XL, a modern image format designed to deliver high-quality images more efficiently. With progressive rendering, images can start appearing before they have fully downloaded so it helps make pages feel faster, especially on slower connections.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://hacks.mozilla.org/2026/08/intent-to-ship-jpeg-xl/&quot;&gt;Learn more&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt; From the Reddit Community&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The Firefox and NVIDIA GeForce NOW teams are hosting a Reddit AMA on &lt;strong&gt;September 2&lt;/strong&gt; to celebrate GeForce NOW support on Firefox for Windows. Bring your questions about the integration, share your cloud-gaming setup, and let the teams know what else you’d love Firefox to support for online play.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.reddit.com/r/firefox/comments/1vrrvuh/firefox_now_supports_online_gaming_with_nvidia/&quot;&gt;Join the AMA&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;P.S.&lt;/p&gt;
&lt;p&gt;Enjoyed these updates? Subscribe to the &lt;a href=&quot;https://community.mozilla.org/newsletter&quot;&gt;Mozilla Community Newsletter&lt;/a&gt; and get the latest updates delivered straight to your inbox.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;</content:encoded>
	<dc:date>2026-09-10T15:05:52+00:00</dc:date>
	<dc:creator>Rizki Kelimutu</dc:creator>
</item>
<item rdf:about="discourse.mozilla.org-topic-149413">
	<title>Firefox Tooling Announcements: Happy BMO Push Day! (20260908.1)</title>
	<link>https://discourse.mozilla.org/t/happy-bmo-push-day-20260908-1/149413</link>
	<content:encoded>&lt;p&gt;&lt;a href=&quot;https://github.com/mozilla-bteam/bmo/tree/release-20260908.1&quot; rel=&quot;noopener nofollow ugc&quot;&gt;Github Link&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The following changes have been pushed to &lt;a href=&quot;https://bugzilla.mozilla.org&quot;&gt;bugzilla.mozilla.org&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1205300&quot;&gt;Bug 1205300&lt;/a&gt; - Missing: related documentation “Reporting”&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2068120&quot;&gt;Bug 2068120&lt;/a&gt; - Thunderbird access to “Iteration” and “Due Date” fields&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2066252&quot;&gt;Bug 2066252&lt;/a&gt; - Prevent save if keyword checkin-needed-tb exists without target milestone&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2070017&quot;&gt;Bug 2070017&lt;/a&gt; - Reinstate web bounty form&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2059948&quot;&gt;Bug 2059948&lt;/a&gt; - Do not offer printable recovery codes to Duo users&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Discuss these changes in the &lt;a href=&quot;https://matrix.to/#/#bmo:mozilla.org&quot; rel=&quot;noopener nofollow ugc&quot;&gt;BMO Matrix Room&lt;/a&gt;&lt;/p&gt;
            &lt;p&gt;&lt;small&gt;1 post - 1 participant&lt;/small&gt;&lt;/p&gt;
            &lt;p&gt;&lt;a href=&quot;https://discourse.mozilla.org/t/happy-bmo-push-day-20260908-1/149413&quot;&gt;Read full topic&lt;/a&gt;&lt;/p&gt;</content:encoded>
	<dc:date>2026-09-10T02:34:16+00:00</dc:date>
	<dc:creator>dkl1</dc:creator>
</item>
<item rdf:about="discourse.mozilla.org-topic-149411">
	<title>Firefox Tooling Announcements: MozPhab 2.19.0 Released</title>
	<link>https://discourse.mozilla.org/t/mozphab-2-19-0-released/149411</link>
	<content:encoded>&lt;p&gt;Bugs resolved in Moz-Phab 2.19.0:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/1987220&quot;&gt;bug 1987220&lt;/a&gt; &lt;code&gt;moz-phab patch --apply-to here&lt;/code&gt; should apply to the original base revision and rebase, rather than applying the raw diff on HEAD&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/2016442&quot;&gt;bug 2016442&lt;/a&gt; add &lt;code&gt;moz-phab list&lt;/code&gt; subcommand&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Discuss these changes in &lt;span class=&quot;hashtag-raw&quot;&gt;#engineering-workflow&lt;/span&gt; on Slack or &lt;span class=&quot;hashtag-raw&quot;&gt;#Conduit&lt;/span&gt; Matrix.&lt;/p&gt;
            &lt;p&gt;&lt;small&gt;1 post - 1 participant&lt;/small&gt;&lt;/p&gt;
            &lt;p&gt;&lt;a href=&quot;https://discourse.mozilla.org/t/mozphab-2-19-0-released/149411&quot;&gt;Read full topic&lt;/a&gt;&lt;/p&gt;</content:encoded>
	<dc:date>2026-09-09T20:59:02+00:00</dc:date>
	<dc:creator>sheehan</dc:creator>
</item>
<item rdf:about="https://blog.thunderbird.net/?p=4543">
	<title>Thunderbird Blog: Desktop Settings: Removing technical jargon</title>
	<link>https://blog.thunderbird.net/2026/09/desktop-settings-removing-technical-jargon/</link>
	<content:encoded>&lt;p&gt;&lt;img alt=&quot;&quot; class=&quot;attachment-640x360 size-640x360 wp-post-image&quot; height=&quot;360&quot; src=&quot;https://blog.thunderbird.net/files/2026/09/blog-banner-generic1-768x432.jpg&quot; width=&quot;640&quot; /&gt;&lt;/p&gt;
&lt;figure class=&quot;wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio&quot;&gt;&lt;div class=&quot;wp-block-embed__wrapper&quot;&gt;

&lt;/div&gt;&lt;/figure&gt;



&lt;p&gt;Our goal for this phase of work is to remove the technical jargon, use plain language, and make it effortless for everyone to make informed decisions about their settings. With over 250 blocks of settings content to untangle, we aimed for incremental improvements rather than striving for perfection.&lt;/p&gt;



&lt;p&gt;While our &lt;a href=&quot;https://blog.thunderbird.net/2026/07/desktopsettings/&quot;&gt;previous research&lt;/a&gt; leaned heavily on our technical power users, this round intentionally focused on new users to make sure Thunderbird is intuitive from day one.&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;Summary of research&lt;/strong&gt;&lt;/p&gt;



&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;The new copy tested well:&lt;/strong&gt; We achieved &lt;strong&gt;&amp;gt;80% comprehension&lt;/strong&gt; across our tested copy for Notifications, Appearance, and Composition settings.&lt;/li&gt;



&lt;li&gt;&lt;strong&gt;High confidence levels: &lt;/strong&gt;Users felt confident to change settings without external help (asking someone, referencing docs, or using AI for support).&lt;/li&gt;



&lt;li&gt;&lt;strong&gt;Interactions need refinement:&lt;/strong&gt; We found spots where the interface didn’t always match expectations, like using a checkbox instead of an on/off toggle.&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;Using our &lt;a href=&quot;https://bolt.thunderbird.net/8b179dbfd/p/241b87-content-guidelines&quot;&gt;content guidelines&lt;/a&gt;, we audited all 250+ content blocks to check accuracy, what was overly technical, and if anything was outdated. Our strategy was built up into steps to make it more achievable.&lt;/p&gt;



&lt;h3&gt;&lt;strong&gt;Step 1: Research &amp;amp; prioritization&lt;/strong&gt;&lt;/h3&gt;



&lt;figure class=&quot;wp-block-image size-large is-resized&quot;&gt;&lt;a href=&quot;https://blog.thunderbird.net/files/2026/09/Blog-inline-image_1-1-scaled.jpg&quot;&gt;&lt;img alt=&quot;Figjam board with user journey, personas, and user research&quot; class=&quot;wp-image-4554&quot; height=&quot;338&quot; src=&quot;https://blog.thunderbird.net/files/2026/09/Blog-inline-image_1-1-600x338.jpg&quot; style=&quot;width: 836px; height: auto;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;&lt;figcaption class=&quot;wp-element-caption&quot;&gt;&lt;em&gt;User journey mapping, insights from research and user needs&lt;/em&gt;&lt;/figcaption&gt;&lt;/figure&gt;



&lt;p&gt;Last month, we conducted research where we used a &lt;a href=&quot;https://www.nngroup.com/articles/card-sorting-definition/&quot;&gt;card sorting method&lt;/a&gt; to understand what users actually care about most and where they expect settings to live. &lt;em&gt;Catch up on the &lt;a href=&quot;https://blog.thunderbird.net/2026/07/desktopsettings/&quot;&gt;Research Summary&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;&lt;/p&gt;



&lt;h3&gt;&lt;strong&gt;Step 2: Inventory audit&lt;/strong&gt;&lt;/h3&gt;



&lt;figure class=&quot;wp-block-image size-full is-resized&quot;&gt;&lt;a href=&quot;https://blog.thunderbird.net/files/2026/09/Blog-inline-image_2-scaled.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-4559&quot; height=&quot;1440&quot; src=&quot;https://blog.thunderbird.net/files/2026/09/Blog-inline-image_2-scaled.jpg&quot; style=&quot;width: 838px; height: auto;&quot; width=&quot;2560&quot; /&gt;&lt;/a&gt;&lt;figcaption class=&quot;wp-element-caption&quot;&gt;&lt;em&gt;Content inventory with Thunderbird on the left and the content table on the right.&lt;/em&gt;&lt;/figcaption&gt;&lt;/figure&gt;



&lt;p&gt;We mapped every piece of text in the app to build a full content inventory, assessing each piece of text for accuracy, freshness, and 8th-grade readability.&lt;/p&gt;



&lt;p&gt;&lt;/p&gt;



&lt;h3&gt;&lt;strong&gt;Step 3: Content redesign&lt;/strong&gt;&lt;/h3&gt;



&lt;figure class=&quot;wp-block-image size-full is-resized&quot;&gt;&lt;a href=&quot;https://blog.thunderbird.net/files/2026/09/content-blocks.gif&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-4564&quot; height=&quot;532&quot; src=&quot;https://blog.thunderbird.net/files/2026/09/content-blocks.gif&quot; style=&quot;width: 841px; height: auto;&quot; width=&quot;960&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;



&lt;figure class=&quot;wp-block-image size-full is-resized&quot;&gt;&lt;a href=&quot;https://blog.thunderbird.net/files/2026/09/Blog-inline-image_3-scaled.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-4574&quot; height=&quot;1440&quot; src=&quot;https://blog.thunderbird.net/files/2026/09/Blog-inline-image_3-scaled.jpg&quot; style=&quot;width: 838px; height: auto;&quot; width=&quot;2560&quot; /&gt;&lt;/a&gt;&lt;figcaption class=&quot;wp-element-caption&quot;&gt;&lt;em&gt;Example of how we updated the notifications content&lt;/em&gt;&lt;/figcaption&gt;&lt;/figure&gt;



&lt;p&gt;We removed any developer or system updates from the interface and replaced it with language that speaks to what the setting actually &lt;em&gt;does&lt;/em&gt; for the user.&lt;/p&gt;



&lt;p class=&quot;has-large-font-size&quot;&gt;&lt;strong&gt;Our findings &lt;/strong&gt;&lt;/p&gt;



&lt;p&gt;We tested prototypes for Notifications, Appearance, and Composition and asked 4 questions to test the purpose of each setting category, scenario comprehension, and user confidence. Our target threshold was 80% comprehension. &lt;/p&gt;



&lt;figure class=&quot;wp-block-image size-full is-resized&quot;&gt;&lt;a href=&quot;https://blog.thunderbird.net/files/2026/09/Blog-inline-image_2-2-scaled.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-4604&quot; height=&quot;1440&quot; src=&quot;https://blog.thunderbird.net/files/2026/09/Blog-inline-image_2-2-scaled.jpg&quot; style=&quot;width: 841px; height: auto;&quot; width=&quot;2560&quot; /&gt;&lt;/a&gt;&lt;figcaption class=&quot;wp-element-caption&quot;&gt;&lt;em&gt;Lyssna prototype displaying Appearance settings and question&lt;/em&gt;&lt;/figcaption&gt;&lt;/figure&gt;



&lt;p&gt;&lt;/p&gt;



&lt;p&gt;Here is how the new copy tested with room for improvement around the interactions, visuals, and how the language can be even more clear and user friendly. &lt;/p&gt;



&lt;figure class=&quot;wp-block-table is-style-stripes&quot;&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Settings Category&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Purpose Comprehension&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Scenario Accuracy&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Confidence Score (out of 5)&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Notifications&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;86%&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;71%&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;4.00&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Appearance&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;86%&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;86%&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;4.14&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Composition&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;100%&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;100%&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;4.43&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/figure&gt;



&lt;p class=&quot;has-large-font-size&quot;&gt;&lt;strong&gt;What’s next&lt;/strong&gt;&lt;/p&gt;



&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Improve the interactions:&lt;/strong&gt; Aligning component types with immediate vs. batch actions so the UI behaves the way people expect. &lt;/li&gt;



&lt;li&gt;&lt;strong&gt;Sharper indicators:&lt;/strong&gt; Testers liked the visual diagrams for Threaded, Unthreaded, and Grouped messages, but they need a bit more detail to make the visual distinction instant.&lt;/li&gt;



&lt;li&gt;&lt;strong&gt;Continue iterating on copy:&lt;/strong&gt; Cleaning up remaining awkward phrasing (like &lt;em&gt;Autosave 5 seconds&lt;/em&gt;) that still makes the experience feel slightly dated.&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;Next, we are taking everything we learned from this copy testing and applying it to the overall settings navigation and layout structure.&lt;/p&gt;



&lt;p&gt;Redesigning settings isn’t always glamorous, which is why our team internally nicknamed this effort &lt;strong&gt;“Project Toto”&lt;/strong&gt; inspired by high-tech Japanese toilets. Settings are something most people prefer not to think about, but when they are designed thoughtfully, the experience becomes seamless, intuitive, and surprisingly delightful.&lt;/p&gt;



&lt;p&gt;As our new designs take shape, we’ll be reaching back out to both new and long-time users for feedback. Stay tuned for our next update, and let us know your thoughts in the comments!&lt;/p&gt;
&lt;p&gt;The post &lt;a href=&quot;https://blog.thunderbird.net/2026/09/desktop-settings-removing-technical-jargon/&quot;&gt;Desktop Settings: Removing technical jargon&lt;/a&gt; appeared first on &lt;a href=&quot;https://blog.thunderbird.net&quot;&gt;The Thunderbird Blog&lt;/a&gt;.&lt;/p&gt;</content:encoded>
	<dc:date>2026-09-09T15:25:40+00:00</dc:date>
	<dc:creator>Aly Blenkin</dc:creator>
</item>
<item rdf:about="tag:this-week-in-rust.org,2026-09-09:/blog/2026/09/09/this-week-in-rust-668/">
	<title>This Week In Rust: This Week in Rust 668</title>
	<link>https://this-week-in-rust.org/blog/2026/09/09/this-week-in-rust-668/</link>
	<content:encoded>&lt;p&gt;Hello and welcome to another issue of &lt;em&gt;This Week in Rust&lt;/em&gt;!
&lt;a href=&quot;https://www.rust-lang.org/&quot;&gt;Rust&lt;/a&gt; is a programming language empowering everyone to build reliable and efficient software.
This is a weekly summary of its progress and community.
Want something mentioned? Tag us at
&lt;a href=&quot;https://bsky.app/profile/thisweekinrust.bsky.social&quot;&gt;@thisweekinrust.bsky.social&lt;/a&gt; on Bluesky or
&lt;a href=&quot;https://mastodon.social/@thisweekinrust&quot;&gt;@ThisWeekinRust&lt;/a&gt; on mastodon.social, or
&lt;a href=&quot;https://github.com/rust-lang/this-week-in-rust&quot;&gt;send us a pull request&lt;/a&gt;.
Want to get involved? &lt;a href=&quot;https://github.com/rust-lang/rust/blob/main/CONTRIBUTING.md&quot;&gt;We love contributions&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This Week in Rust&lt;/em&gt; is openly developed &lt;a href=&quot;https://github.com/rust-lang/this-week-in-rust&quot;&gt;on GitHub&lt;/a&gt; and archives can be viewed at &lt;a href=&quot;https://this-week-in-rust.org/&quot;&gt;this-week-in-rust.org&lt;/a&gt;.
If you find any errors in this week's issue, &lt;a href=&quot;https://github.com/rust-lang/this-week-in-rust/pulls&quot;&gt;please submit a PR&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Want TWIR in your inbox? &lt;a href=&quot;https://this-week-in-rust.us11.list-manage.com/subscribe?u=fd84c1c757e02889a9b08d289&amp;amp;id=0ed8b72485&quot;&gt;Subscribe here&lt;/a&gt;.&lt;/p&gt;
&lt;h4&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#updates-from-rust-community&quot;&gt;Updates from Rust Community&lt;/a&gt;&lt;/h4&gt;


&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#official&quot;&gt;Official&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/&quot;&gt;Rust debugging survey 2026 results&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#foundation&quot;&gt;Foundation&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://rustfoundation.org/media/rust-cpp-interop-initiative-progress-update/&quot;&gt;Rust/C++ Interop Initiative: Progress Update, September 2026&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#newsletters&quot;&gt;Newsletters&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://rust-trends.com/newsletter/rust-1-98-ships-as-the-supply-chain-gets-tested/&quot;&gt;Rust Trends Issue 81 - Rust 1.98 Ships as the Supply Chain Gets Tested&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#projecttooling-updates&quot;&gt;Project/Tooling Updates&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://rustls.dev/blog/2026-09-08-a-decade-of-rustls/&quot;&gt;A Decade of Rustls&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#observationsthoughts&quot;&gt;Observations/Thoughts&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://kerkour.com/rust-microcontrollers&quot;&gt;Microcontrollers with good support for Rust&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://teaql.io/blog/musicbrainz-rust-orm-benchmark/&quot;&gt;What Does a Governed Data Runtime Cost? TeaQL vs Diesel and SeaORM on MusicBrainz&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://lwn.net/SubscriberLink/1091015/5009546caa744c57/&quot;&gt;Stabilizing Rust's never type&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://pid7.com/blog/searching-150gb-text-per-second/&quot;&gt;Searching through 150 GiB of Text per Second with SIMD&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://levelup.gitconnected.com/nine-rules-for-compile-time-work-with-rust-const-fn-part-2-76ccd0e8a965&quot;&gt;Nine Rules for Compile-Time Work with Rust &lt;code&gt;const fn&lt;/code&gt;: Parse files, build tables, and catch mistakes … without a build script (Part 2)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://cel.cs.brown.edu/blog/design-space-async-await/&quot;&gt;A Design Space Exploration of Async/Await&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://ettolrach.com/blog/rust_when_empty_isnt_bottom.html&quot;&gt;Rust: When Empty Isn't Bottom&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#rust-walkthroughs&quot;&gt;Rust Walkthroughs&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.debugdiary.dev/log/rust-simd128-what-changed-in-webassembly&quot;&gt;What Rust's +simd128 Actually Changed in My WebAssembly&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.sheerluck.dev/posts/understanding-rust-control-flow-by-building-a-number-guessing-game/&quot;&gt;Rust Control Flow in Practice - Build a Number Guessing Game&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://hackmd.io/@WorldSEnder/Hkyqni6Ofl&quot;&gt;Unsizing unsized values&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://quietism.art/posts/game-architecture/&quot;&gt;Game architecture&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.nvidia.com/blog/introducing-cuda-rust-two-tracks-for-writing-gpu-kernels/&quot;&gt;Introducing CUDA Rust: Two Tracks for Writing GPU Kernels&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://cetra3.github.io/blog/state-of-allocators-2026-part-2/&quot;&gt;The State of Allocators in 2026 - 6 Months Later&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://sofiabelen.github.io/projects/visualizing-rusts-vtables-how-dyn-trait-works-in-memory/&quot;&gt;Visualizing Rust's Vtables: How dyn Trait Works In Memory&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bamburac.com/blog/chess-engine/&quot;&gt;Safely generating legal chess moves at 475,000,000 nodes/s&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://sam.dev/blog/gearhash-on-arm64&quot;&gt;Speeding up gearhash on ARM64 (2× faster)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://ochagavia.nl/blog/lets-build-a-compressor-from-scratch/&quot;&gt;Let's build a compressor from scratch&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bensimms.moe/reverse-engineering-scooter/&quot;&gt;Reverse engineering my e-scooter and rewriting the firmware in rust&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://hemomorphic.alexblood.net/posts/gloo-yew-for-persistent-webapp-state/&quot;&gt;Gloo + Yew for persistent webapp state&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#miscellaneous&quot;&gt;Miscellaneous&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/kevincouton/awesome-rust-migrations&quot;&gt;Awesome Rust Migrations&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#crate-of-the-week&quot;&gt;Crate of the Week&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;This week's crate is &lt;a href=&quot;https://github.com/roeeshoshani/tokio_rcu&quot;&gt;tokio-rcu&lt;/a&gt;, a user-space RCU implementation specifically built around the semantics of async rust and tokio.&lt;/p&gt;
&lt;p&gt;Thanks to &lt;a href=&quot;https://users.rust-lang.org/t/crate-of-the-week/2704/1662&quot;&gt;Roee Shoshani&lt;/a&gt; for the self-suggestion!&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://users.rust-lang.org/t/crate-of-the-week/2704&quot;&gt;Please submit your suggestions and votes for next week&lt;/a&gt;!&lt;/p&gt;
&lt;h4&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#calls-for-testing&quot;&gt;Calls for Testing&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;An important step for RFC implementation is for people to experiment with the
implementation and give feedback, especially before stabilization.&lt;/p&gt;
&lt;p&gt;If you are a feature implementer and would like your RFC to appear in this list, add a
&lt;code&gt;call-for-testing&lt;/code&gt; label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature need testing.&lt;/p&gt;
&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#cargo&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/issues?q=state%3Aopen%20label%3Acall-for-testing%20state%3Aopen&quot;&gt;Cargo&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/issues/14136&quot;&gt;Tracking Issue for checksum freshness&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;No calls for testing were issued this week by
&lt;a href=&quot;https://github.com/rust-lang/rust/issues?q=state%3Aopen%20label%3Acall-for-testing%20state%3Aopen&quot;&gt;Rust&lt;/a&gt;,
&lt;a href=&quot;https://github.com/rust-lang/rustup/issues?q=state%3Aopen%20label%3Acall-for-testing%20state%3Aopen&quot;&gt;Rustup&lt;/a&gt; or
&lt;a href=&quot;https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing%20state%3Aopen&quot;&gt;Rust language RFCs&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/rust-lang/this-week-in-rust/issues&quot;&gt;Let us know&lt;/a&gt; if you would like your feature to be tracked as a part of this list.&lt;/p&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#rfcs&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing&quot;&gt;RFCs&lt;/a&gt;&lt;/h5&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#rust&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/labels/call-for-testing&quot;&gt;Rust&lt;/a&gt;&lt;/h5&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#rustup&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/rust-lang/rustup/labels/call-for-testing&quot;&gt;Rustup&lt;/a&gt;&lt;/h5&gt;
&lt;p&gt;If you are a feature implementer and would like your RFC to appear on the above list, add the new &lt;code&gt;call-for-testing&lt;/code&gt;
label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature
need testing.&lt;/p&gt;
&lt;h4&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#call-for-participation-projects-and-speakers&quot;&gt;Call for Participation; projects and speakers&lt;/a&gt;&lt;/h4&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#cfp-projects&quot;&gt;CFP - Projects&lt;/a&gt;&lt;/h5&gt;
&lt;p&gt;Always wanted to contribute to open-source projects but did not know where to start?
Every week we highlight some tasks from the Rust community for you to pick and get started!&lt;/p&gt;
&lt;p&gt;Some of these tasks may also have mentors available, visit the task page for more information.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/lacs-project/sysknife/issues/345&quot;&gt;sysknife - action_reference_doc_is_current prints two 44 KB documents instead of the line that differs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/lacs-project/sysknife/issues/327&quot;&gt;sysknife - packages/setup claims Node 18 support, and Node 18 has been end-of-life since 2025-04-30&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/lacs-project/sysknife/issues/356&quot;&gt;sysknife - cargo test fails intermittently on main: a test sets a process-global env var&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;If you are a Rust project owner and are looking for contributors, please submit tasks &lt;a href=&quot;https://github.com/rust-lang/this-week-in-rust?tab=readme-ov-file#call-for-participation-guidelines&quot;&gt;here&lt;/a&gt; or through a &lt;a href=&quot;https://github.com/rust-lang/this-week-in-rust&quot;&gt;PR to TWiR&lt;/a&gt; or by reaching out on &lt;a href=&quot;https://bsky.app/profile/thisweekinrust.bsky.social&quot;&gt;Bluesky&lt;/a&gt; or &lt;a href=&quot;https://mastodon.social/@thisweekinrust&quot;&gt;Mastodon&lt;/a&gt;!&lt;/p&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#cfp-events&quot;&gt;CFP - Events&lt;/a&gt;&lt;/h5&gt;
&lt;p&gt;Are you a new or experienced speaker looking for a place to share something cool? This section highlights events that are being planned and are accepting submissions to join their event as a speaker.&lt;/p&gt;


&lt;ul&gt;
&lt;li&gt;&lt;em&gt;No Calls for papers or presentations were submitted this week.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you are an event organizer hoping to expand the reach of your event, please submit a link to the website through a &lt;a href=&quot;https://github.com/rust-lang/this-week-in-rust&quot;&gt;PR to TWiR&lt;/a&gt; or by reaching out on &lt;a href=&quot;https://bsky.app/profile/thisweekinrust.bsky.social&quot;&gt;Bluesky&lt;/a&gt; or &lt;a href=&quot;https://mastodon.social/@thisweekinrust&quot;&gt;Mastodon&lt;/a&gt;!&lt;/p&gt;
&lt;h4&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#updates-from-the-rust-project&quot;&gt;Updates from the Rust Project&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;613 pull requests were &lt;a href=&quot;https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2026-09-01..2026-09-08&quot;&gt;merged in the last week&lt;/a&gt;&lt;/p&gt;
&lt;h6&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#compiler&quot;&gt;Compiler&lt;/a&gt;&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/161795&quot;&gt;always rerun if we normalize local opaques&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/162047&quot;&gt;optimize empty token streams&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/161850&quot;&gt;store LiveLoans more densely packed&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/162422&quot;&gt;use IndexVec instead of BTreeMap for polonius variances&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h6&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#library&quot;&gt;Library&lt;/a&gt;&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/161893&quot;&gt;add custom allocator support to &lt;code&gt;(try_)map&lt;/code&gt; on &lt;code&gt;UniqueArc&lt;/code&gt; and &lt;code&gt;UniqueRc&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/162285&quot;&gt;box: fixup &lt;code&gt;map/try_map&lt;/code&gt; deallocate calls&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/160534&quot;&gt;stabilize smart pointer map functions&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h6&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#cargo_1&quot;&gt;Cargo&lt;/a&gt;&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/pull/17441&quot;&gt;&lt;code&gt;docs(lints)&lt;/code&gt;: how to configure Cargo lints&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/pull/17425&quot;&gt;&lt;code&gt;docs(trim-paths)&lt;/code&gt;: add limitations and polish&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/pull/17433&quot;&gt;&lt;code&gt;docs(trim-paths)&lt;/code&gt;: workspace remap begins with &lt;code&gt;.&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/pull/17437&quot;&gt;&lt;code&gt;fix(git)&lt;/code&gt;: Apply pr hint to git-fetch-with-cli&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/pull/17436&quot;&gt;&lt;code&gt;fix(git)&lt;/code&gt;: Make PR dep note cloer to our style guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/pull/17429&quot;&gt;&lt;code&gt;fix(git)&lt;/code&gt;: Simplify error message&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/pull/17422&quot;&gt;&lt;code&gt;fix(git)&lt;/code&gt;: Use git's 429 retry, when available&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/pull/17428&quot;&gt;&lt;code&gt;fix(parser)&lt;/code&gt;: Resolve theoretical use-after-free&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/pull/17410&quot;&gt;avoid passing search path (-L) args when they are passed as --extern&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/pull/17430&quot;&gt;docs: switch from &quot;target triple&quot; to &quot;target tuple&quot;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/pull/17362&quot;&gt;fix relative symlink handling in &lt;code&gt;write_atomic&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/pull/17432&quot;&gt;fix(trim-paths)!: limit options to &lt;code&gt;none|object|all&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/pull/17424&quot;&gt;fix(trim-paths)!: remove default scope from release profile&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/pull/17450&quot;&gt;fixed stale comment about fingerprint checking method&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h6&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#rustdoc&quot;&gt;Rustdoc&lt;/a&gt;&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/151618&quot;&gt;add &lt;code&gt;--print&lt;/code&gt; option&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h6&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#rustfmt&quot;&gt;Rustfmt&lt;/a&gt;&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rustfmt/pull/7017&quot;&gt;fix non-idempotent block doc comment closer rewrite&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rustfmt/pull/7089&quot;&gt;prevent infinite loops when parsing items from &lt;code&gt;cfg_select!&lt;/code&gt; arms&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h6&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#clippy&quot;&gt;Clippy&lt;/a&gt;&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-clippy/pull/17653&quot;&gt;&lt;code&gt;unnecessary_self_imports&lt;/code&gt;: lint nested imports&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-clippy/pull/17490&quot;&gt;&lt;code&gt;legacy_numeric_constants&lt;/code&gt;: make fixes machine-applicable&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-clippy/pull/17648&quot;&gt;&lt;code&gt;std_instead_of_core&lt;/code&gt;: don't suggest a path that does not resolve&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-clippy/pull/17583&quot;&gt;&lt;code&gt;useless_conversion&lt;/code&gt;: ignore &lt;code&gt;From::from&lt;/code&gt; in generated code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-clippy/pull/16595&quot;&gt;&lt;code&gt;useless_format&lt;/code&gt;: improve suggestion&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-clippy/pull/17681&quot;&gt;&lt;code&gt;regex_creation_in_loops&lt;/code&gt;: check MIR loop structure&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-clippy/pull/17504&quot;&gt;check that intra-doc links are not broken&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-clippy/pull/16786&quot;&gt;detect integration tests in &lt;code&gt;is_in_test&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-clippy/pull/17049&quot;&gt;do not trigger &lt;code&gt;integer_division_remainder_used&lt;/code&gt; in macros&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-clippy/pull/17644&quot;&gt;improve &lt;code&gt;map_unwrap_or&lt;/code&gt; lint to support &lt;code&gt;map(f).unwrap_or_default()&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-clippy/pull/17502&quot;&gt;move the &lt;code&gt;clippy_ci_panic_test&lt;/code&gt; integration into a regular test&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-clippy/pull/17665&quot;&gt;respect inline allows in &lt;code&gt;needless_pass_by_value&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-clippy/pull/14689&quot;&gt;soft rename &lt;code&gt;clippy::all&lt;/code&gt; to &lt;code&gt;clippy::default&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h6&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#rust-analyzer&quot;&gt;Rust-Analyzer&lt;/a&gt;&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-analyzer/pull/23262&quot;&gt;add diagnostics for missing bodies for free and associated items&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-analyzer/pull/23292&quot;&gt;fix &lt;code&gt;NamedTempFile&lt;/code&gt; constructors&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-analyzer/pull/23249&quot;&gt;accept Self as non-leading path segment in attribute paths&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-analyzer/pull/23246&quot;&gt;allow inner attributes on blocks in tuple expressions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-analyzer/pull/22662&quot;&gt;avoid type unification errors in term search&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-analyzer/pull/23270&quot;&gt;fix handling of &lt;code&gt;#[unsafe()]&lt;/code&gt; attrs without inner meta&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-analyzer/pull/23163&quot;&gt;fix parsing of &lt;code&gt;self:&lt;/code&gt;: in fn param list&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-analyzer/pull/23279&quot;&gt;hover &lt;code&gt;1f64&lt;/code&gt; use float instead of integer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-analyzer/pull/23297&quot;&gt;follow symlinks when scanning the sysroot for proc-macro dylibs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-analyzer/pull/23248&quot;&gt;install cargo tools with locked dependencies&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-analyzer/pull/23271&quot;&gt;merge &lt;code&gt;hir_def::hir::Expr::Unsafe&lt;/code&gt; into &lt;code&gt;Expr::Block&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust-analyzer/pull/23266&quot;&gt;render const value in completions label details&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#rust-compiler-performance-triage&quot;&gt;Rust Compiler Performance Triage&lt;/a&gt;&lt;/h5&gt;
&lt;p&gt;This week we've hit quite a few regressions, both expected and unexpected.
One of them has already been fixed, with fixes for a few others being discussed.
One big improvement comes from caching the sanitizer set in &lt;code&gt;Session&lt;/code&gt;, which fixes a large regression from last week.
A few minor improvements landed, including a 75% reduction in memory usage while compiling &lt;code&gt;bevy_render&lt;/code&gt; with the next trait solver.&lt;/p&gt;
&lt;p&gt;Triage done by &lt;strong&gt;@JonathanBrouwer&lt;/strong&gt;.
Revision range: &lt;a href=&quot;https://perf.rust-lang.org/?start=5321a4f40c957cf3587c055e77461febc2ebc865&amp;amp;end=656a9da186dacaf3bf8f7f7296a825d256cb4ae3&amp;amp;absolute=false&amp;amp;stat=instructions%3Au&quot;&gt;5321a4f4..656a9da1&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Summary&lt;/strong&gt;:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style=&quot;text-align: center;&quot;&gt;(instructions:u)&lt;/th&gt;
&lt;th style=&quot;text-align: center;&quot;&gt;mean&lt;/th&gt;
&lt;th style=&quot;text-align: center;&quot;&gt;range&lt;/th&gt;
&lt;th style=&quot;text-align: center;&quot;&gt;count&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;Regressions ❌ &lt;br /&gt; (primary)&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;0.5%&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;[0.1%, 1.3%]&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;121&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;Regressions ❌ &lt;br /&gt; (secondary)&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;0.6%&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;[0.1%, 10.3%]&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;106&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;Improvements ✅ &lt;br /&gt; (primary)&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;-0.6%&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;[-1.9%, -0.1%]&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;63&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;Improvements ✅ &lt;br /&gt; (secondary)&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;-0.6%&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;[-2.4%, -0.1%]&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;65&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;All ❌✅ (primary)&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;0.1%&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;[-1.9%, 1.3%]&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;184&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;3 Regressions, 2 Improvements, 8 Mixed; 6 of them in rollups
33 artifact comparisons made in total&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/rust-lang/rustc-perf/blob/a953e9c59b18feffa9dc06bee4ab30ad5a5700e8/triage/2026/2026-09-07.md&quot;&gt;Full report here&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#calls-for-testing_1&quot;&gt;Calls for Testing&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;An important step for RFC implementation is for people to experiment with the
implementation and give feedback, especially before stabilization.&lt;/p&gt;
&lt;p&gt;If you are a feature implementer and would like your RFC to appear in this list, add a
&lt;code&gt;call-for-testing&lt;/code&gt; label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature need testing.&lt;/p&gt;
&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#cargo_2&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/issues?q=state%3Aopen%20label%3Acall-for-testing%20state%3Aopen&quot;&gt;Cargo&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/issues/14136&quot;&gt;Tracking Issue for checksum freshness&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;No calls for testing were issued this week by
&lt;a href=&quot;https://github.com/rust-lang/rust/issues?q=state%3Aopen%20label%3Acall-for-testing%20state%3Aopen&quot;&gt;Rust&lt;/a&gt;,
&lt;a href=&quot;https://github.com/rust-lang/rustup/issues?q=state%3Aopen%20label%3Acall-for-testing%20state%3Aopen&quot;&gt;Rustup&lt;/a&gt; or
&lt;a href=&quot;https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing%20state%3Aopen&quot;&gt;Rust language RFCs&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/rust-lang/this-week-in-rust/issues&quot;&gt;Let us know&lt;/a&gt; if you would like your feature to be tracked as a part of this list.&lt;/p&gt;
&lt;hr /&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#approved-rfcs&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/rust-lang/rfcs/commits/master&quot;&gt;Approved RFCs&lt;/a&gt;&lt;/h5&gt;
&lt;p&gt;Changes to Rust follow the Rust &lt;a href=&quot;https://github.com/rust-lang/rfcs#rust-rfcs&quot;&gt;RFC (request for comments) process&lt;/a&gt;. These
are the RFCs that were approved for implementation this week:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rfcs/pull/3958&quot;&gt;Rustdoc LaTeX math&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rfcs/pull/3485&quot;&gt;RFC: Cargo feature descriptions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rfcs/pull/3999&quot;&gt;Change &lt;code&gt;i686-pc-windows-msvc&lt;/code&gt; from Tier 1 with host tools =&amp;gt; Tier 1 without host tools&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#final-comment-period&quot;&gt;Final Comment Period&lt;/a&gt;&lt;/h5&gt;
&lt;p&gt;Every week, &lt;a href=&quot;https://www.rust-lang.org/team.html&quot;&gt;the team&lt;/a&gt; announces the 'final comment period' for RFCs and key PRs
which are reaching a decision. Express your opinions now.&lt;/p&gt;
&lt;h6&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#tracking-issues-prs&quot;&gt;Tracking Issues &amp;amp; PRs&lt;/a&gt;&lt;/h6&gt;
&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#rust_1&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/issues?q=is%3Aopen%20label%3Afinal-comment-period%20sort%3Aupdated-desc%20state%3Aopen&quot;&gt;Rust&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/161385&quot;&gt;riscv: stabilize 'd' and 'f' target features&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/161583&quot;&gt;x86: on targets that requires SSE, use those registers for ABI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/161430&quot;&gt;Re-export &lt;code&gt;core::fmt::NumBuffer&lt;/code&gt; in &lt;code&gt;alloc&lt;/code&gt; (and &lt;code&gt;std&lt;/code&gt;)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/161005&quot;&gt;fix: unfulfilled nested dead code lint&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/162160&quot;&gt;turn aligned-in-packed error into lint&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/158186&quot;&gt;Guarantee 8 bytes of alignment of RawWakerVTable&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/161312&quot;&gt;libtest: Allow passing --test-threads and --color multiple times, with later arguments overriding earlier&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/rust/pull/161520&quot;&gt;Stabilize &lt;code&gt;core::mem::DropGuard&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#cargo_3&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/issues?q=is%3Aopen%20label%3Afinal-comment-period%20sort%3Aupdated-desc%20state%3Aopen&quot;&gt;Cargo&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/cargo/pull/17388&quot;&gt;fix(install): use packaged lockfile by default&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#language-reference&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/rust-lang/reference/issues?q=is%3Aopen%20label%3Afinal-comment-period%20sort%3Aupdated-desc%20state%3Aopen&quot;&gt;Language Reference&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/reference/pull/2320&quot;&gt;UB does not time travel&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#unsafe-code-guidelines&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/rust-lang/unsafe-code-guidelines/issues?q=is%3Aopen%20label%3Afinal-comment-period%20sort%3Aupdated-desc%20state%3Aopen&quot;&gt;Unsafe Code Guidelines&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/rust-lang/unsafe-code-guidelines/issues/621&quot;&gt;Can references inside an enum transiently set an invalid enum discriminant?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;No Items entered Final Comment Period this week for
&lt;a href=&quot;https://github.com/rust-lang/rfcs/issues?q=state%3Aopen%20label%3Afinal-comment-period%20state%3Aopen&quot;&gt;Rust RFCs&lt;/a&gt;,
&lt;a href=&quot;https://github.com/rust-lang/compiler-team/issues?q=label%3Amajor-change%20label%3Afinal-comment-period%20state%3Aopen&quot;&gt;Compiler Team&lt;/a&gt;,
&lt;a href=&quot;https://github.com/rust-lang/lang-team/issues?q=is%3Aopen%20label%3Afinal-comment-period%20sort%3Aupdated-desc%20state%3Aopen&quot;&gt;Language Team&lt;/a&gt; or
&lt;a href=&quot;https://github.com/rust-lang/leadership-council/issues?q=state%3Aopen%20label%3Afinal-comment-period%20state%3Aopen&quot;&gt;Leadership Council&lt;/a&gt;.&lt;/em&gt;
Let us know if you would like your PRs, Tracking Issues or RFCs to be tracked as a part of this list.&lt;/p&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#new-and-updated-rfcs&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/rust-lang/rfcs/pulls&quot;&gt;New and Updated RFCs&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;No New or Updated RFCs were created this week.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#upcoming-events&quot;&gt;Upcoming Events&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Rusty Events between 2026-09-09 - 2026-10-07 🦀&lt;/p&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#virtual&quot;&gt;Virtual&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;2026-09-09 | Virtual (Cardiff, UK) | &lt;a href=&quot;https://www.meetup.com/rust-and-c-plus-plus-in-cardiff/events/&quot;&gt;Rust and C++ Cardiff&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-and-c-plus-plus-in-cardiff/events/316283651/&quot;&gt;&lt;strong&gt;Operating Systems Book Club: Address spaces and Memory API&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-10 | Virtual | &lt;a href=&quot;https://luma.com/rust-maven&quot;&gt;Rust 🦀 Maven&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://luma.com/rfbzk3ae&quot;&gt;&lt;strong&gt;Solving Real-World Planning Problems in Rust with SolverForge&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-10 | Virtual (Berlin, DE) | &lt;a href=&quot;https://www.meetup.com/rust-berlin&quot;&gt;Rust Berlin&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-berlin/events/315691423/&quot;&gt;&lt;strong&gt;Rust Hack and Learn&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-10 | Virtual (Nürnberg, DE) | &lt;a href=&quot;https://www.meetup.com/rust-noris&quot;&gt;Rust Nuremberg&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-noris/events/315619611/&quot;&gt;&lt;strong&gt;Rust Nürnberg online&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-15 | Virtual (Washington, DC, US) | &lt;a href=&quot;https://www.meetup.com/rustdc&quot;&gt;Rust DC&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rustdc/events/fhvsztyjcmbtb/&quot;&gt;&lt;strong&gt;Mid-month Rustful&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-16 | Hybrid (Vancouver, CA) | &lt;a href=&quot;https://www.meetup.com/vancouver-rust&quot;&gt;Vancouver Rust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/vancouver-rust/events/314233757/&quot;&gt;&lt;strong&gt;Building a Rust GPU driver in the Linux kernel&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-17 | Hybrid (Seattle, WA, US) | &lt;a href=&quot;https://www.meetup.com/join-srug&quot;&gt;Seattle Rust User Group&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/seattle-rust-user-group/events/315635881/&quot;&gt;&lt;strong&gt;September, 2026 SRUG (Seattle Rust User Group) Meetup&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-18 | Virtual | &lt;a href=&quot;https://luma.com/rust-girona&quot;&gt;Rust Girona&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://luma.com/ibaxicxv&quot;&gt;&lt;strong&gt;Sessió setmanal de codificació / Weekly coding session&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-20 | Virtual (Dallas, TX, US) | &lt;a href=&quot;https://www.meetup.com/dallasrust&quot;&gt;Dallas Rust User Meetup&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/dallasrust/events/316133974/&quot;&gt;&lt;strong&gt;Rust Deep Learning: Third Sunday&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-22 | Virtual (Dallas, TX, US) | &lt;a href=&quot;https://www.meetup.com/dallasrust&quot;&gt;Dallas Rust User Meetup&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/dallasrust/events/310254773/&quot;&gt;&lt;strong&gt;Fourth Tuesday Rust Bookclub&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-24 | Virtual (Berlin, DE) | &lt;a href=&quot;https://www.meetup.com/rust-berlin/events/&quot;&gt;Rust Berlin&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-berlin/events/315907979/&quot;&gt;&lt;strong&gt;Rust Hack and Learn&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-24 | Virtual (Charlottesville, VA, US) | &lt;a href=&quot;https://www.meetup.com/charlottesville-rust-meetup/events/&quot;&gt;Charlottesville Rust Meetup&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/charlottesville-rust-meetup/events/316460694/&quot;&gt;&lt;strong&gt;Rust Cells — Interior Mutability from Rust Core to Tock OS&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-29 | Virtual (London, UK) | &lt;a href=&quot;https://www.meetup.com/women-in-rust/events/&quot;&gt;Women in Rust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/women-in-rust/events/315691730/&quot;&gt;&lt;strong&gt;Lunch &amp;amp; Learn: Crates, Tips &amp;amp; Tricks Lightning Talks - Bring your ideas!&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-02 | Virtual | &lt;a href=&quot;https://luma.com/rust-girona&quot;&gt;Rust Girona&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://luma.com/yqxvguts&quot;&gt;&lt;strong&gt;Sessió setmanal de codificació / Weekly coding session&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-04 | Virtual (Dallas, TX, US) | &lt;a href=&quot;https://www.meetup.com/dallasrust/events/&quot;&gt;Dallas Rust User Meetup&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/dallasrust/events/316134009/&quot;&gt;&lt;strong&gt;Rust Deep Learning: First Sunday&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-06 | Virtual (London, UK) | &lt;a href=&quot;https://www.meetup.com/women-in-rust/events/&quot;&gt;Women in Rust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/women-in-rust/events/315773044/&quot;&gt;&lt;strong&gt;👋 Community Catch Up&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-07 | Virtual (Indianapolis, IN, US) | &lt;a href=&quot;https://www.meetup.com/indyrs/events/&quot;&gt;Indy Rust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/indyrs/events/wqzhftyjcnbkb/&quot;&gt;&lt;strong&gt;Indy.rs - with Social Distancing&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#europe&quot;&gt;Europe&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;2026-09-10 | Geneva, CH | &lt;a href=&quot;https://www.posttenebraslab.ch/wiki/events/monthly_meeting/rust_meetup&quot;&gt;Rust Geneva&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.posttenebraslab.ch/wiki/events/monthly_meeting/rust_meetup&quot;&gt;&lt;strong&gt;Rust Meetup Geneva&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-14 - 2026-09-16 | Berlin, DE | &lt;a href=&quot;https://oxidizeconf.com/&quot;&gt;Oxidize 2026&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://oxidizeconf.com/&quot;&gt;&lt;strong&gt;Oxidize 2026&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-15 | Leipzig, DE | &lt;a href=&quot;https://www.meetup.com/rust-modern-systems-programming-in-leipzig&quot;&gt;Rust - Modern Systems Programming in Leipzig&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-modern-systems-programming-in-leipzig/events/313816477/&quot;&gt;&lt;strong&gt;Reproducing scientific papers - with Rust &amp;amp; &quot;AI&quot;&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-15 | Madrid, ES | &lt;a href=&quot;https://www.meetup.com/madrust/events/&quot;&gt;MadRust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/madrust/events/316361267/&quot;&gt;&lt;strong&gt;Tras la Máscara de Async Rust&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-17 | Dortmund, DE | &lt;a href=&quot;https://www.meetup.com/rust-dortmund/events/&quot;&gt;Rust Dortmund&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-dortmund/events/316428507/&quot;&gt;&lt;strong&gt;Rust Dortmund Meetup - From Segfault to Safety @DiWoDo&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-22 | Prague, CZ | &lt;a href=&quot;https://www.meetup.com/rust-prague&quot;&gt;Rust Prague&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-prague/events/316070376/&quot;&gt;&lt;strong&gt;Rust Meetup Prague @ Rockwell Automation&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-24 | Aarhus, DK | &lt;a href=&quot;https://www.meetup.com/rust-aarhus/events/&quot;&gt;Rust Aarhus&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-aarhus/events/316236528/&quot;&gt;&lt;strong&gt;Talk Night at SkyTEM&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-24 | Amsterdam, NL | &lt;a href=&quot;https://www.meetup.com/rust-amsterdam-group/events/&quot;&gt;Rust Developers Amsterdam Group&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-amsterdam-group/events/316162802/&quot;&gt;&lt;strong&gt;Rust Meetup @ BlockTech&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-24 | Frankfurt, DE | &lt;a href=&quot;https://www.meetup.com/rust-rhein-main/events/&quot;&gt;Rust Rhein-Main&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-rhein-main/events/316328297/&quot;&gt;&lt;strong&gt;AI Agentic Coding&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-28 | Augsburg, DE | &lt;a href=&quot;https://rust-augsburg.github.io/meetup&quot;&gt;Rust Meetup Augsburg&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://rust-augsburg.github.io/meetup/Meetup_21.html&quot;&gt;&lt;strong&gt;Rust Meetup #21: Maximilian Grauvogl &amp;amp; Marcel Fink - From Bits to Bugs: A Rust generator for SUIT Manifests and Structure-Aware Parser Fuzzing&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-29 | Manchester, UK | &lt;a href=&quot;https://www.meetup.com/rust-manchester/events/&quot;&gt;Rust Manchester&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-manchester/events/316200964/&quot;&gt;&lt;strong&gt;Rust Manchester September Code Night&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-30 | Basel, CH | &lt;a href=&quot;https://www.meetup.com/rust-basel/events/&quot;&gt;Rust Basel&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-basel/events/315986893/&quot;&gt;&lt;strong&gt;Rust Meetup #16 @ ERNI&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-05 | München, DE | &lt;a href=&quot;https://www.meetup.com/rust-munich/events/&quot;&gt;Rust Munich&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-munich/events/316244709/&quot;&gt;&lt;strong&gt;Rust Munich 2026 / 3&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#north-america&quot;&gt;North America&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;2026-09-08 - 2026-09-11 | Hybrid (Montreal, CA) | &lt;a href=&quot;https://rustconf.com/&quot;&gt;RustConf 2026&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://rustconf.com/&quot;&gt;&lt;strong&gt;RustConf 2026&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-09 | Montreal, CA | &lt;a href=&quot;https://www.meetup.com/women-in-rust&quot;&gt;Women in Rust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/women-in-rust/events/315773005/&quot;&gt;&lt;strong&gt;RustConf Coffee Break Meetup&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-10 | Lehi, UT, US | &lt;a href=&quot;https://www.meetup.com/utah-rust&quot;&gt;Utah Rust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/utah-rust/events/316198046/&quot;&gt;&lt;strong&gt;Hands-on Embedded Rust&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-10 | San Diego, CA, US | &lt;a href=&quot;https://www.meetup.com/san-diego-rust&quot;&gt;San Diego Rust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/san-diego-rust/events/315601104/&quot;&gt;&lt;strong&gt;San Diego Rust September Meetup - Back in person!&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-12 | Boston, MA, US | &lt;a href=&quot;https://www.meetup.com/bostonrust/events/&quot;&gt;Boston Rust Meetup&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/bostonrust/events/310983699/&quot;&gt;&lt;strong&gt;Somerville Union Square Rust Lunch, Sep 12&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-15 | San Francisco, CA, US | &lt;a href=&quot;https://www.meetup.com/san-francisco-rust-study-group&quot;&gt;San Francisco Rust Study Group&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/san-francisco-rust-study-group/events/314997217/&quot;&gt;&lt;strong&gt;Rust Hacking in Person&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-16 | San Francisco, CA, US | &lt;a href=&quot;https://luma.com/bayarearust&quot;&gt;Bay Area Rust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://luma.com/9oiujuyw&quot;&gt;&lt;strong&gt;Bay Area Rust - Graphics Meetup&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-16 | Hybrid (Vancouver, CA) | &lt;a href=&quot;https://www.meetup.com/vancouver-rust&quot;&gt;Vancouver Rust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/vancouver-rust/events/314233757/&quot;&gt;&lt;strong&gt;Building a Rust GPU driver in the Linux kernel&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-17 | Hybrid (Seattle, WA, US) | &lt;a href=&quot;https://www.meetup.com/join-srug&quot;&gt;Seattle Rust User Group&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/seattle-rust-user-group/events/315635881/&quot;&gt;&lt;strong&gt;September, 2026 SRUG (Seattle Rust User Group) Meetup&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-17 | Mountain View, CA, US | &lt;a href=&quot;https://www.meetup.com/hackerdojo&quot;&gt;Hacker Dojo&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/hackerdojo/events/316176445/&quot;&gt;&lt;strong&gt;RUST MEETUP at HACKER DOJO&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-19 | Boston, MA, US | &lt;a href=&quot;https://www.meetup.com/bostonrust/events/&quot;&gt;Boston Rust Meetup&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/bostonrust/events/316378813/&quot;&gt;&lt;strong&gt;Boston Common Rust Lunch, Sep 19&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-23 | Austin, TX, US | &lt;a href=&quot;https://www.meetup.com/rust-atx&quot;&gt;Rust ATX&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-atx/events/xvkdgtyjcmbfc/&quot;&gt;&lt;strong&gt;Rust Lunch - Fareground&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-24 | Atlanta, GA, US | &lt;a href=&quot;https://www.meetup.com/rust-atl/events/&quot;&gt;Rust Atlanta&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-atl/events/313539333/&quot;&gt;&lt;strong&gt;Rust-Atl&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-09-26 | Boston, MA, US | &lt;a href=&quot;https://www.meetup.com/bostonrust/events/&quot;&gt;Boston Rust Meetup&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/bostonrust/events/316378817/&quot;&gt;&lt;strong&gt;Harvard Rust Lunch, Sep 26&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-01 | Saint Louis, MO, US | &lt;a href=&quot;https://www.meetup.com/stl-rust/events/&quot;&gt;STL Rust&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/stl-rust/events/316410027/&quot;&gt;&lt;strong&gt;Building a Minimal, Rootless Container in Rust&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2026-10-03 | Boston, MA, US | &lt;a href=&quot;https://www.meetup.com/bostonrust/events/&quot;&gt;Boston Rust Meetup&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/bostonrust/events/316378820/&quot;&gt;&lt;strong&gt;Alewife Rust Lunch, Oct 3&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#oceania&quot;&gt;Oceania&lt;/a&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;2026-09-29 | Barton, AU | &lt;a href=&quot;https://www.meetup.com/rust-canberra/events/&quot;&gt;Canberra Rust User Group&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meetup.com/rust-canberra/events/316398052/&quot;&gt;&lt;strong&gt;September Meetup&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you are running a Rust event please add it to the &lt;a href=&quot;https://www.google.com/calendar/embed?src=apd9vmbc22egenmtu5l6c5jbfc%40group.calendar.google.com&quot;&gt;calendar&lt;/a&gt; to get
it mentioned here. Please remember to add a link to the event too.
Email the &lt;a href=&quot;mailto:community-team@rust-lang.org&quot;&gt;Rust Community Team&lt;/a&gt; for access.&lt;/p&gt;
&lt;h4&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#jobs&quot;&gt;Jobs&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Please see the latest &lt;a href=&quot;https://www.reddit.com/r/rust/comments/1vtuq1b/official_rrust_whos_hiring_thread_for_jobseekers/&quot;&gt;Who's Hiring thread on r/rust&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a class=&quot;toclink&quot; href=&quot;https://this-week-in-rust.org/atom.xml#quote-of-the-week&quot;&gt;Quote of the Week&lt;/a&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;The Demon has access to a Super Turing Machine.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;– &lt;a href=&quot;https://rust-lang.zulipchat.com/#narrow/channel/136281-t-opsem/topic/.E2.9C.94.20Can.20IO.20provide.20angelic.20choice/near/621828055&quot;&gt;Connor Horman on rust zulip&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Thanks to &lt;a href=&quot;https://users.rust-lang.org/t/twir-quote-of-the-week/328/1798&quot;&gt;Theemathas&lt;/a&gt; for the suggestion!&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://users.rust-lang.org/t/twir-quote-of-the-week/328&quot;&gt;Please submit quotes and vote for next week!&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This Week in Rust is edited by:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/nellshamrell&quot;&gt;nellshamrell&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/llogiq&quot;&gt;llogiq&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/ericseppanen&quot;&gt;ericseppanen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/extrawurst&quot;&gt;extrawurst&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/U007D&quot;&gt;U007D&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/mariannegoldin&quot;&gt;mariannegoldin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/bdillo&quot;&gt;bdillo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/opeolluwa&quot;&gt;opeolluwa&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/bnchi&quot;&gt;bnchi&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/KannanPalani57&quot;&gt;KannanPalani57&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/tzilist&quot;&gt;tzilist&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Email list hosting is sponsored by &lt;a href=&quot;https://foundation.rust-lang.org/&quot;&gt;The Rust Foundation&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;small&gt;&lt;a href=&quot;https://www.reddit.com/r/rust/comments/1wc8sbm/this_week_in_rust_668/&quot;&gt;Discuss on r/rust&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;</content:encoded>
	<dc:date>2026-09-09T04:00:00+00:00</dc:date>
	<dc:creator>TWiR Contributors</dc:creator>
</item>
<item rdf:about="https://blog.nightly.mozilla.org/?p=2108">
	<title>Firefox Nightly: Motion, Colour, Captions, Kit – These Weeks in Firefox: Issue 207</title>
	<link>https://blog.nightly.mozilla.org/2026/09/08/motion-colour-captions-kit-these-weeks-in-firefox-issue-207/</link>
	<content:encoded>&lt;h3&gt;Highlights&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://shop.mozilla.com/&quot;&gt;Want some Kit? Check out the store!&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.nightly.mozilla.org/files/2026/08/image7.png&quot;&gt;&lt;img alt=&quot;Mozilla Store product grid showing three items: a cream-colored T-shirt featuring a colorful Kit graphic, a compact mechanical keyboard with blue, red, and peach keys, and a purple baseball cap embroidered with the words “Give a fox.”&quot; class=&quot;aligncenter size-full wp-image-2106&quot; height=&quot;369&quot; src=&quot;https://blog.nightly.mozilla.org/files/2026/08/image7.png&quot; width=&quot;1065&quot; /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/user_profile?user_id=446518&quot;&gt;Sebastian Zartner [:sebo]&lt;/a&gt; added a panel to expose @media emulation (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1692434&quot;&gt;#1692434&lt;/a&gt;) and provided a way to emulate @media (prefers-reduced-motion: reduce) (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1477920&quot;&gt;#1477920&lt;/a&gt;)
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.nightly.mozilla.org/files/2026/08/image3-1.png&quot;&gt;&lt;img alt=&quot;Firefox Developer Tools Rules panel showing controls for emulating CSS media features. Print media can be enabled with a toggle, prefers-color-scheme offers Light, Dark, or No emulation, and prefers-reduced-motion offers Reduce, No preference, or No emulation. “No emulation” is selected for color scheme, while “Reduce” is selected for reduced motion.&quot; class=&quot;aligncenter size-full wp-image-2102&quot; height=&quot;376&quot; src=&quot;https://blog.nightly.mozilla.org/files/2026/08/image3-1.png&quot; width=&quot;1110&quot; /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;More theme controls have been added to the New Tab customization panel:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.nightly.mozilla.org/files/2026/08/image1-1.png&quot;&gt;&lt;img alt=&quot;Firefox's New Tab customization panel showing an Appearance section with theme color options as pastel circular swatches. A light purple theme is selected, with additional yellow, pink, blue, green, and white options. Below the swatches is a “See more themes” button, with the Wallpapers setting partially visible.&quot; class=&quot;aligncenter size-full wp-image-2100&quot; height=&quot;345&quot; src=&quot;https://blog.nightly.mozilla.org/files/2026/08/image1-1.png&quot; width=&quot;470&quot; /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Improved Picture-in-Picture caption support from some volunteer contributors
&lt;ul&gt;
&lt;li&gt;Thanks to Lukáš Lipinský for &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2056714&quot;&gt;adding caption support to Česká televize!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Thanks to kernp25 for &lt;a href=&quot;http://ardmediathek.de&quot;&gt;adding caption support to ardmediathek.de!&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Friends of the Firefox team&lt;/h3&gt;
&lt;h4&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/buglist.cgi?title=Resolved%20bugs%20(excluding%20employees)&amp;amp;quicksearch=2040756%2C1685123%2C1800148%2C2052560%2C1927615%2C2008143%2C2040057%2C2049302%2C2054083%2C1251981%2C2029514%2C2039590%2C2049912%2C2050546%2C445000%2C2052932%2C2016932%2C2052956%2C2055555%2C2048463%2C2052320%2C2053182%2C2056102%2C1692434%2C2051545%2C2052046%2C2052047%2C2053550%2C2053333%2C2054036%2C2056714%2C2040752%2C2053568%2C2056856%2C1418178%2C2048884%2C1910767%2C2033570%2C2053551%2C2057472%2C2058146%2C2058381%2C2057710%2C2025999%2C2053689%2C1988723%2C2039596%2C2046156%2C1477920%2C2044483%2C2057835%2C2053543%2C2055774%2C2057645&quot;&gt;Resolved bugs (excluding employees)&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/niklasbaumgardner/NewContributorScraper&quot;&gt;Script to find new contributors from bug list&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;Volunteers that fixed more than one bug&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;:Vincent&lt;/li&gt;
&lt;li&gt;japandi&lt;/li&gt;
&lt;li&gt;Nirmal Advani&lt;/li&gt;
&lt;li&gt;Sebastian Zartner [:sebo]&lt;/li&gt;
&lt;li&gt;tanvi.manku&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;New contributors (🌟 = first patch)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Aditi:&lt;a href=&quot;http://pdf.js&quot;&gt; Increase the maximum number of PDF.js preferences&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;🌟 Anil Verman: &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2040057&quot;&gt;[Docs] Trigger listeners doc is seriously out of date&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fede: &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1418178&quot;&gt;more than six thumbnails needed when Ctrl+Tab is used&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Giulio B: &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2048884&quot;&gt;frameId is wrong in webRequest events triggered via importScripts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;🌟 Luiz Henrique Vieira: &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2050546&quot;&gt;Remove dead CSS rule .alltabs-item[selected=”true”] &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;🌟 Devin Rousso: &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2052932&quot;&gt;`emulation.setLocaleOverride` does not override `Accept-Language` header for in `Worker` for `fetch` and `WebSocket`&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;🌟 muhammad shaikh: &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2016932&quot;&gt;Profile delete page heading should enclose profile name in quotes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;🌟 Kevin Gosse: &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2054036&quot;&gt;nsDataObj::QueryGetData in Firefox returns E_FAIL for formats it doesn’t carry, instead of DV_E_FORMATETC per the COM contract&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Lukáš Lipinský:&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2056714&quot;&gt; Česká televize captions do not display in the Picture-in-Picture window&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;🌟 mikey gough: &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2053551&quot;&gt;Remove three unused devtools.debugger.file-search-* preferences&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;🌟 Nathan Leuz: &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2053550&quot;&gt;Remove unused legacy preference browser.translation.neverForLanguages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;🌟 Shawn Zivontsis: &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2025999&quot;&gt;Reorder moz_origins composite unique index to UNIQUE(host, prefix)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;tanvi.manku:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2048463&quot;&gt;Remove or update metrics expiring at the end of Firefox 154: pwmgr.doorhanger_submitted_* before Gecko switches to version 155 on 2026-07-20&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2052320&quot;&gt;unnecessary scrollbars in edit dialogs for payments and addresses&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;🌟 &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2052560&quot;&gt;Tim McNulty: Remove always-true clause from NS_ASSERTION in nsNavBookmarks::AdjustIndices (Coverity CID 1274453)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Project Updates&lt;/h3&gt;
&lt;h4&gt;Add-ons / Web Extensions&lt;/h4&gt;
&lt;h5&gt;Addon Manager &amp;amp; about:addons&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;As part of Nova about:addons work:
&lt;ul&gt;
&lt;li&gt;Introduced a shared localization module for built-in and curated AMO-hosted theme names, and updated the corresponding about:addons theme test to expect the new “Default” theme name shown when Nova is enabled –&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2055936&quot;&gt; Bug 2055936&lt;/a&gt; /&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2058235&quot;&gt; Bug 2058235&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Added a message bar to the about:addons themes picker to surface AMO-hosted Nova theme download and install failures instead of failing silently –&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2054548&quot;&gt; Bug 2054548&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;WebExtensions Framework&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;Fixed a startup race where an extension’s restored dynamic content scripts could be missing from the parent WebExtensionPolicy due to stale shared data –&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2058719&quot;&gt; Bug 2058719&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;WebExtension APIs&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;Fixed publicSuffix.isKnownSuffix() to reject invalid domain-name characters, including wildcard suffixes, that could previously be matched as a known public suffix –&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2059819&quot;&gt; Bug 2059819&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fixed the frameId reported by webRequest events for requests made from workers, including importScripts()-loaded scripts, which were previously attributed to the wrong frame –&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2048884&quot;&gt; Bug 2048884&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;Thanks to Giulio B for the fix to webRequest frameId attribution for worker requests.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;DevTools&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/user_profile?user_id=786821&quot;&gt;Benoit&lt;/a&gt; made it possible to display &lt;a href=&quot;https://jsonlines.org/&quot;&gt;JSON Lines (JSONL/NDJSON) documents&lt;/a&gt; in the JSON Viewer (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2055774&quot;&gt;#2055774&lt;/a&gt;)
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.nightly.mozilla.org/files/2026/08/image4-1.png&quot;&gt;&lt;img alt=&quot;Firefox’s built-in JSON viewer displaying a local JSONL file. Valid entries are shown as expandable arrays and objects, including a large integer with its JavaScript representation highlighted. A malformed entry is highlighted in red with a JSON.parse error explaining that a comma or closing brace was expected after a property value.&quot; class=&quot;aligncenter size-full wp-image-2103&quot; height=&quot;414&quot; src=&quot;https://blog.nightly.mozilla.org/files/2026/08/image4-1.png&quot; width=&quot;1574&quot; /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/user_profile?user_id=347081&quot;&gt;Leo McArdle [:leo]&lt;/a&gt; continues his quest to add MDN icons next links to MDN (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2049610&quot;&gt;#2049610&lt;/a&gt;, &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2050159&quot;&gt;#2050159&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/user_profile?user_id=559949&quot;&gt;Julian Descottes [:jdescottes]&lt;/a&gt; vastly improved DevTools screenshot performance (by up to 35%) (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2056716&quot;&gt;#2056716&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/user_profile?user_id=656417&quot;&gt;Hubert Boma Manilla (:bomsy)&lt;/a&gt; fixed keyboard navigation for about:debugging (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2050797&quot;&gt;#2050797&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/user_profile?user_id=559949&quot;&gt;Julian Descottes [:jdescottes]&lt;/a&gt; fixed a bug that was preventing to show error messages in about:debugging (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2058021&quot;&gt;#2058021&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/user_profile?user_id=557153&quot;&gt;Nicolas Chevobbe [:nchevobbe]&lt;/a&gt; made ::checkmark pseudo element visible in the Inspector (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2009909&quot;&gt;#2009909&lt;/a&gt;)
&lt;ul&gt;
&lt;li&gt;Used by customizable select (&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Learn_web_development/Extensions/Forms/Customizable_select&quot;&gt;MDN&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Preference: dom.select.customizable_select.enabled&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.nightly.mozilla.org/files/2026/08/image2-1.png&quot;&gt;&lt;img alt=&quot;Firefox Developer Tools Inspector examining a customized HTML menu labeled “Select pet.” The open menu contains “Please select a pet,” “Cat,” and “Dog,” with emoji and a checkmark beside the selected option. In the Inspector, the ::checkmark pseudo-element is selected in the Inspector, and the Rules panel shows CSS customizing its position and content.&quot; class=&quot;aligncenter size-full wp-image-2101&quot; height=&quot;1122&quot; src=&quot;https://blog.nightly.mozilla.org/files/2026/08/image2-1.png&quot; width=&quot;1350&quot; /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;WebDriver&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Nirmal Advani cleaned up our codebase by &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2046156&quot;&gt;removing the executeSoon helper&lt;/a&gt;, which was just a thin wrapper on top of Services.tm.dispatchToMainThread().&lt;/li&gt;
&lt;li&gt;Sameem &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1988723&quot;&gt;removed support for the “contexts” argument in the “session.unsubscribe” command&lt;/a&gt;. From now on, clients can unsubscribe only by event names or subscription ids.&lt;/li&gt;
&lt;li&gt;John Schanck added support for validating &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1976492&quot;&gt;if an authentication id is stored in the Virtual Authenticator Database&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Alexandra Borovova disabled &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2035439&quot;&gt;the download panel to prevent the loss of the focus of the current document when a download begins&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Fluent&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Here are &lt;a href=&quot;https://searchfox.org/firefox-main/rev/7f451c7918ffe36840b0ef31dfc2272ded671f81/intl/locale/mozILocaleService.idl#212-233&quot;&gt;utilities for measuring localization coverage at runtime&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Lint, Docs and Workflow&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Sylvestre has converted all our in-tree documents to be &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2038819&quot;&gt;Markdown instead of reStructuredText&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Standard8 adjusted the &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1890526&quot;&gt;source doc&lt;/a&gt; &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2051591&quot;&gt;upload task&lt;/a&gt;, that runs on code review, to report failures into phabricator, rather than having a generic error message.&lt;/li&gt;
&lt;li&gt;Standard8 &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2058922&quot;&gt;made it so that test-manifest-toml issues for out-of-order entries&lt;/a&gt; should show up in phabricator more often.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://arewemozsrcyet.com/&quot;&gt;https://arewemozsrcyet.com/&lt;/a&gt; continues to head (mostly) in the right direction.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;New Tab Page&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;HNT Eng had a work week last week. Did a lot of prep for big cleanups (Nova, Widget cleanup post WCW)
&lt;ul&gt;
&lt;li&gt;Also worked on ways to automate trainhops / make them easier to deploy&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Jack Brown&lt;a href=&quot;https://bugzil.la/1995391&quot;&gt; updated newtabTrainhopAddon to allow co-enrollment and prioritize the highest version number&lt;/a&gt;, which ensures the New Tab Page picks the newest addon build when multiple enrollments overlap and prevents older experiment variants from replacing newer installs.&lt;/li&gt;
&lt;li&gt;Fred Chasen&lt;a href=&quot;https://bugzil.la/2031665&quot;&gt; fixed AccuWeather sponsored text overlapping the “Tell us what you think” link&lt;/a&gt; by adjusting medium weather card CSS (z-index and pointer-events), restoring hover and click behavior for the feedback link on affected New Tab Page cards.&lt;/li&gt;
&lt;li&gt;Mike Kaply&lt;a href=&quot;https://bugzil.la/2035221&quot;&gt; fixed wallpaper uploads failing when the wallpaper list can’t be queried from remote settings&lt;/a&gt; by adding a remote‑settings query fallback/local cache and defensive error handling so users can upload custom wallpapers during remote‑settings outages or timeouts.&lt;/li&gt;
&lt;li&gt;japandi&lt;a href=&quot;https://bugzil.la/2044483&quot;&gt; added the widgets.clocks.interaction pref and wired interaction tracking&lt;/a&gt; so World Clocks now emits telemetry/events for taps and opens (pref registration + tracker hooks), enabling accurate UX metrics without changing visible UI behavior.&lt;/li&gt;
&lt;li&gt;Maxx Crawford&lt;a href=&quot;https://bugzil.la/2046143&quot;&gt; prevented the weather widget from activating without user opt‑in&lt;/a&gt; by gating activation on the opt‑in pref and updating the onboarding flow, so weather and related location/telemetry remain disabled by default until explicit user consent.&lt;/li&gt;
&lt;li&gt;Irene Ni&lt;a href=&quot;https://bugzil.la/2051413&quot;&gt; made the New Tab client request layouts from remote-settings so NTP layouts and remote-config-driven content now update on load instead of remaining stale&lt;/a&gt;; this fixes cases where layout changes pushed via the remote-settings service (layouts collection) weren’t applied, improving consistency on desktop and Android clients that rely on remote layouts.&lt;/li&gt;
&lt;li&gt;Nirmal Advani&lt;a href=&quot;https://bugzil.la/2053568&quot;&gt; removed three unused activity-stream preferences (discoverystream.thumbsUpDown.*) from prefs and related code paths&lt;/a&gt;, reducing prefs surface area and avoiding confusion in about:config/telemetry without changing user-visible behavior.&lt;/li&gt;
&lt;li&gt;Mike Conley&lt;a href=&quot;https://bugzil.la/2054581&quot;&gt; fixed ExternalComponentWrapper to forward “live” properties like isIntersecting from MessageWrapper&lt;/a&gt;, restoring correct IntersectionObserver-driven behavior (visibility-based lazy-load and impression tracking) for remote components in the New Tab Page and discovery streams that relied on isIntersecting for render/telemetry triggers.&lt;/li&gt;
&lt;li&gt;Irene Ni standardized New Tab widgets and sections header spacing (&lt;a href=&quot;https://bugzil.la/2055029&quot;&gt;standardize spacing&lt;/a&gt;) to remove misaligned tiles and reduce visual jitter when resizing or toggling sections in the New Tab Page.&lt;/li&gt;
&lt;li&gt;Mike Conley removed version-153 train-hop compatibility shims for the World Cup newtab logo variations (&lt;a href=&quot;https://bugzil.la/2055939&quot;&gt;remove compatibility shims&lt;/a&gt;), an internal cleanup that prevents legacy logo-selection fallbacks from influencing current logo variations.&lt;/li&gt;
&lt;li&gt;Maxx Crawford exposed available browser themes to New Tab and added apply/install actions (&lt;a href=&quot;https://bugzil.la/2056300&quot;&gt;expose and apply themes&lt;/a&gt;), allowing users to install or immediately apply themes from the New Tab surface via ThemeManager/Theme API hooks.&lt;/li&gt;
&lt;li&gt;Maxx Crawford added New Tab Customize Panel browser theme selection strings (&lt;a href=&quot;https://bugzil.la/2056301&quot;&gt;add theme selection strings&lt;/a&gt;) so the new theme-selection UI is localized and displays correct labels across locales.&lt;/li&gt;
&lt;li&gt;Maxx Crawford added a full browser theme selection sub-panel to the New Tab Customize Panel (&lt;a href=&quot;https://bugzil.la/2056304&quot;&gt;theme selection sub-panel&lt;/a&gt;) to let users browse, preview, and pick themes directly inside the New Tab customization flow.&lt;/li&gt;
&lt;li&gt;Scott Downe fixed&lt;a href=&quot;https://bugzil.la/2056650&quot;&gt; Custom newtab wallpapers flash / blink some seconds after loading newtab&lt;/a&gt; by ensuring the custom wallpaper is painted only after image data is ready, which removes the multi-second visual flash on about:newtab for users with custom backgrounds and improves perceived stability during initial new-tab load.&lt;/li&gt;
&lt;li&gt;Maxx Crawford exposed&lt;a href=&quot;https://bugzil.la/2056937&quot;&gt; trainhopConfig values in Discovery Stream Admin tooling&lt;/a&gt;, giving operators direct access to trainhop routing/weight values from the admin UI/API so content trains and experiment routing can be adjusted without code deploys—this has no immediate end-user UI change but reduces time-to-rollout for Discovery Stream content changes.&lt;/li&gt;
&lt;li&gt;Dre fixed&lt;a href=&quot;https://bugzil.la/2057217&quot;&gt; Newtab custom wallpapers flash when selecting from picture of the day widget&lt;/a&gt; by deferring the wallpaper swap until the selected Picture of the Day is decoded and ready, which prevents the transient blank/flash users saw when changing wallpapers via the widget and makes wallpaper selection feel instantaneous and stable.&lt;/li&gt;
&lt;li&gt;Maxx Crawford&lt;a href=&quot;https://bugzil.la/2057280&quot;&gt; used the POTD thumbnailUrl image for the widget background (instead of the high-res image)&lt;/a&gt;, which reduces bandwidth, memory footprint, and New Tab Page widget load latency for users who see the Picture‑of‑the‑Day widget.&lt;/li&gt;
&lt;li&gt;Kyle Jones&lt;a href=&quot;https://bugzil.la/2059030&quot;&gt; added MAC support to TopSitesFeed when fetching tiles from MARS&lt;/a&gt;, which enforces authenticated tile retrieval and reduces missing/401 tile failures for users relying on MARS‑served Top Sites tiles.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Performance Tools (aka &lt;a href=&quot;https://profiler.firefox.com/&quot;&gt;Firefox Profiler&lt;/a&gt;)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2050028&quot;&gt;Bug 2050028 – Enable the Gecko profiler by default with low-overhead features when running mochitests&lt;/a&gt; landed, which means mochitest failures now upload profiles by default:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.nightly.mozilla.org/files/2026/08/image6.png&quot;&gt;&lt;img alt=&quot;Treeherder's Failure Summary panel showing several TEST-UNEXPECTED-FAIL results for a test called browser_findbar_marks.js. One failure includes a suggested tracking bug, while another provides a link to open a captured test profile in the Firefox Profiler. The Firefox Profiler button is hovered, displaying the tooltip “open in Firefox Profiler.”&quot; class=&quot;aligncenter size-full wp-image-2105&quot; height=&quot;552&quot; src=&quot;https://blog.nightly.mozilla.org/files/2026/08/image6.png&quot; width=&quot;1934&quot; /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://tests.firefox.dev/try.html&quot;&gt;https://tests.firefox.dev/try.html&lt;/a&gt; can give you a prompt to ask an AI agent to look at the profile for you using profiler-cli:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.nightly.mozilla.org/files/2026/08/image5-1.png&quot;&gt;&lt;img alt=&quot;Caption: The Try Push Results dashboard showing a Firefox test run with 377 total jobs, 7 failed test jobs, 8 unique failing tests, 12 total failures, and 1 intermittent failure. Below, a table lists permanent test failures. A Firefox Profiler icon beside a failed test is hovered, displaying a tooltip offering to analyze the failure with the profiler tool.&quot; class=&quot;aligncenter size-full wp-image-2104&quot; height=&quot;1031&quot; src=&quot;https://blog.nightly.mozilla.org/files/2026/08/image5-1.png&quot; width=&quot;1999&quot; /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Search and Urlbar&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Dao and Moritz continue work on MCAB working on making the address bar’s contents to be&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2053407&quot;&gt; content-process-safe&lt;/a&gt; and preparing to&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2049112&quot;&gt; allow cross-process IPC for the address bar&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Mike Kaply&lt;a href=&quot;https://bugzil.la/1989252&quot;&gt; fixed hidden actions still visible in Quick Actions mode&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Daisuke and Drew continued work on supporting Nova on the&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2035512&quot;&gt; address&lt;/a&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2051426&quot;&gt; bar&lt;/a&gt; and search bar components.&lt;/li&gt;
&lt;li&gt;Caleb continued work to&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2053824&quot;&gt; use&lt;/a&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2053825&quot;&gt; array&lt;/a&gt;–&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2053826&quot;&gt;binding&lt;/a&gt; for places sql queries, to improve performance.&lt;/li&gt;
&lt;/ul&gt;</content:encoded>
	<dc:date>2026-09-08T18:38:38+00:00</dc:date>
	<dc:creator>Mike Conley</dc:creator>
</item>
<item rdf:about="https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/">
	<title>The Rust Programming Language Blog: Rust debugging survey 2026 results</title>
	<link>https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/</link>
	<content:encoded>&lt;p&gt;One of the biggest challenges Rust developers report in our
&lt;a href=&quot;https://blog.rust-lang.org/2026/03/02/2025-State-Of-Rust-Survey-results/#challenges-and-wishes-about-rust&quot; rel=&quot;external&quot;&gt;annual surveys&lt;/a&gt; is a subpar debugging experience. So, back
in February, we ran our first &lt;a href=&quot;https://blog.rust-lang.org/2026/02/23/rust-debugging-survey-2026/&quot; rel=&quot;external&quot;&gt;Rust Debugging Survey&lt;/a&gt;,
in the hopes of identifying how Rust developers are using debuggers and what
problems they are facing when doing so. We received over 2,300 responses, and
we'd like to thank everyone who took the time to participate in the survey!&lt;/p&gt;
&lt;p&gt;In this report, we'll go over some of the results of the survey. If you'd like,
you can also check out &lt;a href=&quot;https://raw.githubusercontent.com/rust-lang/surveys/main/surveys/2026/debugging/report/debugging-survey-2026-report.pdf&quot; rel=&quot;external&quot;&gt;the complete results of the survey&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you'd like to skip ahead to any particular section, you can do so with this
index:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/#who-uses-debuggers&quot;&gt;Who Uses Debuggers?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/#how-are-debuggers-used&quot;&gt;How Are Debuggers Used?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/#challenges&quot;&gt;Challenges&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/#debugger-visualizers&quot;&gt;Debugger Visualizers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/#closing-remarks&quot;&gt;Closing Remarks&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;a class=&quot;anchor&quot; href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/#who-uses-debuggers&quot;&gt;&lt;/a&gt;
Who Uses Debuggers?&lt;/h3&gt;
&lt;p&gt;The first step to making sense of the survey results is understanding who took
the survey. We asked respondents to rate their Rust expertise, from &quot;Never used
it&quot; to &quot;Advanced&quot;. Over 80% reported themselves as &quot;Advanced&quot; or &quot;Intermediate&quot;,
split roughly evenly between the two:&lt;/p&gt;

&lt;div&gt;
    &lt;div class=&quot;class&quot; id=&quot;how-would-you-rate-your-rust-expertise&quot;&gt;&amp;lt;noscript&amp;gt;
&amp;lt;img alt=&quot;how-would-you-rate-your-rust-expertise&quot; src=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/how-would-you-rate-your-rust-expertise.png&quot; /&amp;gt;
&amp;lt;/noscript&amp;gt;&lt;/div&gt;
    &lt;div style=&quot;display: flex; margin-bottom: 10px;&quot;&gt;
        &lt;span&gt;[&lt;a href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/how-would-you-rate-your-rust-expertise.png&quot; target=&quot;_href_&quot; title=&quot;Download chart as PNG&quot;&gt;PNG&lt;/a&gt;]&lt;/span&gt; &lt;span&gt;[&lt;a href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/how-would-you-rate-your-rust-expertise.svg&quot; target=&quot;_href_&quot; title=&quot;Download chart as SVG&quot;&gt;SVG&lt;/a&gt;]&lt;/span&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;We also asked respondents if they currently use or have used debuggers in Rust.
Over 46% said they currently do, with the remaining responses split between
&quot;have in the past&quot; and &quot;never have&quot;. That means that over half of respondents do
not currently use a debugger for Rust!&lt;/p&gt;

&lt;div&gt;
    &lt;div class=&quot;class&quot; id=&quot;do-you-use-debuggers-in-rust&quot;&gt;&amp;lt;noscript&amp;gt;
&amp;lt;img alt=&quot;do-you-use-debuggers-in-rust&quot; src=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/do-you-use-debuggers-in-rust.png&quot; /&amp;gt;
&amp;lt;/noscript&amp;gt;&lt;/div&gt;
    &lt;div style=&quot;display: flex; margin-bottom: 10px;&quot;&gt;
        &lt;span&gt;[&lt;a href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/do-you-use-debuggers-in-rust.png&quot; target=&quot;_href_&quot; title=&quot;Download chart as PNG&quot;&gt;PNG&lt;/a&gt;]&lt;/span&gt; &lt;span&gt;[&lt;a href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/do-you-use-debuggers-in-rust.svg&quot; target=&quot;_href_&quot; title=&quot;Download chart as SVG&quot;&gt;SVG&lt;/a&gt;]&lt;/span&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Categorized by expertise, the responses reveal that roughly half of &quot;beginners&quot;
have never used debuggers in Rust! On the other hand, nearly half of &quot;advanced
users&quot; currently do use debuggers in Rust:&lt;/p&gt;

&lt;div&gt;
    &lt;div class=&quot;pie-chart&quot; id=&quot;do-you-use-debuggers-in-rust-per-expertise&quot;&gt;&amp;lt;noscript&amp;gt;
&amp;lt;img alt=&quot;do-you-use-debuggers-in-rust-per-expertise&quot; src=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/do-you-use-debuggers-in-rust-per-expertise.png&quot; /&amp;gt;
&amp;lt;/noscript&amp;gt;&lt;/div&gt;
    &lt;div style=&quot;display: flex; margin-bottom: 10px;&quot;&gt;
        &lt;span&gt;[&lt;a href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/do-you-use-debuggers-in-rust-per-expertise.png&quot; target=&quot;_href_&quot; title=&quot;Download chart as PNG&quot;&gt;PNG&lt;/a&gt;]&lt;/span&gt; &lt;span&gt;[&lt;a href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/do-you-use-debuggers-in-rust-per-expertise.svg&quot; target=&quot;_href_&quot; title=&quot;Download chart as SVG&quot;&gt;SVG&lt;/a&gt;]&lt;/span&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;For respondents who indicated they had previously used Rust but no longer did,
we asked if challenges with debugging support were why they stopped. For nearly
3%, the answer was &quot;yes&quot;, with an additional 24% reporting debugging issues as
being partially responsible (though mind the small response count; most
respondents were active users of Rust):&lt;/p&gt;

&lt;div&gt;
    &lt;div class=&quot;class&quot; id=&quot;were-issues-with-debugging-support-the-primary-reason-why-you-stopped-using-rust&quot;&gt;&amp;lt;noscript&amp;gt;
&amp;lt;img alt=&quot;were-issues-with-debugging-support-the-primary-reason-why-you-stopped-using-rust&quot; src=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/were-issues-with-debugging-support-the-primary-reason-why-you-stopped-using-rust.png&quot; /&amp;gt;
&amp;lt;/noscript&amp;gt;&lt;/div&gt;
    &lt;div style=&quot;display: flex; margin-bottom: 10px;&quot;&gt;
        &lt;span&gt;[&lt;a href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/were-issues-with-debugging-support-the-primary-reason-why-you-stopped-using-rust.png&quot; target=&quot;_href_&quot; title=&quot;Download chart as PNG&quot;&gt;PNG&lt;/a&gt;]&lt;/span&gt; &lt;span&gt;[&lt;a href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/were-issues-with-debugging-support-the-primary-reason-why-you-stopped-using-rust.svg&quot; target=&quot;_href_&quot; title=&quot;Download chart as SVG&quot;&gt;SVG&lt;/a&gt;]&lt;/span&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;h3&gt;&lt;a class=&quot;anchor&quot; href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/#how-are-debuggers-used&quot;&gt;&lt;/a&gt;
How Are Debuggers Used?&lt;/h3&gt;
&lt;p&gt;Knowing what debuggers developers are using and how is another important part of
understanding the challenges they face. To this end, we asked respondents how
they were debugging their programs. Unsurprisingly, most developers make use of
print debugging and the &lt;code&gt;dbg!&lt;/code&gt; macro. Excluding those, using &lt;code&gt;lldb&lt;/code&gt; inside an
IDE was the most popular choice, followed by &lt;code&gt;gdb&lt;/code&gt; on the command line:&lt;/p&gt;

&lt;div&gt;
    &lt;div class=&quot;bar-chart&quot; id=&quot;what-tools-and-workflows-do-you-use-to-debug-rust-programs&quot;&gt;&amp;lt;noscript&amp;gt;
&amp;lt;img alt=&quot;what-tools-and-workflows-do-you-use-to-debug-rust-programs&quot; src=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/what-tools-and-workflows-do-you-use-to-debug-rust-programs.png&quot; /&amp;gt;
&amp;lt;/noscript&amp;gt;&lt;/div&gt;
    &lt;div style=&quot;display: flex; margin-bottom: 10px;&quot;&gt;
        &lt;span&gt;[&lt;a href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/what-tools-and-workflows-do-you-use-to-debug-rust-programs.png&quot; target=&quot;_href_&quot; title=&quot;Download chart as PNG&quot;&gt;PNG&lt;/a&gt;]&lt;/span&gt; &lt;span&gt;[&lt;a href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/what-tools-and-workflows-do-you-use-to-debug-rust-programs.svg&quot; target=&quot;_href_&quot; title=&quot;Download chart as SVG&quot;&gt;SVG&lt;/a&gt;]&lt;/span&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;We can get a more detailed breakdown of these results if we include the
operating system on which the respondents use a given debugging approach. We
examine this from two different angles. The first angle being, &quot;On operating
system X, what percent of responses are using debugger Y?&quot;. Print debugging and
the &lt;code&gt;dbg!&lt;/code&gt; macro are consistently the top two yet again, but looking beyond
that, things get more interesting. On Linux, using &lt;code&gt;gdb&lt;/code&gt; on the command line was
the most popular choice by a thin margin, beating &lt;code&gt;lldb&lt;/code&gt; in an IDE by only 0.4%.
On Windows, Windows Subsystem for Linux (WSL), and macOS, &lt;code&gt;lldb&lt;/code&gt; in an IDE was
the top pick by at least 6%, making it a very popular choice in general. On
Windows, the three least popular choices were the command line debuggers (&lt;code&gt;gdb&lt;/code&gt;
CLI, &lt;code&gt;lldb&lt;/code&gt; CLI, and BugStalker), and on both Windows and macOS the third most
popular pick was, &quot;I don't know&quot;. Those who were debugging on operating systems
not listed (Other) most frequently used some kind of special embedded debugger
or &lt;code&gt;gdb&lt;/code&gt;:&lt;/p&gt;

&lt;div&gt;
    &lt;div class=&quot;pie-chart&quot; id=&quot;what-tools-and-workflows-do-you-use-to-debug-rust-programs-per-os-1&quot;&gt;&amp;lt;noscript&amp;gt;
&amp;lt;img alt=&quot;what-tools-and-workflows-do-you-use-to-debug-rust-programs-per-os-1&quot; src=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/what-tools-and-workflows-do-you-use-to-debug-rust-programs-per-os-1.png&quot; /&amp;gt;
&amp;lt;/noscript&amp;gt;&lt;/div&gt;
    &lt;div style=&quot;display: flex; margin-bottom: 10px;&quot;&gt;
        &lt;span&gt;[&lt;a href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/what-tools-and-workflows-do-you-use-to-debug-rust-programs-per-os-1.png&quot; target=&quot;_href_&quot; title=&quot;Download chart as PNG&quot;&gt;PNG&lt;/a&gt;]&lt;/span&gt; &lt;span&gt;[&lt;a href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/what-tools-and-workflows-do-you-use-to-debug-rust-programs-per-os-1.svg&quot; target=&quot;_href_&quot; title=&quot;Download chart as SVG&quot;&gt;SVG&lt;/a&gt;]&lt;/span&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;The other angle we can look at these responses from is, &quot;For users of debugger
X, what percent of responses are using it on operating system Y?&quot;. For most
debuggers, Linux makes up the largest portion of uses, ranging from about 45% to
about 77%, followed by Windows, then macOS. The most notable exceptions are
WinDbg and the Visual Studio debugger, which are primarily used on Windows, and
&lt;code&gt;lldb&lt;/code&gt;, which is used more on macOS than Windows in an IDE and on the command
line:&lt;/p&gt;

&lt;div&gt;
    &lt;div class=&quot;pie-chart&quot; id=&quot;what-tools-and-workflows-do-you-use-to-debug-rust-programs-per-os-2&quot;&gt;&amp;lt;noscript&amp;gt;
&amp;lt;img alt=&quot;what-tools-and-workflows-do-you-use-to-debug-rust-programs-per-os-2&quot; src=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/what-tools-and-workflows-do-you-use-to-debug-rust-programs-per-os-2.png&quot; /&amp;gt;
&amp;lt;/noscript&amp;gt;&lt;/div&gt;
    &lt;div style=&quot;display: flex; margin-bottom: 10px;&quot;&gt;
        &lt;span&gt;[&lt;a href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/what-tools-and-workflows-do-you-use-to-debug-rust-programs-per-os-2.png&quot; target=&quot;_href_&quot; title=&quot;Download chart as PNG&quot;&gt;PNG&lt;/a&gt;]&lt;/span&gt; &lt;span&gt;[&lt;a href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/what-tools-and-workflows-do-you-use-to-debug-rust-programs-per-os-2.svg&quot; target=&quot;_href_&quot; title=&quot;Download chart as SVG&quot;&gt;SVG&lt;/a&gt;]&lt;/span&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;To the 6 respondents who use WinDbg on Linux: we wish you luck!&lt;/p&gt;
&lt;p&gt;As for how people actually use their debugger of choice, the aggregate results
are not particularly surprising. Roughly 87% of users are using debuggers for
stepping line-by-line through programs and a little over half of users are using
debuggers to obtain stack traces from hung/crashed processes. Only a quarter of
the respondents use a debugger to debug async code. That might be partially
caused by the async Rust debugging experience being clumsy and incomplete, or it
could just be that users aren't writing much async code:&lt;/p&gt;

&lt;div&gt;
    &lt;div class=&quot;bar-chart&quot; id=&quot;what-are-you-using-debuggers-for&quot;&gt;&amp;lt;noscript&amp;gt;
&amp;lt;img alt=&quot;what-are-you-using-debuggers-for&quot; src=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/what-are-you-using-debuggers-for.png&quot; /&amp;gt;
&amp;lt;/noscript&amp;gt;&lt;/div&gt;
    &lt;div style=&quot;display: flex; margin-bottom: 10px;&quot;&gt;
        &lt;span&gt;[&lt;a href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/what-are-you-using-debuggers-for.png&quot; target=&quot;_href_&quot; title=&quot;Download chart as PNG&quot;&gt;PNG&lt;/a&gt;]&lt;/span&gt; &lt;span&gt;[&lt;a href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/what-are-you-using-debuggers-for.svg&quot; target=&quot;_href_&quot; title=&quot;Download chart as SVG&quot;&gt;SVG&lt;/a&gt;]&lt;/span&gt; &lt;span&gt;[&lt;a href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/what-are-you-using-debuggers-for-wordcloud.png&quot; target=&quot;_href_&quot; title=&quot;Download open answers as wordcloud PNG&quot;&gt;Wordcloud of open answers&lt;/a&gt;]&lt;/span&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;If we break these results down by expertise, we can learn a bit more about usage
patterns. As users become more experienced with Rust, their use of debuggers for
learning purposes decreases, and they get more stack traces from crashed
processes:&lt;/p&gt;

&lt;div&gt;
    &lt;div class=&quot;pie-chart&quot; id=&quot;what-are-you-using-debuggers-for-per-expertise&quot;&gt;&amp;lt;noscript&amp;gt;
&amp;lt;img alt=&quot;what-are-you-using-debuggers-for-per-expertise&quot; src=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/what-are-you-using-debuggers-for-per-expertise.png&quot; /&amp;gt;
&amp;lt;/noscript&amp;gt;&lt;/div&gt;
    &lt;div style=&quot;display: flex; margin-bottom: 10px;&quot;&gt;
        &lt;span&gt;[&lt;a href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/what-are-you-using-debuggers-for-per-expertise.png&quot; target=&quot;_href_&quot; title=&quot;Download chart as PNG&quot;&gt;PNG&lt;/a&gt;]&lt;/span&gt; &lt;span&gt;[&lt;a href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/what-are-you-using-debuggers-for-per-expertise.svg&quot; target=&quot;_href_&quot; title=&quot;Download chart as SVG&quot;&gt;SVG&lt;/a&gt;]&lt;/span&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;The final bit of insight into how Rustaceans use debuggers is if they are
debugging programs that use Rust alongside other programming languages. For 44%
of respondents, the answer is &quot;yes&quot;, which is a pretty high number!&lt;/p&gt;
&lt;p&gt;As for which languages those are, C dominates the scene at a little over 70%,
followed by C++ at about 43% and Python at about 20%:&lt;/p&gt;

&lt;div&gt;
    &lt;div class=&quot;bar-chart&quot; id=&quot;do-you-debug-programs-that-combine-rust-with-any-of-the-following-languages&quot;&gt;&amp;lt;noscript&amp;gt;
&amp;lt;img alt=&quot;do-you-debug-programs-that-combine-rust-with-any-of-the-following-languages&quot; src=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/do-you-debug-programs-that-combine-rust-with-any-of-the-following-languages.png&quot; /&amp;gt;
&amp;lt;/noscript&amp;gt;&lt;/div&gt;
    &lt;div style=&quot;display: flex; margin-bottom: 10px;&quot;&gt;
        &lt;span&gt;[&lt;a href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/do-you-debug-programs-that-combine-rust-with-any-of-the-following-languages.png&quot; target=&quot;_href_&quot; title=&quot;Download chart as PNG&quot;&gt;PNG&lt;/a&gt;]&lt;/span&gt; &lt;span&gt;[&lt;a href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/do-you-debug-programs-that-combine-rust-with-any-of-the-following-languages.svg&quot; target=&quot;_href_&quot; title=&quot;Download chart as SVG&quot;&gt;SVG&lt;/a&gt;]&lt;/span&gt; &lt;span&gt;[&lt;a href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/do-you-debug-programs-that-combine-rust-with-any-of-the-following-languages-wordcloud.png&quot; target=&quot;_href_&quot; title=&quot;Download open answers as wordcloud PNG&quot;&gt;Wordcloud of open answers&lt;/a&gt;]&lt;/span&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;h3&gt;&lt;a class=&quot;anchor&quot; href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/#challenges&quot;&gt;&lt;/a&gt;
Challenges&lt;/h3&gt;
&lt;p&gt;Instead of diving right into asking, &quot;what problems do you face when using
debuggers?&quot;, or something to that effect, we first asked respondents why they
decide against using debuggers whenever they do, including for reasons that
aren't necessarily &quot;problems with debuggers&quot;.&lt;/p&gt;
&lt;p&gt;The most commonly reported reason was that it was easier or faster to use logs
or print debugging to solve problems, reported by a little over 81% of
respondents. This could partially be explained by the open responses, which
featured complaints that debuggers were too difficult to set up and/or use
(especially on Windows, when dealing with Web Assembly, or in embedded
contexts) and sentiment suggesting that small and/or simple problems just don't
really need a debugger. It does leave one wondering if the user experience could
be made convenient enough to dethrone print debugging, but it seems hard to beat
something so intuitive. This is followed by roughly 37% of respondents who write
code that Just Works. Fair enough. After that, about 26% of respondents
indicated that they've decided not to use debuggers in situations where the
language features they were working with had poor support. This is slightly more
than issues with standard library types, at about 22%, which is slightly more
than issues with external library types, at about 20%:&lt;/p&gt;

&lt;div&gt;
    &lt;div class=&quot;bar-chart&quot; id=&quot;when-you-dont-use-a-debugger-why-dont-you&quot;&gt;&amp;lt;noscript&amp;gt;
&amp;lt;img alt=&quot;when-you-dont-use-a-debugger-why-dont-you&quot; src=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/when-you-dont-use-a-debugger-why-dont-you.png&quot; /&amp;gt;
&amp;lt;/noscript&amp;gt;&lt;/div&gt;
    &lt;div style=&quot;display: flex; margin-bottom: 10px;&quot;&gt;
        &lt;span&gt;[&lt;a href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/when-you-dont-use-a-debugger-why-dont-you.png&quot; target=&quot;_href_&quot; title=&quot;Download chart as PNG&quot;&gt;PNG&lt;/a&gt;]&lt;/span&gt; &lt;span&gt;[&lt;a href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/when-you-dont-use-a-debugger-why-dont-you.svg&quot; target=&quot;_href_&quot; title=&quot;Download chart as SVG&quot;&gt;SVG&lt;/a&gt;]&lt;/span&gt; &lt;span&gt;[&lt;a href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/when-you-dont-use-a-debugger-why-dont-you-wordcloud.png&quot; target=&quot;_href_&quot; title=&quot;Download open answers as wordcloud PNG&quot;&gt;Wordcloud of open answers&lt;/a&gt;]&lt;/span&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;As stepping through code was anticipated to be one of the most common uses for
debuggers, we directly asked respondents if they faced any issues when doing so.
A little over 51% of respondents said they did! Of those who reported that they
experienced issues stepping through code, we asked when they were experiencing
issues. Async code was the most common case reported at slightly over 28%,
followed by code involving macros at about 23%. The least common case reported
was code involving function pointers, at almost 6%:&lt;/p&gt;

&lt;div&gt;
    &lt;div class=&quot;bar-chart&quot; id=&quot;when-do-you-experience-issues-with-trying-to-step-through-code-with-your-debugger&quot;&gt;&amp;lt;noscript&amp;gt;
&amp;lt;img alt=&quot;when-do-you-experience-issues-with-trying-to-step-through-code-with-your-debugger&quot; src=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/when-do-you-experience-issues-with-trying-to-step-through-code-with-your-debugger.png&quot; /&amp;gt;
&amp;lt;/noscript&amp;gt;&lt;/div&gt;
    &lt;div style=&quot;display: flex; margin-bottom: 10px;&quot;&gt;
        &lt;span&gt;[&lt;a href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/when-do-you-experience-issues-with-trying-to-step-through-code-with-your-debugger.png&quot; target=&quot;_href_&quot; title=&quot;Download chart as PNG&quot;&gt;PNG&lt;/a&gt;]&lt;/span&gt; &lt;span&gt;[&lt;a href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/when-do-you-experience-issues-with-trying-to-step-through-code-with-your-debugger.svg&quot; target=&quot;_href_&quot; title=&quot;Download chart as SVG&quot;&gt;SVG&lt;/a&gt;]&lt;/span&gt; &lt;span&gt;[&lt;a href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/when-do-you-experience-issues-with-trying-to-step-through-code-with-your-debugger-wordcloud.png&quot; target=&quot;_href_&quot; title=&quot;Download open answers as wordcloud PNG&quot;&gt;Wordcloud of open answers&lt;/a&gt;]&lt;/span&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;We also directly asked respondents which types in the standard library were hard
to work with, if any. This was an open-response question, and reading through
the responses, some particularly common complaints were with &lt;code&gt;enum&lt;/code&gt;s and
collections, particularly &lt;code&gt;std::collections::HashMap&lt;/code&gt; and &lt;code&gt;std::vec::Vec&lt;/code&gt;. This
is also visible in the word cloud in the &lt;a href=&quot;https://raw.githubusercontent.com/rust-lang/surveys/main/surveys/2026/debugging/report/debugging-survey-2026-report.pdf&quot; rel=&quot;external&quot;&gt;full report&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We asked respondents to indicate which pain points, if any, they have
encountered when using debuggers with Rust. At slightly over 74%, poor
representation of values was the most common pain point by a decent margin,
followed by being unable to print variables at just over 55%:&lt;/p&gt;

&lt;div&gt;
    &lt;div class=&quot;bar-chart&quot; id=&quot;which-of-these-pain-points-have-you-experienced-using-a-debugger-with-rust&quot;&gt;&amp;lt;noscript&amp;gt;
&amp;lt;img alt=&quot;which-of-these-pain-points-have-you-experienced-using-a-debugger-with-rust&quot; src=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/which-of-these-pain-points-have-you-experienced-using-a-debugger-with-rust.png&quot; /&amp;gt;
&amp;lt;/noscript&amp;gt;&lt;/div&gt;
    &lt;div style=&quot;display: flex; margin-bottom: 10px;&quot;&gt;
        &lt;span&gt;[&lt;a href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/which-of-these-pain-points-have-you-experienced-using-a-debugger-with-rust.png&quot; target=&quot;_href_&quot; title=&quot;Download chart as PNG&quot;&gt;PNG&lt;/a&gt;]&lt;/span&gt; &lt;span&gt;[&lt;a href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/which-of-these-pain-points-have-you-experienced-using-a-debugger-with-rust.svg&quot; target=&quot;_href_&quot; title=&quot;Download chart as SVG&quot;&gt;SVG&lt;/a&gt;]&lt;/span&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;h3&gt;&lt;a class=&quot;anchor&quot; href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/#debugger-visualizers&quot;&gt;&lt;/a&gt;
Debugger Visualizers&lt;/h3&gt;
&lt;p&gt;We asked respondents to indicate if they were library authors, and if so, if
they were aware of and using the &lt;code&gt;debugger_visualizer&lt;/code&gt; attribute. Nearly 62% of
respondents indicated that they were library authors who were not aware of this
attribute:&lt;/p&gt;

&lt;div&gt;
    &lt;div class=&quot;class&quot; id=&quot;if-you-are-a-library-author-are-you-aware-of-and-using-the-debugger-visualizer-attribute&quot;&gt;&amp;lt;noscript&amp;gt;
&amp;lt;img alt=&quot;if-you-are-a-library-author-are-you-aware-of-and-using-the-debugger-visualizer-attribute&quot; src=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/if-you-are-a-library-author-are-you-aware-of-and-using-the-debugger-visualizer-attribute.png&quot; /&amp;gt;
&amp;lt;/noscript&amp;gt;&lt;/div&gt;
    &lt;div style=&quot;display: flex; margin-bottom: 10px;&quot;&gt;
        &lt;span&gt;[&lt;a href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/if-you-are-a-library-author-are-you-aware-of-and-using-the-debugger-visualizer-attribute.png&quot; target=&quot;_href_&quot; title=&quot;Download chart as PNG&quot;&gt;PNG&lt;/a&gt;]&lt;/span&gt; &lt;span&gt;[&lt;a href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/if-you-are-a-library-author-are-you-aware-of-and-using-the-debugger-visualizer-attribute.svg&quot; target=&quot;_href_&quot; title=&quot;Download chart as SVG&quot;&gt;SVG&lt;/a&gt;]&lt;/span&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;For those who indicated that they were library authors who knew about the
attribute but did not use it, we also asked why. This represented a much smaller
fraction of respondents, so keep that in mind! That said, half of these library
authors indicated that they didn't have the time to maintain visualizer
attributes, and just under half indicated they didn't know how to write
visualizer scripts:&lt;/p&gt;

&lt;div&gt;
    &lt;div class=&quot;bar-chart&quot; id=&quot;why-dont-you-use-the-debugger-visualizer-attribute&quot;&gt;&amp;lt;noscript&amp;gt;
&amp;lt;img alt=&quot;why-dont-you-use-the-debugger-visualizer-attribute&quot; src=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/why-dont-you-use-the-debugger-visualizer-attribute.png&quot; /&amp;gt;
&amp;lt;/noscript&amp;gt;&lt;/div&gt;
    &lt;div style=&quot;display: flex; margin-bottom: 10px;&quot;&gt;
        &lt;span&gt;[&lt;a href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/why-dont-you-use-the-debugger-visualizer-attribute.png&quot; target=&quot;_href_&quot; title=&quot;Download chart as PNG&quot;&gt;PNG&lt;/a&gt;]&lt;/span&gt; &lt;span&gt;[&lt;a href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/why-dont-you-use-the-debugger-visualizer-attribute.svg&quot; target=&quot;_href_&quot; title=&quot;Download chart as SVG&quot;&gt;SVG&lt;/a&gt;]&lt;/span&gt; &lt;span&gt;[&lt;a href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/why-dont-you-use-the-debugger-visualizer-attribute-wordcloud.png&quot; target=&quot;_href_&quot; title=&quot;Download open answers as wordcloud PNG&quot;&gt;Wordcloud of open answers&lt;/a&gt;]&lt;/span&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;For those of you who have been reading this section asking yourself what the
&lt;code&gt;debugger_visualizer&lt;/code&gt; attribute is, you can read up on it in
&lt;a href=&quot;https://doc.rust-lang.org/reference/attributes/debugger.html&quot; rel=&quot;external&quot;&gt;The Rust Reference: Debugger Attributes&lt;/a&gt;. The quick
explanation is that the &lt;code&gt;debugger_visualizer&lt;/code&gt; attribute can be applied to
modules or the crate root to embed files in the debug information which improve
the display of values with certain debuggers. The two currently supported file
types are Natvis files, used by Microsoft debuggers such as WinDbg, and GDB
&quot;pretty printers&quot;, which are structured Python scripts used by GDB.&lt;/p&gt;
&lt;h3&gt;&lt;a class=&quot;anchor&quot; href=&quot;https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/#closing-remarks&quot;&gt;&lt;/a&gt;
Closing Remarks&lt;/h3&gt;
&lt;p&gt;Thanks to your participation in this survey, we've gained some great insights
about how Rustaceans are using debuggers and what issues they are facing. For
example, knowing that such a high number of users are dealing with poor
representation of values pairs well with knowing which standard library types
are causing issues, knowing that many library authors haven't heard of the
&lt;code&gt;debugger_visualizer&lt;/code&gt; attribute, and knowing that many of those who have but
don't use it either don't know how or don't have time to maintain visualizer
scripts.&lt;/p&gt;
&lt;p&gt;Looking to the future, the survey results have suggested that there are a few
notable ways we could most significantly improve the debugging experience in
Rust, such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fixing the way &lt;code&gt;enum&lt;/code&gt;s are represented by debuggers so they show actual
variants&lt;/li&gt;
&lt;li&gt;Fixing the way collections (such as &lt;code&gt;HashMap&lt;/code&gt;) are represented by debuggers so
they show their contents, rather than their implementation details&lt;/li&gt;
&lt;li&gt;Fixing the way string types (such as &lt;code&gt;String&lt;/code&gt; and &lt;code&gt;CString&lt;/code&gt;) are represented
by debuggers so they render as text, rather than their implementation details&lt;/li&gt;
&lt;li&gt;Improving the &lt;code&gt;async&lt;/code&gt; debugging experience, particularly with stack traces&lt;/li&gt;
&lt;li&gt;Improving stepping through certain state machines (such as iterators and
&lt;code&gt;Future&lt;/code&gt;s)&lt;/li&gt;
&lt;li&gt;Providing documentation on basic set up and use of some common debuggers&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A common suggestion that could resolve those first three points is to use the
&lt;code&gt;Debug&lt;/code&gt; implementation of types to display them in debuggers. There are
challenges to that approach, such as the fact that the &lt;code&gt;Debug&lt;/code&gt; implementation is
not present in the final binary unless it is actually used somewhere in the
program, but it isn't impossible. Notably, this is already supported by the
&lt;a href=&quot;https://github.com/godzie44/BugStalker&quot; rel=&quot;external&quot;&gt;&lt;code&gt;BugStalker&lt;/code&gt;&lt;/a&gt; debugger (given the same condition that the &lt;code&gt;Debug&lt;/code&gt;
implementation must actually be used), which some of you first heard about from
the survey! It also appears to have some support for &lt;code&gt;async&lt;/code&gt;, with plans to
expand.&lt;/p&gt;
&lt;p&gt;One notable way the debugger experience is currently being improved is through
the &lt;a href=&quot;https://summerofcode.withgoogle.com/programs/2026/projects/gzkF5BG0&quot; rel=&quot;external&quot;&gt;ongoing Google Summer of Code project&lt;/a&gt; improving how we test debug info and
visualizer scripts, making it easier to maintain and improve our own visualizer
scripts and general compatibility with visualizer scripts without silent
breakage or regressions.&lt;/p&gt;
&lt;p&gt;Once again, we'd like to thank everyone who took the time to participate in the
survey!&lt;/p&gt;</content:encoded>
	<dc:date>2026-09-07T00:00:00+00:00</dc:date>
	<dc:creator>Sam Kellam</dc:creator>
</item>
<item rdf:about="discourse.mozilla.org-topic-149369">
	<title>Firefox Tooling Announcements: Firefox DevTools MCP 0.10.2 released</title>
	<link>https://discourse.mozilla.org/t/firefox-devtools-mcp-0-10-2-released/149369</link>
	<content:encoded>&lt;p&gt;Firefox DevTools MCP (firefox-devtools-mcp) 0.10.2 is out on &lt;a href=&quot;https://www.npmjs.com/package/@mozilla/firefox-devtools-mcp&quot; rel=&quot;noopener nofollow ugc&quot;&gt;npm&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;New tools:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;press_key&lt;/code&gt; — sends a single key, optionally with modifiers, to a snapshot element or the focused element (Return, Escape, Tab, arrows, ctrl+shift+t, …).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;type_text&lt;/code&gt; — types text key by key into the focused element, with an optional key to press afterwards.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;set_network_cache&lt;/code&gt; — bypass or restore the HTTP cache, for the selected tab or browser-wide. Useful before a performance measurement or when verifying a change a cached asset would otherwise hide.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Other changes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;navigate_page&lt;/code&gt; and &lt;code&gt;new_page&lt;/code&gt; take an optional &lt;code&gt;wait&lt;/code&gt; argument (none, interactive, complete), so an agent can wait for the load event before deciding a page is done.&lt;/li&gt;
&lt;li&gt;Windows: per-user Firefox installs are now detected, instead of failing with “unable to find binary in default location”.&lt;/li&gt;
&lt;li&gt;aarch64 Linux: geckodriver is now resolved on all platforms, fixing “Unable to obtain browser driver” when a native geckodriver is on PATH.&lt;/li&gt;
&lt;li&gt;Several Windows path fixes for --output-file, --log-file and saveTo.&lt;/li&gt;
&lt;li&gt;New generated reference page documenting every tool and its parameters: docs/tools.md (&lt;a class=&quot;inline-onebox&quot; href=&quot;https://github.com/mozilla/firefox-devtools-mcp/blob/main/docs/tools.md&quot; rel=&quot;noopener nofollow ugc&quot;&gt;firefox-devtools-mcp/docs/tools.md at main · mozilla/firefox-devtools-mcp · GitHub&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Install:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;claude mcp add firefox-devtools npx &lt;span class=&quot;mention&quot;&gt;@mozilla&lt;/span&gt;/firefox-devtools-mcp@latest&lt;/p&gt;
&lt;p&gt;codex mcp add firefox-devtools – npx &lt;span class=&quot;mention&quot;&gt;@mozilla&lt;/span&gt;/firefox-devtools-mcp@latest&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;For internal Firefox development, swap &lt;code&gt;firefox-devtools-mcp&lt;/code&gt; with &lt;code&gt;firefox-devtools-mcp-moz&lt;/code&gt; in order to benefit from additional tools, such as chrome-privileged script execution.&lt;/p&gt;
&lt;p&gt;Special thanks to all the contributors who filed issues and submitted patches for this release: &lt;a href=&quot;https://github.com/freema&quot; rel=&quot;noopener nofollow ugc&quot;&gt;freema&lt;/a&gt;, &lt;a href=&quot;https://matrix.to/#/@f3tch:mozilla.org&quot; rel=&quot;noopener nofollow ugc&quot;&gt;f3tch&lt;/a&gt; (&lt;a href=&quot;https://github.com/f3tchcodes&quot; rel=&quot;noopener nofollow ugc&quot;&gt;github&lt;/a&gt;), &lt;a href=&quot;https://github.com/jasonanovak&quot; rel=&quot;noopener nofollow ugc&quot;&gt;jasonanovak&lt;/a&gt; and &lt;a href=&quot;https://github.com/shoemoney&quot; rel=&quot;noopener nofollow ugc&quot;&gt;shoemoney&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Full changelog: &lt;a href=&quot;https://github.com/mozilla/firefox-devtools-mcp/releases/tag/v0.10.2&quot; rel=&quot;noopener nofollow ugc&quot;&gt;https://github.com/mozilla/firefox-devtools-mcp/releases/tag/v0.10.2&lt;/a&gt;&lt;br /&gt;
Repository and issues: &lt;a class=&quot;inline-onebox&quot; href=&quot;https://github.com/mozilla/firefox-devtools-mcp&quot; rel=&quot;noopener nofollow ugc&quot;&gt;GitHub - mozilla/firefox-devtools-mcp: Model Context Protocol server for Firefox DevTools - enables AI assistants to inspect and control Firefox browser through WebDriver BiDi · GitHub&lt;/a&gt;&lt;br /&gt;
Public chatroom: &lt;a href=&quot;https://chat.mozilla.org/#/room/#firefox-devtools-mcp:mozilla.org&quot; rel=&quot;noopener nofollow ugc&quot;&gt;https://chat.mozilla.org/#/room/#firefox-devtools-mcp:mozilla.org&lt;/a&gt;&lt;/p&gt;
            &lt;p&gt;&lt;small&gt;1 post - 1 participant&lt;/small&gt;&lt;/p&gt;
            &lt;p&gt;&lt;a href=&quot;https://discourse.mozilla.org/t/firefox-devtools-mcp-0-10-2-released/149369&quot;&gt;Read full topic&lt;/a&gt;&lt;/p&gt;</content:encoded>
	<dc:date>2026-09-04T13:41:12+00:00</dc:date>
	<dc:creator>jdescottes</dc:creator>
</item>
<item rdf:about="discourse.mozilla.org-topic-149361">
	<title>Firefox Tooling Announcements: PerfCompare just deployed (Sept 3, 2026)</title>
	<link>https://discourse.mozilla.org/t/perfcompare-just-deployed-sept-3-2026/149361</link>
	<content:encoded>&lt;p&gt;The latest version of&lt;a href=&quot;https://perf.compare&quot; rel=&quot;noopener nofollow ugc&quot;&gt; PerfCompare&lt;/a&gt; is now live! This includes the launch of PerfCompare’s Simple View. Read the following blog post, &lt;a href=&quot;https://blog.mozilla.org/performance/2026/09/03/introducing-perfcompares-simple-view/&quot;&gt;Introducing PerfCompare’s Simple View&lt;/a&gt;, to learn more.&lt;/p&gt;
&lt;p&gt;Check out the change-log below to see the updates:&lt;/p&gt;
&lt;p&gt;Highlights:&lt;/p&gt;
&lt;p&gt;[kala-moz]&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;h4&gt;&lt;a class=&quot;anchor&quot; href=&quot;https://discourse.mozilla.org#p-296400-bug-2059826-simplified-view-create-checkbox-selection-for-advanced-columns-and-display-how-to-read-the-resultshttpsgithubcommozillaperfcomparecommitcc86b883c12e68b3e573774284d498b30a0837c6-1069-1&quot; name=&quot;p-296400-bug-2059826-simplified-view-create-checkbox-selection-for-advanced-columns-and-display-how-to-read-the-resultshttpsgithubcommozillaperfcomparecommitcc86b883c12e68b3e573774284d498b30a0837c6-1069-1&quot;&gt;&lt;/a&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/mozilla/perfcompare/commit/cc86b883c12e68b3e573774284d498b30a0837c6&quot; rel=&quot;noopener nofollow ugc&quot;&gt;Bug 2059826 - Simplified View: Create checkbox selection for advanced columns and display how to read the results&lt;/a&gt;&lt;/strong&gt; &lt;span class=&quot;hashtag-raw&quot;&gt;#1069&lt;/span&gt;&lt;/h4&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h4&gt;&lt;a class=&quot;anchor&quot; href=&quot;https://discourse.mozilla.org#p-296400-bug-2059830-simplified-view-create-checkbox-selection-for-expanded-row-components-httpsgithubcommozillaperfcomparecommit4a27e29ac04fdeaf7e23cc965beda1c851f50b481089httpsgithubcommozillaperfcomparepull1089httpsgithubcommozillaperfcomparecommit4a27e29ac04fdeaf7e23cc965beda1c851f50b48-2&quot; name=&quot;p-296400-bug-2059830-simplified-view-create-checkbox-selection-for-expanded-row-components-httpsgithubcommozillaperfcomparecommit4a27e29ac04fdeaf7e23cc965beda1c851f50b481089httpsgithubcommozillaperfcomparepull1089httpsgithubcommozillaperfcomparecommit4a27e29ac04fdeaf7e23cc965beda1c851f50b48-2&quot;&gt;&lt;/a&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/mozilla/perfcompare/commit/4a27e29ac04fdeaf7e23cc965beda1c851f50b48&quot; rel=&quot;noopener nofollow ugc&quot;&gt;Bug 2059830 Simplified View: Create checkbox selection for expanded row components (&lt;/a&gt;&lt;a href=&quot;https://github.com/mozilla/perfcompare/pull/1089&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#1089&lt;/a&gt;&lt;a href=&quot;https://github.com/mozilla/perfcompare/commit/4a27e29ac04fdeaf7e23cc965beda1c851f50b48&quot; rel=&quot;noopener nofollow ugc&quot;&gt;)&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h4&gt;&lt;a class=&quot;anchor&quot; href=&quot;https://discourse.mozilla.org#p-296400-bug-2068296-simplified-view-follow-up-for-expanded-view-httpsgithubcommozillaperfcomparecommit14f94a803c50e27936902ea13179e491ab16b6a71094httpsgithubcommozillaperfcomparepull1094httpsgithubcommozillaperfcomparecommit14f94a803c50e27936902ea13179e491ab16b6a7-3&quot; name=&quot;p-296400-bug-2068296-simplified-view-follow-up-for-expanded-view-httpsgithubcommozillaperfcomparecommit14f94a803c50e27936902ea13179e491ab16b6a71094httpsgithubcommozillaperfcomparepull1094httpsgithubcommozillaperfcomparecommit14f94a803c50e27936902ea13179e491ab16b6a7-3&quot;&gt;&lt;/a&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/mozilla/perfcompare/commit/14f94a803c50e27936902ea13179e491ab16b6a7&quot; rel=&quot;noopener nofollow ugc&quot;&gt;Bug 2068296 Simplified View Follow up for expanded view (&lt;/a&gt;&lt;a href=&quot;https://github.com/mozilla/perfcompare/pull/1094&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#1094&lt;/a&gt;&lt;a href=&quot;https://github.com/mozilla/perfcompare/commit/14f94a803c50e27936902ea13179e491ab16b6a7&quot; rel=&quot;noopener nofollow ugc&quot;&gt;)&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h4&gt;&lt;a class=&quot;anchor&quot; href=&quot;https://discourse.mozilla.org#p-296400-bug-2058240-filters-from-cookies-dont-make-it-into-the-url-httpsgithubcommozillaperfcomparecommit220ed6d400c9e8237861f1a510a910421b2a41641076httpsgithubcommozillaperfcomparepull1076httpsgithubcommozillaperfcomparecommit220ed6d400c9e8237861f1a510a910421b2a4164-4&quot; name=&quot;p-296400-bug-2058240-filters-from-cookies-dont-make-it-into-the-url-httpsgithubcommozillaperfcomparecommit220ed6d400c9e8237861f1a510a910421b2a41641076httpsgithubcommozillaperfcomparepull1076httpsgithubcommozillaperfcomparecommit220ed6d400c9e8237861f1a510a910421b2a4164-4&quot;&gt;&lt;/a&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/mozilla/perfcompare/commit/220ed6d400c9e8237861f1a510a910421b2a4164&quot; rel=&quot;noopener nofollow ugc&quot;&gt;Bug 2058240: Filters from cookies don’t make it into the URL (&lt;/a&gt;&lt;a href=&quot;https://github.com/mozilla/perfcompare/pull/1076&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#1076&lt;/a&gt;&lt;a href=&quot;https://github.com/mozilla/perfcompare/commit/220ed6d400c9e8237861f1a510a910421b2a4164&quot; rel=&quot;noopener nofollow ugc&quot;&gt;)&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h4&gt;&lt;a class=&quot;anchor&quot; href=&quot;https://discourse.mozilla.org#p-296400-simplified-view-follow-up-reduce-size-of-cols-and-link-subtest-pills-to-subtests-page-httpsgithubcommozillaperfcomparecommit75c8e8375c714e2bc49efb6f70159fb70efb62611083httpsgithubcommozillaperfcomparepull1083httpsgithubcommozillaperfcomparecommit75c8e8375c714e2bc49efb6f70159fb70efb6261-5&quot; name=&quot;p-296400-simplified-view-follow-up-reduce-size-of-cols-and-link-subtest-pills-to-subtests-page-httpsgithubcommozillaperfcomparecommit75c8e8375c714e2bc49efb6f70159fb70efb62611083httpsgithubcommozillaperfcomparepull1083httpsgithubcommozillaperfcomparecommit75c8e8375c714e2bc49efb6f70159fb70efb6261-5&quot;&gt;&lt;/a&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/mozilla/perfcompare/commit/75c8e8375c714e2bc49efb6f70159fb70efb6261&quot; rel=&quot;noopener nofollow ugc&quot;&gt;Simplified View Follow-up: reduce size of cols and link subtest pills to subtests page (&lt;/a&gt;&lt;a href=&quot;https://github.com/mozilla/perfcompare/pull/1083&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#1083&lt;/a&gt;&lt;a href=&quot;https://github.com/mozilla/perfcompare/commit/75c8e8375c714e2bc49efb6f70159fb70efb6261&quot; rel=&quot;noopener nofollow ugc&quot;&gt;)&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Other changes:&lt;/p&gt;
&lt;p&gt;[kala-moz]&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;h4&gt;&lt;a class=&quot;anchor&quot; href=&quot;https://discourse.mozilla.org#p-296400-removed-silverman-and-kde-warnings-httpsgithubcommozillaperfcomparecommite519b8d9cf7878fd1a42149d5cc471a83d24a00e1082httpsgithubcommozillaperfcomparepull1082httpsgithubcommozillaperfcomparecommite519b8d9cf7878fd1a42149d5cc471a83d24a00e-6&quot; name=&quot;p-296400-removed-silverman-and-kde-warnings-httpsgithubcommozillaperfcomparecommite519b8d9cf7878fd1a42149d5cc471a83d24a00e1082httpsgithubcommozillaperfcomparepull1082httpsgithubcommozillaperfcomparecommite519b8d9cf7878fd1a42149d5cc471a83d24a00e-6&quot;&gt;&lt;/a&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/mozilla/perfcompare/commit/e519b8d9cf7878fd1a42149d5cc471a83d24a00e&quot; rel=&quot;noopener nofollow ugc&quot;&gt;Removed silverman and kde warnings (&lt;/a&gt;&lt;a href=&quot;https://github.com/mozilla/perfcompare/pull/1082&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#1082&lt;/a&gt;&lt;a href=&quot;https://github.com/mozilla/perfcompare/commit/e519b8d9cf7878fd1a42149d5cc471a83d24a00e&quot; rel=&quot;noopener nofollow ugc&quot;&gt;)&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h4&gt;&lt;a class=&quot;anchor&quot; href=&quot;https://discourse.mozilla.org#p-296400-bug-2059493-clean-up-components-in-perfcompare-frontend-using-the-unecessary-silverman_kde-data-httpsgithubcommozillaperfcomparecommitf50b4a4e37650bb007c407dd9134e49a180882b31079httpsgithubcommozillaperfcomparepull1079httpsgithubcommozillaperfcomparecommitf50b4a4e37650bb007c407dd9134e49a180882b3-7&quot; name=&quot;p-296400-bug-2059493-clean-up-components-in-perfcompare-frontend-using-the-unecessary-silverman_kde-data-httpsgithubcommozillaperfcomparecommitf50b4a4e37650bb007c407dd9134e49a180882b31079httpsgithubcommozillaperfcomparepull1079httpsgithubcommozillaperfcomparecommitf50b4a4e37650bb007c407dd9134e49a180882b3-7&quot;&gt;&lt;/a&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/mozilla/perfcompare/commit/f50b4a4e37650bb007c407dd9134e49a180882b3&quot; rel=&quot;noopener nofollow ugc&quot;&gt;Bug 2059493: Clean up components in perfcompare frontend using the unecessary silverman_kde data (&lt;/a&gt;&lt;a href=&quot;https://github.com/mozilla/perfcompare/pull/1079&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#1079&lt;/a&gt;&lt;a href=&quot;https://github.com/mozilla/perfcompare/commit/f50b4a4e37650bb007c407dd9134e49a180882b3&quot; rel=&quot;noopener nofollow ugc&quot;&gt;)&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h4&gt;&lt;a class=&quot;anchor&quot; href=&quot;https://discourse.mozilla.org#p-296400-fix-for-bug-2060613-perfcompare-statistical-analysis-has-some-nan-values-in-explanations-httpsgithubcommozillaperfcomparecommit9806c7be506c10328f9d8d321341967c5d6a356b1077httpsgithubcommozillaperfcomparepull1077httpsgithubcommozillaperfcomparecommit9806c7be506c10328f9d8d321341967c5d6a356b-8&quot; name=&quot;p-296400-fix-for-bug-2060613-perfcompare-statistical-analysis-has-some-nan-values-in-explanations-httpsgithubcommozillaperfcomparecommit9806c7be506c10328f9d8d321341967c5d6a356b1077httpsgithubcommozillaperfcomparepull1077httpsgithubcommozillaperfcomparecommit9806c7be506c10328f9d8d321341967c5d6a356b-8&quot;&gt;&lt;/a&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/mozilla/perfcompare/commit/9806c7be506c10328f9d8d321341967c5d6a356b&quot; rel=&quot;noopener nofollow ugc&quot;&gt;Fix for Bug 2060613: PerfCompare statistical analysis has some NaN values in explanations (&lt;/a&gt;&lt;a href=&quot;https://github.com/mozilla/perfcompare/pull/1077&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#1077&lt;/a&gt;&lt;a href=&quot;https://github.com/mozilla/perfcompare/commit/9806c7be506c10328f9d8d321341967c5d6a356b&quot; rel=&quot;noopener nofollow ugc&quot;&gt;)&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;[gopar]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/mozilla/perfcompare/commit/375cd0f03b01b7be1452e5326ba8a0ed541c54f8&quot; rel=&quot;noopener nofollow ugc&quot;&gt;[&lt;/a&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2021092&quot;&gt;bug-2021092&lt;/a&gt;&lt;a href=&quot;https://github.com/mozilla/perfcompare/commit/375cd0f03b01b7be1452e5326ba8a0ed541c54f8&quot; rel=&quot;noopener nofollow ugc&quot;&gt;] Update light/dark toggle wording to be less ambiguous (&lt;/a&gt;&lt;a href=&quot;https://github.com/mozilla/perfcompare/pull/1073&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#1073&lt;/a&gt;&lt;a href=&quot;https://github.com/mozilla/perfcompare/commit/375cd0f03b01b7be1452e5326ba8a0ed541c54f8&quot; rel=&quot;noopener nofollow ugc&quot;&gt;)&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Thank you for the contributions!&lt;/p&gt;
&lt;p&gt;Bugs or feature requests can be&lt;a href=&quot;https://bugzilla.mozilla.org/enter_bug.cgi?product=Testing&amp;amp;component=PerfCompare&amp;amp;status_whiteboard=%5Bpcf%5D&quot;&gt; filed on Bugzilla&lt;/a&gt;. The team can also be found on&lt;a href=&quot;https://matrix.to/#/#perfcompare:mozilla.org&quot; rel=&quot;noopener nofollow ugc&quot;&gt; the #perfcompare channel on &lt;/a&gt;Matrix. Come and chat!&lt;/p&gt;
            &lt;p&gt;&lt;small&gt;1 post - 1 participant&lt;/small&gt;&lt;/p&gt;
            &lt;p&gt;&lt;a href=&quot;https://discourse.mozilla.org/t/perfcompare-just-deployed-sept-3-2026/149361&quot;&gt;Read full topic&lt;/a&gt;&lt;/p&gt;</content:encoded>
	<dc:date>2026-09-03T18:34:29+00:00</dc:date>
	<dc:creator>csevere</dc:creator>
</item>
<item rdf:about="https://blog.mozilla.org/performance/?p=580">
	<title>Mozilla Performance Blog: Introducing PerfCompare’s Simple View</title>
	<link>https://blog.mozilla.org/performance/2026/09/03/introducing-perfcompares-simple-view/</link>
	<content:encoded>&lt;p&gt;We heard you. You don’t want to open your PerfCompare performance comparison and feel like you need a background in statistics to interpret the Mann-Whitney-U results. Cliff’s Delta, CLES, and normality tests, oh my! It should not feel like you’ve blindly walked into a college stats exam, unless of course, you love statistics. For the rest, all you want is an easy answer to the question: Did my changes make things faster or slower?&lt;/p&gt;
&lt;p&gt;So we fixed that. PerfCompare now shows the bare essentials by default and tucks the heavy statistics one click away.&lt;/p&gt;
&lt;h3&gt;An approachable default for beginners and occasional users&lt;/h3&gt;
&lt;p&gt;The results table now leads with the platform, the Base and New values, how far the median moved and its direction, the status (which includes the option to filter out noise) and the size of the change. To create a more advanced view, a single “Advanced options” dropdown allows you to add the expert columns (Cliff’s Delta, CLES, Significance) and the info-rich expanded row details below the full-width graph. A small help section at the top of the results provides a quick explanation of the columns. The purpose is to serve a diverse audience while preserving your selections in the URL so a shared link reproduces your view.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;PerfCompare Results Table&quot; class=&quot;aligncenter wp-image-581 size-extra-large&quot; height=&quot;532&quot; src=&quot;http://blog.mozilla.org/performance/files/2026/09/simpleview-1000x532.png&quot; width=&quot;1000&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The “Advanced options” dropdown lets you add the precise statistics columns:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Cliff’s Delta&lt;/b&gt;: An effect-size measure of how far the Base and New distributions have pulled apart&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CLES (Common Language Effect Size):&lt;/b&gt; The chance a random New run beats a random Base run, e.g. “New wins 78% of the time”&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Significance&lt;/b&gt;:  Whether the difference is a real signal or just noise&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Each one toggles on independently, so you can surface only Significance or the whole trio.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;PerfCompare Results Table&quot; class=&quot;aligncenter wp-image-583 size-extra-large&quot; height=&quot;613&quot; src=&quot;http://blog.mozilla.org/performance/files/2026/09/Screenshot-2026-09-03-at-11.26.06-1000x613.png&quot; width=&quot;1000&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Expand a result and you get a clean panel: a full-width graph of how your Base and New runs are spread out, a quick summary (platform, app, which direction is “better”), and a little “how to read this graph” tool-tip for anyone who hasn’t stared at a distribution curve before. You can still poke at the graph’s mode controls if you want to dig in.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;PerfCompare Expanded Row&quot; class=&quot;aligncenter wp-image-584 size-extra-large&quot; height=&quot;657&quot; src=&quot;http://blog.mozilla.org/performance/files/2026/09/Screenshot-2026-09-02-at-15.19.48-1000x657.png&quot; width=&quot;1000&quot; /&gt;&lt;/p&gt;
&lt;p&gt;You can access the extra expanded row details such as effect size and confidence intervals or the full stats table in the “Advanced options” dropdown. Turn on what you need, and the expanded extras lay out in neat two-column rows. If you turn on mode analysis and there aren’t multiple modes to show, we now say “No mode analysis available” instead of a blank space.&lt;/p&gt;
&lt;p&gt;Lastly, the advanced columns and expanded-row details you’ve switched on, along with your filters and sorting, are all encoded in the URL. Paste it to a coworker and they’ll land on the same result you were looking at; for filters and sorting, the shared link takes precedence over whatever they had saved locally. (One exception: the “How to read the results” panel is a personal per-browser preference, so it stays with you rather than tagging along on the link.)&lt;/p&gt;
&lt;h3&gt;What’s next&lt;/h3&gt;
&lt;p&gt;Several follow-ups on the way:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Remembering your advanced choices. &lt;/b&gt;Right now the advanced columns and expanded-row toggles start from the clean defaults each visit (they only persist in a link). Soon PerfCompare will remember them in your browser the same way we do for filters. However, if you open a shared link from a colleague, their specific view takes priority, overriding your own local settings so you both see the exact same data.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Carrying your selections into subtests. &lt;/b&gt;Today, the Advanced options you pick on the main results page don’t follow you when you open a test’s subtests. We’re wiring it up so whatever you’ve enabled up top is automatically enabled in the subtests dropdown too, for one consistent view.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Expanding the “How to read the results” cheat sheet &lt;/b&gt;to include Cliff’s Delta, CLES, and Significance definitions.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Share your feedback&lt;/h3&gt;
&lt;p&gt;We want PerfCompare to work for all users, whether you’re chasing your first regression, or you’re an expert who doesn’t want to lose their favorite metrics to a cleaner view. Our answer is separating the simple view from the power user view, and making the toggle obvious and shareable.&lt;/p&gt;
&lt;p&gt;The great news is it’s live now! Go expand a Mann-Whitney-U result, click around the Advanced options, and tell us what you think. Please share your feedback, suggestions, or comments on &lt;a href=&quot;https://matrix.to/#/#perfcompare:mozilla.org&quot;&gt;the #perfcompare channel on Matrix&lt;/a&gt;. If you’ve encountered a bug or have a feature request, please file them &lt;a href=&quot;https://bugzilla.mozilla.org/enter_bug.cgi?product=Testing&amp;amp;component=PerfCompare&amp;amp;status_whiteboard=%5Bpcf%5D&quot;&gt;in Bugzilla&lt;/a&gt;. We’re listening.&lt;/p&gt;</content:encoded>
	<dc:date>2026-09-03T18:29:50+00:00</dc:date>
	<dc:creator>Kala Severe</dc:creator>
</item>
<item rdf:about="discourse.mozilla.org-topic-149360">
	<title>Firefox Tooling Announcements: Firefox Profiler Deployment (September 3, 2026)</title>
	<link>https://discourse.mozilla.org/t/firefox-profiler-deployment-september-3-2026/149360</link>
	<content:encoded>&lt;p&gt;The latest version of the &lt;a href=&quot;https://profiler.firefox.com/&quot; rel=&quot;noopener nofollow ugc&quot;&gt;Firefox Profiler&lt;/a&gt; is now live! Check out the full changelog below to see what’s changed:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Highlights:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[Andrew Creskey] Show which network requests were prefetched (&lt;a href=&quot;https://github.com/firefox-devtools/profiler/pull/6259&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#6259&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;[Florian Quèze] profiler-cli: accept --limit 0 as unlimited, and make truncation loud (&lt;a href=&quot;https://github.com/firefox-devtools/profiler/pull/6267&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#6267&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Other Changes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[Nazım Can Altınova] Update oxfmt 0.59.0 → 0.63.0 (major) (&lt;a href=&quot;https://github.com/firefox-devtools/profiler/pull/6262&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#6262&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;[Florian Quèze] profiler-cli: document the marker field:value search syntax (&lt;a href=&quot;https://github.com/firefox-devtools/profiler/pull/6265&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#6265&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;[Florian Quèze] profiler-cli: report one time base for text and JSON output (&lt;a href=&quot;https://github.com/firefox-devtools/profiler/pull/6266&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#6266&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;[Florian Quèze] profiler-cli: avoid a stack overflow on large marker threads (&lt;a href=&quot;https://github.com/firefox-devtools/profiler/pull/6264&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#6264&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;[Markus Stange] Give the frameTable a lib column (&lt;a href=&quot;https://github.com/firefox-devtools/profiler/pull/6258&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#6258&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;[Florian Quèze] profiler-cli: report the network request count the filters ran against (&lt;a href=&quot;https://github.com/firefox-devtools/profiler/pull/6274&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#6274&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;[Nazım Can Altınova] Fix dark mode contrast of the warning icons in the publish panel (&lt;a href=&quot;https://github.com/firefox-devtools/profiler/pull/6280&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#6280&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;[Nazım Can Altınova] Extract the publish panel warning indicator into a small component (&lt;a href=&quot;https://github.com/firefox-devtools/profiler/pull/6282&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#6282&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;[Markus Stange] More typed arrays in the FrameTable (and a flags column) (&lt;a href=&quot;https://github.com/firefox-devtools/profiler/pull/6173&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#6173&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;[Nazım Can Altınova] Improve the profiler-cli publish script and document the whole deployment in a better way (&lt;a href=&quot;https://github.com/firefox-devtools/profiler/pull/6260&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#6260&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;[fatadel] &lt;img alt=&quot;:clockwise_vertical_arrows:&quot; class=&quot;emoji&quot; height=&quot;20&quot; src=&quot;https://emoji.discourse-cdn.com/twitter/clockwise_vertical_arrows.png?v=15&quot; title=&quot;:clockwise_vertical_arrows:&quot; width=&quot;20&quot; /&gt; Sync: l10n → main (September 3, 2026) (&lt;a href=&quot;https://github.com/firefox-devtools/profiler/pull/6301&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#6301&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;[fatadel] Bump profiler-cli version to 0.9.0 (&lt;a href=&quot;https://github.com/firefox-devtools/profiler/pull/6302&quot; rel=&quot;noopener nofollow ugc&quot;&gt;#6302&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Big thanks to our amazing localizers for making this release possible:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;es-CL: ravmn&lt;/li&gt;
&lt;li&gt;nl: Mark Heijl&lt;/li&gt;
&lt;li&gt;sv-SE: Andreas Pettersson&lt;/li&gt;
&lt;li&gt;sv-SE: Luna Jernberg&lt;/li&gt;
&lt;li&gt;sv-SE: Peter Kihlstedt&lt;/li&gt;
&lt;li&gt;tr: Selim Şumlu&lt;/li&gt;
&lt;li&gt;tr: giray&lt;/li&gt;
&lt;li&gt;zh-CN: 高乐喆&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Find out more about the Firefox Profiler on &lt;a href=&quot;https://profiler.firefox.com&quot; rel=&quot;noopener nofollow ugc&quot;&gt;profiler.firefox.com&lt;/a&gt;! If you have any questions, join the discussion on our &lt;a href=&quot;https://chat.mozilla.org/#/room/#profiler:mozilla.org&quot; rel=&quot;noopener nofollow ugc&quot;&gt;Matrix channel&lt;/a&gt;!&lt;/p&gt;
            &lt;p&gt;&lt;small&gt;1 post - 1 participant&lt;/small&gt;&lt;/p&gt;
            &lt;p&gt;&lt;a href=&quot;https://discourse.mozilla.org/t/firefox-profiler-deployment-september-3-2026/149360&quot;&gt;Read full topic&lt;/a&gt;&lt;/p&gt;</content:encoded>
	<dc:date>2026-09-03T15:36:56+00:00</dc:date>
	<dc:creator>canova</dc:creator>
</item>
<item rdf:about="https://blog.rust-lang.org/2026/09/03/Rust-1.98.1/">
	<title>The Rust Programming Language Blog: Announcing Rust 1.98.1</title>
	<link>https://blog.rust-lang.org/2026/09/03/Rust-1.98.1/</link>
	<content:encoded>&lt;p&gt;The Rust team has published a new point release of Rust, 1.98.1. Rust is a programming language that is empowering everyone to build reliable and efficient software.&lt;/p&gt;
&lt;p&gt;If you have a previous version of Rust installed via rustup, getting Rust 1.98.1 is as easy as:&lt;/p&gt;
&lt;pre class=&quot;giallo z-code&quot;&gt;&lt;code&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;rustup update stable&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you don't have it already, you can &lt;a href=&quot;https://www.rust-lang.org/install.html&quot; rel=&quot;external&quot;&gt;get &lt;code&gt;rustup&lt;/code&gt;&lt;/a&gt; from the appropriate page on our website.&lt;/p&gt;
&lt;h3&gt;&lt;a class=&quot;anchor&quot; href=&quot;https://blog.rust-lang.org/2026/09/03/Rust-1.98.1/#what-s-in-1-98-1&quot;&gt;&lt;/a&gt;
What's in 1.98.1&lt;/h3&gt;
&lt;p&gt;Rust 1.98.1 fixes a &lt;a href=&quot;https://github.com/rust-lang/rust/issues/161441&quot; rel=&quot;external&quot;&gt;miscompilation in vtable generation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In Rust 1.98.0, in some circumstances, rustc would incorrectly generate a trait object vtable with a null pointer
where a function pointer should be. This leads to undefined behavior in the
emitted code. In some cases this may 'just' cause segfaults due to the null
pointer being loaded, but it is possible for it to be justification for
arbitrary effects (as is typical for UB).&lt;/p&gt;
&lt;p&gt;If you'd like to help us out by testing future releases, you might consider
using the beta (&lt;code&gt;rustup default beta&lt;/code&gt;) and nightly (&lt;code&gt;rustup default nightly&lt;/code&gt;) channels locally and in your CI. Please
&lt;a href=&quot;https://github.com/rust-lang/rust/issues/new/choose&quot; rel=&quot;external&quot;&gt;report&lt;/a&gt; any bugs you
might come across!&lt;/p&gt;
&lt;h4&gt;&lt;a class=&quot;anchor&quot; href=&quot;https://blog.rust-lang.org/2026/09/03/Rust-1.98.1/#contributors-to-1-98-1&quot;&gt;&lt;/a&gt;
Contributors to 1.98.1&lt;/h4&gt;
&lt;p&gt;Many people came together to create Rust 1.98.1. We couldn't have done it without all of you. &lt;a href=&quot;https://thanks.rust-lang.org/rust/1.98.1/&quot; rel=&quot;external&quot;&gt;Thanks!&lt;/a&gt;&lt;/p&gt;</content:encoded>
	<dc:date>2026-09-03T00:00:00+00:00</dc:date>
	<dc:creator>The Rust Release Team</dc:creator>
</item>
<item rdf:about="https://blog.thunderbird.net/?p=4540">
	<title>Thunderbird Blog: Thunderbird Desktop New Protocol Support: Microsoft Graph API</title>
	<link>https://blog.thunderbird.net/2026/09/thunderbird-desktop-new-protocol-support-microsoft-graph-api/</link>
	<content:encoded>&lt;p&gt;As many of you know, Microsoft will be disabling Exchange Web Services (EWS) support on its Microsoft 365 platform later this year. The Thunderbird Desktop team has been hard at work to ensure continuity of functionality through this transition, and today we are pleased to announce the release of native Thunderbird support for the Microsoft Graph API! Curious what this means for you? Then keep reading to find out!&lt;/p&gt;



&lt;h3&gt;IMAP and EWS and Graph, Oh My!&lt;/h3&gt;



&lt;p&gt;When connecting to either on-premises or hosted Microsoft accounts, Thunderbird users now have an array of options. Users might not know which option is best for their case, so we’ll start with a little bit of guidance to help users decide what will be best for them. First off, if you are currently using IMAP with an on-premises Exchange account or a Microsoft 365 hosted account, and it’s currently working for you, then there’s nothing you need to do! EWS and Graph support are for users whose organizations do not allow IMAP access.&lt;/p&gt;



&lt;p&gt;Now for the more complicated part. Last year, we released &lt;a href=&quot;https://blog.thunderbird.net/2025/11/thunderbird-adds-native-microsoft-exchange-email-support/&quot;&gt;EWS email support&lt;/a&gt; for both on-premises Exchange accounts and Microsoft 365 hosted accounts. If you are using the EWS protocol with an on-premises Exchange account, then you don’t need to do anything.&lt;/p&gt;



&lt;p&gt;However, if your organization uses Microsoft 365 for email, and you’re currently using EWS to connect to that account, then you need to take action before October of this year. Earlier this year, Microsoft &lt;a href=&quot;https://techcommunity.microsoft.com/blog/exchange/exchange-online-ews-your-time-is-almost-up/4492361&quot;&gt;announced&lt;/a&gt; that they would begin a phased shutdown of EWS on Microsoft 365/Exchange Online starting in October of 2026 with the goal of a complete shutdown in 2027. If you are currently using Thunderbird’s EWS support to connect to a Microsoft 365/Exchange Online email account, then you will need to switch to the Microsoft Graph API support to keep using Thunderbird beyond these dates. See below for details.&lt;/p&gt;



&lt;p&gt;So the TL;DR is:&lt;/p&gt;



&lt;ul&gt;
&lt;li&gt;IMAP for on-premises or Microsoft 365 hosted email =&amp;gt; No action required.&lt;/li&gt;



&lt;li&gt;EWS for on-premises Exchange =&amp;gt; No action required.&lt;/li&gt;



&lt;li&gt;EWS for Microsoft 365/Exchange Online =&amp;gt; Set up a new Microsoft Graph account in Thunderbird.&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;Microsoft only supports the Graph protocol on Microsoft 365, so that is the only provider that offers it. On-premises Exchange servers do not implement the Graph API, so Thunderbird’s EWS support will continue to be the primary mechanism for users on these servers to connect to their email accounts.&lt;/p&gt;



&lt;h3&gt;Microsoft Graph Account Set Up&lt;/h3&gt;



&lt;p&gt;Thunderbird does not support migrating accounts to different protocols. Instead, you will need to set up a new account. If you have an existing EWS-connected Microsoft 365 account, first you’ll need to delete that account in Thunderbird. You can do this from the account settings. Deleting the account locally in Thunderbird will not affect any data stored on Microsoft 365, so your data is safe.&lt;/p&gt;



&lt;p&gt;Once your previous EWS account has been deleted, you can use Account Hub to set up a new account. In the new account set up dialog, enter your Microsoft 365 hosted email account. Thunderbird should automatically detect that your email is hosted on Microsoft 365 and will give you a few options for getting connected. Choose the Microsoft Graph option, and you should be good to go! If for some reason automatic configuration doesn’t work, you can still configure your account manually using &lt;a href=&quot;https://wiki.mozilla.org/Thunderbird:Microsoft_Graph_API#Manual&quot;&gt;these instructions&lt;/a&gt;.&lt;/p&gt;



&lt;h3&gt;What is currently supported?&lt;/h3&gt;



&lt;p&gt;As with EWS, Thunderbird’s current Graph support extends only to email. Thunderbird does not yet support Calendar and Address Book functionality with either EWS or Graph.&lt;/p&gt;



&lt;h3&gt;What’s in ESR?&lt;/h3&gt;



&lt;p&gt;Thunderbird’s current Extended Support Release, version 153, supports the EWS protocol, but does not support the Microsoft Graph API, which was first enabled in the Thunderbird Release channel in version 154. Users on the ESR channel who are using Microsoft 365 will need to migrate to the Release channel in order to use the Microsoft Graph API support to continue accessing Microsoft 365 hosted mailboxes.&lt;/p&gt;



&lt;h3&gt;What’s Next?&lt;/h3&gt;



&lt;p&gt;Calendar and Address Book! The Thunderbird Desktop team has already started working on support for connecting to Microsoft 365-hosted calendars using the Graph protocol. We will be busily working on this throughout the rest of the year. As with our previous work on Thunderbird support for EWS, this is the first new calendar protocol to be added to Thunderbird in many years. We are currently doing some up-front design work to ensure a sustainable product going forward and hopefully make the next calendar protocol easier to add.&lt;/p&gt;



&lt;h3&gt;How can users give us feedback?&lt;/h3&gt;



&lt;p&gt;As with all new functionality, there may be features we are missing or unexpected issues. As always, Bugzilla is always open! You can send us feature requests and issue reports using &lt;a href=&quot;https://bugzilla.mozilla.org/enter_bug.cgi?product=MailNews+Core&amp;amp;component=Networking%3A+Exchange&quot;&gt;this Bugzilla link&lt;/a&gt;. Thunderbird’s greatest strength is its community of users, developers, and supporters who help us deliver the best tools we can to connect people with one another. We welcome community involvement to help us make everything better!&lt;/p&gt;



&lt;h3&gt;Nitty-Gritty development details&lt;/h3&gt;



&lt;p&gt;Those of you who have followed along with development throughout EWS and into Graph support might have noticed that, compared to EWS, we were able to implement support for the Microsoft Graph API relatively quickly. This is largely due to the up-front thought and work that went into the design and development of Thunderbird’s EWS support. The Graph implementation was the team’s first test of the extensibility of the new architecture, and we were very pleased with the results. It took 11 months to enable basic synchronization with EWS. With the new architecture, we were able to cut that time down to 4 months with Graph.&lt;/p&gt;



&lt;p&gt;Graph’s operations are similar to the operations that EWS provides, but different enough that it served as a great first test case for how the new email client architecture can support future protocols, such as JMAP. Given the results of the Graph implementation, we are optimistic that the same architecture will extend to JMAP once the team decides to move forward to that new protocol. We are hopeful that what we have built here can provide a sustainable base on which to build future protocol support in Thunderbird.&lt;/p&gt;



&lt;p&gt;This would not have been possible without many contributions from Thunderbird developers, past and present, and the community of users who have helped us improve Thunderbird by submitting issue reports and feature requests. We are grateful to everyone for their support!&lt;/p&gt;
&lt;p&gt;The post &lt;a href=&quot;https://blog.thunderbird.net/2026/09/thunderbird-desktop-new-protocol-support-microsoft-graph-api/&quot;&gt;Thunderbird Desktop New Protocol Support: Microsoft Graph API&lt;/a&gt; appeared first on &lt;a href=&quot;https://blog.thunderbird.net&quot;&gt;The Thunderbird Blog&lt;/a&gt;.&lt;/p&gt;</content:encoded>
	<dc:date>2026-09-02T19:58:47+00:00</dc:date>
	<dc:creator>Eleanor Dicharry</dc:creator>
</item>
<item rdf:about="https://blog.mozilla.org/?p=86867">
	<title>The Mozilla Blog: AI on your terms: Firefox meets you where you are</title>
	<link>https://blog.mozilla.org/en/firefox/firefox-ai-on-your-terms/</link>
	<content:encoded>&lt;p&gt;People feel differently about AI, and here at Firefox, we think that is completely reasonable. Something else that is completely reasonable: deciding for yourself how and when you engage with AI features.&lt;br /&gt;&lt;br /&gt;For some of you, AI is part of your everyday life, whether you are using it to summarize a large amount of information, brainstorm ideas for work, or research trips and personal purchases. Some of you interact with AI as little as possible, and prefer to keep it that way. And a lot of you are somewhere in between: curious, but exploring on your own terms and at your own pace.&lt;br /&gt;&lt;br /&gt;Your personal use of AI is just that, personal. Firefox offers various levels of AI integration into your browser, and the choice between them is entirely yours. &lt;/p&gt;



&lt;h3&gt;&lt;strong&gt;Block new and current AI features in a single switch&lt;/strong&gt; &lt;/h3&gt;



&lt;figure class=&quot;wp-block-image size-large&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-86868&quot; height=&quot;576&quot; src=&quot;https://blog.mozilla.org/wp-content/blogs.dir/278/files/2026/08/Block-AI-enhancements-1024x576.jpg&quot; width=&quot;1024&quot; /&gt;&lt;/figure&gt;



&lt;p&gt;Opting out of upcoming and current AI features on your browser should not require endless navigation through multiple Settings pages. That’s why Firefox offers an &lt;a href=&quot;https://blog.mozilla.org/en/firefox/ai-controls/&quot;&gt;AI controls&lt;/a&gt; section within its General Settings panel. A single, easily located place where you can block current and future AI features and related pop-ups with the swipe of a toggle.&lt;br /&gt;&lt;br /&gt;Not only do we want people to have the choice to remove certain AI features from their Firefox browsing experience, we make sure doing so is as easy and accessible as possible. &lt;/p&gt;



&lt;h3&gt;&lt;strong&gt;Choose the features that work for you&lt;/strong&gt; &lt;/h3&gt;



&lt;p&gt;For the many people who sit in the middle of the AI usage spectrum, we made sure you can opt in and out of specific features in line with your preferences. Capabilities like AI translations, image alt text in Firefox PDF viewer, tab group suggestions, and key points in link previews can all be individually switched on and off, ensuring you can enjoy such offerings on a case by case basis as it suits your needs. &lt;br /&gt;&lt;br /&gt;In addition, if there is an &lt;a href=&quot;https://support.mozilla.org/en-US/kb/ai-chatbot&quot;&gt;AI chatbot&lt;/a&gt; provider you already trust or pay for, you can use it directly inside Firefox’s built-in desktop sidebar. This means you can use your chatbot of choice and browse side by side without ping-ponging between tabs.&lt;br /&gt;&lt;br /&gt;While some browsers integrate a singular AI model or chatbot into their system, this can restrict flexibility and concentrate data sharing. Firefox prioritizes transparency and user control by letting you select from multiple providers, allowing you to review each option’s policies before you engage with them.&lt;br /&gt;&lt;br /&gt;You can turn on AI chatbot providers in the AI controls section of browser settings and select one of the following: Anthropic Claude, ChatGPT, Google Gemini, and Le Chat Mistral. Once this feature is turned on, you can switch between chatbots within the sidebar itself based on your preferences and task at hand. &lt;/p&gt;



&lt;h3&gt;&lt;strong&gt;Smart Window, for when you want help finishing what you started&lt;/strong&gt;&lt;/h3&gt;



&lt;figure class=&quot;wp-block-image size-large&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-86879&quot; height=&quot;576&quot; src=&quot;https://blog.mozilla.org/wp-content/blogs.dir/278/files/2026/08/Firefox_SmartWindow_Distilled_Header_03-1024x576.png&quot; width=&quot;1024&quot; /&gt;&lt;/figure&gt;



&lt;p&gt;&lt;a href=&quot;https://support.mozilla.org/en-US/kb/smart-window&quot;&gt;&lt;strong&gt;Smart Window&lt;/strong&gt;&lt;/a&gt; is Firefox’s most integrated AI experience, but that doesn’t mean it compromises our commitment to choice, privacy, and transparency. Our newest window type, which we’ve been polishing and testing in beta, uses only the context you share with it to help you move work forward and across the finish line.&lt;br /&gt;&lt;br /&gt;When permitted by you, its built-in, AI-powered assistant can work directly with your open tabs and browsing history to connect the dots. This means comparing information, generating recommendations, summarizing pages, and planning projects without having to feed every crumb of context from your previous and current browsing activity each time you enter a new prompt.&lt;br /&gt;&lt;br /&gt;As we’ve built out Smart Window, we’ve added a few &lt;a href=&quot;https://blog.mozilla.org/en/firefox/firefox-smart-window/&quot;&gt;additional features&lt;/a&gt; to align its design with how people actually browse. These include the ability to group related tabs together – so you can make sense of what’s open without spending time organizing everything yourself – and visual history previews that help you spot a page you visited earlier when you can’t remember the exact URL or phrase searched. In addition, a new partnership with &lt;a href=&quot;https://blog.mozilla.org/en/firefox/firefox-exa-partnership/&quot;&gt;Exa&lt;/a&gt; enables Smart Window to not only locate current web information to include in responses, but also display the sources behind these responses so you can verify what you’re seeing, without breaking your flow.&lt;br /&gt;&lt;br /&gt;We understand people use different Firefox windows for different reasons, and often switch between options based on the task at hand. Smart Window is the window you reach for when your browsing turns into a project. When your quick search becomes inspo for the girls’ trip you’ve been meaning to plan, or finding the perfect gift for your partner becomes a dozen tabs comparing prices and reviews, turn the window you’re already using into a Smart Window. Your tabs and progress stay in place while Smart Window helps organize the task and move it forward. Use it for one complex project, use it all the time, or switch it back when you’re done. &lt;s&gt;&lt;br /&gt;&lt;/s&gt;&lt;br /&gt;Smart Window remains in beta as we continue to learn and improve from our community’s feedback. At present, it’s available in English to people in the U.S. and Canada.&lt;br /&gt;&lt;br /&gt;To try Smart Window, visit: &lt;a href=&quot;https://www.firefox.com/smart-window&quot;&gt;https://www.firefox.com/smart-window&lt;/a&gt;&lt;/p&gt;



&lt;h3&gt;Always your call &lt;/h3&gt;



&lt;p&gt;Your opinions and preferences on AI usage are individual to you.&lt;br /&gt;&lt;br /&gt;We don’t think there is one right answer for how and when to engage with AI, and we’re not going to pretend there is one. What we can do is make sure that whatever level of engagement is right for you, Firefox supports it well. Because the only person telling you how much AI you need should be you.&lt;/p&gt;
&lt;p&gt;The post &lt;a href=&quot;https://blog.mozilla.org/en/firefox/firefox-ai-on-your-terms/&quot;&gt;AI on your terms: Firefox meets you where you are&lt;/a&gt; appeared first on &lt;a href=&quot;https://blog.mozilla.org/en/&quot;&gt;The Mozilla Blog&lt;/a&gt;.&lt;/p&gt;</content:encoded>
	<dc:date>2026-09-02T13:00:00+00:00</dc:date>
	<dc:creator>Mozilla</dc:creator>
</item>
<item rdf:about="https://fxdx.dev/?p=560">
	<title>Firefox Developer Experience: Firefox WebDriver Newsletter 155</title>
	<link>https://fxdx.dev/firefox-webdriver-newsletter-155/</link>
	<content:encoded>&lt;p&gt;&lt;/p&gt;&lt;p id=&quot;block-625ec41a-ebba-4559-8294-ab8d43d24728&quot;&gt;&lt;em&gt;WebDriver is a remote control interface that enables introspection and control of user agents. As such, it can help developers to verify that their websites are working and performing well with all major browsers. The protocol is standardized by the&lt;a href=&quot;https://www.w3.org/&quot;&gt; W3C&lt;/a&gt; and consists of two separate specifications:&lt;a href=&quot;https://w3c.github.io/webdriver/&quot;&gt; WebDriver classic&lt;/a&gt; (HTTP) and the new&lt;a href=&quot;https://w3c.github.io/webdriver-bidi/&quot;&gt; WebDriver BiDi&lt;/a&gt; (Bi-Directional).This newsletter gives an overview of the work we’ve done as part of the Firefox 155 release cycle&lt;/em&gt;.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;



&lt;h3&gt;&lt;p id=&quot;block-625ec41a-ebba-4559-8294-ab8d43d24728&quot;&gt;Contributions&lt;/p&gt;&lt;/h3&gt;



&lt;p&gt;&lt;/p&gt;&lt;p id=&quot;block-625ec41a-ebba-4559-8294-ab8d43d24728&quot;&gt;Firefox is an open source project, and we are always happy to receive external code contributions to our WebDriver implementation. We want to give special thanks to everyone who filed issues, bugs, and submitted patches. In Firefox 155, several WebDriver bugs were fixed by contributors:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;



&lt;ul&gt;
&lt;li&gt;Khalid AlHaddad updated the Mozilla-specific &lt;code&gt;moz:debugging&lt;/code&gt; module to &lt;a href=&quot;https://bugzil.la/2041335&quot;&gt;no longer rely on the same nested event loop API as DevTools&lt;/a&gt;, which prevents conflicts when WebDriver BiDi and DevTools are used in parallel.&lt;/li&gt;



&lt;li&gt;&lt;a href=&quot;mailto:nirmaladvani@proton.me&quot;&gt;Nirmal Advani&lt;/a&gt; cleaned up our codebase by &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=2046156&quot;&gt;removing the executeSoon helper&lt;/a&gt;, which was just a thin wrapper on top of Services.tm.dispatchToMainThread().&lt;/li&gt;



&lt;li&gt;Nirmal Advani fixed the Actions API so that &lt;a href=&quot;https://bugzil.la/2058556&quot;&gt;the &lt;code&gt;dblclick&lt;/code&gt; event is fired when performing a double-click while holding down the &lt;code&gt;Ctrl&lt;/code&gt; key on non-macOS platforms&lt;/a&gt;.&lt;/li&gt;



&lt;li&gt;Sameem added &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1943359&quot;&gt;the cleanup logic for subscriptions when a browsing context is destroyed&lt;/a&gt;.&lt;/li&gt;



&lt;li&gt;Sameem &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=1988723&quot;&gt;removed support for the &lt;code&gt;contexts&lt;/code&gt; argument in the &lt;code&gt;session.unsubscribe&lt;/code&gt; command&lt;/a&gt;. From now on, clients can unsubscribe only by event names or subscription ids.&lt;/li&gt;
&lt;/ul&gt;



&lt;p id=&quot;block-1dca3827-38c3-478d-a4b2-a1e39af880f5&quot;&gt;WebDriver code is written in JavaScript, Python, and Rust, so any web developer can contribute! Read&lt;a href=&quot;https://firefox-source-docs.mozilla.org/setup/index.html&quot;&gt; how to set up the work environment&lt;/a&gt; and check&lt;a href=&quot;https://codetribute.mozilla.org/projects/automation&quot;&gt; the list of mentored issues&lt;/a&gt; for Marionette or the&lt;a href=&quot;https://codetribute.mozilla.org/languages/javascript?project%3DWebDriver%2520BiDi&quot;&gt; list of mentored JavaScript bugs for WebDriver BiDi&lt;/a&gt;. Join&lt;a href=&quot;https://chat.mozilla.org/#/room/#webdriver:mozilla.org&quot;&gt; our chatroom&lt;/a&gt; if you need any help to get started!&lt;/p&gt;



&lt;h3&gt;All Changes&lt;/h3&gt;



&lt;p&gt;A complete list of developer-facing changes included in this Firefox release is available in the &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/155#webdriver_conformance_webdriver_bidi_marionette&quot;&gt;MDN Firefox 155 Release Notes&lt;/a&gt;.&lt;/p&gt;</content:encoded>
	<dc:date>2026-09-01T16:00:00+00:00</dc:date>
	<dc:creator>Henrik Skupin</dc:creator>
</item>
<item rdf:about="https://blog.mozilla.org/netpolicy/?p=2611">
	<title>Mozilla Privacy Blog: Browsers compete on privacy. When the operating system allows.</title>
	<link>https://blog.mozilla.org/netpolicy/2026/09/01/browsers-compete-on-privacy-when-the-operating-system-allows/</link>
	<content:encoded>&lt;p&gt;For more than two decades, Mozilla has advocated for an internet where people, not powerful platforms, determine how technology works for them. Meaningful consumer choice requires more than&lt;a href=&quot;https://blog.mozilla.org/netpolicy/2026/05/11/six-million-selections-later-how-the-dma-is-giving-people-browser-choice/&quot;&gt; the ability to select a browser&lt;/a&gt;. People should also be able to choose what their browser can do, from the privacy protections it provides to the ways they can customize their experience.&lt;/p&gt;
&lt;p&gt;A recent Firefox product initiative brings that longstanding policy concern into focus.&lt;/p&gt;
&lt;p&gt;Firefox is&lt;a href=&quot;https://blog.mozilla.org/en/firefox/ad-blocker-on-ios/&quot;&gt; bringing a built-in Ad Blocker to Firefox for iOS&lt;/a&gt;, giving people an optional way to reduce intrusive ads and ad-related trackers while browsing. The feature uses an EasyList-based filter list and Apple’s WebKit Content Blocker framework. It is off by default and can be enabled or disabled at any time.&lt;/p&gt;
&lt;p&gt;The feature responds to years of requests from Firefox users on iPhone. It also illustrates a wider policy problem:&lt;b&gt; dominant mobile platforms can determine which privacy and customization tools competing browsers are able to offer.&lt;/b&gt;&lt;/p&gt;
&lt;h3&gt;On Firefox for desktop and Android, people can install add-ons that change how they experience the web.&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://addons.mozilla.org/blog/2025-staff-pick-add-ons/&quot;&gt;Almost 40%&lt;/a&gt; of all Firefox users take advantage of this functionality. They include content blockers, accessibility tools, password managers and other extensions that allow people to shape their browser around their own priorities.&lt;/p&gt;
&lt;p&gt;Firefox cannot offer that same add-on ecosystem on iOS. Apple’s App Review Guidelines generally require apps to remain self-contained and restrict them from downloading or executing code that introduces or changes an app’s functionality.&lt;/p&gt;
&lt;p&gt;Apple also controls the conditions under which browsers may use alternative browser engines, with entitlement pathways available only in certain jurisdictions and subject to detailed requirements that no browser developer has been able to meet. In practice, the combined effect of Apple’s app distribution and browser policies prevents Mozilla from bringing the full Firefox add-on experience available on other platforms to iPhone users.&lt;/p&gt;
&lt;p&gt;This is not simply a technical inconvenience but a competition and consumer-choice problem.&lt;/p&gt;
&lt;p&gt;A mobile platform owner controls the operating system, the primary app-distribution channel and its own browser.&lt;/p&gt;
&lt;p&gt;When that company can also determine which technologies, add-on models and operating-system capabilities competing browsers may use, it sets the boundaries within which browser competition takes place.&lt;/p&gt;
&lt;h3&gt;Operating system restrictions can prevent independent browsers from differentiating themselves.&lt;/h3&gt;
&lt;p&gt;Even when users want browsers to differentiate on privacy, operating system restrictions can prevent independent browsers from doing so. They can also force browser developers to recreate individual tools as platform-specific, built-in features rather than allowing people to choose from a broader add-on ecosystem. That increases development costs, slows or restricts innovation and produces uneven experiences across devices.&lt;/p&gt;
&lt;p&gt;The new Firefox Ad Blocker is a practical response to those constraints. It gives iPhone users more control today using the technical options currently available to us. But building one feature directly into a browser is not a replacement for a healthy, independent add-on ecosystem. It addresses a specific capability gap for Firefox users on iOS at this time.&lt;/p&gt;
&lt;h3&gt;A competitive browser ecosystem should focus on the entire user experience.&lt;/h3&gt;
&lt;p&gt;The EU’s Digital Markets Act has shown that policy interventions can improve user choice, with Mozilla and other browsers reporting significant growth following the introduction of browser choice screens. However, meaningful browser competition must extend to the full user experience. This includes whether people can easily choose and change their default browser. It also includes whether people can benefit from the full set of innovations developed by rival browsers by ensuring adequate interoperability with the operating system.  With this deeper focus on the full user experience, people can benefit from differentiated privacy and security features.&lt;/p&gt;
&lt;p&gt;People’s privacy choices should not depend on whether a dominant platform permits their browser to offer them.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;The post &lt;a href=&quot;https://blog.mozilla.org/netpolicy/2026/09/01/browsers-compete-on-privacy-when-the-operating-system-allows/&quot;&gt;Browsers compete on privacy. When the operating system allows.&lt;/a&gt; appeared first on &lt;a href=&quot;https://blog.mozilla.org/netpolicy&quot;&gt;Open Policy &amp;amp; Advocacy&lt;/a&gt;.&lt;/p&gt;</content:encoded>
	<dc:date>2026-09-01T12:59:52+00:00</dc:date>
	<dc:creator>Sema Karaman</dc:creator>
</item>
<item rdf:about="https://blog.mozilla.org/?p=86916">
	<title>The Mozilla Blog: Introducing Ad Blocker for Firefox on iOS: More control, fewer distractions</title>
	<link>https://blog.mozilla.org/en/firefox/ad-blocker-on-ios/</link>
	<content:encoded>&lt;p&gt;There’s only so much room on your screen. Pop-ups, overlays, and ads can take over fast, getting between you and what you came to do.&lt;/p&gt;



&lt;p&gt;That’s where Ad Blocker for Firefox on iOS comes in: a built-in option that blocks many third-party ads and ad-related trackers before they load, helping reduce clutter and distractions while you browse.  &lt;/p&gt;



&lt;figure class=&quot;wp-block-video&quot;&gt;&lt;video controls=&quot;controls&quot; src=&quot;https://blog.mozilla.org/wp-content/blogs.dir/278/files/2026/08/ENG_Firefox_AdBlocker_16x9_Long.mp4&quot;&gt;&lt;/video&gt;&lt;/figure&gt;



&lt;h3&gt;&lt;br /&gt;&lt;strong&gt;How it works&lt;/strong&gt;&lt;/h3&gt;



&lt;p&gt;Ad Blocker uses Apple’s WebKit Content Blocker technology and the EasyList filter list to determine what gets blocked. There’s no separate extension to install, and you can turn it on in Settings &amp;gt; Browsing &amp;gt; Ad Blocker. It’s off by default, so you decide whether to use it.&lt;/p&gt;



&lt;p&gt;Ad Blocker won’t block every ad. Ads served directly by the site you’re visiting and ads shown in search results will still appear. Sponsored shortcuts and other sponsored content shown by Firefox when you open a new tab are separate from ads on the web pages you visit, so Ad Blocker doesn’t affect them.&lt;/p&gt;



&lt;p&gt;Ad Blocker works alongside the privacy protections already built into Firefox, including &lt;a href=&quot;https://support.mozilla.org/en-US/kb/enhanced-tracking-protection-firefox-ios&quot;&gt;Enhanced Tracking Protection&lt;/a&gt;, which blocks many trackers and limits tracking across the web. &lt;/p&gt;



&lt;h3&gt;&lt;strong&gt;More control over how you experience the web&lt;/strong&gt;&lt;/h3&gt;



&lt;p&gt;On Desktop and Android, Firefox already supports a strong ecosystem of &lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/&quot;&gt;ad-blocking and privacy extensions&lt;/a&gt;, giving people the flexibility to choose the tools that work best for them. We value that ecosystem and will keep supporting it.&lt;/p&gt;



&lt;p&gt;iOS &lt;a href=&quot;http://blog.mozilla.org/netpolicy/2026/09/01/browsers-compete-on-privacy-when-the-operating-system-allows&quot;&gt;works differently&lt;/a&gt;. Extensions aren’t available in the same way, and we know people want more options. Bringing ad blocking to Firefox on iOS meant building it directly into the browser. &lt;br /&gt;&lt;br /&gt;Giving people choice in how they experience the web is important to us. Advertising helps fund much of the open web, supporting the publishers, creators and websites people rely on. We also know that ads can sometimes crowd the screen or interrupt what you’re trying to do.&lt;/p&gt;



&lt;p&gt;That’s why Ad Blocker is optional: you decide whether it’s part of how you browse. It’s part of a broader approach across Firefox to give you more control over your experience, from the &lt;a href=&quot;https://www.firefox.com/en-GB/features/add-ons/&quot;&gt;extensions&lt;/a&gt; you use to &lt;a href=&quot;https://blog.mozilla.org/en/firefox/how-to-use-ai-controls/&quot;&gt;how AI shows up&lt;/a&gt; in your browser.&lt;/p&gt;



&lt;h3&gt;&lt;strong&gt;Try it&lt;/strong&gt;&lt;/h3&gt;



&lt;p&gt;To turn on Ad Blocker, go to Settings &amp;gt; Browsing &amp;gt; Ad Blocker.&lt;/p&gt;



&lt;p&gt;If you find an ad you expected to be blocked, a site that behaves strangely or something we should improve, let us know on &lt;a href=&quot;https://connect.mozilla.org/t5/discussions/ios-ad-blocker-experiment/m-p/133902/highlight/true#M53829&quot;&gt;Mozilla Connect&lt;/a&gt;. &lt;/p&gt;



&lt;p&gt;Visit our &lt;a href=&quot;https://support.mozilla.org/en-US/kb/block-ads-firefox-ios&quot;&gt;Support page&lt;/a&gt; for more details on Ad Blocker for Firefox on iOS. For more on Firefox’s built-in privacy protections, check out &lt;a href=&quot;https://www.firefox.com/en-US/user-privacy/&quot;&gt;How Firefox Protects Your Data&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The post &lt;a href=&quot;https://blog.mozilla.org/en/firefox/ad-blocker-on-ios/&quot;&gt;Introducing Ad Blocker for Firefox on iOS: More control, fewer distractions&lt;/a&gt; appeared first on &lt;a href=&quot;https://blog.mozilla.org/en/&quot;&gt;The Mozilla Blog&lt;/a&gt;.&lt;/p&gt;</content:encoded>
	<dc:date>2026-09-01T12:45:52+00:00</dc:date>
	<dc:creator>Mozilla</dc:creator>
</item>
<item rdf:about="https://blog.rust-lang.org/2026/09/01/Rustup-1.29.1/">
	<title>The Rust Programming Language Blog: Announcing rustup 1.29.1</title>
	<link>https://blog.rust-lang.org/2026/09/01/Rustup-1.29.1/</link>
	<content:encoded>&lt;p&gt;The rustup team is happy to announce the release of rustup version 1.29.1.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://rustup.rs&quot; rel=&quot;external&quot;&gt;Rustup&lt;/a&gt; is the recommended tool to install &lt;a href=&quot;https://www.rust-lang.org&quot; rel=&quot;external&quot;&gt;Rust&lt;/a&gt;, a
programming language that empowers everyone to build reliable and efficient
software.&lt;/p&gt;
&lt;h3&gt;&lt;a class=&quot;anchor&quot; href=&quot;https://blog.rust-lang.org/2026/09/01/Rustup-1.29.1/#what-s-new-in-rustup-1-29-1&quot;&gt;&lt;/a&gt;
What's new in rustup 1.29.1&lt;/h3&gt;
&lt;p&gt;The headlines of this release are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Concurrency in certain &lt;code&gt;rustup&lt;/code&gt; operations has been improved:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;When running &lt;code&gt;rustup update&lt;/code&gt;, rustup will first check for possible updates in parallel. &lt;a href=&quot;https://github.com/rust-lang/rustup/pull/4752&quot; rel=&quot;external&quot;&gt;pr#4752&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;When running &lt;code&gt;rustup component add&lt;/code&gt; with multiple components, they will be installed concurrently. &lt;a href=&quot;https://github.com/rust-lang/rustup/pull/4790&quot; rel=&quot;external&quot;&gt;pr#4790&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Implicit installation of the active toolchain in &lt;code&gt;rustup-init&lt;/code&gt; and &lt;code&gt;rustup&lt;/code&gt; invocations has
been deprecated where deemed unnecessary and will now produce a warning. &lt;a href=&quot;https://github.com/rust-lang/rustup/pull/4840&quot; rel=&quot;external&quot;&gt;pr#4840&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Please see our
&lt;a href=&quot;https://blog.rust-lang.org/inside-rust/2026/07/03/rustup-update-1.30/#refining-the-implicit-installation-behavior&quot; rel=&quot;external&quot;&gt;blog post&lt;/a&gt;
for more details regarding this change.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;rustup doc&lt;/code&gt; now supports the &lt;code&gt;--serve&lt;/code&gt; flag which allows serving the docs over local HTTP.
This should help users with containerized browser and/or rustup setups. &lt;a href=&quot;https://github.com/rust-lang/rustup/pull/4986&quot; rel=&quot;external&quot;&gt;pr#4986&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Installing &lt;code&gt;i686-pc-windows-*&lt;/code&gt; host toolchains on 64-bit Windows now requires &lt;code&gt;--force-non-host&lt;/code&gt;.
&lt;a href=&quot;https://github.com/rust-lang/rustup/pull/4935&quot; rel=&quot;external&quot;&gt;pr#4935&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;rustup-init&lt;/code&gt; will no longer leave unexpected files on disk after cancelled installations. &lt;a href=&quot;https://github.com/rust-lang/rustup/pull/4996&quot; rel=&quot;external&quot;&gt;pr#4996&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A bug has been fixed which might cause Windows installation to fail when using &lt;code&gt;rustup-init.sh&lt;/code&gt;.
&lt;a href=&quot;https://github.com/rust-lang/rustup/pull/4756&quot; rel=&quot;external&quot;&gt;pr#4756&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&quot;Target &lt;strong&gt;triple&lt;/strong&gt;&quot; has been renamed to &quot;target &lt;strong&gt;tuple&lt;/strong&gt;&quot; across the project to reflect the
&lt;a href=&quot;https://github.com/rust-lang/rust/pull/125579/changes/a26450cf81d67d68d3c6157579f8d968349129e7&quot; rel=&quot;external&quot;&gt;new terminology&lt;/a&gt;.
&lt;a href=&quot;https://github.com/rust-lang/rustup/pull/4743&quot; rel=&quot;external&quot;&gt;pr#4743&lt;/a&gt; &lt;a href=&quot;https://github.com/rust-lang/rustup/pull/4827&quot; rel=&quot;external&quot;&gt;pr#4827&lt;/a&gt; &lt;a href=&quot;https://github.com/rust-lang/rustup/pull/4834&quot; rel=&quot;external&quot;&gt;pr#4834&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Please note that this is not a breaking change in the CLI since the existing
options such as &lt;code&gt;--target&lt;/code&gt; are not using this terminology.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In addition, rustup now officially supports &lt;code&gt;aarch64-pc-windows-gnullvm&lt;/code&gt; as a host platform. &lt;a href=&quot;https://github.com/rust-lang/rustup/pull/4523&quot; rel=&quot;external&quot;&gt;pr#4523&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Further details are available in the &lt;a href=&quot;https://github.com/rust-lang/rustup/blob/stable/CHANGELOG.md&quot; rel=&quot;external&quot;&gt;changelog&lt;/a&gt;!&lt;/p&gt;
&lt;h3&gt;&lt;a class=&quot;anchor&quot; href=&quot;https://blog.rust-lang.org/2026/09/01/Rustup-1.29.1/#how-to-update&quot;&gt;&lt;/a&gt;
How to update&lt;/h3&gt;
&lt;p&gt;If you have a previous version of rustup installed, getting the new one is as easy as stopping
any programs which may be using rustup (e.g. closing your IDE) and running:&lt;/p&gt;
&lt;pre class=&quot;giallo z-code&quot;&gt;&lt;code&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;$ rustup self update&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Rustup will also automatically update itself at the end of a normal toolchain update:&lt;/p&gt;
&lt;pre class=&quot;giallo z-code&quot;&gt;&lt;code&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;$ rustup update&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you don't have it already, you can &lt;a href=&quot;https://rustup.rs&quot; rel=&quot;external&quot;&gt;get rustup&lt;/a&gt; from the appropriate page on our website.&lt;/p&gt;
&lt;p&gt;Rustup's documentation is also available in &lt;a href=&quot;https://rust-lang.github.io/rustup/&quot; rel=&quot;external&quot;&gt;the rustup book&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;&lt;a class=&quot;anchor&quot; href=&quot;https://blog.rust-lang.org/2026/09/01/Rustup-1.29.1/#caveats&quot;&gt;&lt;/a&gt;
Caveats&lt;/h3&gt;
&lt;p&gt;Rustup releases can come with problems not caused by rustup itself but just due to having a new release.&lt;/p&gt;
&lt;p&gt;In particular, anti-malware scanners might block rustup or stop it from creating or copying
files, especially when installing &lt;code&gt;rust-docs&lt;/code&gt; which contains many small files.&lt;/p&gt;
&lt;p&gt;Issues like this should be automatically resolved in a few weeks when the anti-malware scanners are updated
to be aware of the new rustup release.&lt;/p&gt;
&lt;h3&gt;&lt;a class=&quot;anchor&quot; href=&quot;https://blog.rust-lang.org/2026/09/01/Rustup-1.29.1/#thanks&quot;&gt;&lt;/a&gt;
Thanks&lt;/h3&gt;
&lt;p&gt;Thanks again to all the &lt;a href=&quot;https://github.com/rust-lang/rustup/blob/stable/CHANGELOG.md#detailed-changes&quot; rel=&quot;external&quot;&gt;contributors&lt;/a&gt; who made this rustup release possible!&lt;/p&gt;</content:encoded>
	<dc:date>2026-09-01T00:00:00+00:00</dc:date>
	<dc:creator>The Rustup Team</dc:creator>
</item>
<item rdf:about="https://blog.mozilla.org/netpolicy/?p=2619">
	<title>Mozilla Privacy Blog: How Challengers Thrive and Competition Survives In Today’s Ecosystem</title>
	<link>https://blog.mozilla.org/netpolicy/2026/08/31/how-challengers-thrive-and-competition-survives-in-todays-ecosystem/</link>
	<content:encoded>&lt;p&gt;The web should be a place where people can choose how they connect, which tools they use, and who they trust. At Mozilla, we live these values, prioritizing products that ensure users can control their experience and that the web remains a global public resource.&lt;/p&gt;
&lt;p&gt;Challengers across the tech ecosystem provide these competitive opportunities, but they contend with structural barriers imposed by tech giants leveraging market dominance. A healthy internet depends on ensuring that independent companies have a fair opportunity to innovate and compete on merit. That’s why Mozilla and many others&lt;a href=&quot;https://blog.mozilla.org/netpolicy/2026/06/11/a-handful-of-companies-control-the-web-aicoa-can-change-that/&quot;&gt; support key legislation like AICOA&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;So how do we promote proposals like AICOA and ensure that challengers can thrive in markets controlled by powerful gatekeepers?  We explored these questions and more at the recent Mozilla Meetup, &lt;b&gt;“How Challengers Thrive: Why Competition Matters for AI, Security, and the Open Internet.”&lt;/b&gt;  Across panel events, a lightning discussion, and a networking happy hour, we discussed promoting an innovative, secure internet.&lt;/p&gt;
&lt;p&gt;Partnering with Internet Works, Mozilla invited leading minds in tech policy to explore the importance of Middle Tech, AI’s impact on security and competition, and new research on&lt;a href=&quot;https://research.mozilla.org/browser-competition/over-the-edge-2/&quot;&gt; deceptive design practices&lt;/a&gt;. Below are some highlights.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;On today’s competition landscape, and Middle Tech as a user-first alternative:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Peter Chandler, Executive Director, Internet Works:&lt;/p&gt;
&lt;p&gt;&lt;i&gt;“Less competition equals less innovation equals less choices for consumers. It’s that simple.”&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Charlotte Slaiman, Principal, Charlotte Slaiman Impact Advising:&lt;/p&gt;
&lt;p&gt;&lt;i&gt;“There are all sorts of reasons that competition is not just a click away. There are lock-in effects. There is gatekeeper power. Those things are protecting incumbents and making it much harder for consumers to switch to an alternative.”&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;On the impact of deceptive design tactics:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Gemma Petrie, Principal Researcher, Competition &amp;amp; Regulation, Mozilla:&lt;/p&gt;
&lt;p&gt;&lt;i&gt;“For independent browsers like Firefox, dominant operating systems are both the gateway to consumers and the direct competitor. When these platforms use harmful design to undermine free choice, this is not simply inconvenient. It can create consumer harm by overriding informed choice, social harm by eroding public trust in technology, and market harm by undermining competition and innovation.” &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;On the role of AI in competition and security: &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Helen Toner, Executive Director, Georgetown’s Center for Security and Emerging Technology (CSET):&lt;/p&gt;
&lt;p&gt;&lt;i&gt;“It is really notable that in open source software, if you have more eyes on software and you can identify vulnerabilities, that makes it easier and quicker to patch those vulnerabilities to solve the problem. With AI, often we actually don’t have very good solutions when we identify problems, when we identify security risks, and so I think that can change some of the dynamics.”&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Chris Lewis, President &amp;amp; CEO, Public Knowledge:&lt;/p&gt;
&lt;p&gt;&lt;i&gt;“We have an opportunity. It’s not too late in the AI era to not only design for competition through open technology, open source AI, model weights, some of the things we heard in the introduction, but also to set policies that promote competition.”&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Avery Gardiner, Director of Global Competition Policy, Spotify:&lt;/p&gt;
&lt;p&gt;&lt;i&gt;“A big part of what I’m thinking about with AI is how quickly it allows us to innovate as an app developer, right, and how quickly we can speed up our coding, bring more features to consumers, bring more things to market, and be better at innovating for the consumer. And all of our competitors can do the same thing. So there’s this remarkable thing where the AI opportunities, the AI services, are getting better every passing day.”&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;There’s a reason we convene this community. As the web becomes both more complex and even more integral to our lives, competition offers people the ability to make meaningful choices about privacy, security, and control. Competition fosters innovation and spurs better products and services. Now is a particularly important moment to advance these priorities.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;The post &lt;a href=&quot;https://blog.mozilla.org/netpolicy/2026/08/31/how-challengers-thrive-and-competition-survives-in-todays-ecosystem/&quot;&gt;How Challengers Thrive and Competition Survives In Today’s Ecosystem&lt;/a&gt; appeared first on &lt;a href=&quot;https://blog.mozilla.org/netpolicy&quot;&gt;Open Policy &amp;amp; Advocacy&lt;/a&gt;.&lt;/p&gt;</content:encoded>
	<dc:date>2026-08-31T18:16:31+00:00</dc:date>
	<dc:creator>Jenn Taylor Hodges</dc:creator>
</item>
<item rdf:about="https://blog.mozilla.org/l10n/?p=1918">
	<title>Mozilla Localization (L10N): Minding My Language: My Internship Story</title>
	<link>https://blog.mozilla.org/l10n/2026/08/31/minding-my-language-my-internship-story/</link>
	<content:encoded>&lt;p&gt;Hello everyone! It’s Jamie. My internship at Mozilla is quite unfortunately coming to an end, after which I will be heading back to study at the University of Toronto. In this post, I want to share a rundown of my story working on the Localization (L10N) team, break down the projects I built, and reflect on what made this experience so special.&lt;/p&gt;
&lt;h3&gt;The First Day&lt;/h3&gt;
&lt;p&gt;Before joining Mozilla I was quite a bit nervous, as I had never worked at such a large organization before. The first day shattered this perception, as getting an office tour and having a live Q&amp;amp;A with VPs of Engineering really set the expectations of what working at Mozilla would be like.&lt;/p&gt;
&lt;p&gt;The Toronto office became the go-to place for connecting with passionate, mission-oriented people across different teams. After getting my computer set up, I immediately got to work on &lt;a href=&quot;http://github.com/mozilla/pontoon/&quot;&gt;Pontoon&lt;/a&gt;, Mozilla’s Translation Management System (TMS). Since Pontoon’s codebase relies on React and Django — frameworks I’ve worked with before — I was able to set up my local environment running smoothly and ship code early on. Over time, I had the opportunity to meet my fellow interns, each on their own teams, and we had chances to bond over our shared experiences and different problems.&lt;/p&gt;
&lt;div class=&quot;wp-caption alignnone&quot; id=&quot;attachment_1920&quot; style=&quot;width: 2058px;&quot;&gt;&lt;a href=&quot;https://blog.mozilla.org/l10n/files/2026/08/mozilla-image-2.jpg&quot;&gt;&lt;img alt=&quot;Spending my break time in the lounge with my fellow interns.&quot; class=&quot;wp-image-1920 size-full&quot; height=&quot;1536&quot; src=&quot;https://blog.mozilla.org/l10n/files/2026/08/mozilla-image-2.jpg&quot; width=&quot;2048&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot; id=&quot;caption-attachment-1920&quot;&gt;Spending my break time in the lounge with my fellow interns.&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;Since Mozilla is a remote-first company, the L10N team is distributed across Europe and North America. Working with them was an absolute highlight. To put it simply, they are a brilliant group of people of engineers, project managers and open-source contributors who keep Mozilla, and by extension, the wider web open and accessible.&lt;/p&gt;
&lt;div class=&quot;wp-caption alignnone&quot; id=&quot;attachment_1922&quot; style=&quot;width: 2570px;&quot;&gt;&lt;a href=&quot;https://blog.mozilla.org/l10n/files/2026/08/mozilla-image-3-scaled.jpeg&quot;&gt;&lt;img alt=&quot;Group photo with the L10N team! Taken August 2026&quot; class=&quot;wp-image-1922 size-full&quot; height=&quot;1881&quot; src=&quot;https://blog.mozilla.org/l10n/files/2026/08/mozilla-image-3-scaled.jpeg&quot; width=&quot;2560&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot; id=&quot;caption-attachment-1922&quot;&gt;Group photo with the L10N team! Taken August 2026&lt;/p&gt;&lt;/div&gt;
&lt;h3&gt;So, what was working at Mozilla like?&lt;/h3&gt;
&lt;p&gt;Working at Mozilla, I had the opportunity to contribute to a variety of features involving Pontoon, associated localization workflows and other cool projects. During the duration of my internship, a great deal of localization related work was centralized and continues to be that way, which significantly influenced the projects that I worked on, and more generally, how the L10N team will continue to operate when I am gone.&lt;/p&gt;
&lt;p&gt;This work unfolded against the backdrop of an ever changing technological landscape, particularly involving industry adoption of AI tools for code generation. In 2025 and 2026, agentic coding assistants like Claude Code and Cursor began to achieve mass adoption in software development. At Mozilla, I was introduced to Claude Code as a tool later in my internship, which was excellent, as it allowed me to gain a broad understanding of how the codebase worked without the use of AI. After the introduction of Claude Code to my workflow, I was able to push code and conduct code reviews on a much greater scale. I appreciate that Mozilla does not shy away from the practical uses of AI, especially in the realm of improving engineer and localizer workflows, and importantly, making it a choice.&lt;/p&gt;
&lt;h3&gt;The Work&lt;/h3&gt;
&lt;p&gt;Here is a shortlist of the varying projects I had the opportunity to work on at my time with the L10N team.&lt;/p&gt;
&lt;h4&gt;&lt;a href=&quot;https://github.com/mozilla/pontoon/pulls?q=is%3Apr+%233666+%233691+%233699+%233702+%233703+%233704+%233727+%233825+%233775+%233761+%233827+%233834+%233837&quot;&gt;GraphQL Deprecation and REST API Implementation&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;The first task I was assigned to primarily revolved around the deprecation of Pontoon’s public-facing GraphQL API endpoints in favor of a Django REST Framework implementation. The motivations for this project included a preference for simplicity, desire for faster API response times and consistency with existing vanilla Django REST endpoints. The new public facing API lives &lt;a href=&quot;https://pontoon.mozilla.org/api/v2/&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h4&gt;&lt;a href=&quot;https://github.com/mozilla/pontoon/pull/3729&quot;&gt;Personal Access Tokens&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;The next project I was given was to devise a new personal access token (PAT) implementation in Pontoon in order to gate permissions to the newly created REST API endpoints. I was inspired by the way that GitHub did their Classic personal access tokens so I tried to model my design around their implementation as much as possible.&lt;/p&gt;
&lt;h4&gt;&lt;a href=&quot;https://github.com/mozilla/pontoon/pulls?q=is%3Apr+%233799+%233926&quot;&gt;Pontoon Translation Search&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;The next project I took up was to reduce the feature gap between Pontoon and &lt;a href=&quot;https://transvision.mozfr.org/&quot;&gt;Transvision&lt;/a&gt;. For context, Transvision was and is used for searching available translations of strings across certain Mozilla products. It uses GitHub as its primary source, which is why it is limited only to the big projects. Thus the motivation was to create a similar service directly on Pontoon that has the most up to date strings with all Mozilla products, with data manipulation and access being a non-issue due to existing on Pontoon directly. Translation Search lives &lt;a href=&quot;https://pontoon.mozilla.org/search/&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;wp-caption alignnone&quot; id=&quot;attachment_1831&quot; style=&quot;width: 2032px;&quot;&gt;&lt;a href=&quot;https://blog.mozilla.org/l10n/files/2026/02/Screenshot-2026-02-11-at-6.35.43 PM.png&quot;&gt;&lt;img alt=&quot;Pontoon's Translation Search feature, which searches for strings across Mozilla's localized projects.&quot; class=&quot;wp-image-1831 size-full&quot; height=&quot;1468&quot; src=&quot;https://blog.mozilla.org/l10n/files/2026/02/Screenshot-2026-02-11-at-6.35.43 PM.png&quot; width=&quot;2022&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot; id=&quot;caption-attachment-1831&quot;&gt;Pontoon’s Translation Search, which searches for strings across Mozilla’s localized projects.&lt;/p&gt;&lt;/div&gt;
&lt;h4&gt;&lt;a href=&quot;https://github.com/mozilla-l10n/pontoon-addon/pull/1060&quot;&gt;Taking responsibility for Pontoon Add-on&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;The &lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/pontoon-tools/&quot;&gt;Pontoon Add-on&lt;/a&gt; was a community maintained browser extension that enabled localizers to keep track of their locale’s progress and receive any notifications from Pontoon directly in the browser. As part of the Pontoon API rework mentioned earlier, we needed to refactor the add-on code in order to maintain functionality. The main contributor had limited availability to continue maintaining the add-on anymore, so Mozilla assumed ownership of the extension, and we managed to clean up some of the backlog and redeploy.&lt;/p&gt;
&lt;h4&gt;&lt;a href=&quot;https://github.com/mozilla-l10n/android-l10n/pull/1093&quot;&gt;Firefox for Android localization workflow changes&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;For years, Firefox Desktop and Firefox for Android used to operate under different localization workflows. Firefox for Android’s workflow was written such that Android developers needed to maintain deprecated strings to prevent previous versions of localizations of Firefox for Android breaking. Firefox Desktop does not have this issue due to different logic, so I rewrote the whole Firefox for Android workflow to be closer in substance to Firefox Desktop’s localization process. This subsequently deprecated the need for Android engineers to maintain the string deprecation process needed, which was great.&lt;/p&gt;
&lt;h4&gt;&lt;a href=&quot;https://github.com/mozilla/pontoon/pulls?q=is%3Apr+%233965+%233968+%234189+%234258+%234277+%234282+%234336+%234338+%234366+%234367&quot;&gt;Insights Project Manager Dashboard and Alert system&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;The last main feature set I worked on was the Insights dashboard and accompanying alert system. For context, the Project Managers on the L10N team needed to calculate a score assigned to locales each month for community health analysis purposes using a mish mash of spreadsheets and Python scripts. This project automated the capture and calculation of these statistics to the first of each month and displayed them on a dashboard along with other useful information. The alert system was also implemented which notifies admins of significant changes of scores for specific locales, so certain locales can get increased focus.&lt;/p&gt;
&lt;div class=&quot;wp-caption alignnone&quot; id=&quot;attachment_1925&quot; style=&quot;width: 1964px;&quot;&gt;&lt;a href=&quot;https://blog.mozilla.org/l10n/files/2026/08/Screenshot-2026-08-31-at-1.48.02 PM.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-1925 size-full&quot; height=&quot;1660&quot; src=&quot;https://blog.mozilla.org/l10n/files/2026/08/Screenshot-2026-08-31-at-1.48.02 PM.png&quot; width=&quot;1954&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot; id=&quot;caption-attachment-1925&quot;&gt;Insights dashboard, which enables our Project Managers to track locale health over time.&lt;/p&gt;&lt;/div&gt;
&lt;h3&gt;Final Thoughts&lt;/h3&gt;
&lt;p&gt;Working at Mozilla has undoubtedly been an enriching experience. I have met a great number of incredible people who have guided me, encouraged me and shaped me into a better engineer and a better person. It has certainly widened my perspective on localization as a global effort, where peoples across different languages, cultures and creeds can work together to build a better web. I leave with sharper technical skills, amazing memories, and zero regrets, only immense gratitude for the opportunity to contribute to software that empowers millions. 🙂&lt;/p&gt;
&lt;h3&gt;Acknowledgements&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;To Matjaž (engineer and mentor):&lt;/strong&gt; Your presence has been invaluable, both as a mentor and a friend. Thank you for your patience with my 10 PM deployment requests, endless questions, and edge-case bugs.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;To Flod (manager):&lt;/strong&gt; You are as always the backbone of the team, and have certainly taught me many lessons regarding leadership, professionalism and dependability. Thank you for reminding me about my deadlines and being the go-to for questions and feedback.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;To Eemeli (engineer):&lt;/strong&gt; Your Zoom call escapades have always been inspiring to me, from burning detritus, cooking random stuff, remote data lag spikes and such much more. I truly wish to become like you with such a vast and bottomless knowledge for so many facets of software engineering, &lt;i&gt;before&lt;/i&gt; AI completely rots my brain.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;To Ayush (fellow intern):&lt;/strong&gt; I hope my mentorship was as helpful to you as your camaraderie was to me. You are going to accomplish great things, my friend.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;To Eric (engineer):&lt;/strong&gt; I very much enjoyed your unique German humor, your kindness and passion for building cool technologies.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;To Camila (PM):&lt;/strong&gt; Your personality is incredibly energetic, and I’m sure you will continue to bring so much positive energy to the team. I hope that you continue to be ambitious in everything that you do.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;To Eda (PM):&lt;/strong&gt; I really hope you enjoy working as part of the L10N team. I hope that you continue to make an excellent contribution to Mozilla!&lt;/p&gt;
&lt;p&gt;Thank you for reading about my time at Mozilla! If you would like to learn more or wish to connect, feel free to contact me on &lt;a href=&quot;https://www.linkedin.com/in/jamie-hu-757785213/&quot;&gt;LinkedIn&lt;/a&gt;.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;em&gt;Fin.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;</content:encoded>
	<dc:date>2026-08-31T18:07:31+00:00</dc:date>
	<dc:creator>Jamie Hu</dc:creator>
</item>
<item rdf:about="https://servo.org/blog/2026/08/31/july-in-servo/">
	<title>The Servo Blog: July in Servo: more platforms, faster canvas, web fonts in SVG, and more!</title>
	<link>https://servo.org/blog/2026/08/31/july-in-servo/</link>
	<content:encoded>&lt;p&gt;&lt;a href=&quot;https://github.com/servo/servo/releases/tag/v0.5.0&quot;&gt;&lt;strong&gt;Servo 0.5.0&lt;/strong&gt;&lt;/a&gt; contains all of the changes we landed in July, which came out to &lt;strong&gt;488 commits&lt;/strong&gt;, and we now publish binaries for &lt;strong&gt;Linux aarch64&lt;/strong&gt; (&lt;a href=&quot;https://github.com/mukilan&quot;&gt;@mukilan&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46760&quot;&gt;#46760&lt;/a&gt;)!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DOM text selections&lt;/strong&gt; are now visible (&lt;a href=&quot;https://github.com/mrobinson&quot;&gt;@mrobinson&lt;/a&gt;, &lt;a href=&quot;https://github.com/SimonSapin&quot;&gt;@SimonSapin&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46698&quot;&gt;#46698&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46864&quot;&gt;#46864&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46742&quot;&gt;#46742&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46889&quot;&gt;#46889&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46126&quot;&gt;#46126&lt;/a&gt;).
Interactive selection is coming soon!&lt;/p&gt;
&lt;p&gt;For security fixes, see &lt;a href=&quot;https://servo.org/blog/2026/08/31/july-in-servo/#security&quot;&gt;&lt;strong&gt;§ Security&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;figure&gt;
    &lt;a href=&quot;https://servo.org/img/blog/2026-08-diffie.png&quot;&gt;&lt;img alt=&quot;servoshell 0.5.0 showing several new features: ‘text-decoration-thickness’, ‘box-decoration-break’, web fonts in inline `&amp;lt;svg&amp;gt;`, and DOM selection rendering&quot; src=&quot;https://servo.org/img/blog/2026-08-diffie.png&quot; /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;p&gt;We’ve shipped several new web platform features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;‘Cache-Control: stale-while-revalidate’&lt;/strong&gt; (&lt;a href=&quot;https://github.com/arayaryoma&quot;&gt;@arayaryoma&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46060&quot;&gt;#46060&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;‘text-decoration-thickness’&lt;/strong&gt; (&lt;a href=&quot;https://github.com/nicoburns&quot;&gt;@nicoburns&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46592&quot;&gt;#46592&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;‘box-decoration-break’&lt;/strong&gt;, for the most part (&lt;a href=&quot;https://github.com/Psychpsyo&quot;&gt;@Psychpsyo&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/45492&quot;&gt;#45492&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;‘@font-feature-values’&lt;/strong&gt;, for the most part (&lt;a href=&quot;https://github.com/simonwuelker&quot;&gt;@simonwuelker&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/45308&quot;&gt;#45308&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;‘font-language-override’&lt;/strong&gt;, for the most part (&lt;a href=&quot;https://github.com/simonwuelker&quot;&gt;@simonwuelker&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46618&quot;&gt;#46618&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;‘font-variant-alternates’&lt;/strong&gt;, for the most part (&lt;a href=&quot;https://github.com/simonwuelker&quot;&gt;@simonwuelker&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/45308&quot;&gt;#45308&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Plus a bunch of new DOM APIs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://wicg.github.io/webcrypto-secure-curves/#ed448&quot;&gt;&lt;strong&gt;Ed448&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&quot;https://wicg.github.io/webcrypto-secure-curves/#x448&quot;&gt;&lt;strong&gt;X448&lt;/strong&gt;&lt;/a&gt;, and &lt;a href=&quot;https://wicg.github.io/webcrypto-modern-algos/#kmac&quot;&gt;&lt;strong&gt;KMAC&lt;/strong&gt;&lt;/a&gt; algorithms in &lt;strong&gt;Subtle­Crypto&lt;/strong&gt; (&lt;a href=&quot;https://github.com/kkoyung&quot;&gt;@kkoyung&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46402&quot;&gt;#46402&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46141&quot;&gt;#46141&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46180&quot;&gt;#46180&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46583&quot;&gt;#46583&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46606&quot;&gt;#46606&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46622&quot;&gt;#46622&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46334&quot;&gt;#46334&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46376&quot;&gt;#46376&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;‘insert­Horizontal­Rule’&lt;/strong&gt;, &lt;strong&gt;‘insert­Image’&lt;/strong&gt;, &lt;strong&gt;‘insert­Text’&lt;/strong&gt;, and &lt;strong&gt;‘forward­Delete’&lt;/strong&gt; commands in &lt;strong&gt;document.exec­Command()&lt;/strong&gt; (&lt;a href=&quot;https://github.com/Psychpsyo&quot;&gt;@Psychpsyo&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46608&quot;&gt;#46608&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46597&quot;&gt;#46597&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46538&quot;&gt;#46538&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46838&quot;&gt;#46838&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Animation­Effect&lt;/strong&gt; (&lt;a href=&quot;https://github.com/simonwuelker&quot;&gt;@simonwuelker&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46677&quot;&gt;#46677&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;new Touch()&lt;/strong&gt; (&lt;a href=&quot;https://github.com/yezhizhen&quot;&gt;@yezhizhen&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46741&quot;&gt;#46741&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;duplex&lt;/strong&gt; property on &lt;strong&gt;Request&lt;/strong&gt; (&lt;a href=&quot;https://github.com/Taym95&quot;&gt;@Taym95&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46858&quot;&gt;#46858&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;effect&lt;/strong&gt; property on &lt;strong&gt;Animation&lt;/strong&gt; (&lt;a href=&quot;https://github.com/simonwuelker&quot;&gt;@simonwuelker&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46677&quot;&gt;#46677&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;get­Keyframes()&lt;/strong&gt; and &lt;strong&gt;set­Keyframes()&lt;/strong&gt; on &lt;strong&gt;Keyframe­Effect&lt;/strong&gt; (&lt;a href=&quot;https://github.com/simonwuelker&quot;&gt;@simonwuelker&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46118&quot;&gt;#46118&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;id&lt;/strong&gt; property on &lt;strong&gt;Largest­Contentful­Paint&lt;/strong&gt; (&lt;a href=&quot;https://github.com/shubhamg13&quot;&gt;@shubhamg13&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46828&quot;&gt;#46828&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;read-only &lt;strong&gt;CSS­Font­Feature­Values­Rule&lt;/strong&gt; (&lt;a href=&quot;https://github.com/simonwuelker&quot;&gt;@simonwuelker&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46728&quot;&gt;#46728&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is another big update, so here’s an outline:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://servo.org/blog/2026/08/31/july-in-servo/#you-can-help&quot;&gt;&lt;strong&gt;You can help!&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://servo.org/blog/2026/08/31/july-in-servo/#security&quot;&gt;&lt;strong&gt;Security&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://servo.org/blog/2026/08/31/july-in-servo/#real-world-compat&quot;&gt;&lt;strong&gt;Real world compat&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://servo.org/blog/2026/08/31/july-in-servo/#work-in-progress&quot;&gt;&lt;strong&gt;Work in progress&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://servo.org/blog/2026/08/31/july-in-servo/#embedding-api&quot;&gt;&lt;strong&gt;Embedding API&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://servo.org/blog/2026/08/31/july-in-servo/#for-users-and-developers&quot;&gt;&lt;strong&gt;For users and developers&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://servo.org/blog/2026/08/31/july-in-servo/#more-on-the-web-platform&quot;&gt;&lt;strong&gt;More on the web platform&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://servo.org/blog/2026/08/31/july-in-servo/#performance-and-stability&quot;&gt;&lt;strong&gt;Performance and stability&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://servo.org/blog/2026/08/31/july-in-servo/#new-contributors&quot;&gt;&lt;strong&gt;New contributors&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;You can help! &lt;a class=&quot;header-anchor&quot; href=&quot;https://servo.org/blog/2026/08/31/july-in-servo/#you-can-help!&quot;&gt;
        &lt;span class=&quot;icon hashlink&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;/i&gt;&lt;/span&gt;
      &lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;If you’re working on a pull request that you think might be interesting for the next monthly update, even if you’re not 100% sure, tell us about it by following the steps below:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;You add the &lt;span&gt;&lt;span&gt;monthly update&lt;/span&gt;&lt;/span&gt; label to your pull request, or comment &lt;code&gt;&lt;a href=&quot;https://github.com/servo-highfive&quot;&gt;@servo-highfive&lt;/a&gt; monthly update&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Highfive posts a comment asking you some questions&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;You answer those questions in a comment containing &lt;code&gt;&lt;a href=&quot;https://github.com/servo-highfive&quot;&gt;@servo-highfive&lt;/a&gt; monthly update answer&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Security &lt;a class=&quot;header-anchor&quot; href=&quot;https://servo.org/blog/2026/08/31/july-in-servo/#security&quot;&gt;
        &lt;span class=&quot;icon hashlink&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;/i&gt;&lt;/span&gt;
      &lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Servo was potentially affected by vulnerabilities in &lt;a href=&quot;https://crates.io/crates/quick-xml&quot;&gt;&lt;strong&gt;quick-xml&lt;/strong&gt;&lt;/a&gt; and &lt;a href=&quot;https://crates.io/crates/crossbeam-epoch&quot;&gt;&lt;strong&gt;crossbeam-epoch&lt;/strong&gt;&lt;/a&gt; that have been fixed in Servo 0.5.0 (&lt;a href=&quot;https://github.com/atouchet&quot;&gt;@atouchet&lt;/a&gt;, &lt;a href=&quot;https://github.com/Loirooriol&quot;&gt;@Loirooriol&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46737&quot;&gt;#46737&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46324&quot;&gt;#46324&lt;/a&gt;).
For more details, see &lt;a href=&quot;https://rustsec.org/advisories/RUSTSEC-2026-0194&quot;&gt;RUSTSEC-2026-0194&lt;/a&gt;, &lt;a href=&quot;https://rustsec.org/advisories/RUSTSEC-2026-0195&quot;&gt;RUSTSEC-2026-0195&lt;/a&gt;, and &lt;a href=&quot;https://rustsec.org/advisories/RUSTSEC-2026-0204&quot;&gt;RUSTSEC-2026-0204&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We’ve updated &lt;strong&gt;&lt;a href=&quot;https://github.com/servo/mozangle&quot;&gt;ANGLE&lt;/a&gt;&lt;/strong&gt; from a version based on Firefox 115.x ESR (&lt;a href=&quot;https://hg.mozilla.org/mozilla-unified/file/02755361e26d82768eb1d5f576145e19d7c265cd/gfx/angle&quot;&gt;02755361e26d8&lt;/a&gt;) to a version based on Firefox 140.12.0 ESR (&lt;a href=&quot;https://github.com/mozilla-firefox/firefox/commit/f8025617e815f21388b40baf189338d31a5f9a0a&quot;&gt;f8025617e815f&lt;/a&gt;), which likely includes many security fixes (&lt;a href=&quot;https://github.com/jschwe&quot;&gt;@jschwe&lt;/a&gt;, &lt;a href=&quot;https://github.com/sagudev&quot;&gt;@sagudev&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46455&quot;&gt;#46455&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/mozangle/pull/100&quot;&gt;mozangle#100&lt;/a&gt;).&lt;/p&gt;
&lt;h3&gt;Real world compat &lt;a class=&quot;header-anchor&quot; href=&quot;https://servo.org/blog/2026/08/31/july-in-servo/#real-world-compat&quot;&gt;
        &lt;span class=&quot;icon hashlink&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;/i&gt;&lt;/span&gt;
      &lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The duck on the &lt;strong&gt;DuckDuckGo (&lt;a href=&quot;https://duckduckgo.com/&quot;&gt;duckduckgo.com&lt;/a&gt;)&lt;/strong&gt; landing page now renders in v0.5.0, after we fixed a preload bug that affected SVG images (&lt;a href=&quot;https://github.com/jdm&quot;&gt;@jdm&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46668&quot;&gt;#46668&lt;/a&gt;).&lt;/p&gt;
&lt;figure class=&quot;_spaced&quot;&gt;
    &lt;div class=&quot;_peel&quot;&gt;
        &lt;div class=&quot;_line&quot;&gt;
            &lt;div class=&quot;_left&quot;&gt;&lt;div&gt;v0.4.0&lt;/div&gt;&lt;/div&gt;
            &lt;div class=&quot;_right&quot;&gt;&lt;div&gt;v0.5.0&lt;/div&gt;&lt;/div&gt;
        &lt;/div&gt;
        &lt;img src=&quot;https://servo.org/img/blog/2026-08-143728.png&quot; /&gt;
        &lt;img src=&quot;https://servo.org/img/blog/2026-08-143737.png&quot; /&gt;
    &lt;/div&gt;
    &lt;figcaption&gt;&lt;a href=&quot;https://duckduckgo.com/&quot;&gt;duckduckgo.com&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Most of &lt;strong&gt;Gumroad (&lt;a href=&quot;https://gumroad.com/&quot;&gt;gumroad.com&lt;/a&gt;)&lt;/strong&gt;, except for the landing page, did not render at all in v0.4.0, but as of v0.5.0, pages like the &lt;a href=&quot;https://gumroad.com/discover&quot;&gt;&lt;strong&gt;Discover page&lt;/strong&gt;&lt;/a&gt; or &lt;a href=&quot;https://harrycraft2.gumroad.com/l/theworldslongestcity&quot;&gt;&lt;strong&gt;this product page&lt;/strong&gt;&lt;/a&gt; render almost perfectly.&lt;/p&gt;
&lt;figure class=&quot;_spaced&quot;&gt;
    &lt;div class=&quot;_peel&quot;&gt;
        &lt;div class=&quot;_line&quot;&gt;
            &lt;div class=&quot;_left&quot;&gt;&lt;div&gt;v0.4.0&lt;/div&gt;&lt;/div&gt;
            &lt;div class=&quot;_right&quot;&gt;&lt;div&gt;v0.5.0&lt;/div&gt;&lt;/div&gt;
        &lt;/div&gt;
        &lt;img src=&quot;https://servo.org/img/blog/2026-08-165201.png&quot; /&gt;
        &lt;img src=&quot;https://servo.org/img/blog/2026-08-164722.png&quot; /&gt;
    &lt;/div&gt;
    &lt;figcaption&gt;&lt;a href=&quot;https://gumroad.com/discover&quot;&gt;gumroad.com&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;_spaced&quot;&gt;
    &lt;div class=&quot;_peel&quot;&gt;
        &lt;div class=&quot;_line&quot;&gt;
            &lt;div class=&quot;_left&quot;&gt;&lt;div&gt;v0.4.0&lt;/div&gt;&lt;/div&gt;
            &lt;div class=&quot;_right&quot;&gt;&lt;div&gt;v0.5.0&lt;/div&gt;&lt;/div&gt;
        &lt;/div&gt;
        &lt;img src=&quot;https://servo.org/img/blog/2026-08-162729.png&quot; /&gt;
        &lt;img src=&quot;https://servo.org/img/blog/2026-08-162731.png&quot; /&gt;
    &lt;/div&gt;
    &lt;figcaption&gt;&lt;a href=&quot;https://harrycraft2.gumroad.com/l/theworldslongestcity&quot;&gt;gumroad.com&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;p&gt;We’re interested to hear how well your favourite websites run in Servo!
Report successes in &lt;a href=&quot;https://servo.zulipchat.com/#narrow/channel/263398-general/topic/Servo.20web.20compat.20success.20stories/with/612898341&quot;&gt;this Zulip thread&lt;/a&gt;, and failures &lt;a href=&quot;https://github.com/servo/servo/issues&quot;&gt;in our GitHub issues&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Work in progress &lt;a class=&quot;header-anchor&quot; href=&quot;https://servo.org/blog/2026/08/31/july-in-servo/#work-in-progress&quot;&gt;
        &lt;span class=&quot;icon hashlink&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;/i&gt;&lt;/span&gt;
      &lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The upgrade to Stylo 2026-07-01 brings several changes to built-in &lt;strong&gt;CSS functions&lt;/strong&gt; (&lt;a href=&quot;https://github.com/Loirooriol&quot;&gt;@Loirooriol&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46129&quot;&gt;#46129&lt;/a&gt;):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;‘alpha()’&lt;/strong&gt; is now supported, under &lt;code&gt;--pref layout­_css­_alpha­_color­_function­_enabled&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;‘progress()’&lt;/strong&gt; is now supported, under &lt;code&gt;--pref layout­_css­_progress­_function­_enabled&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;‘ellipse()’&lt;/strong&gt; values &lt;strong&gt;‘closest-corner’&lt;/strong&gt; and &lt;strong&gt;‘farthest-corner’&lt;/strong&gt; are no longer stable due to spec uncertainty, but they are still experimental, under &lt;code&gt;--pref layout­_css­_ellipse­_corners­_enabled&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;‘attr()’&lt;/strong&gt; is more conformant, under &lt;code&gt;--pref layout­_css­_attr­_enabled&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Web­GPU&lt;/strong&gt; content can now enjoy better conformance and use &lt;strong&gt;GPU­External­Texture&lt;/strong&gt; and &lt;strong&gt;import­External­Texture()&lt;/strong&gt; on &lt;strong&gt;GPU­Device&lt;/strong&gt;, under &lt;code&gt;--pref dom­_webgpu­_enabled&lt;/code&gt; (&lt;a href=&quot;https://github.com/sagudev&quot;&gt;@sagudev&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/45873&quot;&gt;#45873&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46178&quot;&gt;#46178&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46286&quot;&gt;#46286&lt;/a&gt;).&lt;/p&gt;
&lt;figure&gt;
    &lt;a href=&quot;https://servo.org/img/blog/2026-08-webgpu.png&quot;&gt;&lt;img alt=&quot;servoshell 0.5.0 showing four tilted rectangles (in WebGPU), textured with a picture of a dog (which is a frame from an external video)&quot; src=&quot;https://servo.org/img/blog/2026-08-webgpu.png&quot; /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;Indexed­DB&lt;/strong&gt; content can now use the &lt;strong&gt;name&lt;/strong&gt; property on &lt;strong&gt;IDB­Index&lt;/strong&gt;, under &lt;code&gt;--pref dom­_indexeddb­_enabled&lt;/code&gt; (&lt;a href=&quot;https://github.com/skyz1&quot;&gt;@skyz1&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/45512&quot;&gt;#45512&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;document.fonts&lt;/strong&gt; now includes a &lt;strong&gt;Font­Face&lt;/strong&gt; for each valid &lt;strong&gt;‘@font-face’&lt;/strong&gt;, under &lt;code&gt;--pref dom­_fontface­_enabled&lt;/code&gt; (&lt;a href=&quot;https://github.com/simonwuelker&quot;&gt;@simonwuelker&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46509&quot;&gt;#46509&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46537&quot;&gt;#46537&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;All of the features above are enabled in servoshell’s &lt;a href=&quot;https://book.servo.org/design-documentation/experimental-features.html#experimental-web-platform-features&quot;&gt;experimental mode&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We’ve started implementing &lt;strong&gt;WebVTT&lt;/strong&gt; for native &lt;strong&gt;subtitles&lt;/strong&gt; and &lt;strong&gt;captions&lt;/strong&gt;, enabled by default (no &lt;code&gt;--pref&lt;/code&gt;).
While they don’t render just yet, we can now fetch each &amp;lt;track src&amp;gt;, parse the WebVTT, and expose cues via the &lt;strong&gt;track&lt;/strong&gt; property on &lt;strong&gt;HTML­Track­Element&lt;/strong&gt; (&lt;a href=&quot;https://github.com/TimvdLippe&quot;&gt;@TimvdLippe&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46289&quot;&gt;#46289&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46383&quot;&gt;#46383&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;July was a big month for &lt;strong&gt;accessibility&lt;/strong&gt; in Servo, under &lt;code&gt;--pref accessibility­_enabled&lt;/code&gt;.
The focus for this month has been on &lt;strong&gt;performance&lt;/strong&gt;, with the accessibility tree now supporting &lt;strong&gt;incremental updates&lt;/strong&gt; (&lt;a href=&quot;https://github.com/alice&quot;&gt;@alice&lt;/a&gt;, &lt;a href=&quot;https://github.com/delan&quot;&gt;@delan&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/45578&quot;&gt;#45578&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/45971&quot;&gt;#45971&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46589&quot;&gt;#46589&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46691&quot;&gt;#46691&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46385&quot;&gt;#46385&lt;/a&gt;), requiring &lt;strong&gt;fewer HashMap lookups&lt;/strong&gt; and &lt;strong&gt;tree walks&lt;/strong&gt; (&lt;a href=&quot;https://github.com/alice&quot;&gt;@alice&lt;/a&gt;, &lt;a href=&quot;https://github.com/delan&quot;&gt;@delan&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/45798&quot;&gt;#45798&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46740&quot;&gt;#46740&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46348&quot;&gt;#46348&lt;/a&gt;), and allowing for &lt;strong&gt;faster DOM mutations&lt;/strong&gt; (&lt;a href=&quot;https://github.com/alice&quot;&gt;@alice&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46348&quot;&gt;#46348&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46530&quot;&gt;#46530&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;We’ve also started working on the &lt;a href=&quot;https://wicg.github.io/entries-api/&quot;&gt;&lt;strong&gt;File and Directory Entries API&lt;/strong&gt;&lt;/a&gt;, to allow users to &lt;strong&gt;select&lt;/strong&gt; and &lt;strong&gt;upload entire directories&lt;/strong&gt; via &lt;strong&gt;&amp;lt;input type=file&amp;gt;&lt;/strong&gt; and &lt;strong&gt;drag-and-drop&lt;/strong&gt;.
To that end, we now have &lt;strong&gt;webkit­Get­As­Entry()&lt;/strong&gt; on &lt;strong&gt;Data­Transfer­Item&lt;/strong&gt;, plus minimal support for &lt;strong&gt;File­System­Entry&lt;/strong&gt;, &lt;strong&gt;File­System­Directory­Entry&lt;/strong&gt;, and &lt;strong&gt;File­System­File­Entry&lt;/strong&gt;, under &lt;code&gt;--pref dom­_entries­_api­_enabled&lt;/code&gt; (&lt;a href=&quot;https://github.com/yezhizhen&quot;&gt;@yezhizhen&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46456&quot;&gt;#46456&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46879&quot;&gt;#46879&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46832&quot;&gt;#46832&lt;/a&gt;).&lt;/p&gt;
&lt;h3&gt;Embedding API &lt;a class=&quot;header-anchor&quot; href=&quot;https://servo.org/blog/2026/08/31/july-in-servo/#embedding-api&quot;&gt;
        &lt;span class=&quot;icon hashlink&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;/i&gt;&lt;/span&gt;
      &lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;We’ve improved the docs for the &lt;a href=&quot;https://doc.servo.org/servo/index.html&quot;&gt;&lt;code&gt;servo&lt;/code&gt;&lt;/a&gt; crate, and for &lt;a href=&quot;https://doc.servo.org/servo/trait.WebViewDelegate.html&quot;&gt;Web­View­Delegate&lt;/a&gt; (&lt;a href=&quot;https://github.com/mukilan&quot;&gt;@mukilan&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46193&quot;&gt;#46193&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Breaking change:&lt;/strong&gt; &lt;a href=&quot;https://doc.servo.org/servo/struct.ServoBuilder.html&quot;&gt;&lt;code&gt;Servo­Builder&lt;/code&gt;&lt;/a&gt;::&lt;code&gt;webxr­_registry()&lt;/code&gt; has been &lt;strong&gt;removed&lt;/strong&gt;.
Instead use the new &lt;a href=&quot;https://doc.servo.org/servo/struct.Servo.html&quot;&gt;&lt;code&gt;Servo&lt;/code&gt;&lt;/a&gt;::&lt;a href=&quot;https://doc.servo.org/servo/struct.Servo.html#method.register_webxr_registry&quot;&gt;&lt;code&gt;register­_webxr­_registry&lt;/code&gt;&lt;/a&gt;, which is a &lt;strong&gt;lazy&lt;/strong&gt; design that has allowed servoshell to &lt;strong&gt;halve its startup time&lt;/strong&gt; (&lt;a href=&quot;https://github.com/Narfinger&quot;&gt;@Narfinger&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46494&quot;&gt;#46494&lt;/a&gt;).&lt;/p&gt;
&lt;h3&gt;For users and developers &lt;a class=&quot;header-anchor&quot; href=&quot;https://servo.org/blog/2026/08/31/july-in-servo/#for-users-and-developers&quot;&gt;
        &lt;span class=&quot;icon hashlink&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;/i&gt;&lt;/span&gt;
      &lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;servoshell&lt;/strong&gt; for &lt;strong&gt;Android&lt;/strong&gt; now runs on &lt;strong&gt;Android 10+&lt;/strong&gt; (91% market share), not just Android 13+ (68% market share), improving adaptability and reducing waste (&lt;a href=&quot;https://github.com/jschwe&quot;&gt;@jschwe&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46142&quot;&gt;#46142&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46308&quot;&gt;#46308&lt;/a&gt;).
We’ve also fixed a problem with building for Android on macOS (&lt;a href=&quot;https://github.com/jschwe&quot;&gt;@jschwe&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46128&quot;&gt;#46128&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;servoshell&lt;/strong&gt; for &lt;strong&gt;Windows&lt;/strong&gt; is now better behaved when run in a console window, making the command prompt wait until servoshell exits (&lt;a href=&quot;https://github.com/yezhizhen&quot;&gt;@yezhizhen&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/43010&quot;&gt;#43010&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;When using the Firefox &lt;strong&gt;DevTools&lt;/strong&gt;, the &lt;strong&gt;Console&lt;/strong&gt; tab now supports some basic &lt;strong&gt;autocomplete&lt;/strong&gt; (&lt;a href=&quot;https://github.com/freyacodes&quot;&gt;@freyacodes&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46382&quot;&gt;#46382&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;We’ve finished modernising servoshell for Android to use Compose UI (&lt;a href=&quot;https://github.com/veyndan&quot;&gt;@veyndan&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46085&quot;&gt;#46085&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46164&quot;&gt;#46164&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46253&quot;&gt;#46253&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46257&quot;&gt;#46257&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46317&quot;&gt;#46317&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46353&quot;&gt;#46353&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46565&quot;&gt;#46565&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46612&quot;&gt;#46612&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46626&quot;&gt;#46626&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46666&quot;&gt;#46666&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46663&quot;&gt;#46663&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46700&quot;&gt;#46700&lt;/a&gt;), and we’re now migrating Servo as a library to use Kotlin (&lt;a href=&quot;https://github.com/veyndan&quot;&gt;@veyndan&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46817&quot;&gt;#46817&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46895&quot;&gt;#46895&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46772&quot;&gt;#46772&lt;/a&gt;).&lt;/p&gt;
&lt;h3&gt;More on the web platform &lt;a class=&quot;header-anchor&quot; href=&quot;https://servo.org/blog/2026/08/31/july-in-servo/#more-on-the-web-platform&quot;&gt;
        &lt;span class=&quot;icon hashlink&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;/i&gt;&lt;/span&gt;
      &lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Inline SVG&lt;/strong&gt; can now use &lt;strong&gt;web fonts&lt;/strong&gt; defined in the containing page (&lt;a href=&quot;https://github.com/yodalee&quot;&gt;@yodalee&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/45979&quot;&gt;#45979&lt;/a&gt;).
We’re also implementing the &lt;strong&gt;SVG DOM&lt;/strong&gt;, starting with stub interfaces for &lt;strong&gt;SVG­Element&lt;/strong&gt;, SVG­Circle­Element, SVG­Defs­Element, SVG­Ellipse­Element, SVG­Line­Element, SVG­Linear­Gradient­Element, SVG­Path­Element, SVG­Polygon­Element, SVG­Polyline­Element, SVG­Radial­Gradient­Element, SVG­Stop­Element, SVG­Rect­Element, SVG­Symbol­Element, and SVG­Use­Element (&lt;a href=&quot;https://github.com/mu-mostafa98&quot;&gt;@mu-mostafa98&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46558&quot;&gt;#46558&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;lt;button&amp;gt;&lt;/strong&gt; now &lt;strong&gt;vertically centers&lt;/strong&gt; its contents (&lt;a href=&quot;https://github.com/Loirooriol&quot;&gt;@Loirooriol&lt;/a&gt;, &lt;a href=&quot;https://github.com/mrobinson&quot;&gt;@mrobinson&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46590&quot;&gt;#46590&lt;/a&gt;), and behaves better with ‘display: block’ and ‘display: inline’ (&lt;a href=&quot;https://github.com/Loirooriol&quot;&gt;@Loirooriol&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46536&quot;&gt;#46536&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;We’ve improved the conformance of &lt;strong&gt;&amp;lt;form&amp;gt;&lt;/strong&gt; without &lt;strong&gt;&amp;lt;form action&amp;gt;&lt;/strong&gt; (&lt;a href=&quot;https://github.com/kevlu93&quot;&gt;@kevlu93&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46860&quot;&gt;#46860&lt;/a&gt;), &lt;strong&gt;&amp;lt;color&amp;gt; values&lt;/strong&gt; (&lt;a href=&quot;https://github.com/Loirooriol&quot;&gt;@Loirooriol&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46129&quot;&gt;#46129&lt;/a&gt;), &lt;strong&gt;Gamepad­Event&lt;/strong&gt; (&lt;a href=&quot;https://github.com/log101&quot;&gt;@log101&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46788&quot;&gt;#46788&lt;/a&gt;), &lt;strong&gt;document.execCommand(“delete”)&lt;/strong&gt; (&lt;a href=&quot;https://github.com/Psychpsyo&quot;&gt;@Psychpsyo&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46539&quot;&gt;#46539&lt;/a&gt;), the &lt;strong&gt;selector­Text&lt;/strong&gt; property on &lt;strong&gt;CSS­Style­Rule&lt;/strong&gt; (&lt;a href=&quot;https://github.com/simonwuelker&quot;&gt;@simonwuelker&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46687&quot;&gt;#46687&lt;/a&gt;), and &lt;strong&gt;Set Window Rect&lt;/strong&gt; in WebDriver (&lt;a href=&quot;https://github.com/janeoa&quot;&gt;@janeoa&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46475&quot;&gt;#46475&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46477&quot;&gt;#46477&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;We’ve fixed bugs related to &lt;strong&gt;&amp;lt;iframe&amp;gt;&lt;/strong&gt; (&lt;a href=&quot;https://github.com/jschwe&quot;&gt;@jschwe&lt;/a&gt;, &lt;a href=&quot;https://github.com/jdm&quot;&gt;@jdm&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46587&quot;&gt;#46587&lt;/a&gt;), &lt;strong&gt;&amp;lt;img&amp;gt;&lt;/strong&gt; (&lt;a href=&quot;https://github.com/yodalee&quot;&gt;@yodalee&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46892&quot;&gt;#46892&lt;/a&gt;), &lt;strong&gt;&amp;lt;textarea&amp;gt;&lt;/strong&gt; (&lt;a href=&quot;https://github.com/SimonSapin&quot;&gt;@SimonSapin&lt;/a&gt;, &lt;a href=&quot;https://github.com/mrobinson&quot;&gt;@mrobinson&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46309&quot;&gt;#46309&lt;/a&gt;), &lt;strong&gt;custom properties&lt;/strong&gt; (&lt;a href=&quot;https://github.com/Loirooriol&quot;&gt;@Loirooriol&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46129&quot;&gt;#46129&lt;/a&gt;), &lt;strong&gt;‘::before’&lt;/strong&gt; and &lt;strong&gt;‘::after’&lt;/strong&gt; (&lt;a href=&quot;https://github.com/Loirooriol&quot;&gt;@Loirooriol&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46640&quot;&gt;#46640&lt;/a&gt;), &lt;strong&gt;‘flex-direction: column’&lt;/strong&gt; (&lt;a href=&quot;https://github.com/simonwuelker&quot;&gt;@simonwuelker&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46697&quot;&gt;#46697&lt;/a&gt;), &lt;strong&gt;‘float’&lt;/strong&gt; (&lt;a href=&quot;https://github.com/Loirooriol&quot;&gt;@Loirooriol&lt;/a&gt;, &lt;a href=&quot;https://github.com/mrobinson&quot;&gt;@mrobinson&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46407&quot;&gt;#46407&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46500&quot;&gt;#46500&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46505&quot;&gt;#46505&lt;/a&gt;), &lt;strong&gt;‘@font-face’&lt;/strong&gt; (&lt;a href=&quot;https://github.com/simonwuelker&quot;&gt;@simonwuelker&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46568&quot;&gt;#46568&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46271&quot;&gt;#46271&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46436&quot;&gt;#46436&lt;/a&gt;), &lt;strong&gt;‘position: absolute’&lt;/strong&gt; (&lt;a href=&quot;https://github.com/simonwuelker&quot;&gt;@simonwuelker&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46358&quot;&gt;#46358&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46637&quot;&gt;#46637&lt;/a&gt;), &lt;strong&gt;Blob&lt;/strong&gt; (&lt;a href=&quot;https://github.com/jdm&quot;&gt;@jdm&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46881&quot;&gt;#46881&lt;/a&gt;), &lt;strong&gt;IDB­Database&lt;/strong&gt; and &lt;strong&gt;IDB­Object­Store&lt;/strong&gt; and &lt;strong&gt;IDB­Index&lt;/strong&gt; (&lt;a href=&quot;https://github.com/mrobinson&quot;&gt;@mrobinson&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46615&quot;&gt;#46615&lt;/a&gt;), the &lt;strong&gt;adopted­Style­Sheets&lt;/strong&gt; property on &lt;strong&gt;Shadow­Root&lt;/strong&gt; (&lt;a href=&quot;https://github.com/simonwuelker&quot;&gt;@simonwuelker&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46738&quot;&gt;#46738&lt;/a&gt;), &lt;strong&gt;delete()&lt;/strong&gt; on &lt;strong&gt;Font­Face­Set&lt;/strong&gt; (&lt;a href=&quot;https://github.com/simonwuelker&quot;&gt;@simonwuelker&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46634&quot;&gt;#46634&lt;/a&gt;), &lt;strong&gt;move­Before()&lt;/strong&gt; on &lt;strong&gt;Element&lt;/strong&gt; (&lt;a href=&quot;https://github.com/mrobinson&quot;&gt;@mrobinson&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46599&quot;&gt;#46599&lt;/a&gt;), &lt;strong&gt;resize­To()&lt;/strong&gt; on &lt;strong&gt;Window&lt;/strong&gt; (&lt;a href=&quot;https://github.com/janeoa&quot;&gt;@janeoa&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46477&quot;&gt;#46477&lt;/a&gt;), the &lt;strong&gt;selected&lt;/strong&gt; property on &lt;strong&gt;HTML­Option­Element&lt;/strong&gt; (&lt;a href=&quot;https://github.com/rhit-kapilaar&quot;&gt;@rhit-kapilaar&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46386&quot;&gt;#46386&lt;/a&gt;), and the &lt;strong&gt;value&lt;/strong&gt; property on &lt;strong&gt;HTML­Select­Element&lt;/strong&gt; (&lt;a href=&quot;https://github.com/simonwuelker&quot;&gt;@simonwuelker&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46230&quot;&gt;#46230&lt;/a&gt;).&lt;/p&gt;
&lt;h3&gt;Performance and stability &lt;a class=&quot;header-anchor&quot; href=&quot;https://servo.org/blog/2026/08/31/july-in-servo/#performance-and-stability&quot;&gt;
        &lt;span class=&quot;icon hashlink&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;/i&gt;&lt;/span&gt;
      &lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;2D canvas&lt;/strong&gt; rendering is now &lt;strong&gt;multithreaded&lt;/strong&gt;, improving frame rates by &lt;strong&gt;up to 55%&lt;/strong&gt; and power consumption per frame by &lt;strong&gt;up to 42%&lt;/strong&gt; (&lt;a href=&quot;https://github.com/yezhizhen&quot;&gt;@yezhizhen&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46410&quot;&gt;#46410&lt;/a&gt;), and should use a lot less memory too (&lt;a href=&quot;https://github.com/jschwe&quot;&gt;@jschwe&lt;/a&gt;, &lt;a href=&quot;https://github.com/sagudev&quot;&gt;@sagudev&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46786&quot;&gt;#46786&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Text rendering&lt;/strong&gt; is &lt;strong&gt;up to 10x faster&lt;/strong&gt; for cases with the same text and different ‘font-size’ (&lt;a href=&quot;https://github.com/Loirooriol&quot;&gt;@Loirooriol&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46129&quot;&gt;#46129&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Flex layout&lt;/strong&gt; benchmarks are up to &lt;strong&gt;3%&lt;/strong&gt; faster, and an improvement to &lt;strong&gt;get­Elements­By­Class­Name()&lt;/strong&gt; has made some websites up to &lt;strong&gt;1%&lt;/strong&gt; faster (&lt;a href=&quot;https://github.com/Narfinger&quot;&gt;@Narfinger&lt;/a&gt;, &lt;a href=&quot;https://github.com/jdm&quot;&gt;@jdm&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46563&quot;&gt;#46563&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46595&quot;&gt;#46595&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46594&quot;&gt;#46594&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;We’ve also reduced memory usage, allocations, GC rooting steps, and other operations in many parts of Servo (&lt;a href=&quot;https://github.com/mrobinson&quot;&gt;@mrobinson&lt;/a&gt;, &lt;a href=&quot;https://github.com/jdm&quot;&gt;@jdm&lt;/a&gt;, &lt;a href=&quot;https://github.com/yezhizhen&quot;&gt;@yezhizhen&lt;/a&gt;, &lt;a href=&quot;https://github.com/Narfinger&quot;&gt;@Narfinger&lt;/a&gt;, &lt;a href=&quot;https://github.com/Gae24&quot;&gt;@Gae24&lt;/a&gt;, &lt;a href=&quot;https://github.com/SimonSapin&quot;&gt;@SimonSapin&lt;/a&gt;, &lt;a href=&quot;https://github.com/Taym95&quot;&gt;@Taym95&lt;/a&gt;, &lt;a href=&quot;https://github.com/cychronex-labs&quot;&gt;@cychronex-labs&lt;/a&gt;, &lt;a href=&quot;https://github.com/arayaryoma&quot;&gt;@arayaryoma&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46499&quot;&gt;#46499&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46411&quot;&gt;#46411&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46659&quot;&gt;#46659&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/45974&quot;&gt;#45974&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46377&quot;&gt;#46377&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/45758&quot;&gt;#45758&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46440&quot;&gt;#46440&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46762&quot;&gt;#46762&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46301&quot;&gt;#46301&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46349&quot;&gt;#46349&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46419&quot;&gt;#46419&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46418&quot;&gt;#46418&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46420&quot;&gt;#46420&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46460&quot;&gt;#46460&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46633&quot;&gt;#46633&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46638&quot;&gt;#46638&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46690&quot;&gt;#46690&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46745&quot;&gt;#46745&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46726&quot;&gt;#46726&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46564&quot;&gt;#46564&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46144&quot;&gt;#46144&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46664&quot;&gt;#46664&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46462&quot;&gt;#46462&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46139&quot;&gt;#46139&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46430&quot;&gt;#46430&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46446&quot;&gt;#46446&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46498&quot;&gt;#46498&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46548&quot;&gt;#46548&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46598&quot;&gt;#46598&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46632&quot;&gt;#46632&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46656&quot;&gt;#46656&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46678&quot;&gt;#46678&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46718&quot;&gt;#46718&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46722&quot;&gt;#46722&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46238&quot;&gt;#46238&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46072&quot;&gt;#46072&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46408&quot;&gt;#46408&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46438&quot;&gt;#46438&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46437&quot;&gt;#46437&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46528&quot;&gt;#46528&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46124&quot;&gt;#46124&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46330&quot;&gt;#46330&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46412&quot;&gt;#46412&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46807&quot;&gt;#46807&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;We’ve fixed a crash regression with memory corruption (&lt;a href=&quot;https://github.com/mrobinson&quot;&gt;@mrobinson&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46316&quot;&gt;#46316&lt;/a&gt;), several dynamic-borrow-related crashes (&lt;a href=&quot;https://github.com/Narfinger&quot;&gt;@Narfinger&lt;/a&gt;, &lt;a href=&quot;https://github.com/SharanRP&quot;&gt;@SharanRP&lt;/a&gt;, &lt;a href=&quot;https://github.com/Taym95&quot;&gt;@Taym95&lt;/a&gt;, &lt;a href=&quot;https://github.com/agrawalx&quot;&gt;@agrawalx&lt;/a&gt;, &lt;a href=&quot;https://github.com/amittenak47&quot;&gt;@amittenak47&lt;/a&gt;, &lt;a href=&quot;https://github.com/sungmen&quot;&gt;@sungmen&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46381&quot;&gt;#46381&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46384&quot;&gt;#46384&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46405&quot;&gt;#46405&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46684&quot;&gt;#46684&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46452&quot;&gt;#46452&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46770&quot;&gt;#46770&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46830&quot;&gt;#46830&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46763&quot;&gt;#46763&lt;/a&gt;), plus crashes related to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&amp;lt;area&amp;gt;&lt;/strong&gt; without &lt;strong&gt;&amp;lt;area href&amp;gt;&lt;/strong&gt; (&lt;a href=&quot;https://github.com/simonwuelker&quot;&gt;@simonwuelker&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46341&quot;&gt;#46341&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&amp;lt;progress&amp;gt;&lt;/strong&gt; or shadow DOM (&lt;a href=&quot;https://github.com/mrobinson&quot;&gt;@mrobinson&lt;/a&gt;, &lt;a href=&quot;https://github.com/simonwuelker&quot;&gt;@simonwuelker&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46188&quot;&gt;#46188&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&amp;lt;table&amp;gt;&lt;/strong&gt; layout (&lt;a href=&quot;https://github.com/mrobinson&quot;&gt;@mrobinson&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46775&quot;&gt;#46775&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&amp;lt;td rowspan&amp;gt;&lt;/strong&gt; (&lt;a href=&quot;https://github.com/mrobinson&quot;&gt;@mrobinson&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46841&quot;&gt;#46841&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&amp;lt;svg&amp;gt;&lt;/strong&gt; without &lt;strong&gt;&amp;lt;svg viewBox&amp;gt;&lt;/strong&gt; (&lt;a href=&quot;https://github.com/Narfinger&quot;&gt;@Narfinger&lt;/a&gt;, &lt;a href=&quot;https://github.com/mrobinson&quot;&gt;@mrobinson&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46199&quot;&gt;#46199&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&amp;lt;use&amp;gt;&lt;/strong&gt; in SVG (&lt;a href=&quot;https://github.com/mrobinson&quot;&gt;@mrobinson&lt;/a&gt;, &lt;a href=&quot;https://github.com/Loirooriol&quot;&gt;@Loirooriol&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46261&quot;&gt;#46261&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;‘animation’&lt;/strong&gt; (&lt;a href=&quot;https://github.com/mrobinson&quot;&gt;@mrobinson&lt;/a&gt;, &lt;a href=&quot;https://github.com/Loirooriol&quot;&gt;@Loirooriol&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46689&quot;&gt;#46689&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;‘content’&lt;/strong&gt; (&lt;a href=&quot;https://github.com/Loirooriol&quot;&gt;@Loirooriol&lt;/a&gt;, &lt;a href=&quot;https://github.com/mrobinson&quot;&gt;@mrobinson&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46314&quot;&gt;#46314&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;‘mix-blend-mode’&lt;/strong&gt; (&lt;a href=&quot;https://github.com/mrobinson&quot;&gt;@mrobinson&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/45624&quot;&gt;#45624&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Array­Buffer&lt;/strong&gt; (&lt;a href=&quot;https://github.com/jdm&quot;&gt;@jdm&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46504&quot;&gt;#46504&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;adopted­Style­Sheets&lt;/strong&gt; on &lt;strong&gt;Document&lt;/strong&gt; (&lt;a href=&quot;https://github.com/TimvdLippe&quot;&gt;@TimvdLippe&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46373&quot;&gt;#46373&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;exec­Command(&lt;code&gt;&quot;delete&quot;&lt;/code&gt;)&lt;/strong&gt; on &lt;strong&gt;Document&lt;/strong&gt; (&lt;a href=&quot;https://github.com/TimvdLippe&quot;&gt;@TimvdLippe&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46265&quot;&gt;#46265&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;removing DOM nodes (&lt;a href=&quot;https://github.com/SimonSapin&quot;&gt;@SimonSapin&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46866&quot;&gt;#46866&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We’ve continued our long-running effort to use the Rust type system to make Servo’s integration with SpiderMonkey safer and more reliable (&lt;a href=&quot;https://github.com/Gae24&quot;&gt;@Gae24&lt;/a&gt;, &lt;a href=&quot;https://github.com/Narfinger&quot;&gt;@Narfinger&lt;/a&gt;, &lt;a href=&quot;https://github.com/TimvdLippe&quot;&gt;@TimvdLippe&lt;/a&gt;, &lt;a href=&quot;https://github.com/jdm&quot;&gt;@jdm&lt;/a&gt;, &lt;a href=&quot;https://github.com/kunalmohan&quot;&gt;@kunalmohan&lt;/a&gt;, &lt;a href=&quot;https://github.com/lumiscosity&quot;&gt;@lumiscosity&lt;/a&gt;, &lt;a href=&quot;https://github.com/simonwuelker&quot;&gt;@simonwuelker&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46191&quot;&gt;#46191&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46777&quot;&gt;#46777&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46890&quot;&gt;#46890&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46243&quot;&gt;#46243&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46248&quot;&gt;#46248&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46246&quot;&gt;#46246&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46310&quot;&gt;#46310&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46312&quot;&gt;#46312&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46333&quot;&gt;#46333&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46147&quot;&gt;#46147&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46150&quot;&gt;#46150&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46151&quot;&gt;#46151&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46229&quot;&gt;#46229&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46262&quot;&gt;#46262&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46375&quot;&gt;#46375&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46374&quot;&gt;#46374&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46529&quot;&gt;#46529&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46584&quot;&gt;#46584&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46585&quot;&gt;#46585&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46593&quot;&gt;#46593&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46693&quot;&gt;#46693&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46166&quot;&gt;#46166&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46156&quot;&gt;#46156&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46254&quot;&gt;#46254&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46267&quot;&gt;#46267&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46268&quot;&gt;#46268&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46269&quot;&gt;#46269&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46270&quot;&gt;#46270&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46284&quot;&gt;#46284&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46285&quot;&gt;#46285&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46318&quot;&gt;#46318&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46435&quot;&gt;#46435&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46461&quot;&gt;#46461&lt;/a&gt;).&lt;/p&gt;
&lt;h3&gt;New contributors &lt;a class=&quot;header-anchor&quot; href=&quot;https://servo.org/blog/2026/08/31/july-in-servo/#new-contributors&quot;&gt;
        &lt;span class=&quot;icon hashlink&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;/i&gt;&lt;/span&gt;
      &lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;A special thanks to the following people for landing their first patch in Servo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Umut Cevdet Koçak (&lt;a href=&quot;https://github.com/UMCEKO&quot;&gt;@UMCEKO&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46256&quot;&gt;#46256&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Yash Agrawal (&lt;a href=&quot;https://github.com/agrawalx&quot;&gt;@agrawalx&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46770&quot;&gt;#46770&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;amittenak47 (&lt;a href=&quot;https://github.com/amittenak47&quot;&gt;@amittenak47&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46743&quot;&gt;#46743&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Apoorva Pendse (&lt;a href=&quot;https://github.com/apoorvapendse&quot;&gt;@apoorvapendse&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46739&quot;&gt;#46739&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;dDostalker (&lt;a href=&quot;https://github.com/dDostalker&quot;&gt;@dDostalker&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46181&quot;&gt;#46181&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Oisín Ó Maolchathail (&lt;a href=&quot;https://github.com/eachra-bawn&quot;&gt;@eachra-bawn&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46478&quot;&gt;#46478&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Kevin Lu (&lt;a href=&quot;https://github.com/kevlu93&quot;&gt;@kevlu93&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46860&quot;&gt;#46860&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Mohamed Mostafa (&lt;a href=&quot;https://github.com/mu-mostafa98&quot;&gt;@mu-mostafa98&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/45405&quot;&gt;#45405&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;SeongMan Jeon (&lt;a href=&quot;https://github.com/sungmen&quot;&gt;@sungmen&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/46763&quot;&gt;#46763&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Yoda Lee (&lt;a href=&quot;https://github.com/yodalee&quot;&gt;@yodalee&lt;/a&gt;, &lt;a href=&quot;https://github.com/servo/servo/pull/45979&quot;&gt;#45979&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Interested in helping build a web browser?
Take a look at our &lt;a href=&quot;https://starters.servo.org/&quot;&gt;curated list&lt;/a&gt; of issues that are good for new contributors!&lt;/p&gt;
&lt;h3&gt;Donations &lt;a class=&quot;header-anchor&quot; href=&quot;https://servo.org/blog/2026/08/31/july-in-servo/#donations&quot;&gt;
        &lt;span class=&quot;icon hashlink&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;/i&gt;&lt;/span&gt;
      &lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Thanks again for your generous support!
We are now receiving &lt;strong&gt;7824 USD/month&lt;/strong&gt; (+1.8% from June) in recurring donations.
This helps us cover the cost of our &lt;strong&gt;&lt;a href=&quot;https://ci0.servo.org/&quot;&gt;speedy&lt;/a&gt; &lt;a href=&quot;https://ci1.servo.org/&quot;&gt;CI&lt;/a&gt; &lt;a href=&quot;https://ci2.servo.org/&quot;&gt;and&lt;/a&gt; &lt;a href=&quot;https://ci3.servo.org/&quot;&gt;benchmarking&lt;/a&gt; &lt;a href=&quot;https://ci4.servo.org/&quot;&gt;servers&lt;/a&gt;&lt;/strong&gt;, one of our latest &lt;strong&gt;&lt;a href=&quot;https://www.outreachy.org/alums/2026-05/#:~:text=Servo&quot;&gt;Outreachy interns&lt;/a&gt;&lt;/strong&gt;, and funding &lt;strong&gt;&lt;a href=&quot;https://servo.org/blog/2025/09/17/your-donations-at-work-funding-jdm/&quot;&gt;maintainer work&lt;/a&gt;&lt;/strong&gt; that helps more people contribute to Servo.&lt;/p&gt;
&lt;p&gt;Servo is also on &lt;a href=&quot;https://thanks.dev/&quot;&gt;thanks.dev&lt;/a&gt;, and already &lt;strong&gt;35 GitHub users&lt;/strong&gt; (same as June) that depend on Servo are sponsoring us there.
If you use Servo libraries like &lt;a href=&quot;https://crates.io/crates/url/reverse_dependencies&quot;&gt;url&lt;/a&gt;, &lt;a href=&quot;https://crates.io/crates/html5ever/reverse_dependencies&quot;&gt;html5ever&lt;/a&gt;, &lt;a href=&quot;https://crates.io/crates/selectors/reverse_dependencies&quot;&gt;selectors&lt;/a&gt;, or &lt;a href=&quot;https://crates.io/crates/cssparser/reverse_dependencies&quot;&gt;cssparser&lt;/a&gt;, signing up for &lt;a href=&quot;https://thanks.dev/&quot;&gt;thanks.dev&lt;/a&gt; could be a good way for you (or your employer) to give back to the community.&lt;/p&gt;
&lt;p&gt;We now have &lt;a href=&quot;https://servo.org/blog/2025/11/21/sponsorship-tiers/&quot;&gt;&lt;strong&gt;sponsorship tiers&lt;/strong&gt;&lt;/a&gt; that allow you or your organisation to donate to the Servo project with public acknowlegement of your support.
If you’re interested in this kind of sponsorship, please contact us at &lt;a href=&quot;mailto:join@servo.org&quot;&gt;join@servo.org&lt;/a&gt;.&lt;/p&gt;
&lt;figure class=&quot;_fig&quot; style=&quot;width: 100%; margin: 1em 0;&quot;&gt;&lt;div class=&quot;_flex&quot;&gt;
    &lt;div style=&quot;text-align: right;&quot;&gt;
        &lt;div&gt;&lt;strong&gt;7824&lt;/strong&gt; USD/month&lt;/div&gt;
        &lt;div&gt;&lt;/div&gt;
        &lt;div&gt;&lt;/div&gt;
        &lt;div style=&quot;padding-right: 1em;&quot;&gt;&lt;strong&gt;10000&lt;/strong&gt;&lt;/div&gt;
    &lt;/div&gt;
    &lt;progress max=&quot;10000&quot; value=&quot;7824&quot;&gt;&lt;/progress&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;Use of donations is decided transparently via the Technical Steering Committee’s public &lt;strong&gt;&lt;a href=&quot;https://github.com/servo/project/blob/main/FUNDING_REQUEST.md&quot;&gt;funding request process&lt;/a&gt;&lt;/strong&gt;, and active proposals are tracked in &lt;a href=&quot;https://github.com/servo/project/issues/187&quot;&gt;servo/project#187&lt;/a&gt;.
For more details, head to our &lt;a href=&quot;https://servo.org/sponsorship/&quot;&gt;Sponsorship page&lt;/a&gt;.&lt;/p&gt;</content:encoded>
	<dc:date>2026-08-31T00:00:00+00:00</dc:date>
</item>

</rdf:RDF>
