Skip to content

Commit 26becd1

Browse files
committed
fix: only honor boolean dev overrides for supportsModelTypeTags
getDevOverride casts parsed JSON without validation, so a localStorage value like '"false"' (a JSON string) was returned as a truthy string from the boolean getter. Narrow the guard to typeof override === 'boolean' and fall through to the HTTP/websocket resolution otherwise, with a regression test covering the string-valued override.
1 parent 35aeeea commit 26becd1

2 files changed

Lines changed: 16 additions & 2 deletions

File tree

src/composables/useFeatureFlags.test.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -413,6 +413,20 @@ describe('useFeatureFlags', () => {
413413
expect(flags.supportsModelTypeTags).toBe(true)
414414
})
415415

416+
it('ignores a non-boolean dev override and falls through to HTTP resolution', () => {
417+
vi.mocked(api.getServerFeature).mockReturnValue(true)
418+
httpSupportsModelTypeTags.value = false
419+
localStorage.setItem(
420+
`ff:${ServerFeatureFlag.SUPPORTS_MODEL_TYPE_TAGS}`,
421+
'"false"'
422+
)
423+
424+
const { flags } = useFeatureFlags()
425+
426+
expect(flags.supportsModelTypeTags).toBe(false)
427+
expect(api.getServerFeature).not.toHaveBeenCalled()
428+
})
429+
416430
it('uses an HTTP-served true value', () => {
417431
vi.mocked(api.getServerFeature).mockReturnValue(false)
418432
httpSupportsModelTypeTags.value = true

src/composables/useFeatureFlags.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -249,10 +249,10 @@ export function useFeatureFlags() {
249249
* connection and covers backends without the HTTP key.
250250
*/
251251
get supportsModelTypeTags() {
252-
const override = getDevOverride<boolean>(
252+
const override = getDevOverride<unknown>(
253253
ServerFeatureFlag.SUPPORTS_MODEL_TYPE_TAGS
254254
)
255-
if (override !== undefined) return override
255+
if (typeof override === 'boolean') return override
256256
return (
257257
httpSupportsModelTypeTags.value ??
258258
api.getServerFeature(ServerFeatureFlag.SUPPORTS_MODEL_TYPE_TAGS, false)

0 commit comments

Comments
 (0)