feat(mobile): add a Clear filters action to the thread list menu - #9216

Draft
none23 wants to merge 1 commit into
pingdotgg:mainfrom
none23:t3code/indicate-active-filters
Draft

feat(mobile): add a Clear filters action to the thread list menu#9216
none23 wants to merge 1 commit into
pingdotgg:mainfrom
none23:t3code/indicate-active-filters

Conversation

@none23

@none23none23 commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

What Changed

  • Add a "Clear filters" action in its own group at the end of the thread filter menu. It resets the environment and project filters at once.
  • Show it only while a filter is active, on every menu surface: Android home header, iOS toolbar and pre-Liquid-Glass bottom toolbar, and the split-view sidebar. iOS renders it after a divider; Android has no divider primitive, so it is the last item.
  • Keep sort and grouping preferences unchanged when filters are cleared.

Why

After selecting an environment or project, returning to the full list requires opening each submenu and resetting the selections separately. One action fixes that. It sits at the end of the menu, where iOS puts reset actions, so the submenus keep stable positions whether or not a filter is active.

The filled filter icon on Android that makes the active state visible ships separately in #9217.

UI Changes

BeforeAfter
Before: the filter menu contains Environment and Project actionsScreenshot pending: "Clear filters" now sits at the end of the menu.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes (after screenshot needs a re-capture)
  • I included a video for animation/interaction changes (not applicable: no motion changes)

Built with Claude Fable 5.1 in Claude Code.


Note

Low Risk
Localized mobile UI and list-filter state; no auth, data, or API changes.

Overview
Makes environment and project scope on the mobile thread list easier to see and reset, without touching sort/group preferences.

Introduces hasActiveHomeListFilters so “active filter” means narrowed environment or project scope only (sort order stays a preference). Thread List v2 uses that for the filled filter button instead of treating custom sort as “filtered.” Android maps the filled SF symbol to IconFilterFilled so the active state is visually distinct.

When filters are active, Clear filters appears at the top of the filter menu (shared buildHomeListFilterMenu, Home Android/iOS header, and thread navigation sidebar), resetting both scopes in one action. Unit tests cover the helper and conditional menu item.

Reviewed by Cursor Bugbot for commit f60f59020a8ae8311e6cf2bed92262e9d368c7a8. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add Clear filters action to mobile thread list menus

  • Adds a Clear filters menu item to the Android, iOS, and sidebar thread list menus that resets active environment and project scopes.
  • Introduces hasActiveHomeListFilters to detect active scopes, driving the clear action visibility and the customized-filter indicator.
  • Fixes AppSymbol mapping to use the filled Tabler filter icon for the filled SFSymbol variant.
  • Behavioral Change: The v2 customized-filter indicator now only reflects environment and project scopes, not sort-order preferences.

Macroscope summarized f60f590. (Automatic summaries will resume when PR exits draft mode or review begins).

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:M 30-99 changed lines (additions + deletions). labels Sep 2, 2026
@macroscopeapp

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — This PR adds a new Clear filters interaction and active-state icon across multiple production mobile thread-list surfaces. The behavior is localized and preserves other preferences, but its cross-component production changes are in areas maintained by other contributors, so review is warranted.

You can add or adjust custom eligibility rules. Learn more.

@none23
none23 marked this pull request as draft September 2, 2026 11:48
@none23
none23force-pushed the t3code/indicate-active-filters branch from f60f590 to 5e47ac0CompareSeptember 2, 2026 12:16
@none23none23 changed the title feat(mobile): show and clear active thread filtersfeat(mobile): add "Clear filters" actionSep 2, 2026
@none23
none23force-pushed the t3code/indicate-active-filters branch 2 times, most recently from 0bca67a to 9f784e1CompareSeptember 2, 2026 13:44
Once an environment or project filter is applied, returning to the full
list means opening each submenu and resetting them one at a time.
Add a "Clear filters" item in its own trailing group at the end of the
filter menu, where iOS puts reset actions, so the submenus keep stable
positions. It only appears while a filter is active, and it leaves sort
and grouping preferences alone since those are settings, not filters.
The item lands on every menu surface: the Android home header, the
tablet sidebar, the iOS toolbar, and the pre-Liquid-Glass iOS bottom
toolbar. Android has no menu divider, so it is simply the last item.
Built with Claude Fable 5.1 in Claude Code.
@none23
none23force-pushed the t3code/indicate-active-filters branch from 9f784e1 to 459e02eCompareSeptember 3, 2026 03:13
@none23none23 changed the title feat(mobile): add "Clear filters" actionfeat(mobile): add a Clear filters action to the thread list menuSep 3, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M30-99 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@none23
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

