Skip to content

Commit 6052466

Browse files
[feat] Add manager capability feature flags
Add support for manager-specific feature flags: - MANAGER_SUPPORTS_V4: Check if manager supports v4 features - MANAGER_API_VERSION: Get manager API version These flags follow the proper pattern for extension feature flags using the 'extension.manager.*' namespace. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
1 parent 574a1db commit 6052466

File tree

3 files changed

+23
-2
lines changed

3 files changed

+23
-2
lines changed

src/composables/useFeatureFlags.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ import { api } from '@/scripts/api'
77
*/
88
export enum ServerFeatureFlag {
99
SUPPORTS_PREVIEW_METADATA = 'supports_preview_metadata',
10-
MAX_UPLOAD_SIZE = 'max_upload_size'
10+
MAX_UPLOAD_SIZE = 'max_upload_size',
11+
MANAGER_SUPPORTS_V4 = 'extension.manager.supports_v4'
1112
}
1213

1314
/**
@@ -21,6 +22,9 @@ export function useFeatureFlags() {
2122
},
2223
get maxUploadSize() {
2324
return api.getServerFeature(ServerFeatureFlag.MAX_UPLOAD_SIZE)
25+
},
26+
get supportsManagerV4() {
27+
return api.getServerFeature(ServerFeatureFlag.MANAGER_SUPPORTS_V4)
2428
}
2529
})
2630

src/config/clientFeatureFlags.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
{
2-
"supports_preview_metadata": true
2+
"supports_preview_metadata": true,
3+
"supports_manager_v4_ui": true
34
}

tests-ui/tests/composables/useFeatureFlags.test.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,21 @@ describe('useFeatureFlags', () => {
5959
)
6060
})
6161

62+
it('should access supportsManagerV4', () => {
63+
vi.mocked(api.getServerFeature).mockImplementation(
64+
(path, defaultValue) => {
65+
if (path === ServerFeatureFlag.MANAGER_SUPPORTS_V4) return true as any
66+
return defaultValue
67+
}
68+
)
69+
70+
const { flags } = useFeatureFlags()
71+
expect(flags.supportsManagerV4).toBe(true)
72+
expect(api.getServerFeature).toHaveBeenCalledWith(
73+
ServerFeatureFlag.MANAGER_SUPPORTS_V4
74+
)
75+
})
76+
6277
it('should return undefined when features are not available and no default provided', () => {
6378
vi.mocked(api.getServerFeature).mockImplementation(
6479
(_path, defaultValue) => defaultValue as any
@@ -67,6 +82,7 @@ describe('useFeatureFlags', () => {
6782
const { flags } = useFeatureFlags()
6883
expect(flags.supportsPreviewMetadata).toBeUndefined()
6984
expect(flags.maxUploadSize).toBeUndefined()
85+
expect(flags.supportsManagerV4).toBeUndefined()
7086
})
7187
})
7288

0 commit comments

Comments
 (0)