-
-
Notifications
You must be signed in to change notification settings - Fork 148
feat: inline container exclusion list #1693
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
feat: inline container exclusion list #1693
Conversation
…ications Prune Notifications: - Backend: Implemented Prune Report Notification logic and templates - Backend: Updated ScheduledPruneJob to send reports via NotificationService - Frontend: Added Prune Report Notification switch to Notification Settings - Frontend: Updated FormSchema and models to support prune notifications Container Exclusion: - Backend: Added AutoUpdateExcludedContainers setting - Backend: Updated UpdaterService to filter excluded containers - Frontend: Added AutoUpdateExcludedContainers to environment schema - Frontend: Added multi-select UI in Job Schedules tab for exclusions - Frontend: Fixed infinite loop in JobsTab state management - Frontend: Fixed missing icon import in JobsTab
- Fixed implicit any type in JobsTab.svelte container exclusion logic - Added autoUpdateExcludedContainers to Settings type definition
- Added logic to detect 'com.getarcaneapp.arcane.updater=false' label - Containers excluded by label are now shown as selected but disabled in the exclusion UI - Added visual indicator '(Label)' for these containers
Renamed helper functions per code review suggestion: - unmarshalConfig -> unmarshalConfigInternal - validateEmailConfig -> validateEmailConfigInternal - decryptDiscordToken -> decryptDiscordTokenInternal - decryptTelegramToken -> decryptTelegramTokenInternal - decryptEmailPassword -> decryptEmailPasswordInternal - renderTemplates -> renderTemplatesInternal - formatBytes -> formatBytesInternal
- Add AutoUpdateExcludedContainers field to settings.Update struct to fix 422 validation error - Replace dropdown with inline scrollable checkbox list for better multi-select UX - Add search input for filtering containers - Show excluded count badge next to section header - Revert unnecessary dropdown keep-open workarounds from SearchableSelect
…effect state mutation with derived pattern - Remove emoji from prune notification messages in notification_service.go - Rename unexported prune notification functions with Internal suffix - Fix indentation in NtfyProviderForm.svelte and PushoverProviderForm.svelte
|
This pull request has merge conflicts. Please resolve the conflicts so the PR can stay up-to-date and reviewed. |
|
This pull request has merge conflicts. Please resolve the conflicts so the PR can stay up-to-date and reviewed. |
|
Merging upstream changes into my feature branch. Resolving conflicts by accepting upstream versions, as my features (Container Exclusion & Prune Notifications) have already been merged into the main project. This commit aligns my fork with the current codebase. |
…xclusion-prune-notifications
|
Hey @mkendell, just pushed a fix for the merge conflicts in the provider forms (synced with main), so that should be sorted now. 🤞 Fingers crossed for the CI! I noticed some random timeouts with the linter earlier due to an upstream issue with the latest version, but hopefully it goes through this time. Let me know if it looks good! |
|
@kmendell all test are good ... or at least it seems |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
4 files reviewed, 2 comments
frontend/src/routes/(app)/settings/notifications/providers/GenericProviderForm.svelte
Show resolved
Hide resolved
Additional Comments (1)
Prompt To Fix With AIThis is a comment left during a code review.
Path: types/settings/settings.go
Line: 279:282
Comment:
**Setting added but unused**
`AutoUpdateExcludedContainers` is added to `types/settings.Update`, but this PR doesn’t update any frontend settings model, API handler, or UI to actually read/write this field. As-is, the option won’t be surfaced or persisted anywhere, so the feature described by the PR title won’t work end-to-end.
How can I resolve this? If you propose a fix, please make it concise. |
|
Is the whole fix just that one line? or was there supposed to be more? |
Umh should have been more let me check. |
|
Hey @kmendell, just pushed an update to main (commit 9846346) that replaces the multi-select dropdown for excluded containers with a proper scrollable list + search. The dropdown was really annoying because it would close every time you selected a container, making it tedious to select multiple items. The new list fixes this. 🚀
|
|
@kmendell i just forgot to put a small counter for excluded containers |
@kmendell Just pushed an update to feature/container-exclusion-prune-notifications. I added a live count to the "Excluded Containers" label so it's easier to see how many are ignored at a glance (including the label-based ones). |
|
This might also benefit from some label per container in stacks! |
Already implemented |
This has been a feature since i made the auto updater: https://getarcane.app/docs/guides/updates
|
frontend/src/routes/(app)/environments/[id]/components/JobsTab.svelte
Outdated
Show resolved
Hide resolved
frontend/src/routes/(app)/environments/[id]/components/JobsTab.svelte
Outdated
Show resolved
Hide resolved
frontend/src/routes/(app)/environments/[id]/components/JobsTab.svelte
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
5 files reviewed, 1 comment
Additional Comments (1)
Prompt To Fix With AIThis is a comment left during a code review.
Path: frontend/src/routes/(app)/environments/[id]/components/JobsTab.svelte
Line: 166:176
Comment:
**Disabled items are pre-selected**
`mapContainerToItem()` marks label-excluded containers as `selected` (`excludedContainers.has(name) || labelExcluded`) while also setting `disabled: labelExcluded`. In the UI this renders a checked-but-disabled checkbox, which can’t be unchecked and also gets counted as “excluded” even if the user never chose it. If label exclusion is meant to be informational/override, it should probably not force `selected`, or the UI should distinguish “excluded by label” vs “excluded by setting” so users don’t think they configured it.
How can I resolve this? If you propose a fix, please make it concise. |
- Refactored JobsTab.svelte to not force selection for label-excluded containers - Updated container count logic to exclude label-excluded containers - Added missing i18n strings for auto-update exclusion description and label - Replaced hardcoded 'No results' strings with 'common_no_results_found'
|
@mkendell, here is a concise summary of the work: UI Refactor & i18n (Commit:
|


Thanks for the feedback! I've moved my changes to a new branch and synced my fork's main with upstream. Here's the new PR:
main...spupuz:arcane:feature/container-exclusion-prune-notifications
Let me know if there's anything else that needs adjustment!
Disclaimer Greptiles Reviews use AI, make sure to check over its work.
To better help train Greptile on our codebase, if the comment is useful and valid Like the comment, if its not helpful or invalid Dislike
Greptile Overview
Greptile Summary
This PR replaces the excluded-containers dropdown in the environment Jobs tab with an inline searchable list of containers using checkboxes, and adds a new
autoUpdateExcludedContainersfield to the settings update type. It also includes a small non-functional change to three notification provider forms (an extra comment line, already discussed in prior threads).Confidence Score: 3/5
Important Files Changed