feat(mobile): add a Clear filters action to the thread list menu - #9216

Draft
none23 wants to merge 1 commit into
pingdotgg:mainfrom
none23:t3code/indicate-active-filters
Draft

feat(mobile): add a Clear filters action to the thread list menu#9216
none23 wants to merge 1 commit into
pingdotgg:mainfrom
none23:t3code/indicate-active-filters

Conversation

@none23

@none23none23 commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

What Changed

  • Add a "Clear filters" action in its own group at the end of the thread filter menu. It resets the environment and project filters at once.
  • Show it only while a filter is active, on every menu surface: Android home header, iOS toolbar and pre-Liquid-Glass bottom toolbar, and the split-view sidebar. iOS renders it after a divider; Android has no divider primitive, so it is the last item.
  • Keep sort and grouping preferences unchanged when filters are cleared.

Why

After selecting an environment or project, returning to the full list requires opening each submenu and resetting the selections separately. One action fixes that. It sits at the end of the menu, where iOS puts reset actions, so the submenus keep stable positions whether or not a filter is active.

The filled filter icon on Android that makes the active state visible ships separately in #9217.

UI Changes

BeforeAfter
Before: the filter menu contains Environment and Project actionsScreenshot pending: "Clear filters" now sits at the end of the menu.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes (after screenshot needs a re-capture)
  • I included a video for animation/interaction changes (not applicable: no motion changes)

Built with Claude Fable 5.1 in Claude Code.


Note

Low Risk
Localized mobile UI and list-filter state; no auth, data, or API changes.

Overview
Makes environment and project scope on the mobile thread list easier to see and reset, without touching sort/group preferences.

Introduces hasActiveHomeListFilters so “active filter” means narrowed environment or project scope only (sort order stays a preference). Thread List v2 uses that for the filled filter button instead of treating custom sort as “filtered.” Android maps the filled SF symbol to IconFilterFilled so the active state is visually distinct.

When filters are active, Clear filters appears at the top of the filter menu (shared buildHomeListFilterMenu, Home Android/iOS header, and thread navigation sidebar), resetting both scopes in one action. Unit tests cover the helper and conditional menu item.

Reviewed by Cursor Bugbot for commit f60f59020a8ae8311e6cf2bed92262e9d368c7a8. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add Clear filters action to mobile thread list menus

  • Adds a Clear filters menu item to the Android, iOS, and sidebar thread list menus that resets active environment and project scopes.
  • Introduces hasActiveHomeListFilters to detect active scopes, driving the clear action visibility and the customized-filter indicator.
  • Fixes AppSymbol mapping to use the filled Tabler filter icon for the filled SFSymbol variant.
  • Behavioral Change: The v2 customized-filter indicator now only reflects environment and project scopes, not sort-order preferences.

Macroscope summarized f60f590. (Automatic summaries will resume when PR exits draft mode or review begins).

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:M 30-99 changed lines (additions + deletions). labels Sep 2, 2026
@macroscopeapp

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — This PR adds a new Clear filters interaction and active-state icon across multiple production mobile thread-list surfaces. The behavior is localized and preserves other preferences, but its cross-component production changes are in areas maintained by other contributors, so review is warranted.

You can add or adjust custom eligibility rules. Learn more.

@none23
none23 marked this pull request as draft September 2, 2026 11:48
@none23
none23force-pushed the t3code/indicate-active-filters branch from f60f590 to 5e47ac0CompareSeptember 2, 2026 12:16
@none23none23 changed the title feat(mobile): show and clear active thread filtersfeat(mobile): add "Clear filters" actionSep 2, 2026
@none23
none23force-pushed the t3code/indicate-active-filters branch 2 times, most recently from 0bca67a to 9f784e1CompareSeptember 2, 2026 13:44
Once an environment or project filter is applied, returning to the full
list means opening each submenu and resetting them one at a time.
Add a "Clear filters" item in its own trailing group at the end of the
filter menu, where iOS puts reset actions, so the submenus keep stable
positions. It only appears while a filter is active, and it leaves sort
and grouping preferences alone since those are settings, not filters.
The item lands on every menu surface: the Android home header, the
tablet sidebar, the iOS toolbar, and the pre-Liquid-Glass iOS bottom
toolbar. Android has no menu divider, so it is simply the last item.
Built with Claude Fable 5.1 in Claude Code.
@none23
none23force-pushed the t3code/indicate-active-filters branch from 9f784e1 to 459e02eCompareSeptember 3, 2026 03:13
@none23none23 changed the title feat(mobile): add "Clear filters" actionfeat(mobile): add a Clear filters action to the thread list menuSep 3, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M30-99 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@none23
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(mobile): add a Clear filters action to the thread list menu - #9216

