Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
330 commits
Select commit Hold shift + click to select a range
b2a4238
docs: clarify Cascade routing comment for deprecated models
dwgx Apr 23, 2026
6b0a2d2
Update README.md
dwgx Apr 23, 2026
e5111e8
docs: remove xyiqq credit line
dwgx Apr 23, 2026
e36cae3
fix: probe only gemini canaries — Claude burns Trial quota too fast
dwgx Apr 23, 2026
01c7779
feat: v2.0.0 — deprecated models + connect-rpc tested + probe fix
dwgx Apr 23, 2026
9692137
feat: dark immersive landing page with protocol conversion animation
dwgx Apr 23, 2026
6344ab3
i18n: add missing translation keys and improve UI text consistency ac…
smeinecke Apr 23, 2026
87b6acb
i18n: add I18n.t() call validation and missing translation keys for p…
smeinecke Apr 23, 2026
633e225
fix(auth): don't demote Pro/Trial tier to 'free' after each chat call
aict666 Apr 24, 2026
0109a56
Merge branch 'dwgx:master' into upd/english-translation
smeinecke Apr 24, 2026
0b940bb
i18n: remove I18n.t() call from cascadeReuse.desc — use data-i18n att…
smeinecke Apr 24, 2026
30cf2de
fix: adjust cascadeReuse section layout — remove extra closing div an…
smeinecke Apr 24, 2026
696a791
i18n: remove I18n.t() call from identityPrompt.templateHint — use dat…
smeinecke Apr 24, 2026
8b82045
fix: prevent cascade reuse replay from duplicating context
baily-zhang Apr 24, 2026
20dea9e
Merge pull request #44 from aict666/fix/preserve-authoritative-tier
dwgx Apr 24, 2026
af8d1ad
Merge pull request #45 from baily-zhang/fix-cascade-reuse-offsets
dwgx Apr 24, 2026
e5c135c
Merge pull request #43 from smeinecke/upd/english-translation
dwgx Apr 24, 2026
b64ed1d
docs: add baily-zhang, aict666, smeinecke to contributors
dwgx Apr 24, 2026
bb2c081
revert: restore previous landing page design
dwgx Apr 24, 2026
5b69fb9
feat: inject model identity context for hvoy.ai verification scoring
dwgx Apr 24, 2026
fdf8672
fix: destructure displayModel from opts in cascadeChat
dwgx Apr 24, 2026
77a3bd2
fix: pass displayModel as model param to cascadeChat
dwgx Apr 24, 2026
ed004b5
feat: neutralize Cascade identity in responses — replace with actual …
dwgx Apr 24, 2026
1088c7d
feat: model identity & quality test script for hvoy.ai prep
dwgx Apr 24, 2026
be75140
fix: structured output + thinking auto-upgrade + model signature head…
dwgx Apr 24, 2026
085e672
feat: structured output + PDF extraction + tool call bug fix (#47)
dwgx Apr 24, 2026
899eb91
fix(#49): show LS stderr as warn + diagnostic hints on exit code 1
dwgx Apr 24, 2026
d3e241d
fix: quota labels 日/周/提示词 + 6 contributors added to dashboard credits
dwgx Apr 24, 2026
056c362
fix: clean quota bars — short D/W/P labels + tooltip details, no clutter
dwgx Apr 24, 2026
208d4ee
fix: wantJson scope + i18n quota short labels with tooltip
dwgx Apr 24, 2026
c2af6ba
feat: Canvas area chart + quota D/W/P universal labels + N/A for miss…
dwgx Apr 24, 2026
85ea924
feat(dashboard): 4-type chart switcher + model pie + quota column i18…
dwgx Apr 24, 2026
4e2b8ca
feat(dashboard): polished charts + date range + drop prompt bar
dwgx Apr 24, 2026
06f0940
feat(dashboard): default to bar + chart animation + pinned tooltip
dwgx Apr 24, 2026
1f46a72
fix: robust JSON extraction + full OpenAI PDF input coverage
dwgx Apr 24, 2026
e8a6f42
fix: response.model echoes request.model verbatim + identity uses cle…
dwgx Apr 24, 2026
f56d1da
debug: log probe-style requests (response_format / non-text content)
dwgx Apr 24, 2026
d420ab3
debug: probe-log every request with content-type shape + last user tu…
dwgx Apr 24, 2026
00d0d3c
debug: probe-log first 3 message heads
dwgx Apr 24, 2026
ad540f3
fix: model-signature headers + phantom-attachment guard
dwgx Apr 24, 2026
6b23873
fix: unify phantom-attachment + verbosity guards into one bare-probe …
dwgx Apr 24, 2026
0337cb2
fix: bare-probe guard prioritizes correctness + language match
dwgx Apr 24, 2026
f8db997
revert: drop bare-probe guard — collateral damage on normal requests
dwgx Apr 24, 2026
955b837
feat(dashboard): rich per-account quota detail panel
dwgx Apr 24, 2026
2d3e569
feat(#48): remove all automatic system-prompt injection
dwgx Apr 24, 2026
e48eb5e
fix(#24): stop Cascade file-path hallucination + read-loop
dwgx Apr 24, 2026
ec8c7c7
fix(#24): redact leaked paths to <redacted-path> — not [internal] or …
dwgx Apr 24, 2026
5cb49e0
Merge PR #50 — disable Cascade reuse for tool-emulated turns
aict666 Apr 24, 2026
64be622
fix(#24): retry panel-state-missing up to 3 times with backoff
dwgx Apr 24, 2026
2e0a2b1
fix: lenient JSON parse for <tool_call> bodies (small-model trailing-…
dwgx Apr 24, 2026
9120b8b
fix(#24): redact marker → natural-language phrase; LLMs stop re-using…
dwgx Apr 24, 2026
13985c1
fix: rephrase tool preamble so Opus-class injection guards don't refu…
aict666 Apr 24, 2026
2ed869d
bump version to 2.0.3
dwgx Apr 24, 2026
7919393
Merge pull request #51 from aict666/fix/tool-preamble-injection-guard
dwgx Apr 24, 2026
be39c35
fix(#24): redact marker must have no shell metacharacters (#53)
aict666 Apr 24, 2026
e4db05b
fix(#52): correct cascadeConversationReuse copy + weighted credits panel
dwgx Apr 24, 2026
414fdc8
fix: return 410 model_deprecated for upstream-retired models
dwgx Apr 24, 2026
45eedc6
bump version to 2.0.4
dwgx Apr 24, 2026
9a390c1
fix: bring Claude Code tool-call flow back to Anthropic-equivalent be…
aict666 Apr 25, 2026
1fd9523
fix(#28): reject empty user message + warn on heavy system prompts
dwgx Apr 25, 2026
3e4bf2f
fix(#28): backoff between accounts on Cascade internal_error + clean …
dwgx Apr 25, 2026
54b42f1
fix: prevent Opus 4.7 context bloat (#61)
baily-zhang Apr 25, 2026
770ad7e
fix: resolve nginx shared memory error and missing join import (#58)
abwuge Apr 25, 2026
60fcd5a
feat(dashboard): add PR #61 #58 #54 #53 to credits panel; promote bai…
dwgx Apr 25, 2026
779e333
feat(docs): add full contributors section to GitHub Pages
dwgx Apr 25, 2026
274d5f1
fix(#59): extend Opus tool-emulated cascade reuse to 4.6 (rename helper)
dwgx Apr 25, 2026
f436008
fix: prioritize upstream_transient over rate-limit msg in stream path…
dwgx Apr 25, 2026
8bed373
fix(dashboard): prevent credits syntax crash (#62)
baily-zhang Apr 25, 2026
575c2d9
feat(#56,#63): implement /v1/responses endpoint for Codex CLI compati…
dwgx Apr 25, 2026
de11dc3
chore: bump 2.0.5 + add baily-zhang PR #62 to credits
dwgx Apr 25, 2026
49fa8e3
fix(#57,#59): harden stream reuse and security edges
dwgx Apr 25, 2026
8a3a9ca
fix(#64): recover from canceled cascade panel transport
baily-zhang Apr 25, 2026
250e6a8
ci(#65): add release workflow with GHCR + GitHub Release
abwuge Apr 25, 2026
1e3bd07
ci: fix release workflow image name + restore docker-compose build op…
dwgx Apr 25, 2026
0db6d24
fix(#63): wrap /v1/responses lifecycle events in `response` envelope
dwgx Apr 25, 2026
38981d5
fix(#59): raise CASCADE_MAX_WAIT_MS default 180s -> 600s
dwgx Apr 26, 2026
9e575aa
fix(#59,#63,#66): audit-driven hardening — parser order, rate-limit, …
dwgx Apr 26, 2026
f80fab3
refactor(auth,chat): apply polish review on 9e575aa
dwgx Apr 26, 2026
505eb79
chore: bump 2.0.7 + release notes
dwgx Apr 26, 2026
21f2b30
fix(login): handle new Windsurf connections schema + 5xx retry
dwgx Apr 26, 2026
a487901
fix(login): use new CheckUserLoginMethod as primary email probe
dwgx Apr 26, 2026
69a3661
chore: bump 2.0.8 + release notes (emergency login fix)
dwgx Apr 26, 2026
cfc12fe
fix(#68): route bare `claude-4.6` to sonnet, reject unknown models wi…
dwgx Apr 26, 2026
cbe43fc
fix(#67): preserve accounts.json across docker-compose upgrades
dwgx Apr 26, 2026
e000060
fix(tool-payload): drop field 10 schema duplicate, add proto-preamble…
dwgx Apr 26, 2026
c63483d
chore: bump 2.0.9 + release notes (#67/#68 + cloud tool-calling fix)
dwgx Apr 26, 2026
ba79242
fix: define positiveIntEnv in auth.js (dynamic cloud probe was crashi…
dwgx Apr 26, 2026
f2e84bf
feat(dashboard): cookie-based skin route + experimental sketch UI
dwgx Apr 26, 2026
9c34740
chore: bump 2.0.11 + release notes (sketch skin)
dwgx Apr 26, 2026
75e06cd
fix(dashboard): compact credits contributor cards
dwgx Apr 26, 2026
572fd8c
fix(tool-payload): compact before enforcing hard cap
dwgx Apr 26, 2026
6442596
fix(messages): flag ambiguous Read tool results
dwgx Apr 26, 2026
a04cb82
fix(chat): lift Claude Code Windows cwd hints
dwgx Apr 26, 2026
72dc014
fix(rate-limit): honor Cascade reset windows
dwgx Apr 26, 2026
68bccd4
fix(tools): reinforce argument fidelity hints
dwgx Apr 26, 2026
818b4d2
fix(tools): add compact Bash fallback hints
dwgx Apr 26, 2026
8f50c6b
fix(tools): repair explicit Bash command truncation
dwgx Apr 26, 2026
588418c
fix(json): honor explicit JSON-only requests
dwgx Apr 26, 2026
f9d7c54
fix(json): preserve requested final keys
dwgx Apr 26, 2026
c26f49c
fix(json): stabilize requested key shape
dwgx Apr 26, 2026
1694099
fix(json): ignore injected hint in key extraction
dwgx Apr 26, 2026
24a5c5e
fix(messages): skip stub heuristics on line-numbered Read body
dwgx Apr 26, 2026
8499bdc
feat(dashboard): group Credits panel by contributor with PR history
dwgx Apr 26, 2026
44ad502
fix: tighten Windows repo-root resolution, OPTIONS 204, and pool rege…
dwgx Apr 26, 2026
fea50dd
fix: route adaptive thinking + translate Anthropic output_config
dwgx Apr 26, 2026
3445077
chore(chat): log effective model key when thinking routes a request
dwgx Apr 26, 2026
2c3c52b
feat(messages): isolate cascade pool per Claude Code device via metad…
dwgx Apr 26, 2026
9d82328
fix(messages): drop Anthropic server-side tools before forwarding ups…
dwgx Apr 26, 2026
408e6da
refactor(dashboard): single-source contributor roster via /dashboard/…
dwgx Apr 26, 2026
a28d63f
fix(auth): trust per-account allowlist for model routing
dwgx Apr 27, 2026
e48d960
fix(auth): preserve manual tier override + refresh tier modal copy
dwgx Apr 27, 2026
57b7b69
fix(responses): drop server-side tools instead of throwing 500
dwgx Apr 27, 2026
0cb6cd4
feat(messages): honour Anthropic prompt-caching cache_control markers
dwgx Apr 27, 2026
460265e
fix: add Codex Responses tool compatibility
sandleft Apr 26, 2026
0c49040
chore(credits): add sandleft for PR #72 Codex Responses tools layer
dwgx Apr 27, 2026
3cd1dde
chore: bump 2.0.12 — 安全加固 cherry-pick + credits 补全
dwgx Apr 27, 2026
637d17e
fix(#82,#83): cachePolicy ReferenceError in stream + non-stream paths
dwgx Apr 27, 2026
225bba2
fix(#77): surface real reason when account queue times out (no more e…
dwgx Apr 27, 2026
e68f8ba
fix: 2.0.15 — Claude Code edit/Bash tool流 + dashboard XSS收紧 + #84 pro…
dwgx Apr 28, 2026
18f604e
fix(#77 AromaACG): tiered tool preamble compaction — 修 opus-4-7 短回复 1…
dwgx Apr 28, 2026
01593a6
fix: 2.0.17 — 安全审计一波过 (5 HIGH + 1 MED v2.0.16 回归 + LOW 收尾)
dwgx Apr 28, 2026
0e5d29b
feat: add ALLOW_PRIVATE_PROXY_HOSTS config for local proxy testing
smeinecke Apr 28, 2026
84d54f4
refactor(dashboard): extract parseProxyUrl helper for proxy string pa…
smeinecke Apr 28, 2026
aed4351
fix(dashboard): translate error messages in Windsurf login flows when…
smeinecke Apr 28, 2026
4dd7b9e
fix(dashboard): improve i18n UX — full-word lang toggle + auto-refres…
smeinecke Apr 28, 2026
94509b9
fix(i18n): add ERR_PROXY_PRIVATE_HOST translation + rename net-safety…
smeinecke Apr 28, 2026
112e3da
test(ssrf): update error code assertion to match ERR_PROXY_PRIVATE_IP…
smeinecke Apr 28, 2026
4e6c5f6
fix: 2.0.18 — dual-audit 第二轮 follow-up (2 HIGH + 2 MED)
dwgx Apr 28, 2026
2003913
chore(scripts): vps-exec.py 改为 env 驱动,去掉硬编码 SSH 凭据
dwgx Apr 28, 2026
d1e374c
docs: add ALLOW_PRIVATE_PROXY_HOSTS to README env tables
smeinecke Apr 28, 2026
d00fb9d
fix: 2.0.19 — fingerprint refresh + transport mode 默认修正
dwgx Apr 28, 2026
b482e7c
fix: 2.0.20 — RPC 序列对齐 (Heartbeat + UpdatePanelStateWithUserStatus)
dwgx Apr 28, 2026
1d2bafc
fix: 2.0.21 — hotfix 回退 v2.0.19 GRPC_PROTOCOL Connect 默认
dwgx Apr 28, 2026
d8f2684
fix: 2.0.22 — OAuth-only 账号一键 token 入池
dwgx Apr 28, 2026
e2a68aa
fix: 2.0.23 — OAuth backup-login URL 改用 Windsurf 2.0.67 editor 真实模板
dwgx Apr 28, 2026
31dca58
feat: 2.0.24 — dashboard UX 三件套(代理移底 + 饼图悬浮 + 手绘草稿风同步)
dwgx Apr 28, 2026
1e3a1a8
feat: 2.0.25 — Cascade conversation reuse 全面加固(codex 审计 7 条整改)
dwgx Apr 28, 2026
e694f98
fix: 2.0.26 — dashboard 登录"没反应"修复(pre-flight 校验 + inline error)
dwgx Apr 29, 2026
2cded99
Merge pull request #89 from smeinecke/fix/missing-i18n
dwgx Apr 29, 2026
543d996
Merge pull request #88 from smeinecke/feat/allow-private-proxies
dwgx Apr 29, 2026
1526b40
chore: 2.0.27 — i18n guard 收尾 + PR #88 #89 合并后
dwgx Apr 29, 2026
a4dc792
feat(dashboard): add per-account proxy field to single-add form
smeinecke Apr 28, 2026
59c5f71
Merge pull request #90 from smeinecke/feat/add-account-proxy
dwgx Apr 29, 2026
ec61dc0
feat: 2.0.28 — 本地 Windsurf 凭证导入 (#91) + PR #90 proxy 顺序修正
dwgx Apr 29, 2026
19eba7e
feat: 2.0.29 — 模型目录补全 (Opus 4.7 全系 + Adaptive + missing variants) + G…
dwgx Apr 29, 2026
06fec5c
audit(spark-A): security hardening — loopback bind gate + sqlite reso…
dwgx Apr 29, 2026
9e41efb
audit(spark-B): test coverage — 11 new tests across models/proxy/i18n…
dwgx Apr 29, 2026
7cd25b6
audit(spark-C): catalog correctness — Opus 4.7 alias gaps + new test …
dwgx Apr 29, 2026
202f158
Merge spark-A: security hardening for local-windsurf import
dwgx Apr 29, 2026
022d23b
Merge spark-B: 11 new tests + gen-docs idempotency fix
dwgx Apr 29, 2026
e540e31
Merge spark-C: 3 missing Opus 4.7 aliases + 6 catalog tests
dwgx Apr 29, 2026
250ba5c
merge: resolve spark-B/C alias test conflict + regen docs
dwgx Apr 29, 2026
41fad0e
chore: 2.0.30 — 三层 AI 审计完成(3×Spark workers + GPT-5.5 reviewer + Claud…
dwgx Apr 29, 2026
33404dc
fix(#86): GLM/Kimi tool dialect support
dwgx Apr 29, 2026
b8e88da
merge: v2.0.31 — GLM/Kimi tool-call dialect (fix #86)
dwgx Apr 29, 2026
37b2234
release: v2.0.31 — GLM/Kimi tool dialect support (#86)
dwgx Apr 29, 2026
294f5fd
fix: dashboard i18n centralization (PR #92, smeinecke) + Windows path…
dwgx Apr 29, 2026
182ac65
fix(#94): claude-opus-4-7 thinking auto-route disabled
dwgx Apr 29, 2026
5b3cc3d
fix(#87): graceful Docker self-update unavailable state
dwgx Apr 29, 2026
6bef3d3
merge: v2.0.32 — Docker self-update graceful unavailable (#87)
dwgx Apr 29, 2026
58ee17a
release: v2.0.32 — #94 Opus 4.7 thinking + #87 Docker self-update + #…
dwgx Apr 29, 2026
59228fa
fix(#93): enable cascade reuse for Sonnet 4.6 thinking with emulated …
dwgx Apr 29, 2026
725bb38
fix(#96): better workspace path marker + system-prompt hint to break …
dwgx Apr 29, 2026
674a9ed
fix(#86 follow-up): GLM 5.1 silence — promote thinking → content for …
dwgx Apr 29, 2026
d866cf4
merge: #93 cascade reuse for Sonnet 4.6 thinking
dwgx Apr 29, 2026
1c06d14
merge: #96 workspace marker + system-prompt hint
dwgx Apr 29, 2026
388d519
merge: GLM5.1 silence — promote thinking → content for non-reasoning …
dwgx Apr 29, 2026
b340255
release: v2.0.33 — #93 cascade reuse + #96 marker + GLM5.1 silence fa…
dwgx Apr 29, 2026
496f3e0
fix: fresh account no longer 403s every model before probe completes
dwgx Apr 29, 2026
ee6d1e1
merge: fix tier-unknown 403 race for fresh accounts
dwgx Apr 29, 2026
eec0c64
release: v2.0.34 — fix fresh-account 403 race for non-gemini models (…
dwgx Apr 29, 2026
fa248c5
fix(#97): Cache-Control no-store + repo cleanup (v2.0.35)
dwgx Apr 29, 2026
1275d80
fix(#93,#98): routingModelKey ReferenceError + workspace shell-redire…
dwgx Apr 29, 2026
a851603
fix(#93 follow-up): apiKey-mode cascade reuse via IP+UA fallback subk…
dwgx Apr 29, 2026
df871b9
fix(#100,#101,#102): cwd fallback + cascade timeout invalidation + ki…
dwgx Apr 29, 2026
1cb13d6
fix: restore /auth/login email mode + CheckUserLoginMethod empty-body…
dwgx Apr 29, 2026
9bf037a
fix+feat: probe lock per-account + dashboard one-click LS binary upda…
dwgx Apr 29, 2026
0e3a631
fix+feat: LS update ETXTBSY + opt-in docker self-update via docker.so…
dwgx Apr 30, 2026
ad8e52c
fix: audit-driven hardening — cache scope, pool checkout, atomic writ…
dwgx Apr 30, 2026
c7f248c
fix(#103,#104): allowlist -thinking inheritance + JSON cascade pollut…
dwgx Apr 30, 2026
687ac0f
fix(#100 follow-up): strip <system-reminder> wrappers before bare-cwd…
dwgx Apr 30, 2026
dbe2646
fix(#106,#107): Claude Code 2.x cwd extraction (adjective + bullet) (…
dwgx Apr 30, 2026
6cacfc0
fix(#107 follow-up): retry on 'untrusted workspace' + escalate Update…
dwgx Apr 30, 2026
f958d2c
fix(#108): proxy workspace scaffold no longer mistaken for user proje…
dwgx May 1, 2026
ef1f228
fix: one-click docker self-update three-bug stack (v2.0.48)
dwgx May 1, 2026
2ac59c6
fix: LS update toast distinguishes 'no change' from 'cold pool' (v2.0…
dwgx May 1, 2026
3396be6
feat: gpt-5.5 + claude-opus-4-7-max + gpt-5.3-codex tier ladder (v2.0…
dwgx May 1, 2026
52f182c
fix(#109): deprecate 6 SKUs the upstream actually rejects (v2.0.51)
dwgx May 1, 2026
ede5349
fix(#109): cross-tier aliases for gpt-5.2 / 5.4 / 5.3-codex (v2.0.52)
dwgx May 1, 2026
8ff62c1
feat(#109): salvage tool_calls from non-canonical formats (v2.0.53)
dwgx May 1, 2026
de91848
test(#109): end-to-end chain tests for salvage → tool_use translation…
dwgx May 1, 2026
1a1c82d
release: 2.0.56 — security hardening + runtime credential rotation + …
dwgx May 1, 2026
9547f80
release: 2.0.57 — research-driven upgrades (RegisterUser/PostAuth mig…
dwgx May 2, 2026
5db7cbf
release: 2.0.58 — drought mode hard-blocks premium models with 503
dwgx May 2, 2026
2381efd
release: 2.0.59 — dashboard chart timeline fill + warmer palette
dwgx May 2, 2026
0125c8f
release: 2.0.60 — dashboard UX overhaul (logs export + chart crosshai…
dwgx May 2, 2026
f1c4d9d
release: 2.0.61 — issue triage fixes (#110 #111 #113 #114)
dwgx May 2, 2026
e7b0794
release: 2.0.62 — gpt_native dialect for Codex CLI / Responses route …
dwgx May 2, 2026
89efdb7
fix(v2.0.62 hotfix): pass route to nonStreamResponse via positional arg
dwgx May 2, 2026
6c50a15
release: 2.0.63 — v2.0.62 hotfix (body is not defined fix)
dwgx May 2, 2026
18a2359
fix(v2.0.64 #115): strengthen gpt_native user-message preamble + dial…
dwgx May 2, 2026
32951f4
release: 2.0.65 — Cascade native tool bridge (#115 真修)
dwgx May 2, 2026
4efaf95
release: 2.0.66 — Cascade native bridge partition mode + reasoning ef…
dwgx May 2, 2026
f6a7794
release: 2.0.67 — quiet-window 自动 docker self-update (#112)
dwgx May 2, 2026
c2f6599
release: 2.0.68 — issue triage 三连 (#117 alias / #118 usage / #119 sti…
dwgx May 2, 2026
a16117e
release: 2.0.69 — dashboard token 拆分 + thinking 长思考不杀 + #115 partitio…
dwgx May 2, 2026
803275b
release: 2.0.70 — #115 翻方向 + 积压 follow-up 全清
dwgx May 2, 2026
42ef969
release: 2.0.71 — 7 issue 自己做完不再推回去
dwgx May 2, 2026
4ac2af3
release: 2.0.72 — NLU 协议转换层让 GPT/GLM/Kimi 在 cascade 后端能调工具
dwgx May 2, 2026
f92af67
release: 2.0.73 — v2.0.72 NLU recovery hotfix (allThinking 通道漏)
dwgx May 2, 2026
2005c9a
release: 2.0.74 — 真修两条没人接的超时 + reuse miss
dwgx May 2, 2026
7f915f8
release: 2.0.75 — Claude 工具卡死回归紧急修 + 登录 cross-host + UI N/A
dwgx May 3, 2026
267e510
release: 2.0.76 — NLU 误抠 placeholder patch (v2.0.75 实测追加)
dwgx May 3, 2026
d6c154b
release: 2.0.77 — NLU recovery 入口扩宽 (v2.0.76 实测发现真问题)
dwgx May 3, 2026
11e18b3
release: 2.0.78 — 严格 dual-audit 4 HIGH 全修
dwgx May 3, 2026
6af5ea1
release: 2.0.79 — audit MED + LOW 收尾
dwgx May 3, 2026
e75b41e
release: 2.0.80 — H-4 narrowing hotfix
dwgx May 3, 2026
a2c25c5
release: 2.0.81 — #125 中文 NLU + bilingual anti-narrate dialect
dwgx May 3, 2026
23e0125
release: 2.0.82 — #125 真正的兼容/转换层:NLU retry-with-correction
dwgx May 3, 2026
4e0955f
fix(v2.0.82): widen detectToolIntentInNarrative to fall back to actio…
dwgx May 3, 2026
3890c7d
release: 2.0.83 — retry detector Pass 2 fallback (GLM-5.1 narrate doe…
dwgx May 3, 2026
703a064
docs(readme): correct free-account model list (GLM/Kimi/Qwen entitled…
dwgx May 3, 2026
931fde2
docs(readme.en): mirror Chinese README — free-tier model list + tool-…
dwgx May 3, 2026
84ae526
release: 2.0.84 — #118 rate-limit fallback hint
dwgx May 3, 2026
de32c59
fix(models): add dotted-form aliases (claude-haiku-4.5 / claude-sonne…
dwgx May 3, 2026
2b24673
release: 2.0.85 — #126/#128 自动 model fallback + #127 LS orphan cleanup
dwgx May 3, 2026
cb8088c
release: 2.0.86 — #129 wnfilm regression hotfix auto-fallback 默认 OFF
dwgx May 4, 2026
65e03d6
release: 2.0.87 — #129 真修 cascade pool alias + auto-fallback 默认 ON
dwgx May 4, 2026
37fbb66
release: 2.0.88 — 严格 dual-audit v2.0.85-87 找 4 HIGH + 3 polish
dwgx May 4, 2026
e12a31c
release: 2.0.89 — v2.0.88 修法二审 latent guard
dwgx May 4, 2026
5059834
release: 2.0.90 — #114 OTT 端点全坏 紧急绕路 sessionToken 直接当 apiKey
dwgx May 4, 2026
7d46dea
fix: #114 #123 #132 + circuit breaker stats — 4 HIGH from dual-audit …
dwgx May 4, 2026
707a847
fix(dashboard): proxy save feedback and parseProxyUrl whitespace hand…
dwgx May 6, 2026
6145f59
fix: switch kimi-k2 to openai_json_xml tool dialect
dwgx May 6, 2026
0ea62ff
docs: add upstream-outage comment for kimi-k2 idle_empty behavior
dwgx May 6, 2026
49772ce
fix: ReferenceError context is not defined in streamResponse (#135)
dwgx May 6, 2026
cce4741
fix(#134): add X-Devin-Auth1-Token header to PostAuth request
dwgx May 6, 2026
ee244d9
feat: add RESPONSE_CACHE_ENABLED env to disable response cache
dwgx May 6, 2026
a7dd4cd
fix(#134): PostAuth empty proto body + raw token parsing (PR #144 by …
dwgx May 7, 2026
81384f5
release: 2.0.91 — #135 context crash fix + #134 PostAuth proto body +…
dwgx May 7, 2026
57f6136
chore: allow CLAUDE.md in repo for agent rules
dwgx May 7, 2026
cfd9dc2
fix: auto-enable NLU retry for GLM/Kimi + increase history budget to …
dwgx May 7, 2026
80a1300
fix: kimi-k2 upstream outage detection + content policy bypass hardening
dwgx May 7, 2026
8da5875
chore: gitignore tmp-testing/
dwgx May 7, 2026
90b6a6e
fix: kimi-k2 upstream outage returns 502 with model suggestions
dwgx May 7, 2026
6e60a5b
fix: kimi-k2 empty response detection at message assembly
dwgx May 7, 2026
888bc44
release: 2.0.92
dwgx May 7, 2026
dc1a1a3
feat(#138): support proxy binding in /auth/login
dwgx May 7, 2026
9af6bd0
fix: remove unused import + warn on invalid proxy format in /auth/login
dwgx May 7, 2026
8a0c598
docs: update CLAUDE.md with session knowledge
dwgx May 8, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
fix: clean quota bars — short D/W/P labels + tooltip details, no clutter
  • Loading branch information
dwgx committed Apr 24, 2026
commit 056c3620f13ddecfc5069dfeff239bfc91c3e6ae
6 changes: 3 additions & 3 deletions src/dashboard/i18n/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -144,9 +144,9 @@
},

"creditsBar": {
"daily": "Daily",
"weekly": "Weekly",
"monthly": "Monthly"
"daily": "Daily Quota",
"weekly": "Weekly Quota",
"monthly": "Monthly Quota"
},

"section": {
Expand Down
6 changes: 3 additions & 3 deletions src/dashboard/i18n/zh-CN.json
Original file line number Diff line number Diff line change
Expand Up @@ -144,9 +144,9 @@
},

"creditsBar": {
"daily": "日额度",
"weekly": "周额度",
"monthly": "月额度"
"daily": "每日额度",
"weekly": "每周额度",
"monthly": "每月额度"
},

"section": {
Expand Down
32 changes: 14 additions & 18 deletions src/dashboard/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -2545,31 +2545,27 @@ <h3 data-i18n="login.title">控制台登录</h3>
const planName = cr.planName || '-';
const fetchedAgo = cr.fetchedAt ? Math.round((Date.now() - cr.fetchedAt) / 60000) + 'm ago' : '-';
const barColor = (v) => v == null ? 'var(--text-dim)' : v <= 10 ? 'var(--error)' : v <= 30 ? 'var(--warn, #f59e0b)' : 'var(--success, #10b981)';
const bar = (label, pct) => {
const bar = (label, pct, detail) => {
if (pct == null) return '';
const v = Math.max(0, Math.min(100, pct));
const c = barColor(v);
return `<div style="display:flex;align-items:center;gap:4px;margin-top:2px">
<span class="text-xs" style="width:28px;flex-shrink:0;color:var(--text-dim)">${label}</span>
<div style="flex:1;height:4px;background:var(--surface-3);border-radius:2px;overflow:hidden">
<div style="height:100%;width:${v}%;background:${c};transition:width .3s"></div>
return `<div style="display:flex;align-items:center;gap:3px;margin-top:3px" title="${detail || ''}">
<span class="text-xs" style="width:16px;flex-shrink:0;color:var(--text-dim);font-size:10px">${label}</span>
<div style="flex:1;height:5px;background:var(--surface-3);border-radius:3px;overflow:hidden;min-width:50px">
<div style="height:100%;width:${v}%;background:${c};border-radius:3px;transition:width .3s"></div>
</div>
<span class="text-xs" style="width:28px;text-align:right;color:${c}">${v.toFixed(0)}%</span>
<span class="text-xs" style="width:30px;text-align:right;color:${c};font-size:10px">${v.toFixed(0)}%</span>
</div>`;
};
const promptPct = cr.prompt?.limit ? ((cr.prompt.remaining || 0) / cr.prompt.limit) * 100 : null;
const tipLines = [
`Plan: ${planName}`,
cr.dailyResetAt ? `Daily reset: ${new Date(cr.dailyResetAt * 1000).toLocaleString()}` : '',
cr.weeklyResetAt ? `Weekly reset: ${new Date(cr.weeklyResetAt * 1000).toLocaleString()}` : '',
cr.flex?.limit ? `Flex: ${(cr.flex.used || 0).toFixed(0)}/${cr.flex.limit.toFixed(0)}` : '',
`Updated: ${fetchedAgo}`,
].filter(Boolean).join('\n');
creditCell = `<div style="min-width:120px" title="${this.esc(tipLines)}">
<div class="text-xs" style="margin-bottom:2px"><b>${this.esc(planName.slice(0, 12))}</b> <span style="color:var(--text-dim)">${fetchedAgo}</span></div>
${bar(I18n.t('creditsBar.daily'), cr.dailyPercent)}${cr.dailyPercent != null ? `<span class="text-xs text-dim" style="margin-left:32px;margin-top:-2px;display:block">${cr.dailyResetAt ? '重置: ' + new Date(cr.dailyResetAt * 1000).toLocaleTimeString() : ''}</span>` : ''}
${bar(I18n.t('creditsBar.weekly'), cr.weeklyPercent)}
${bar('提示词', promptPct)}${promptPct != null && cr.prompt ? `<span class="text-xs text-dim" style="margin-left:32px;margin-top:-2px;display:block">${cr.prompt.remaining || 0}/${cr.prompt.limit} 剩余</span>` : ''}
const dailyTip = cr.dailyResetAt ? I18n.t('creditsBar.daily') + ' — ' + new Date(cr.dailyResetAt * 1000).toLocaleString() : '';
const weeklyTip = cr.weeklyResetAt ? I18n.t('creditsBar.weekly') + ' — ' + new Date(cr.weeklyResetAt * 1000).toLocaleString() : '';
const promptTip = cr.prompt?.limit ? `${cr.prompt.remaining || 0} / ${cr.prompt.limit}` : '';
creditCell = `<div style="min-width:130px;max-width:180px">
<div class="text-xs" style="margin-bottom:3px"><b>${this.esc(planName.slice(0, 12))}</b> <span style="color:var(--text-dim)">${fetchedAgo}</span></div>
${bar('D', cr.dailyPercent, dailyTip)}
${bar('W', cr.weeklyPercent, weeklyTip)}
${bar('P', promptPct, promptTip)}
</div>`;
}
return `
Expand Down
Loading