wks0968 워크스페이스 · 검색 1회 실행했으나 0/10 고정 이슈
buyer_search_jobs(v2, 최근 7일 0건)를 세는데, 실사용 검색(mastra lead-discovery)은 trial_feature_usage(feature=lead_discovery)에 usage_count=1로 카운트됨. 두 소스가 단절돼 사이드바가 영구 0.
| 지표 | 값 | 의미 |
|---|---|---|
| 유저 검색 실제 카운트 | trial_feature_usage.usage_count = 1 | 검색 1회 정상 기록됨 (last 09:40 오늘) |
| 사이드바가 읽는 소스 | buyer_search_jobs = 0 | 이 ws 0건 · alpha 전체 최근7일 0건(폐기) |
| 실사용 검색 시스템 | lead_discovery_sessions 65건/7일 | 실제 활성 검색은 mastra 경로 |
| 표시 한도 vs 게이트 한도 | billing 10 · 게이트 10~12/14일 | 한도 숫자·주기도 불일치 |
| 기능 | 실사용 기록처 | 사이드바 읽기 | 게이트 | 유형 | 정합 |
|---|---|---|---|---|---|
| 검색 | trial_feature_usage(trial) / 무제한(유료) | buyer_search_jobs(폐기) | checkFeatureUsage 10/14일 | counter / derived | 불일치 |
| 바이어 저장 | workspace_usage.leads_used + usage_logs | workspace_usage | leads_monthly_limit | counter(과소집계) | 부분 |
| 발송 | workspace_usage.emails_sent + usage_logs + Redis | workspace_usage | Redis L1 + monthly | counter(과소집계) | 부분 |
사용량이 trial_feature_usage·buyer_search_jobs·lead_discovery_sessions·workspace_usage·usage_logs·Redis 6곳에 분산. 검색만 표시-실사용 소스가 완전 단절.
| 선택지 | 평가 |
|---|---|
| 신규 통합 usage 테이블 도입 | 불필요 마이그레이션·이중기록만 늘고 drift 원천 추가 |
| 기존 SSOT 재사용(채택) | 최적 한도=billing_plans(이미 SSOT) · 사용=실사용 카운터(trial_feature_usage) 를 그대로 읽기 |
원칙: 더 정확한 소스가 이미 있으면 새 테이블 대신 그것을 읽는다(김치볶음밥·삭제 우선).
buyer_search_jobs(폐기) COUNTtrial_feature_usage.usageCount + billing_plans 한도getSidebarSearchUsage(): used=실사용 카운터, limit=billing_plans.buyerSearchMonthlyLimit(trial 10·pro 50·team 무제한), 관리자·무제한 null/buyer-search-usage 엔드포인트를 이 함수로 전환checkFeatureUsage/access-check) 미변경 → 검색 접근에 영향 0(안전)| 이슈 | 현재 | 선택 |
|---|---|---|
| 유료 검색 플랜한도 미적용 | 게이트가 pro/team=무제한 → billing pro=50 무시 | 유료에 plan limit 강제하려면 게이트(유료 early-return) 변경 |
| trial 주기 불일치 | 게이트 14일 rolling vs 표시 월 | trial_feature_usage 주기를 월로 통일 or 표시를 14일로 |
| 한도 값 드리프트 | trial_feature_usage.usage_limit 10/12 혼재 | billing_plans(10)로 정규화 |
이번 수정은 "표시=실사용" 정합(안전)까지. 위 3건은 접근제어·정책 변경이라 별도 승인 후 진행 권장.