Draft
none23 wants to merge 1 commit into
pingdotgg:mainfrom
none23:t3code/indicate-active-filters
Draft

feat(mobile): add a Clear filters action to the thread list menu#9216
none23 wants to merge 1 commit into
pingdotgg:mainfrom
none23:t3code/indicate-active-filters

Conversation

@none23

@none23none23 commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

What Changed

  • Add a "Clear filters" action in its own group at the end of the thread filter menu. It resets the environment and project filters at once.
  • Show it only while a filter is active, on every menu surface: Android home header, iOS toolbar and pre-Liquid-Glass bottom toolbar, and the split-view sidebar. iOS renders it after a divider; Android has no divider primitive, so it is the last item.
  • Keep sort and grouping preferences unchanged when filters are cleared.

Why

After selecting an environment or project, returning to the full list requires opening each submenu and resetting the selections separately. One action fixes that. It sits at the end of the menu, where iOS puts reset actions, so the submenus keep stable positions whether or not a filter is active.

The filled filter icon on Android that makes the active state visible ships separately in #9217.

UI Changes

BeforeAfter
Before: the filter menu contains Environment and Project actionsScreenshot pending: "Clear filters" now sits at the end of the menu.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes (after screenshot needs a re-capture)
  • I included a video for animation/interaction changes (not applicable: no motion changes)

Built with Claude Fable 5.1 in Claude Code.


Note

Low Risk
Localized mobile UI and list-filter state; no auth, data, or API changes.

Overview
Makes environment and project scope on the mobile thread list easier to see and reset, without touching sort/group preferences.

Introduces hasActiveHomeListFilters so “active filter” means narrowed environment or project scope only (sort order stays a preference). Thread List v2 uses that for the filled filter button instead of treating custom sort as “filtered.” Android maps the filled SF symbol to IconFilterFilled so the active state is visually distinct.

When filters are active, Clear filters appears at the top of the filter menu (shared buildHomeListFilterMenu, Home Android/iOS header, and thread navigation sidebar), resetting both scopes in one action. Unit tests cover the helper and conditional menu item.

Reviewed by Cursor Bugbot for commit f60f59020a8ae8311e6cf2bed92262e9d368c7a8. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add Clear filters action to mobile thread list menus

  • Adds a Clear filters menu item to the Android, iOS, and sidebar thread list menus that resets active environment and project scopes.
  • Introduces hasActiveHomeListFilters to detect active scopes, driving the clear action visibility and the customized-filter indicator.
  • Fixes AppSymbol mapping to use the filled Tabler filter icon for the filled SFSymbol variant.
  • Behavioral Change: The v2 customized-filter indicator now only reflects environment and project scopes, not sort-order preferences.

Macroscope summarized f60f590. (Automatic summaries will resume when PR exits draft mode or review begins).

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:M 30-99 changed lines (additions + deletions). labels Sep 2, 2026
@macroscopeapp

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — This PR adds a new Clear filters interaction and active-state icon across multiple production mobile thread-list surfaces. The behavior is localized and preserves other preferences, but its cross-component production changes are in areas maintained by other contributors, so review is warranted.

You can add or adjust custom eligibility rules. Learn more.

@none23
none23 marked this pull request as draft September 2, 2026 11:48
@none23
none23force-pushed the t3code/indicate-active-filters branch from f60f590 to 5e47ac0CompareSeptember 2, 2026 12:16
@none23none23 changed the title feat(mobile): show and clear active thread filtersfeat(mobile): add "Clear filters" actionSep 2, 2026
@none23
none23force-pushed the t3code/indicate-active-filters branch 2 times, most recently from 0bca67a to 9f784e1CompareSeptember 2, 2026 13:44
Once an environment or project filter is applied, returning to the full
list means opening each submenu and resetting them one at a time.
Add a "Clear filters" item in its own trailing group at the end of the
filter menu, where iOS puts reset actions, so the submenus keep stable
positions. It only appears while a filter is active, and it leaves sort
and grouping preferences alone since those are settings, not filters.
The item lands on every menu surface: the Android home header, the
tablet sidebar, the iOS toolbar, and the pre-Liquid-Glass iOS bottom
toolbar. Android has no menu divider, so it is simply the last item.
Built with Claude Fable 5.1 in Claude Code.
@none23
none23force-pushed the t3code/indicate-active-filters branch from 9f784e1 to 459e02eCompareSeptember 3, 2026 03:13
@none23none23 changed the title feat(mobile): add "Clear filters" actionfeat(mobile): add a Clear filters action to the thread list menuSep 3, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M30-99 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@none23
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(mobile): add a Clear filters action to the thread list menu - #9216

