feat: add platform inclusion filtering and polish notification UI#4484
Open
ComputelessComputer wants to merge 10 commits intomainfrom
Open
feat: add platform inclusion filtering and polish notification UI#4484ComputelessComputer wants to merge 10 commits intomainfrom
ComputelessComputer wants to merge 10 commits intomainfrom
Conversation
Simplify ignored platforms logic by storing bundle IDs instead of app names. Extract dropdown options logic into separate function and remove unnecessary name-to-bundleId conversions. Update form handling to work directly with bundle IDs and improve variable naming for clarity.
Add included_platforms configuration alongside ignored_platforms to provide more granular control over app tracking. This allows users to explicitly include categorized apps that would normally be filtered out. Implement storage layer support for included platforms with JSON array serialization. Update MicNotificationPolicy to prioritize included platforms over default category-based filtering while maintaining ignored platform precedence. Add comprehensive test coverage for the new inclusion behavior.
Filter out already ignored apps from the dropdown options instead of showing them with an "include" action. This simplifies the interface by only displaying apps that can actually be excluded, making the user experience more intuitive. Remove action labels and isDefaultIgnored properties from dropdown items since they are no longer needed. Update helper text to reflect the new behavior where only non-ignored apps appear in search results.
…mponent Migrate notification settings app selection from custom dropdown implementation to shadcn's Command/Popover components for better UX and maintainability. Remove manual keyboard handling and click-outside logic in favor of built-in Command component functionality.
2b018cc to
181514d
Compare
844fc81 to
db6926d
Compare
Add width-aware ordering algorithm for ignored platform ID chips that optimizes layout by filling rows efficiently. Implement container width tracking using ResizeObserver to dynamically adjust chip ordering based on available space. This improves visual organization of ignored apps by minimizing gaps and creating more balanced rows when chips wrap to multiple lines.
Co-Authored-By: John <john@hyprnote.com>
…ges) Co-Authored-By: John <john@hyprnote.com>
✅ Deploy Preview for hyprnote-storybook canceled.
|
✅ Deploy Preview for hyprnote canceled.
|
Collaborator
Author
|
@yujonglee FYI - |
…le_ids, add priority test Co-Authored-By: John <john@hyprnote.com>
Co-Authored-By: John <john@hyprnote.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
included_platformsacross the full stack: Rust policy engine, Tauri commands, TinyBase/Zod schemas, desktop settings store, and persisterMicNotificationPolicyso user-ignored always takes priority → user-included overrides default category filtering → category rules apply as fallbackCommand/Popovercomponent for the "exclude apps" UIorderIgnoredPlatformIdsForWrap) using bin-packing to minimize row countUpdates since last revision
main(kept inclusion filtering branch changes fornotification-app-options.ts,notification-app-options.test.ts,notification.tsx)handleToggleIgnoredApp: removed redundantdefaultIgnoredternary branch when ignoring an app — now always appends toignoredPlatforms(see note below)set_included_bundle_idsinext.rs: now only cancels mic tracking for apps that were previously included but removed, instead of iterating all default-ignored bundle IDstest_user_ignored_overrides_user_includedto verify priority when same app is in both setsReview & Testing Checklist for Human
handleToggleIgnoredAppsimplification: When a user re-ignores a default-ignored app (e.g. VS Code) from the dropdown after previously including it, the new code adds the bundle ID toignoredPlatformsand removes fromincludedPlatforms. The old code would only remove fromincludedPlatforms. Both approaches result in the app being ignored, but the new approach is slightly "dirtier" (redundant entry inignoredPlatformswhen default-ignored already handles it). This is intentional for code simplicity. Confirm this is acceptable.should_track_apppolicy logic: The priority order isuser_ignored > user_included > category filtering. Check that explicitly including a categorized app actually triggers mic detection notifications for itNotes
web_cicheck failure on this PR is a pre-existing tiptap TypeScript version mismatch (@tiptap/core3.17.1 vs 3.19.0) inapps/web/src/components/admin/blog-editor/— reproduces identically onmainand is unrelated to this PR. Not marked as required.This is part 2 of 2 in a stack made with GitButler: