Skip to content

feat: support filtering app store composes - #13432

Merged
ssongliu merged 2 commits into
dev-v2from
feat/compose-app-store-filter
Jul 31, 2026
Merged

feat: support filtering app store composes#13432
ssongliu merged 2 commits into
dev-v2from
feat/compose-app-store-filter

Conversation

@ssongliu

@ssongliu ssongliu commented Jul 31, 2026

Copy link
Copy Markdown
Member

Refs #13425

Copilot AI review requested due to automatic review settings July 31, 2026 09:59

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds a UI + API option to hide App Store–generated Docker Compose entries on the Compose page, addressing the request in #13425 to make it easier to find manually created composes when many exist.

Changes:

  • Adds an “include/exclude App Store” toggle to the Compose list toolbar and persists the user preference in localStorage.
  • Extends the search request model (excludeAppStore) from frontend through to the agent API.
  • Implements server-side filtering of compose records when excludeAppStore is enabled.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.

File Description
frontend/src/views/container/compose/index.vue Adds toolbar toggle, stores preference, and sends excludeAppStore in compose searches.
frontend/src/api/interface/index.ts Extends SearchWithPage to optionally include excludeAppStore.
agent/app/service/container_compose.go Filters compose records to exclude App Store entries when requested.
agent/app/dto/common_req.go Adds ExcludeAppStore to compose paging request DTO.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 567 to 569
const searchName = ref('');
const includeAppStore = ref(true);
const showType = ref('compose');
Comment thread agent/app/service/container_compose.go
Comment on lines +21 to +23
<el-tooltip
:content="includeAppStore ? $t('container.includeAppstore') : $t('container.excludeAppstore')"
>
Copilot AI review requested due to automatic review settings July 31, 2026 10:26
@ssongliu
ssongliu merged commit 9159ab8 into dev-v2 Jul 31, 2026
4 checks passed
@ssongliu
ssongliu deleted the feat/compose-app-store-filter branch July 31, 2026 10:27

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 5 out of 5 changed files in this pull request and generated no new comments.

Suppressed comments (2)

frontend/src/views/container/compose/index.vue:23

  • Tooltip text reuses container-specific i18n keys (container.includeAppstore / container.excludeAppstore), which translate to “Show/Hide App Store containers”. On the Compose page this becomes incorrect/misleading (it should refer to compositions). Consider adding compose-specific i18n keys (and translations) and using them here.
                <el-tooltip
                    :content="includeAppStore ? $t('container.includeAppstore') : $t('container.excludeAppstore')"
                >

agent/app/service/container_compose.go:165

  • Filtering out app-store composes by repeatedly deleting from the slice (append(records[:i], records[i+1:]...)) is O(n²) in the worst case due to repeated element shifting. This can be done in a single pass with an in-place filter to reduce allocations and improve readability.
	if req.ExcludeAppStore {
		length, count := len(records), 0
		for count < length {
			if records[count].CreatedBy == "Apps" {
				records = append(records[:count], records[(count+1):]...)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants