Repository navigation
feat(usage): subscriptionUsageProviders 전역 허용 목록으로 USAGE 그룹 제한 - #356
Conversation
- settings: subscriptionUsageProviders(global only). 생략하면 설정된 그룹 전부, []이면 전부 숨기고 요청도 보내지 않는다. 잘못된 값은 render 중 예외 대신 []로 fail closed. - 공급자 source 표와 판정(getSubscriptionUsageSource, supportsSubscriptionUsage, getConfiguredSubscriptionUsageProviders)을 provider-usage-sources.ts로 옮기고 허용 목록을 적용한다. provider-usage.ts는 같은 이름을 다시 export한다. - settings-manager 모듈 크기를 지키려고 목록 값 파서를 settings-list-values.ts로 옮겼다(동작 동일). - settings 문서, CHANGELOG 갱신.
|
OMK Community Thanks for opening this pull request. Mention Automated response. No code changes or merges are performed. |
dmae97
left a comment
There was a problem hiding this comment.
25eaff6의 소스 검토에서 허용 목록의 요청 차단 범위를 확인할 부분을 찾았습니다. 아래처럼 next-suggestion 사용량 조회는 새 필터를 거치지 않습니다. 이번 확인은 소스 검토이며 새 전체 테스트 실행은 아닙니다.
CI run 42183145300, attempt 2도 Test 단계에서 실패했습니다. test/verified-run-journal-read-retry.test.ts:246의 cancel's journal read outlasts a burst of appends longer than the strict retry window에서 failures가 [] 대신 ['journal_truncated']였습니다. Build, Check와 secret-scan은 통과했습니다. 이 실패가 허용 목록 변경 때문에 생겼다고 확인한 것은 아니지만, 원인 확인과 통과한 CI가 필요하므로 병합은 보류합니다.
| export function getConfiguredSubscriptionUsageProviders(session: UsageSession): readonly string[] { | ||
| const activeProvider = session.state.model?.provider; | ||
| const activeSource = getSubscriptionUsageSource(activeProvider); | ||
| const allowed = session.settingsManager.getSubscriptionUsageProviders(); |
There was a problem hiding this comment.
[P2] 허용 목록을 공통 조회 경로에서도 적용해 주세요. 현재 필터는 사이드바 목록 생성에만 적용됩니다. OMK_NEXT_SUGGESTIONS를 켜면 next-suggestion-controller.ts의 activeQuotaUsage()가 활성 공급자로 reader.read()를 직접 호출하고, SubscriptionUsageReader.refresh() → loadSubscriptionUsage()는 getSubscriptionUsageProviders()를 확인하지 않아 []이거나 잘못된 설정으로 fail closed한 경우에도 사용량 요청이 나갈 수 있습니다. 이는 문서의 [] ... sends no usage requests 보장과 다릅니다. 공통 조회 경로에서 제외된 그룹의 요청을 차단하고, 빈/제한된/잘못된 목록에서 suggestion 경로의 fetch·CLI probe가 호출되지 않는 테스트를 추가해 주세요. 의도적으로 rail 전용 설정이라면 문서와 변경 설명에서 요청 차단 범위를 명확히 제한해야 합니다.
|
상태 정정: 검토 도중 08:13:25 UTC에 이 PR이 |
요약
전역 설정
subscriptionUsageProviders로 고정 레일 USAGE에 보일 사용량 그룹과, 실제로 요청을 보낼 그룹을 제한합니다.[]: 전부 숨기고 usage 요청도 보내지 않습니다..omk/settings.json으로는 바꿀 수 없습니다.[]로 처리합니다(fail closed). 레일이 매 frame 이 값을 읽기 때문입니다.provider-usage-sources.ts로 옮기고 허용 목록을 적용했습니다.getSubscriptionUsageSource,supportsSubscriptionUsage,getConfiguredSubscriptionUsageProvidersprovider-usage.ts는 같은 이름을 다시 export하므로 import 경로는 그대로입니다.settings-manager.ts모듈 크기 ratchet 때문에 목록 값 파서(parseDefaultActiveSkills포함)를settings-list-values.ts로 그대로 옮겼습니다.docs/settings.md,CHANGELOG.md.원래 체크아웃의 미커밋 작업에서 이 부분만 골라 main 기준으로 옮겼습니다. 다음은 넣지 않았습니다.
검증 (로컬, 커밋 25eaff6)
subscription-usage.test.ts새 테스트 4개[]이면 모두 숨기는지. 구현 전에는 둘 다 실패했습니다.sidebar-endpoint,status-sidebar,subscription-footer)에getSubscriptionUsageProviders를 추가했습니다.npx vitest --run: provider-usage,SettingsManager,StatusSidebarComponent,statusPanelModel,InteractiveMode를 쓰는 87개 파일. 946개 통과, 13개 skipnpx tsgo --noEmit,npx biome check --error-on-warnings .,check:module-size,check:import-cycles,check:ts-imports,check:doc-links,check:feature-claims,check:release-surface