Draft
none23 wants to merge 1 commit into
pingdotgg:mainfrom
none23:t3code/indicate-active-filters
Draft

feat(mobile): add a Clear filters action to the thread list menu#9216
none23 wants to merge 1 commit into
pingdotgg:mainfrom
none23:t3code/indicate-active-filters

Conversation

@none23

@none23none23 commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

What Changed

  • Add a "Clear filters" action in its own group at the end of the thread filter menu. It resets the environment and project filters at once.
  • Show it only while a filter is active, on every menu surface: Android home header, iOS toolbar and pre-Liquid-Glass bottom toolbar, and the split-view sidebar. iOS renders it after a divider; Android has no divider primitive, so it is the last item.
  • Keep sort and grouping preferences unchanged when filters are cleared.

Why

After selecting an environment or project, returning to the full list requires opening each submenu and resetting the selections separately. One action fixes that. It sits at the end of the menu, where iOS puts reset actions, so the submenus keep stable positions whether or not a filter is active.

The filled filter icon on Android that makes the active state visible ships separately in #9217.

UI Changes

BeforeAfter
Before: the filter menu contains Environment and Project actionsScreenshot pending: "Clear filters" now sits at the end of the menu.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes (after screenshot needs a re-capture)
  • I included a video for animation/interaction changes (not applicable: no motion changes)

Built with Claude Fable 5.1 in Claude Code.


Note

Low Risk
Localized mobile UI and list-filter state; no auth, data, or API changes.

Overview
Makes environment and project scope on the mobile thread list easier to see and reset, without touching sort/group preferences.

Introduces hasActiveHomeListFilters so “active filter” means narrowed environment or project scope only (sort order stays a preference). Thread List v2 uses that for the filled filter button instead of treating custom sort as “filtered.” Android maps the filled SF symbol to IconFilterFilled so the active state is visually distinct.

When filters are active, Clear filters appears at the top of the filter menu (shared buildHomeListFilterMenu, Home Android/iOS header, and thread navigation sidebar), resetting both scopes in one action. Unit tests cover the helper and conditional menu item.

Reviewed by Cursor Bugbot for commit f60f59020a8ae8311e6cf2bed92262e9d368c7a8. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add Clear filters action to mobile thread list menus

  • Adds a Clear filters menu item to the Android, iOS, and sidebar thread list menus that resets active environment and project scopes.
  • Introduces hasActiveHomeListFilters to detect active scopes, driving the clear action visibility and the customized-filter indicator.
  • Fixes AppSymbol mapping to use the filled Tabler filter icon for the filled SFSymbol variant.
  • Behavioral Change: The v2 customized-filter indicator now only reflects environment and project scopes, not sort-order preferences.

Macroscope summarized f60f590. (Automatic summaries will resume when PR exits draft mode or review begins).

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:M 30-99 changed lines (additions + deletions). labels Sep 2, 2026
@macroscopeapp

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — This PR adds a new Clear filters interaction and active-state icon across multiple production mobile thread-list surfaces. The behavior is localized and preserves other preferences, but its cross-component production changes are in areas maintained by other contributors, so review is warranted.

You can add or adjust custom eligibility rules. Learn more.

@none23
none23 marked this pull request as draft September 2, 2026 11:48
@none23
none23force-pushed the t3code/indicate-active-filters branch from f60f590 to 5e47ac0CompareSeptember 2, 2026 12:16
@none23none23 changed the title feat(mobile): show and clear active thread filtersfeat(mobile): add "Clear filters" actionSep 2, 2026
@none23
none23force-pushed the t3code/indicate-active-filters branch 2 times, most recently from 0bca67a to 9f784e1CompareSeptember 2, 2026 13:44
Once an environment or project filter is applied, returning to the full
list means opening each submenu and resetting them one at a time.
Add a "Clear filters" item in its own trailing group at the end of the
filter menu, where iOS puts reset actions, so the submenus keep stable
positions. It only appears while a filter is active, and it leaves sort
and grouping preferences alone since those are settings, not filters.
The item lands on every menu surface: the Android home header, the
tablet sidebar, the iOS toolbar, and the pre-Liquid-Glass iOS bottom
toolbar. Android has no menu divider, so it is simply the last item.
Built with Claude Fable 5.1 in Claude Code.
@none23
none23force-pushed the t3code/indicate-active-filters branch from 9f784e1 to 459e02eCompareSeptember 3, 2026 03:13
@none23none23 changed the title feat(mobile): add "Clear filters" actionfeat(mobile): add a Clear filters action to the thread list menuSep 3, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M30-99 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@none23
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

