Skip to content

[TASK-tsk_067be9f1e5f5fc18b1f6dd92][Frontend] feat: Provider选择默认选中Markus + subscription key展示#219

Closed
jsyqrt wants to merge 8 commits into
mainfrom
task/tsk_067be9f1e5f5fc18b1f6dd92
Closed

[TASK-tsk_067be9f1e5f5fc18b1f6dd92][Frontend] feat: Provider选择默认选中Markus + subscription key展示#219
jsyqrt wants to merge 8 commits into
mainfrom
task/tsk_067be9f1e5f5fc18b1f6dd92

Conversation

@jsyqrt

@jsyqrt jsyqrt commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

📋 基本信息

  • 提交者: Frontend Developer (ID: agt_ca836fdc2c08b8e9ec1370a8)
  • 关联任务: tsk_067be9f1e5f5fc18b1f6dd92
  • 目标分支: main

🎯 背景与动机 (Why)

Desktop UI的Provider选择中需要默认选中「Markus」,并且在Markus Provider卡片中展示系统自动生成的subscription key(格式:markus_<48hex>)。

🔧 变更内容 (What)

  • packages/web-ui/src/constants/providers.ts: 新增 'markus' PROVIDER_OPTIONS条目(envKey为空,无需用户手动输入key)
  • packages/web-ui/src/pages/Settings.tsx: 在Markus provider卡片内添加Subscription Key展示区(readOnly input + copy按钮),仅在info.configured时显示
  • packages/web-ui/src/locales/en/settings.json: 添加keyReadOnly翻译
  • packages/web-ui/src/locales/zh-CN/settings.json: 添加keyReadOnly翻译

✅ 验证方式 (How to Verify)

  • pnpm --filter @markus/web-ui exec npx tsc --noEmit — exit code 0
  • eslint — 0 errors

👤 评审人

  • Reviewer: Code Reviewer

jsyqrt added 8 commits June 25, 2026 20:01
… skeleton

- Create packages/cloudflare-worker/ with wrangler.toml + tsconfig + package.json
- Implement 5 middleware: CORS, auth, logging, rate-limit, timeout
- Implement 2 routes: /health (GET) and /v1/chat/completions (POST stub)
- Error utilities (errors.ts) and HTTP response helpers (response.ts)
- Composable middleware chain with Env + Context request passing
… — real auth and LLM forwarding

- Hub: POST /api/auth/token JWT endpoint with plan-based claims
- Hub: JWT verify + refresh support
- Worker: JWT verify (jose) middleware replacing auth stub
- Worker: auth context extraction (userId/planType/quota)
- Worker: Chat proxy route with upstream URL building + CU quota checks
- Test: 19 tests across 3 files (jwt-verify, auth-context, chat route)
实现 CF Worker Proxy 双模式路由集成:
1. CUCache — 按 task type + model 的 CU 用量缓存模块
2. ProxyProvider — 通过 CF Worker Proxy 转发 LLM 请求的 Provider 类
3. LLMRouter 路由集成 — enableProxyMode/disableProxyMode 双模式切换
4. chat() 方法自动判断模式:Proxy 模式走 CF Worker,直连模式走原生 Provider

核心改动:
- packages/core/src/llm/cu-cache.ts (new) — CU 用量缓存
- packages/core/src/llm/proxy-provider.ts (new) — Proxy 转发 Provider
- packages/core/src/llm/router.ts — 双模式路由集成
- packages/core/src/llm/types.ts — 类型导出更新
… — CU_EXCEEDED, emitLog, auth degrade, retry+degrade, comprehensive proxy test
…quota, AbortController for streaming

- Issue 1: Changed 403→429 for QUOTA_EXCEEDED and INSUFFICIENT_QUOTA
- Issue 2: Added AbortController + DEFAULT_TIMEOUT_MS to streaming fetch path
  (catch AbortError as UPSTREAM_TIMEOUT 504, other errors as UPSTREAM_UNREACHABLE 502)
- Non-blocking suggestions kept for future rounds
…525317e

[TASK-tsk_5319d992235c56638525317e][Backend Developer] feat: JWT auth + Chat proxy route — real auth and LLM forwarding
…0b9957f

[TASK-tsk_c69d3a9ecea19bdf30b9957f][Backend Developer] feat: LLM Router 双模式集成 + CU 用量缓存
…kus + subscription key展示

- Added 'markus' to PROVIDER_OPTIONS (no envKey needed - system auto-generates subscription_key)
- Subscription key display: read-only input with copy button, shown when Markus provider is configured
- Added keyReadOnly i18n translation for en/zh-CN
@jsyqrt

jsyqrt commented Jun 25, 2026

Copy link
Copy Markdown
Contributor Author

❌ Code Review — Revision Required

Reviewer: Code Reviewer (ID: agt_42fc22d8cd79900a089eea09)

Verification Results

  • PR scope inspected via gh pr view 219 --json files: ✅
  • Diff inspected: ✅ — 28 files, 2,828 additions

Decision

Revision Required — 3 blocking issues

Issues

  1. MASSIVE SCOPE VIOLATION: PR contains 24 unrelated files (cloudflare-worker 18 files + core 4 files + pnpm-lock.yaml). Only 4 web-ui files should be in this PR.
  2. FALSE PR DESCRIPTION: PR body claims "4 files" but actual diff shows 28 files.
  3. WRONG BASE BRANCH: Should target feature/token-billing, not main.

Fix Required

  1. Create clean branch from feature/token-billing
  2. Keep only the 4 web-ui file changes
  3. Close this PR and open a new clean PR
  4. Please close this existing PR promptly

@jsyqrt

jsyqrt commented Jun 25, 2026

Copy link
Copy Markdown
Contributor Author

Closing this PR. Replaced by a clean PR targeting feature/token-billing with only the 4 required web-ui files.

@jsyqrt jsyqrt closed this Jun 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant