feat(keys): expand Grok client samples and tune free soft-gate default

Ship Use Key templates that match Grok Build / Codex best practice: env
vars + multi-model config.toml with api_backend=responses, env_key over
hardcoded secrets, and clearer shell/path guidance for Claude/Codex/OpenCode.

Also set free_quota_token_limit default to 500k (24h soft-gate), clean up
personal-dev-only comments, and keep billing test fixtures aligned.
This commit is contained in:
IanShaw027
2026-08-08 10:26:16 +08:00
parent 2e857b20b8
commit f3bac4619e
25 changed files with 323 additions and 155 deletions
@@ -203,7 +203,7 @@ const planBadgeClass = computed(() => {
if (normalizedPlanType.value === 'abnormal') {
return 'bg-red-100 text-red-600 dark:bg-red-900/30 dark:text-red-400'
}
// Free stays muted gray; paid Grok tiers get distinct colors (aligned with personal-dev).
// Free stays muted gray; paid Grok tiers get distinct colors.
if (normalizedPlanType.value === 'free' || normalizedPlanType.value === 'basic') {
return 'bg-gray-100 text-gray-600 dark:bg-gray-700 dark:text-gray-300'
}
@@ -46,7 +46,7 @@ describe('PlatformTypeBadge Grok plans', () => {
expect(wrapper.text()).toContain('SuperGrok Heavy')
expect(wrapper.find('[data-testid="grok-plan-icon"]').exists()).toBe(true)
expect(wrapper.find('[data-testid="grok-free-plan-icon"]').exists()).toBe(false)
// Heavy uses purple plan chip (personal-dev parity)
// Heavy uses purple plan chip
expect(wrapper.html()).toContain('bg-purple-100')
await wrapper.setProps({ platform: 'openai', planType: 'free' })