feat(mobile): add a Clear filters action to the thread list menu - #9216

Draft
none23 wants to merge 1 commit into
pingdotgg:mainfrom
none23:t3code/indicate-active-filters
Draft

feat(mobile): add a Clear filters action to the thread list menu#9216
none23 wants to merge 1 commit into
pingdotgg:mainfrom
none23:t3code/indicate-active-filters

Conversation

@none23

@none23none23 commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

What Changed

  • Add a "Clear filters" action in its own group at the end of the thread filter menu. It resets the environment and project filters at once.
  • Show it only while a filter is active, on every menu surface: Android home header, iOS toolbar and pre-Liquid-Glass bottom toolbar, and the split-view sidebar. iOS renders it after a divider; Android has no divider primitive, so it is the last item.
  • Keep sort and grouping preferences unchanged when filters are cleared.

Why

After selecting an environment or project, returning to the full list requires opening each submenu and resetting the selections separately. One action fixes that. It sits at the end of the menu, where iOS puts reset actions, so the submenus keep stable positions whether or not a filter is active.

The filled filter icon on Android that makes the active state visible ships separately in #9217.

UI Changes

BeforeAfter
Before: the filter menu contains Environment and Project actionsScreenshot pending: "Clear filters" now sits at the end of the menu.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes (after screenshot needs a re-capture)
  • I included a video for animation/interaction changes (not applicable: no motion changes)

Built with Claude Fable 5.1 in Claude Code.


Note

Low Risk
Localized mobile UI and list-filter state; no auth, data, or API changes.

Overview
Makes environment and project scope on the mobile thread list easier to see and reset, without touching sort/group preferences.

Introduces hasActiveHomeListFilters so “active filter” means narrowed environment or project scope only (sort order stays a preference). Thread List v2 uses that for the filled filter button instead of treating custom sort as “filtered.” Android maps the filled SF symbol to IconFilterFilled so the active state is visually distinct.

When filters are active, Clear filters appears at the top of the filter menu (shared buildHomeListFilterMenu, Home Android/iOS header, and thread navigation sidebar), resetting both scopes in one action. Unit tests cover the helper and conditional menu item.

Reviewed by Cursor Bugbot for commit f60f59020a8ae8311e6cf2bed92262e9d368c7a8. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add Clear filters action to mobile thread list menus

  • Adds a Clear filters menu item to the Android, iOS, and sidebar thread list menus that resets active environment and project scopes.
  • Introduces hasActiveHomeListFilters to detect active scopes, driving the clear action visibility and the customized-filter indicator.
  • Fixes AppSymbol mapping to use the filled Tabler filter icon for the filled SFSymbol variant.
  • Behavioral Change: The v2 customized-filter indicator now only reflects environment and project scopes, not sort-order preferences.

Macroscope summarized f60f590. (Automatic summaries will resume when PR exits draft mode or review begins).

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:M 30-99 changed lines (additions + deletions). labels Sep 2, 2026
@macroscopeapp

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — This PR adds a new Clear filters interaction and active-state icon across multiple production mobile thread-list surfaces. The behavior is localized and preserves other preferences, but its cross-component production changes are in areas maintained by other contributors, so review is warranted.

You can add or adjust custom eligibility rules. Learn more.

@none23
none23 marked this pull request as draft September 2, 2026 11:48
@none23
none23force-pushed the t3code/indicate-active-filters branch from f60f590 to 5e47ac0CompareSeptember 2, 2026 12:16
@none23none23 changed the title feat(mobile): show and clear active thread filtersfeat(mobile): add "Clear filters" actionSep 2, 2026
@none23
none23force-pushed the t3code/indicate-active-filters branch 2 times, most recently from 0bca67a to 9f784e1CompareSeptember 2, 2026 13:44
Once an environment or project filter is applied, returning to the full
list means opening each submenu and resetting them one at a time.
Add a "Clear filters" item in its own trailing group at the end of the
filter menu, where iOS puts reset actions, so the submenus keep stable
positions. It only appears while a filter is active, and it leaves sort
and grouping preferences alone since those are settings, not filters.
The item lands on every menu surface: the Android home header, the
tablet sidebar, the iOS toolbar, and the pre-Liquid-Glass iOS bottom
toolbar. Android has no menu divider, so it is simply the last item.
Built with Claude Fable 5.1 in Claude Code.
@none23
none23force-pushed the t3code/indicate-active-filters branch from 9f784e1 to 459e02eCompareSeptember 3, 2026 03:13
@none23none23 changed the title feat(mobile): add "Clear filters" actionfeat(mobile): add a Clear filters action to the thread list menuSep 3, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M30-99 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@none23
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(mobile): add a Clear filters action to the thread list menu - #9216

