Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@

## Fixes
- Fix Next.js 16 WebSocket HMR blocked cross-origin — add `allowedDevOrigins` config
- AliCode usage UI: hide reset countdown for 5h & weekly windows (real-time counting, no fixed reset) — only monthly shows reset info

# v0.4.28 (2026-05-10)

Expand Down
2 changes: 1 addition & 1 deletion cli/app/.next/BUILD_ID
Original file line number Diff line number Diff line change
@@ -1 +1 @@
4F7nmjubqOD1mTdM2Aydt
7EBgC0oun3f9_DUssXZD5
18 changes: 9 additions & 9 deletions cli/app/.next/app-path-routes-manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -100,24 +100,24 @@
"/api/keys/route": "/api/keys",
"/api/models/alias/route": "/api/models/alias",
"/api/models/custom/route": "/api/models/custom",
"/api/models/disabled/route": "/api/models/disabled",
"/api/oauth/[provider]/[action]/route": "/api/oauth/[provider]/[action]",
"/api/provider-nodes/route": "/api/provider-nodes",
"/api/providers/[id]/route": "/api/providers/[id]",
"/api/providers/suggested-models/route": "/api/providers/suggested-models",
"/api/providers/route": "/api/providers",
"/api/proxy-pools/[id]/route": "/api/proxy-pools/[id]",
"/api/providers/suggested-models/route": "/api/providers/suggested-models",
"/api/proxy-pools/[id]/test/route": "/api/proxy-pools/[id]/test",
"/api/proxy-pools/[id]/route": "/api/proxy-pools/[id]",
"/api/proxy-pools/route": "/api/proxy-pools",
"/api/proxy-pools/vercel-deploy/route": "/api/proxy-pools/vercel-deploy",
"/api/settings/database/route": "/api/settings/database",
"/api/settings/proxy-test/route": "/api/settings/proxy-test",
"/api/proxy-pools/vercel-deploy/route": "/api/proxy-pools/vercel-deploy",
"/api/settings/route": "/api/settings",
"/api/translator/console-logs/stream/route": "/api/translator/console-logs/stream",
"/api/settings/route": "/api/settings",
"/api/usage/[connectionId]/route": "/api/usage/[connectionId]",
"/api/usage/stats/route": "/api/usage/stats",
"/api/usage/stream/route": "/api/usage/stream",
"/api/models/disabled/route": "/api/models/disabled",
"/api/v1/audio/transcriptions/route": "/api/v1/audio/transcriptions",
"/api/usage/stream/route": "/api/usage/stream",
"/callback/page": "/callback",
"/dashboard/settings/pricing/page": "/dashboard/settings/pricing",
"/landing/page": "/landing",
Expand All @@ -139,8 +139,8 @@
"/(dashboard)/dashboard/translator/page": "/dashboard/translator",
"/(dashboard)/dashboard/usage/page": "/dashboard/usage",
"/(dashboard)/dashboard/console-log/page": "/dashboard/console-log",
"/(dashboard)/dashboard/profile/page": "/dashboard/profile",
"/(dashboard)/dashboard/providers/[id]/page": "/dashboard/providers/[id]",
"/(dashboard)/dashboard/providers/page": "/dashboard/providers",
"/(dashboard)/dashboard/proxy-pools/page": "/dashboard/proxy-pools"
"/(dashboard)/dashboard/proxy-pools/page": "/dashboard/proxy-pools",
"/(dashboard)/dashboard/profile/page": "/dashboard/profile",
"/(dashboard)/dashboard/providers/page": "/dashboard/providers"
}
4 changes: 2 additions & 2 deletions cli/app/.next/build-manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
],
"devFiles": [],
"lowPriorityFiles": [
"static/4F7nmjubqOD1mTdM2Aydt/_buildManifest.js",
"static/4F7nmjubqOD1mTdM2Aydt/_ssgManifest.js"
"static/7EBgC0oun3f9_DUssXZD5/_buildManifest.js",
"static/7EBgC0oun3f9_DUssXZD5/_ssgManifest.js"
],
"rootMainFiles": [
"static/chunks/webpack-7fe9f68a976b08ff.js",
Expand Down
6 changes: 3 additions & 3 deletions cli/app/.next/prerender-manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -592,8 +592,8 @@
"dynamicRoutes": {},
"notFoundRoutes": [],
"preview": {
"previewModeId": "4c50a35b6a666fbcf0ecc77561c5973f",
"previewModeSigningKey": "c9ec8cffc9b494cbb4c39c9202447ae15a09e4e0e583b0c45327a6f59be752c9",
"previewModeEncryptionKey": "093b513b046e04935d0de17591c1878c5375ff4bd52106df4e67cae542249b41"
"previewModeId": "b79b2c9c72897bc1cd9b6a6dcd08a147",
"previewModeSigningKey": "d1b4ce1ca7f0a88bf82a81aa1cfe7096c98dc6a2867ebb70ed6ee3d1d5924fbd",
"previewModeEncryptionKey": "4e22e5af124a93a11ae937c76f5738e24e110d6fc28d86594cfd91ad5a051cc4"
}
}
18 changes: 9 additions & 9 deletions cli/app/.next/server/app-paths-manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -100,24 +100,24 @@
"/api/keys/route": "app/api/keys/route.js",
"/api/models/alias/route": "app/api/models/alias/route.js",
"/api/models/custom/route": "app/api/models/custom/route.js",
"/api/models/disabled/route": "app/api/models/disabled/route.js",
"/api/oauth/[provider]/[action]/route": "app/api/oauth/[provider]/[action]/route.js",
"/api/provider-nodes/route": "app/api/provider-nodes/route.js",
"/api/providers/[id]/route": "app/api/providers/[id]/route.js",
"/api/providers/suggested-models/route": "app/api/providers/suggested-models/route.js",
"/api/providers/route": "app/api/providers/route.js",
"/api/proxy-pools/[id]/route": "app/api/proxy-pools/[id]/route.js",
"/api/providers/suggested-models/route": "app/api/providers/suggested-models/route.js",
"/api/proxy-pools/[id]/test/route": "app/api/proxy-pools/[id]/test/route.js",
"/api/proxy-pools/[id]/route": "app/api/proxy-pools/[id]/route.js",
"/api/proxy-pools/route": "app/api/proxy-pools/route.js",
"/api/proxy-pools/vercel-deploy/route": "app/api/proxy-pools/vercel-deploy/route.js",
"/api/settings/database/route": "app/api/settings/database/route.js",
"/api/settings/proxy-test/route": "app/api/settings/proxy-test/route.js",
"/api/proxy-pools/vercel-deploy/route": "app/api/proxy-pools/vercel-deploy/route.js",
"/api/settings/route": "app/api/settings/route.js",
"/api/translator/console-logs/stream/route": "app/api/translator/console-logs/stream/route.js",
"/api/settings/route": "app/api/settings/route.js",
"/api/usage/[connectionId]/route": "app/api/usage/[connectionId]/route.js",
"/api/usage/stats/route": "app/api/usage/stats/route.js",
"/api/usage/stream/route": "app/api/usage/stream/route.js",
"/api/models/disabled/route": "app/api/models/disabled/route.js",
"/api/v1/audio/transcriptions/route": "app/api/v1/audio/transcriptions/route.js",
"/api/usage/stream/route": "app/api/usage/stream/route.js",
"/callback/page": "app/callback/page.js",
"/dashboard/settings/pricing/page": "app/dashboard/settings/pricing/page.js",
"/landing/page": "app/landing/page.js",
Expand All @@ -139,8 +139,8 @@
"/(dashboard)/dashboard/translator/page": "app/(dashboard)/dashboard/translator/page.js",
"/(dashboard)/dashboard/usage/page": "app/(dashboard)/dashboard/usage/page.js",
"/(dashboard)/dashboard/console-log/page": "app/(dashboard)/dashboard/console-log/page.js",
"/(dashboard)/dashboard/profile/page": "app/(dashboard)/dashboard/profile/page.js",
"/(dashboard)/dashboard/providers/[id]/page": "app/(dashboard)/dashboard/providers/[id]/page.js",
"/(dashboard)/dashboard/providers/page": "app/(dashboard)/dashboard/providers/page.js",
"/(dashboard)/dashboard/proxy-pools/page": "app/(dashboard)/dashboard/proxy-pools/page.js"
"/(dashboard)/dashboard/proxy-pools/page": "app/(dashboard)/dashboard/proxy-pools/page.js",
"/(dashboard)/dashboard/profile/page": "app/(dashboard)/dashboard/profile/page.js",
"/(dashboard)/dashboard/providers/page": "app/(dashboard)/dashboard/providers/page.js"
}

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion cli/app/.next/server/app/_global-error.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion cli/app/.next/server/app/_global-error.rsc
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
8:I[90484,[],"ViewportBoundary"]
a:I[90484,[],"MetadataBoundary"]
c:I[27123,[],"default",1]
0:{"P":null,"c":["","_global-error"],"q":"","i":false,"f":[[["",{"children":["_global-error",{"children":["__PAGE__",{}]}]}],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$@7"]},null,false,"$@7"],["$","$1","h",{"children":[null,["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$c",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"4F7nmjubqOD1mTdM2Aydt"}
0:{"P":null,"c":["","_global-error"],"q":"","i":false,"f":[[["",{"children":["_global-error",{"children":["__PAGE__",{}]}]}],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$@7"]},null,false,"$@7"],["$","$1","h",{"children":[null,["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$c",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"7EBgC0oun3f9_DUssXZD5"}
d:[]
7:"$Wd"
9:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
Expand Down
Loading