Draft
none23 wants to merge 1 commit into
pingdotgg:mainfrom
none23:t3code/indicate-active-filters
Draft

feat(mobile): add a Clear filters action to the thread list menu#9216
none23 wants to merge 1 commit into
pingdotgg:mainfrom
none23:t3code/indicate-active-filters

Conversation

@none23

@none23none23 commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

What Changed

  • Add a "Clear filters" action in its own group at the end of the thread filter menu. It resets the environment and project filters at once.
  • Show it only while a filter is active, on every menu surface: Android home header, iOS toolbar and pre-Liquid-Glass bottom toolbar, and the split-view sidebar. iOS renders it after a divider; Android has no divider primitive, so it is the last item.
  • Keep sort and grouping preferences unchanged when filters are cleared.

Why

After selecting an environment or project, returning to the full list requires opening each submenu and resetting the selections separately. One action fixes that. It sits at the end of the menu, where iOS puts reset actions, so the submenus keep stable positions whether or not a filter is active.

The filled filter icon on Android that makes the active state visible ships separately in #9217.

UI Changes

BeforeAfter
Before: the filter menu contains Environment and Project actionsScreenshot pending: "Clear filters" now sits at the end of the menu.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes (after screenshot needs a re-capture)
  • I included a video for animation/interaction changes (not applicable: no motion changes)

Built with Claude Fable 5.1 in Claude Code.


Note

Low Risk
Localized mobile UI and list-filter state; no auth, data, or API changes.

Overview
Makes environment and project scope on the mobile thread list easier to see and reset, without touching sort/group preferences.

Introduces hasActiveHomeListFilters so “active filter” means narrowed environment or project scope only (sort order stays a preference). Thread List v2 uses that for the filled filter button instead of treating custom sort as “filtered.” Android maps the filled SF symbol to IconFilterFilled so the active state is visually distinct.

When filters are active, Clear filters appears at the top of the filter menu (shared buildHomeListFilterMenu, Home Android/iOS header, and thread navigation sidebar), resetting both scopes in one action. Unit tests cover the helper and conditional menu item.

Reviewed by Cursor Bugbot for commit f60f59020a8ae8311e6cf2bed92262e9d368c7a8. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add Clear filters action to mobile thread list menus

  • Adds a Clear filters menu item to the Android, iOS, and sidebar thread list menus that resets active environment and project scopes.
  • Introduces hasActiveHomeListFilters to detect active scopes, driving the clear action visibility and the customized-filter indicator.
  • Fixes AppSymbol mapping to use the filled Tabler filter icon for the filled SFSymbol variant.
  • Behavioral Change: The v2 customized-filter indicator now only reflects environment and project scopes, not sort-order preferences.

Macroscope summarized f60f590. (Automatic summaries will resume when PR exits draft mode or review begins).

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:M 30-99 changed lines (additions + deletions). labels Sep 2, 2026
@macroscopeapp

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — This PR adds a new Clear filters interaction and active-state icon across multiple production mobile thread-list surfaces. The behavior is localized and preserves other preferences, but its cross-component production changes are in areas maintained by other contributors, so review is warranted.

You can add or adjust custom eligibility rules. Learn more.

@none23
none23 marked this pull request as draft September 2, 2026 11:48
@none23
none23force-pushed the t3code/indicate-active-filters branch from f60f590 to 5e47ac0CompareSeptember 2, 2026 12:16
@none23none23 changed the title feat(mobile): show and clear active thread filtersfeat(mobile): add "Clear filters" actionSep 2, 2026
@none23
none23force-pushed the t3code/indicate-active-filters branch 2 times, most recently from 0bca67a to 9f784e1CompareSeptember 2, 2026 13:44
Once an environment or project filter is applied, returning to the full
list means opening each submenu and resetting them one at a time.
Add a "Clear filters" item in its own trailing group at the end of the
filter menu, where iOS puts reset actions, so the submenus keep stable
positions. It only appears while a filter is active, and it leaves sort
and grouping preferences alone since those are settings, not filters.
The item lands on every menu surface: the Android home header, the
tablet sidebar, the iOS toolbar, and the pre-Liquid-Glass iOS bottom
toolbar. Android has no menu divider, so it is simply the last item.
Built with Claude Fable 5.1 in Claude Code.
@none23
none23force-pushed the t3code/indicate-active-filters branch from 9f784e1 to 459e02eCompareSeptember 3, 2026 03:13
@none23none23 changed the title feat(mobile): add "Clear filters" actionfeat(mobile): add a Clear filters action to the thread list menuSep 3, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M30-99 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@none23
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(mobile): add a Clear filters action to the thread list menu - #9216

Draft
none23 wants to merge 1 commit into
pingdotgg:mainfrom
none23:t3code/indicate-active-filters
Draft

feat(mobile): add a Clear filters action to the thread list menu#9216
none23 wants to merge 1 commit into
pingdotgg:mainfrom
none23:t3code/indicate-active-filters

Conversation

@none23

@none23none23 commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

What Changed

  • Add a "Clear filters" action in its own group at the end of the thread filter menu. It resets the environment and project filters at once.
  • Show it only while a filter is active, on every menu surface: Android home header, iOS toolbar and pre-Liquid-Glass bottom toolbar, and the split-view sidebar. iOS renders it after a divider; Android has no divider primitive, so it is the last item.
  • Keep sort and grouping preferences unchanged when filters are cleared.

Why

After selecting an environment or project, returning to the full list requires opening each submenu and resetting the selections separately. One action fixes that. It sits at the end of the menu, where iOS puts reset actions, so the submenus keep stable positions whether or not a filter is active.

The filled filter icon on Android that makes the active state visible ships separately in #9217.

UI Changes

BeforeAfter
Before: the filter menu contains Environment and Project actionsScreenshot pending: "Clear filters" now sits at the end of the menu.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes (after screenshot needs a re-capture)
  • I included a video for animation/interaction changes (not applicable: no motion changes)

Built with Claude Fable 5.1 in Claude Code.


Note

Low Risk
Localized mobile UI and list-filter state; no auth, data, or API changes.

Overview
Makes environment and project scope on the mobile thread list easier to see and reset, without touching sort/group preferences.

Introduces hasActiveHomeListFilters so “active filter” means narrowed environment or project scope only (sort order stays a preference). Thread List v2 uses that for the filled filter button instead of treating custom sort as “filtered.” Android maps the filled SF symbol to IconFilterFilled so the active state is visually distinct.

When filters are active, Clear filters appears at the top of the filter menu (shared buildHomeListFilterMenu, Home Android/iOS header, and thread navigation sidebar), resetting both scopes in one action. Unit tests cover the helper and conditional menu item.

Reviewed by Cursor Bugbot for commit f60f59020a8ae8311e6cf2bed92262e9d368c7a8. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add Clear filters action to mobile thread list menus

  • Adds a Clear filters menu item to the Android, iOS, and sidebar thread list menus that resets active environment and project scopes.
  • Introduces hasActiveHomeListFilters to detect active scopes, driving the clear action visibility and the customized-filter indicator.
  • Fixes AppSymbol mapping to use the filled Tabler filter icon for the filled SFSymbol variant.
  • Behavioral Change: The v2 customized-filter indicator now only reflects environment and project scopes, not sort-order preferences.

Macroscope summarized f60f590. (Automatic summaries will resume when PR exits draft mode or review begins).

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:M 30-99 changed lines (additions + deletions). labels Sep 2, 2026
@macroscopeapp

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — This PR adds a new Clear filters interaction and active-state icon across multiple production mobile thread-list surfaces. The behavior is localized and preserves other preferences, but its cross-component production changes are in areas maintained by other contributors, so review is warranted.

You can add or adjust custom eligibility rules. Learn more.

@none23
none23 marked this pull request as draft September 2, 2026 11:48
@none23
none23force-pushed the t3code/indicate-active-filters branch from f60f590 to 5e47ac0CompareSeptember 2, 2026 12:16
@none23none23 changed the title feat(mobile): show and clear active thread filtersfeat(mobile): add "Clear filters" actionSep 2, 2026
@none23
none23force-pushed the t3code/indicate-active-filters branch 2 times, most recently from 0bca67a to 9f784e1CompareSeptember 2, 2026 13:44
Once an environment or project filter is applied, returning to the full
list means opening each submenu and resetting them one at a time.
Add a "Clear filters" item in its own trailing group at the end of the
filter menu, where iOS puts reset actions, so the submenus keep stable
positions. It only appears while a filter is active, and it leaves sort
and grouping preferences alone since those are settings, not filters.
The item lands on every menu surface: the Android home header, the
tablet sidebar, the iOS toolbar, and the pre-Liquid-Glass iOS bottom
toolbar. Android has no menu divider, so it is simply the last item.
Built with Claude Fable 5.1 in Claude Code.
@none23
none23force-pushed the t3code/indicate-active-filters branch from 9f784e1 to 459e02eCompareSeptember 3, 2026 03:13
@none23none23 changed the title feat(mobile): add "Clear filters" actionfeat(mobile): add a Clear filters action to the thread list menuSep 3, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M30-99 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@none23
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

feat(mobile): add a Clear filters action to the thread list menu - #9216

Draft
none23 wants to merge 1 commit into
pingdotgg:mainfrom
none23:t3code/indicate-active-filters
Draft

feat(mobile): add a Clear filters action to the thread list menu#9216
none23 wants to merge 1 commit into
pingdotgg:mainfrom
none23:t3code/indicate-active-filters

Conversation

@none23

@none23none23 commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

What Changed

  • Add a "Clear filters" action in its own group at the end of the thread filter menu. It resets the environment and project filters at once.
  • Show it only while a filter is active, on every menu surface: Android home header, iOS toolbar and pre-Liquid-Glass bottom toolbar, and the split-view sidebar. iOS renders it after a divider; Android has no divider primitive, so it is the last item.
  • Keep sort and grouping preferences unchanged when filters are cleared.

Why

After selecting an environment or project, returning to the full list requires opening each submenu and resetting the selections separately. One action fixes that. It sits at the end of the menu, where iOS puts reset actions, so the submenus keep stable positions whether or not a filter is active.

The filled filter icon on Android that makes the active state visible ships separately in #9217.

UI Changes

BeforeAfter
Before: the filter menu contains Environment and Project actionsScreenshot pending: "Clear filters" now sits at the end of the menu.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes (after screenshot needs a re-capture)
  • I included a video for animation/interaction changes (not applicable: no motion changes)

Built with Claude Fable 5.1 in Claude Code.


Note

Low Risk
Localized mobile UI and list-filter state; no auth, data, or API changes.

Overview
Makes environment and project scope on the mobile thread list easier to see and reset, without touching sort/group preferences.

Introduces hasActiveHomeListFilters so “active filter” means narrowed environment or project scope only (sort order stays a preference). Thread List v2 uses that for the filled filter button instead of treating custom sort as “filtered.” Android maps the filled SF symbol to IconFilterFilled so the active state is visually distinct.

When filters are active, Clear filters appears at the top of the filter menu (shared buildHomeListFilterMenu, Home Android/iOS header, and thread navigation sidebar), resetting both scopes in one action. Unit tests cover the helper and conditional menu item.

Reviewed by Cursor Bugbot for commit f60f59020a8ae8311e6cf2bed92262e9d368c7a8. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add Clear filters action to mobile thread list menus

  • Adds a Clear filters menu item to the Android, iOS, and sidebar thread list menus that resets active environment and project scopes.
  • Introduces hasActiveHomeListFilters to detect active scopes, driving the clear action visibility and the customized-filter indicator.
  • Fixes AppSymbol mapping to use the filled Tabler filter icon for the filled SFSymbol variant.
  • Behavioral Change: The v2 customized-filter indicator now only reflects environment and project scopes, not sort-order preferences.

Macroscope summarized f60f590. (Automatic summaries will resume when PR exits draft mode or review begins).

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:M 30-99 changed lines (additions + deletions). labels Sep 2, 2026
@macroscopeapp

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — This PR adds a new Clear filters interaction and active-state icon across multiple production mobile thread-list surfaces. The behavior is localized and preserves other preferences, but its cross-component production changes are in areas maintained by other contributors, so review is warranted.

You can add or adjust custom eligibility rules. Learn more.

@none23
none23 marked this pull request as draft September 2, 2026 11:48
@none23
none23force-pushed the t3code/indicate-active-filters branch from f60f590 to 5e47ac0CompareSeptember 2, 2026 12:16
@none23none23 changed the title feat(mobile): show and clear active thread filtersfeat(mobile): add "Clear filters" actionSep 2, 2026
@none23
none23force-pushed the t3code/indicate-active-filters branch 2 times, most recently from 0bca67a to 9f784e1CompareSeptember 2, 2026 13:44
Once an environment or project filter is applied, returning to the full
list means opening each submenu and resetting them one at a time.
Add a "Clear filters" item in its own trailing group at the end of the
filter menu, where iOS puts reset actions, so the submenus keep stable
positions. It only appears while a filter is active, and it leaves sort
and grouping preferences alone since those are settings, not filters.
The item lands on every menu surface: the Android home header, the
tablet sidebar, the iOS toolbar, and the pre-Liquid-Glass iOS bottom
toolbar. Android has no menu divider, so it is simply the last item.
Built with Claude Fable 5.1 in Claude Code.
@none23
none23force-pushed the t3code/indicate-active-filters branch from 9f784e1 to 459e02eCompareSeptember 3, 2026 03:13
@none23none23 changed the title feat(mobile): add "Clear filters" actionfeat(mobile): add a Clear filters action to the thread list menuSep 3, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M30-99 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@none23