@techysy/10router 1.3.1 → 1.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1025) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +12 -11
  3. package/app/.next-cli-build/build-manifest.json +2 -2
  4. package/app/.next-cli-build/prerender-manifest.json +1 -1
  5. package/app/.next-cli-build/routes-manifest.json +6 -0
  6. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +1 -1
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/experimental/page.js +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/experimental/page.js.nft.json +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/experimental/page_client-reference-manifest.js +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +5 -5
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +2 -2
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +1 -1
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +1 -1
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +1 -1
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +1 -1
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +3 -3
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
  52. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  53. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  54. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +1 -1
  55. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  56. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  57. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +1 -1
  58. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  59. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  60. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js +1 -1
  61. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  62. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  63. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +1 -1
  64. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  65. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  66. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +1 -1
  67. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  68. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  69. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +1 -1
  70. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  71. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  72. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +1 -1
  73. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  74. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  75. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +1 -1
  76. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  77. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  78. package/app/.next-cli-build/server/app/_global-error/page.js +2 -2
  79. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  80. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  81. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  82. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  83. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  84. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  85. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  86. package/app/.next-cli-build/server/app/_not-found/page.js +1 -1
  87. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  88. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  89. package/app/.next-cli-build/server/app/_not-found.html +2 -2
  90. package/app/.next-cli-build/server/app/_not-found.rsc +6 -6
  91. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +6 -6
  92. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +6 -6
  93. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  94. package/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
  95. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  96. package/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -1
  97. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  98. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
  99. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  100. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
  101. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  102. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
  103. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  104. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js +1 -1
  105. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
  106. package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js +1 -1
  107. package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js.nft.json +1 -1
  108. package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js +1 -1
  109. package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js.nft.json +1 -1
  110. package/app/.next-cli-build/server/app/api/auth/saml/start/route.js +1 -1
  111. package/app/.next-cli-build/server/app/api/auth/saml/start/route.js.nft.json +1 -1
  112. package/app/.next-cli-build/server/app/api/auth/saml/test/route.js +1 -1
  113. package/app/.next-cli-build/server/app/api/auth/saml/test/route.js.nft.json +1 -1
  114. package/app/.next-cli-build/server/app/api/auth/status/route.js +2 -2
  115. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  116. package/app/.next-cli-build/server/app/api/auth/verify-password/route.js +1 -1
  117. package/app/.next-cli-build/server/app/api/auth/verify-password/route.js.nft.json +1 -1
  118. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +2 -2
  119. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  120. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +1 -1
  121. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  122. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  123. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  124. package/app/.next-cli-build/server/app/api/cli-tools/claude-profiles/route.js +2 -2
  125. package/app/.next-cli-build/server/app/api/cli-tools/claude-profiles/route.js.nft.json +1 -1
  126. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
  127. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  128. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +1 -1
  129. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  130. package/app/.next-cli-build/server/app/api/cli-tools/codex-profiles/route.js +2 -2
  131. package/app/.next-cli-build/server/app/api/cli-tools/codex-profiles/route.js.nft.json +1 -1
  132. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
  133. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  134. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -2
  135. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  136. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  137. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  138. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
  139. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  140. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  141. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  142. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
  143. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  144. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js +1 -1
  145. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js.nft.json +1 -1
  146. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +2 -2
  147. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  148. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js +2 -2
  149. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
  150. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +2 -2
  151. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  152. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +1 -1
  153. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  154. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +1 -1
  155. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  156. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  157. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  158. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +1 -1
  159. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  160. package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  161. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  162. package/app/.next-cli-build/server/app/api/combos/route.js +1 -1
  163. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  164. package/app/.next-cli-build/server/app/api/headroom/extras/route.js +1 -1
  165. package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  166. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js +1 -1
  167. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  168. package/app/.next-cli-build/server/app/api/headroom/restart/route.js +1 -1
  169. package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  170. package/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
  171. package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  172. package/app/.next-cli-build/server/app/api/headroom/status/route.js +1 -1
  173. package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  174. package/app/.next-cli-build/server/app/api/headroom/stop/route.js +1 -1
  175. package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  176. package/app/.next-cli-build/server/app/api/health/route.js +1 -1
  177. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  178. package/app/.next-cli-build/server/app/api/init/route.js +1 -1
  179. package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  180. package/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
  181. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  182. package/app/.next-cli-build/server/app/api/keys/rotate/route.js +1 -1
  183. package/app/.next-cli-build/server/app/api/keys/rotate/route.js.nft.json +1 -1
  184. package/app/.next-cli-build/server/app/api/keys/route.js +1 -1
  185. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  186. package/app/.next-cli-build/server/app/api/locale/route.js +1 -1
  187. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  188. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +1 -1
  189. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  190. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +1 -1
  191. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  192. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  193. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  194. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  195. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  196. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  197. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  198. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
  199. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  200. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
  201. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  202. package/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
  203. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  204. package/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
  205. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  206. package/app/.next-cli-build/server/app/api/models/caps/route.js +1 -1
  207. package/app/.next-cli-build/server/app/api/models/caps/route.js.nft.json +1 -1
  208. package/app/.next-cli-build/server/app/api/models/custom/bulk/route.js +1 -1
  209. package/app/.next-cli-build/server/app/api/models/custom/bulk/route.js.nft.json +1 -1
  210. package/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
  211. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  212. package/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
  213. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  214. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  215. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  216. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  217. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  218. package/app/.next-cli-build/server/app/api/network/egress-region/route.js +1 -1
  219. package/app/.next-cli-build/server/app/api/network/egress-region/route.js.nft.json +1 -1
  220. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  221. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  222. package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js +1 -1
  223. package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js.nft.json +1 -1
  224. package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/checkin/route.js +1 -1
  225. package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/checkin/route.js.nft.json +1 -1
  226. package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/export/route.js +1 -1
  227. package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/export/route.js.nft.json +1 -1
  228. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  229. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
  230. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  231. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  232. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js +1 -1
  233. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  234. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
  235. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  236. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
  237. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  238. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
  239. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  240. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js +1 -1
  241. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
  242. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  243. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  244. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
  245. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  246. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js +1 -1
  247. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
  248. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  249. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  250. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  251. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  252. package/app/.next-cli-build/server/app/api/oauth/qoder/checkin/route.js +1 -1
  253. package/app/.next-cli-build/server/app/api/oauth/qoder/checkin/route.js.nft.json +1 -1
  254. package/app/.next-cli-build/server/app/api/oauth/qoder-cn/checkin/route.js +1 -1
  255. package/app/.next-cli-build/server/app/api/oauth/qoder-cn/checkin/route.js.nft.json +1 -1
  256. package/app/.next-cli-build/server/app/api/oauth/transfer/export/route.js +1 -1
  257. package/app/.next-cli-build/server/app/api/oauth/transfer/export/route.js.nft.json +1 -1
  258. package/app/.next-cli-build/server/app/api/oauth/transfer/import/route.js +1 -1
  259. package/app/.next-cli-build/server/app/api/oauth/transfer/import/route.js.nft.json +1 -1
  260. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js +1 -1
  261. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js.nft.json +1 -1
  262. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js +2 -2
  263. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js.nft.json +1 -1
  264. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/desktop-kill/route.js +1 -1
  265. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/desktop-kill/route.js.nft.json +1 -1
  266. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/desktop-status/route.js +2 -2
  267. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/desktop-status/route.js.nft.json +1 -1
  268. package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js +2 -2
  269. package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js.nft.json +1 -1
  270. package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js +1 -1
  271. package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js.nft.json +1 -1
  272. package/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
  273. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  274. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
  275. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  276. package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
  277. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  278. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
  279. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  280. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  281. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  282. package/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
  283. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  284. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  285. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  286. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  287. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  288. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  289. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  290. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js +1 -1
  291. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  292. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  293. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  294. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
  295. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  296. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  297. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  298. package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  299. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  300. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
  301. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  302. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  303. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  304. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +2 -2
  305. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  306. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +2 -2
  307. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  308. package/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
  309. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  310. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
  311. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  312. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js +2 -2
  313. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  314. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js +2 -2
  315. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  316. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js +2 -2
  317. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
  318. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js +2 -2
  319. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  320. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js +2 -2
  321. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  322. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js +1 -1
  323. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  324. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js +2 -2
  325. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  326. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js +2 -2
  327. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  328. package/app/.next-cli-build/server/app/api/security/status/route.js +1 -1
  329. package/app/.next-cli-build/server/app/api/security/status/route.js.nft.json +1 -1
  330. package/app/.next-cli-build/server/app/api/settings/database/import-usage/route.js +1 -1
  331. package/app/.next-cli-build/server/app/api/settings/database/import-usage/route.js.nft.json +1 -1
  332. package/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
  333. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  334. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -1
  335. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  336. package/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
  337. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  338. package/app/.next-cli-build/server/app/api/settings/route.js +2 -1
  339. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  340. package/app/.next-cli-build/server/app/api/shutdown/route.js +1 -1
  341. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  342. package/app/.next-cli-build/server/app/api/tags/route.js +1 -1
  343. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  344. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  345. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  346. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +2 -2
  347. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  348. package/app/.next-cli-build/server/app/api/translator/load/route.js +1 -1
  349. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  350. package/app/.next-cli-build/server/app/api/translator/save/route.js +1 -1
  351. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  352. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  353. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  354. package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  355. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  356. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
  357. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  358. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
  359. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  360. package/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
  361. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  362. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
  363. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  364. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  365. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  366. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  367. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  368. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +2 -2
  369. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  370. package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js +1 -1
  371. package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js.nft.json +1 -1
  372. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  373. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  374. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  375. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  376. package/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
  377. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  378. package/app/.next-cli-build/server/app/api/usage/dashboard/route.js +1 -1
  379. package/app/.next-cli-build/server/app/api/usage/dashboard/route.js.nft.json +1 -1
  380. package/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
  381. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  382. package/app/.next-cli-build/server/app/api/usage/logs/route.js +1 -1
  383. package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
  384. package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
  385. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  386. package/app/.next-cli-build/server/app/api/usage/quotas/route.js +1 -1
  387. package/app/.next-cli-build/server/app/api/usage/quotas/route.js.nft.json +1 -1
  388. package/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
  389. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  390. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
  391. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  392. package/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
  393. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  394. package/app/.next-cli-build/server/app/api/usage/stream/route.js +1 -1
  395. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  396. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  397. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  398. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  399. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  400. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  401. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  402. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
  403. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  404. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  405. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  406. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  407. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  408. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
  409. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  410. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js +1 -1
  411. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  412. package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  413. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  414. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -1
  415. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  416. package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
  417. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  418. package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  419. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  420. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  421. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  422. package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  423. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  424. package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  425. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  426. package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  427. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  428. package/app/.next-cli-build/server/app/api/v1/systemone/route.js +1 -1
  429. package/app/.next-cli-build/server/app/api/v1/systemone/route.js.nft.json +1 -1
  430. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js +1 -1
  431. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
  432. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js +1 -1
  433. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
  434. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js +1 -1
  435. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
  436. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js +1 -1
  437. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  438. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  439. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  440. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  441. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  442. package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  443. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  444. package/app/.next-cli-build/server/app/api/version/route.js +2 -1
  445. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  446. package/app/.next-cli-build/server/app/api/version/shell-update/route.js +2 -0
  447. package/app/.next-cli-build/server/app/api/version/shell-update/route.js.nft.json +1 -0
  448. package/app/.next-cli-build/server/app/api/version/shell-update/route_client-reference-manifest.js +1 -0
  449. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  450. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  451. package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  452. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  453. package/app/.next-cli-build/server/app/callback/page.js +1 -1
  454. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  455. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  456. package/app/.next-cli-build/server/app/callback.html +2 -2
  457. package/app/.next-cli-build/server/app/callback.rsc +6 -6
  458. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +6 -6
  459. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
  460. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +6 -6
  461. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +2 -2
  462. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +8 -8
  463. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +8 -8
  464. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +8 -8
  465. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
  466. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +2 -2
  467. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +8 -8
  468. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +8 -8
  469. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +8 -8
  470. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  471. package/app/.next-cli-build/server/app/dashboard/combos.html +2 -2
  472. package/app/.next-cli-build/server/app/dashboard/combos.rsc +8 -8
  473. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +8 -8
  474. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +8 -8
  475. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  476. package/app/.next-cli-build/server/app/dashboard/endpoint.html +2 -2
  477. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +8 -8
  478. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +8 -8
  479. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +8 -8
  480. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  481. package/app/.next-cli-build/server/app/dashboard/experimental.html +2 -2
  482. package/app/.next-cli-build/server/app/dashboard/experimental.rsc +8 -8
  483. package/app/.next-cli-build/server/app/dashboard/experimental.segments/!KGRhc2hib2FyZCk/dashboard/experimental/__PAGE__.segment.rsc +8 -8
  484. package/app/.next-cli-build/server/app/dashboard/experimental.segments/_full.segment.rsc +8 -8
  485. package/app/.next-cli-build/server/app/dashboard/experimental.segments/_tree.segment.rsc +2 -2
  486. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +2 -2
  487. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +8 -8
  488. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +8 -8
  489. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +8 -8
  490. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
  491. package/app/.next-cli-build/server/app/dashboard/mitm.html +2 -2
  492. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +8 -8
  493. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +8 -8
  494. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +8 -8
  495. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
  496. package/app/.next-cli-build/server/app/dashboard/profile.html +2 -2
  497. package/app/.next-cli-build/server/app/dashboard/profile.rsc +8 -8
  498. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +8 -8
  499. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +8 -8
  500. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  501. package/app/.next-cli-build/server/app/dashboard/providers/new.html +2 -2
  502. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +8 -8
  503. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +8 -8
  504. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +8 -8
  505. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  506. package/app/.next-cli-build/server/app/dashboard/providers.html +2 -2
  507. package/app/.next-cli-build/server/app/dashboard/providers.rsc +8 -8
  508. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +8 -8
  509. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +8 -8
  510. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  511. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +2 -2
  512. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +8 -8
  513. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +8 -8
  514. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +8 -8
  515. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
  516. package/app/.next-cli-build/server/app/dashboard/pxpipe.html +2 -2
  517. package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +8 -8
  518. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +8 -8
  519. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +8 -8
  520. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +2 -2
  521. package/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  522. package/app/.next-cli-build/server/app/dashboard/quota.rsc +9 -9
  523. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +9 -9
  524. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +9 -9
  525. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  526. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +1 -1
  527. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  528. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  529. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +2 -2
  530. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +6 -6
  531. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +6 -6
  532. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  533. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +6 -6
  534. package/app/.next-cli-build/server/app/dashboard/skills.html +2 -2
  535. package/app/.next-cli-build/server/app/dashboard/skills.rsc +8 -8
  536. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +8 -8
  537. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +8 -8
  538. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
  539. package/app/.next-cli-build/server/app/dashboard/token-saver.html +2 -2
  540. package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +8 -8
  541. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +8 -8
  542. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +8 -8
  543. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
  544. package/app/.next-cli-build/server/app/dashboard/translator.html +2 -2
  545. package/app/.next-cli-build/server/app/dashboard/translator.rsc +8 -8
  546. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +8 -8
  547. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +8 -8
  548. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  549. package/app/.next-cli-build/server/app/dashboard/usage.html +2 -2
  550. package/app/.next-cli-build/server/app/dashboard/usage.rsc +8 -8
  551. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +8 -8
  552. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +8 -8
  553. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  554. package/app/.next-cli-build/server/app/dashboard.html +2 -2
  555. package/app/.next-cli-build/server/app/dashboard.rsc +8 -8
  556. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +8 -8
  557. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +8 -8
  558. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  559. package/app/.next-cli-build/server/app/favicon.ico/route.js +1 -1
  560. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  561. package/app/.next-cli-build/server/app/index.html +1 -1
  562. package/app/.next-cli-build/server/app/index.rsc +6 -6
  563. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +6 -6
  564. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +6 -6
  565. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
  566. package/app/.next-cli-build/server/app/landing/page.js +1 -1
  567. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  568. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  569. package/app/.next-cli-build/server/app/landing.html +2 -2
  570. package/app/.next-cli-build/server/app/landing.rsc +7 -7
  571. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +7 -7
  572. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
  573. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +7 -7
  574. package/app/.next-cli-build/server/app/login/page.js +1 -1
  575. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  576. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  577. package/app/.next-cli-build/server/app/login.html +2 -2
  578. package/app/.next-cli-build/server/app/login.rsc +7 -7
  579. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +7 -7
  580. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
  581. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +7 -7
  582. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js +2 -2
  583. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  584. package/app/.next-cli-build/server/app/page.js +1 -1
  585. package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  586. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  587. package/app/.next-cli-build/server/app-paths-manifest.json +12 -11
  588. package/app/.next-cli-build/server/chunks/1329.js +1 -1
  589. package/app/.next-cli-build/server/chunks/2112.js +1 -1
  590. package/app/.next-cli-build/server/chunks/2120.js +1 -1
  591. package/app/.next-cli-build/server/chunks/2132.js +1 -1
  592. package/app/.next-cli-build/server/chunks/3433.js +2 -2
  593. package/app/.next-cli-build/server/chunks/3500.js +1 -1
  594. package/app/.next-cli-build/server/chunks/4123.js +2 -1
  595. package/app/.next-cli-build/server/chunks/4282.js +1 -1
  596. package/app/.next-cli-build/server/chunks/4746.js +1 -1
  597. package/app/.next-cli-build/server/chunks/4803.js +1 -1
  598. package/app/.next-cli-build/server/chunks/4927.js +3 -3
  599. package/app/.next-cli-build/server/chunks/5210.js +12 -12
  600. package/app/.next-cli-build/server/chunks/5330.js +2 -2
  601. package/app/.next-cli-build/server/chunks/5781.js +1 -1
  602. package/app/.next-cli-build/server/chunks/6070.js +1 -1
  603. package/app/.next-cli-build/server/chunks/615.js +1 -1
  604. package/app/.next-cli-build/server/chunks/6306.js +1 -1
  605. package/app/.next-cli-build/server/chunks/6326.js +1 -1
  606. package/app/.next-cli-build/server/chunks/6756.js +1 -1
  607. package/app/.next-cli-build/server/chunks/682.js +1 -0
  608. package/app/.next-cli-build/server/chunks/6960.js +2 -2
  609. package/app/.next-cli-build/server/chunks/7122.js +1 -1
  610. package/app/.next-cli-build/server/chunks/7247.js +1 -1
  611. package/app/.next-cli-build/server/chunks/7274.js +3 -3
  612. package/app/.next-cli-build/server/chunks/7322.js +1 -1
  613. package/app/.next-cli-build/server/chunks/7774.js +2 -2
  614. package/app/.next-cli-build/server/chunks/7965.js +1 -1
  615. package/app/.next-cli-build/server/chunks/8172.js +2 -2
  616. package/app/.next-cli-build/server/chunks/8370.js +1 -1
  617. package/app/.next-cli-build/server/chunks/8410.js +1 -1
  618. package/app/.next-cli-build/server/chunks/8499.js +1 -1
  619. package/app/.next-cli-build/server/chunks/8520.js +1 -1
  620. package/app/.next-cli-build/server/chunks/8595.js +1 -1
  621. package/app/.next-cli-build/server/chunks/8672.js +1 -1
  622. package/app/.next-cli-build/server/chunks/939.js +1 -1
  623. package/app/.next-cli-build/server/chunks/9489.js +2 -2
  624. package/app/.next-cli-build/server/chunks/9628.js +1 -1
  625. package/app/.next-cli-build/server/instrumentation.js +1 -1
  626. package/app/.next-cli-build/server/instrumentation.js.nft.json +1 -1
  627. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  628. package/app/.next-cli-build/server/middleware.js +5 -5
  629. package/app/.next-cli-build/server/middleware.js.nft.json +1 -1
  630. package/app/.next-cli-build/server/pages/404.html +2 -2
  631. package/app/.next-cli-build/server/pages/500.html +1 -1
  632. package/app/.next-cli-build/static/TWKzsrjlsswyo8nggSyiE/_buildManifest.js +1 -0
  633. package/app/.next-cli-build/static/chunks/1321-555b548232df2f80.js +1 -0
  634. package/app/.next-cli-build/static/chunks/5497-a498f93dd709dccb.js +7 -0
  635. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/page-7c9d46f8c09d480e.js +1 -0
  636. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/{page-39a4fadcce4f3019.js → page-0ee5ba586a2d3dfa.js} +1 -1
  637. package/app/.next-cli-build/static/chunks/app/_global-error/{page-2b9ff155b9d0f304.js → page-1058a44b968ee535.js} +1 -1
  638. package/app/.next-cli-build/static/chunks/app/api/auth/login/{route-2b9ff155b9d0f304.js → route-1058a44b968ee535.js} +1 -1
  639. package/app/.next-cli-build/static/chunks/app/api/auth/logout/{route-2b9ff155b9d0f304.js → route-1058a44b968ee535.js} +1 -1
  640. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/{route-2b9ff155b9d0f304.js → route-1058a44b968ee535.js} +1 -1
  641. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-1058a44b968ee535.js +1 -0
  642. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-1058a44b968ee535.js +1 -0
  643. package/app/.next-cli-build/static/chunks/app/api/auth/reset-password/route-1058a44b968ee535.js +1 -0
  644. package/app/.next-cli-build/static/chunks/app/api/auth/saml/acs/route-1058a44b968ee535.js +1 -0
  645. package/app/.next-cli-build/static/chunks/app/api/auth/saml/metadata/route-1058a44b968ee535.js +1 -0
  646. package/app/.next-cli-build/static/chunks/app/api/auth/saml/start/route-1058a44b968ee535.js +1 -0
  647. package/app/.next-cli-build/static/chunks/app/api/auth/saml/test/route-1058a44b968ee535.js +1 -0
  648. package/app/.next-cli-build/static/chunks/app/api/auth/status/route-1058a44b968ee535.js +1 -0
  649. package/app/.next-cli-build/static/chunks/app/api/auth/verify-password/route-1058a44b968ee535.js +1 -0
  650. package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-1058a44b968ee535.js +1 -0
  651. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-1058a44b968ee535.js +1 -0
  652. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-1058a44b968ee535.js +1 -0
  653. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-profiles/route-1058a44b968ee535.js +1 -0
  654. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-1058a44b968ee535.js +1 -0
  655. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-1058a44b968ee535.js +1 -0
  656. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-profiles/route-1058a44b968ee535.js +1 -0
  657. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-1058a44b968ee535.js +1 -0
  658. package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-1058a44b968ee535.js +1 -0
  659. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-1058a44b968ee535.js +1 -0
  660. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-1058a44b968ee535.js +1 -0
  661. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-1058a44b968ee535.js +1 -0
  662. package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-1058a44b968ee535.js +1 -0
  663. package/app/.next-cli-build/static/chunks/app/api/cli-tools/devin-settings/route-1058a44b968ee535.js +1 -0
  664. package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-1058a44b968ee535.js +1 -0
  665. package/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-build-settings/route-1058a44b968ee535.js +1 -0
  666. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-1058a44b968ee535.js +1 -0
  667. package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-1058a44b968ee535.js +1 -0
  668. package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-1058a44b968ee535.js +1 -0
  669. package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-1058a44b968ee535.js +1 -0
  670. package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-1058a44b968ee535.js +1 -0
  671. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-1058a44b968ee535.js +1 -0
  672. package/app/.next-cli-build/static/chunks/app/api/combos/route-1058a44b968ee535.js +1 -0
  673. package/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-1058a44b968ee535.js +1 -0
  674. package/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-1058a44b968ee535.js +1 -0
  675. package/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-1058a44b968ee535.js +1 -0
  676. package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-1058a44b968ee535.js +1 -0
  677. package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-1058a44b968ee535.js +1 -0
  678. package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-1058a44b968ee535.js +1 -0
  679. package/app/.next-cli-build/static/chunks/app/api/health/route-1058a44b968ee535.js +1 -0
  680. package/app/.next-cli-build/static/chunks/app/api/init/route-1058a44b968ee535.js +1 -0
  681. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-1058a44b968ee535.js +1 -0
  682. package/app/.next-cli-build/static/chunks/app/api/keys/rotate/route-1058a44b968ee535.js +1 -0
  683. package/app/.next-cli-build/static/chunks/app/api/keys/route-1058a44b968ee535.js +1 -0
  684. package/app/.next-cli-build/static/chunks/app/api/locale/route-1058a44b968ee535.js +1 -0
  685. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-1058a44b968ee535.js +1 -0
  686. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-1058a44b968ee535.js +1 -0
  687. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-1058a44b968ee535.js +1 -0
  688. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-1058a44b968ee535.js +1 -0
  689. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-1058a44b968ee535.js +1 -0
  690. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-1058a44b968ee535.js +1 -0
  691. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-1058a44b968ee535.js +1 -0
  692. package/app/.next-cli-build/static/chunks/app/api/models/alias/route-1058a44b968ee535.js +1 -0
  693. package/app/.next-cli-build/static/chunks/app/api/models/availability/route-1058a44b968ee535.js +1 -0
  694. package/app/.next-cli-build/static/chunks/app/api/models/caps/route-1058a44b968ee535.js +1 -0
  695. package/app/.next-cli-build/static/chunks/app/api/models/custom/bulk/route-1058a44b968ee535.js +1 -0
  696. package/app/.next-cli-build/static/chunks/app/api/models/custom/route-1058a44b968ee535.js +1 -0
  697. package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-1058a44b968ee535.js +1 -0
  698. package/app/.next-cli-build/static/chunks/app/api/models/route-1058a44b968ee535.js +1 -0
  699. package/app/.next-cli-build/static/chunks/app/api/models/test/route-1058a44b968ee535.js +1 -0
  700. package/app/.next-cli-build/static/chunks/app/api/network/egress-region/route-1058a44b968ee535.js +1 -0
  701. package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-1058a44b968ee535.js +1 -0
  702. package/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/route-1058a44b968ee535.js +1 -0
  703. package/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/checkin/route-1058a44b968ee535.js +1 -0
  704. package/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/export/route-1058a44b968ee535.js +1 -0
  705. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-1058a44b968ee535.js +1 -0
  706. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-1058a44b968ee535.js +1 -0
  707. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-1058a44b968ee535.js +1 -0
  708. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-1058a44b968ee535.js +1 -0
  709. package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-1058a44b968ee535.js +1 -0
  710. package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-1058a44b968ee535.js +1 -0
  711. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-1058a44b968ee535.js +1 -0
  712. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-1058a44b968ee535.js +1 -0
  713. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-1058a44b968ee535.js +1 -0
  714. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-1058a44b968ee535.js +1 -0
  715. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-1058a44b968ee535.js +1 -0
  716. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-1058a44b968ee535.js +1 -0
  717. package/app/.next-cli-build/static/chunks/app/api/oauth/qoder/checkin/route-1058a44b968ee535.js +1 -0
  718. package/app/.next-cli-build/static/chunks/app/api/oauth/qoder-cn/checkin/route-1058a44b968ee535.js +1 -0
  719. package/app/.next-cli-build/static/chunks/app/api/oauth/transfer/export/route-1058a44b968ee535.js +1 -0
  720. package/app/.next-cli-build/static/chunks/app/api/oauth/transfer/import/route-1058a44b968ee535.js +1 -0
  721. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/api-key/route-1058a44b968ee535.js +1 -0
  722. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/auto-import/route-1058a44b968ee535.js +1 -0
  723. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/desktop-kill/route-1058a44b968ee535.js +1 -0
  724. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/desktop-status/route-1058a44b968ee535.js +1 -0
  725. package/app/.next-cli-build/static/chunks/app/api/oauth/zed/auto-import/route-1058a44b968ee535.js +1 -0
  726. package/app/.next-cli-build/static/chunks/app/api/oauth/zed/import/route-1058a44b968ee535.js +1 -0
  727. package/app/.next-cli-build/static/chunks/app/api/pricing/route-1058a44b968ee535.js +1 -0
  728. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-1058a44b968ee535.js +1 -0
  729. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-1058a44b968ee535.js +1 -0
  730. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-1058a44b968ee535.js +1 -0
  731. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-1058a44b968ee535.js +1 -0
  732. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-1058a44b968ee535.js +1 -0
  733. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-1058a44b968ee535.js +1 -0
  734. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-1058a44b968ee535.js +1 -0
  735. package/app/.next-cli-build/static/chunks/app/api/providers/client/route-1058a44b968ee535.js +1 -0
  736. package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-1058a44b968ee535.js +1 -0
  737. package/app/.next-cli-build/static/chunks/app/api/providers/route-1058a44b968ee535.js +1 -0
  738. package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-1058a44b968ee535.js +1 -0
  739. package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-1058a44b968ee535.js +1 -0
  740. package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-1058a44b968ee535.js +1 -0
  741. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-1058a44b968ee535.js +1 -0
  742. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-1058a44b968ee535.js +1 -0
  743. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-1058a44b968ee535.js +1 -0
  744. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-1058a44b968ee535.js +1 -0
  745. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-1058a44b968ee535.js +1 -0
  746. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-1058a44b968ee535.js +1 -0
  747. package/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-1058a44b968ee535.js +1 -0
  748. package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-1058a44b968ee535.js +1 -0
  749. package/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-1058a44b968ee535.js +1 -0
  750. package/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-1058a44b968ee535.js +1 -0
  751. package/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-1058a44b968ee535.js +1 -0
  752. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-1058a44b968ee535.js +1 -0
  753. package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-1058a44b968ee535.js +1 -0
  754. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-1058a44b968ee535.js +1 -0
  755. package/app/.next-cli-build/static/chunks/app/api/security/status/route-1058a44b968ee535.js +1 -0
  756. package/app/.next-cli-build/static/chunks/app/api/settings/database/import-usage/route-1058a44b968ee535.js +1 -0
  757. package/app/.next-cli-build/static/chunks/app/api/settings/database/route-1058a44b968ee535.js +1 -0
  758. package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-1058a44b968ee535.js +1 -0
  759. package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-1058a44b968ee535.js +1 -0
  760. package/app/.next-cli-build/static/chunks/app/api/settings/route-1058a44b968ee535.js +1 -0
  761. package/app/.next-cli-build/static/chunks/app/api/shutdown/route-1058a44b968ee535.js +1 -0
  762. package/app/.next-cli-build/static/chunks/app/api/tags/route-1058a44b968ee535.js +1 -0
  763. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-1058a44b968ee535.js +1 -0
  764. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-1058a44b968ee535.js +1 -0
  765. package/app/.next-cli-build/static/chunks/app/api/translator/load/route-1058a44b968ee535.js +1 -0
  766. package/app/.next-cli-build/static/chunks/app/api/translator/save/route-1058a44b968ee535.js +1 -0
  767. package/app/.next-cli-build/static/chunks/app/api/translator/send/route-1058a44b968ee535.js +1 -0
  768. package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-1058a44b968ee535.js +1 -0
  769. package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-1058a44b968ee535.js +1 -0
  770. package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-1058a44b968ee535.js +1 -0
  771. package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-1058a44b968ee535.js +1 -0
  772. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-1058a44b968ee535.js +1 -0
  773. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-1058a44b968ee535.js +1 -0
  774. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-1058a44b968ee535.js +1 -0
  775. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-1058a44b968ee535.js +1 -0
  776. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/claude-reset/route-1058a44b968ee535.js +1 -0
  777. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-1058a44b968ee535.js +1 -0
  778. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-1058a44b968ee535.js +1 -0
  779. package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-1058a44b968ee535.js +1 -0
  780. package/app/.next-cli-build/static/chunks/app/api/usage/dashboard/route-1058a44b968ee535.js +1 -0
  781. package/app/.next-cli-build/static/chunks/app/api/usage/history/route-1058a44b968ee535.js +1 -0
  782. package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-1058a44b968ee535.js +1 -0
  783. package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-1058a44b968ee535.js +1 -0
  784. package/app/.next-cli-build/static/chunks/app/api/usage/quotas/route-1058a44b968ee535.js +1 -0
  785. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-1058a44b968ee535.js +1 -0
  786. package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-1058a44b968ee535.js +1 -0
  787. package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-1058a44b968ee535.js +1 -0
  788. package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-1058a44b968ee535.js +1 -0
  789. package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-1058a44b968ee535.js +1 -0
  790. package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-1058a44b968ee535.js +1 -0
  791. package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-1058a44b968ee535.js +1 -0
  792. package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-1058a44b968ee535.js +1 -0
  793. package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-1058a44b968ee535.js +1 -0
  794. package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-1058a44b968ee535.js +1 -0
  795. package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-1058a44b968ee535.js +1 -0
  796. package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-1058a44b968ee535.js +1 -0
  797. package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-1058a44b968ee535.js +1 -0
  798. package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-1058a44b968ee535.js +1 -0
  799. package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-1058a44b968ee535.js +1 -0
  800. package/app/.next-cli-build/static/chunks/app/api/v1/models/route-1058a44b968ee535.js +1 -0
  801. package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-1058a44b968ee535.js +1 -0
  802. package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-1058a44b968ee535.js +1 -0
  803. package/app/.next-cli-build/static/chunks/app/api/v1/route-1058a44b968ee535.js +1 -0
  804. package/app/.next-cli-build/static/chunks/app/api/v1/search/route-1058a44b968ee535.js +1 -0
  805. package/app/.next-cli-build/static/chunks/app/api/v1/systemone/route-1058a44b968ee535.js +1 -0
  806. package/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-1058a44b968ee535.js +1 -0
  807. package/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-1058a44b968ee535.js +1 -0
  808. package/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-1058a44b968ee535.js +1 -0
  809. package/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-1058a44b968ee535.js +1 -0
  810. package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-1058a44b968ee535.js +1 -0
  811. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-1058a44b968ee535.js +1 -0
  812. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-1058a44b968ee535.js +1 -0
  813. package/app/.next-cli-build/static/chunks/app/api/version/route-1058a44b968ee535.js +1 -0
  814. package/app/.next-cli-build/static/chunks/app/api/version/shell-update/route-1058a44b968ee535.js +1 -0
  815. package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-1058a44b968ee535.js +1 -0
  816. package/app/.next-cli-build/static/chunks/app/api/version/update/route-1058a44b968ee535.js +1 -0
  817. package/app/.next-cli-build/static/chunks/app/landing/page-241f3474d89f3b8c.js +1 -0
  818. package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-1058a44b968ee535.js +1 -0
  819. package/app/.next-cli-build/static/chunks/app/page-1058a44b968ee535.js +1 -0
  820. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-1058a44b968ee535.js +1 -0
  821. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-1058a44b968ee535.js +1 -0
  822. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-1058a44b968ee535.js +1 -0
  823. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-1058a44b968ee535.js +1 -0
  824. package/app/.next-cli-build/static/css/b28513ee0ebc26ad.css +1 -0
  825. package/app/package.json +71 -71
  826. package/app/public/i18n/changelog/en.md +394 -354
  827. package/app/public/i18n/changelog/zh-CN.md +392 -352
  828. package/app/public/i18n/changelog/zh-TW.md +394 -354
  829. package/app/public/i18n/literals/zh-CN.json +41 -6
  830. package/app/public/i18n/literals/zh-TW.json +42 -6
  831. package/app/public/providers/apinex.png +0 -0
  832. package/app/public/providers/atria.png +0 -0
  833. package/app/public/providers/minimax-free.png +0 -0
  834. package/app/public/providers/opencode-zen.png +0 -0
  835. package/app/public/providers/tokenharbor.png +0 -0
  836. package/package.json +61 -61
  837. package/app/.next-cli-build/server/chunks/890.js +0 -1
  838. package/app/.next-cli-build/static/chunks/1321-8478f2be717a38f6.js +0 -1
  839. package/app/.next-cli-build/static/chunks/5497-7d66b43a3bbcf07d.js +0 -7
  840. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/page-912bf60e8bad7f94.js +0 -1
  841. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-2b9ff155b9d0f304.js +0 -1
  842. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-2b9ff155b9d0f304.js +0 -1
  843. package/app/.next-cli-build/static/chunks/app/api/auth/reset-password/route-2b9ff155b9d0f304.js +0 -1
  844. package/app/.next-cli-build/static/chunks/app/api/auth/saml/acs/route-2b9ff155b9d0f304.js +0 -1
  845. package/app/.next-cli-build/static/chunks/app/api/auth/saml/metadata/route-2b9ff155b9d0f304.js +0 -1
  846. package/app/.next-cli-build/static/chunks/app/api/auth/saml/start/route-2b9ff155b9d0f304.js +0 -1
  847. package/app/.next-cli-build/static/chunks/app/api/auth/saml/test/route-2b9ff155b9d0f304.js +0 -1
  848. package/app/.next-cli-build/static/chunks/app/api/auth/status/route-2b9ff155b9d0f304.js +0 -1
  849. package/app/.next-cli-build/static/chunks/app/api/auth/verify-password/route-2b9ff155b9d0f304.js +0 -1
  850. package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-2b9ff155b9d0f304.js +0 -1
  851. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-2b9ff155b9d0f304.js +0 -1
  852. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-2b9ff155b9d0f304.js +0 -1
  853. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-profiles/route-2b9ff155b9d0f304.js +0 -1
  854. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-2b9ff155b9d0f304.js +0 -1
  855. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-2b9ff155b9d0f304.js +0 -1
  856. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-profiles/route-2b9ff155b9d0f304.js +0 -1
  857. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-2b9ff155b9d0f304.js +0 -1
  858. package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-2b9ff155b9d0f304.js +0 -1
  859. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-2b9ff155b9d0f304.js +0 -1
  860. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-2b9ff155b9d0f304.js +0 -1
  861. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-2b9ff155b9d0f304.js +0 -1
  862. package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-2b9ff155b9d0f304.js +0 -1
  863. package/app/.next-cli-build/static/chunks/app/api/cli-tools/devin-settings/route-2b9ff155b9d0f304.js +0 -1
  864. package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-2b9ff155b9d0f304.js +0 -1
  865. package/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-build-settings/route-2b9ff155b9d0f304.js +0 -1
  866. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-2b9ff155b9d0f304.js +0 -1
  867. package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-2b9ff155b9d0f304.js +0 -1
  868. package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-2b9ff155b9d0f304.js +0 -1
  869. package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-2b9ff155b9d0f304.js +0 -1
  870. package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-2b9ff155b9d0f304.js +0 -1
  871. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-2b9ff155b9d0f304.js +0 -1
  872. package/app/.next-cli-build/static/chunks/app/api/combos/route-2b9ff155b9d0f304.js +0 -1
  873. package/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-2b9ff155b9d0f304.js +0 -1
  874. package/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-2b9ff155b9d0f304.js +0 -1
  875. package/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-2b9ff155b9d0f304.js +0 -1
  876. package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-2b9ff155b9d0f304.js +0 -1
  877. package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-2b9ff155b9d0f304.js +0 -1
  878. package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-2b9ff155b9d0f304.js +0 -1
  879. package/app/.next-cli-build/static/chunks/app/api/health/route-2b9ff155b9d0f304.js +0 -1
  880. package/app/.next-cli-build/static/chunks/app/api/init/route-2b9ff155b9d0f304.js +0 -1
  881. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-2b9ff155b9d0f304.js +0 -1
  882. package/app/.next-cli-build/static/chunks/app/api/keys/rotate/route-2b9ff155b9d0f304.js +0 -1
  883. package/app/.next-cli-build/static/chunks/app/api/keys/route-2b9ff155b9d0f304.js +0 -1
  884. package/app/.next-cli-build/static/chunks/app/api/locale/route-2b9ff155b9d0f304.js +0 -1
  885. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-2b9ff155b9d0f304.js +0 -1
  886. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-2b9ff155b9d0f304.js +0 -1
  887. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-2b9ff155b9d0f304.js +0 -1
  888. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-2b9ff155b9d0f304.js +0 -1
  889. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-2b9ff155b9d0f304.js +0 -1
  890. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-2b9ff155b9d0f304.js +0 -1
  891. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-2b9ff155b9d0f304.js +0 -1
  892. package/app/.next-cli-build/static/chunks/app/api/models/alias/route-2b9ff155b9d0f304.js +0 -1
  893. package/app/.next-cli-build/static/chunks/app/api/models/availability/route-2b9ff155b9d0f304.js +0 -1
  894. package/app/.next-cli-build/static/chunks/app/api/models/caps/route-2b9ff155b9d0f304.js +0 -1
  895. package/app/.next-cli-build/static/chunks/app/api/models/custom/bulk/route-2b9ff155b9d0f304.js +0 -1
  896. package/app/.next-cli-build/static/chunks/app/api/models/custom/route-2b9ff155b9d0f304.js +0 -1
  897. package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-2b9ff155b9d0f304.js +0 -1
  898. package/app/.next-cli-build/static/chunks/app/api/models/route-2b9ff155b9d0f304.js +0 -1
  899. package/app/.next-cli-build/static/chunks/app/api/models/test/route-2b9ff155b9d0f304.js +0 -1
  900. package/app/.next-cli-build/static/chunks/app/api/network/egress-region/route-2b9ff155b9d0f304.js +0 -1
  901. package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-2b9ff155b9d0f304.js +0 -1
  902. package/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/route-2b9ff155b9d0f304.js +0 -1
  903. package/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/checkin/route-2b9ff155b9d0f304.js +0 -1
  904. package/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/export/route-2b9ff155b9d0f304.js +0 -1
  905. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-2b9ff155b9d0f304.js +0 -1
  906. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-2b9ff155b9d0f304.js +0 -1
  907. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-2b9ff155b9d0f304.js +0 -1
  908. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-2b9ff155b9d0f304.js +0 -1
  909. package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-2b9ff155b9d0f304.js +0 -1
  910. package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-2b9ff155b9d0f304.js +0 -1
  911. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-2b9ff155b9d0f304.js +0 -1
  912. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-2b9ff155b9d0f304.js +0 -1
  913. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-2b9ff155b9d0f304.js +0 -1
  914. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-2b9ff155b9d0f304.js +0 -1
  915. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-2b9ff155b9d0f304.js +0 -1
  916. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-2b9ff155b9d0f304.js +0 -1
  917. package/app/.next-cli-build/static/chunks/app/api/oauth/qoder/checkin/route-2b9ff155b9d0f304.js +0 -1
  918. package/app/.next-cli-build/static/chunks/app/api/oauth/qoder-cn/checkin/route-2b9ff155b9d0f304.js +0 -1
  919. package/app/.next-cli-build/static/chunks/app/api/oauth/transfer/export/route-2b9ff155b9d0f304.js +0 -1
  920. package/app/.next-cli-build/static/chunks/app/api/oauth/transfer/import/route-2b9ff155b9d0f304.js +0 -1
  921. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/api-key/route-2b9ff155b9d0f304.js +0 -1
  922. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/auto-import/route-2b9ff155b9d0f304.js +0 -1
  923. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/desktop-kill/route-2b9ff155b9d0f304.js +0 -1
  924. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/desktop-status/route-2b9ff155b9d0f304.js +0 -1
  925. package/app/.next-cli-build/static/chunks/app/api/oauth/zed/auto-import/route-2b9ff155b9d0f304.js +0 -1
  926. package/app/.next-cli-build/static/chunks/app/api/oauth/zed/import/route-2b9ff155b9d0f304.js +0 -1
  927. package/app/.next-cli-build/static/chunks/app/api/pricing/route-2b9ff155b9d0f304.js +0 -1
  928. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-2b9ff155b9d0f304.js +0 -1
  929. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-2b9ff155b9d0f304.js +0 -1
  930. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-2b9ff155b9d0f304.js +0 -1
  931. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-2b9ff155b9d0f304.js +0 -1
  932. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-2b9ff155b9d0f304.js +0 -1
  933. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-2b9ff155b9d0f304.js +0 -1
  934. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-2b9ff155b9d0f304.js +0 -1
  935. package/app/.next-cli-build/static/chunks/app/api/providers/client/route-2b9ff155b9d0f304.js +0 -1
  936. package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-2b9ff155b9d0f304.js +0 -1
  937. package/app/.next-cli-build/static/chunks/app/api/providers/route-2b9ff155b9d0f304.js +0 -1
  938. package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-2b9ff155b9d0f304.js +0 -1
  939. package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-2b9ff155b9d0f304.js +0 -1
  940. package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-2b9ff155b9d0f304.js +0 -1
  941. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-2b9ff155b9d0f304.js +0 -1
  942. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-2b9ff155b9d0f304.js +0 -1
  943. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-2b9ff155b9d0f304.js +0 -1
  944. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-2b9ff155b9d0f304.js +0 -1
  945. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-2b9ff155b9d0f304.js +0 -1
  946. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-2b9ff155b9d0f304.js +0 -1
  947. package/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-2b9ff155b9d0f304.js +0 -1
  948. package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-2b9ff155b9d0f304.js +0 -1
  949. package/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-2b9ff155b9d0f304.js +0 -1
  950. package/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-2b9ff155b9d0f304.js +0 -1
  951. package/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-2b9ff155b9d0f304.js +0 -1
  952. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-2b9ff155b9d0f304.js +0 -1
  953. package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-2b9ff155b9d0f304.js +0 -1
  954. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-2b9ff155b9d0f304.js +0 -1
  955. package/app/.next-cli-build/static/chunks/app/api/security/status/route-2b9ff155b9d0f304.js +0 -1
  956. package/app/.next-cli-build/static/chunks/app/api/settings/database/import-usage/route-2b9ff155b9d0f304.js +0 -1
  957. package/app/.next-cli-build/static/chunks/app/api/settings/database/route-2b9ff155b9d0f304.js +0 -1
  958. package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-2b9ff155b9d0f304.js +0 -1
  959. package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-2b9ff155b9d0f304.js +0 -1
  960. package/app/.next-cli-build/static/chunks/app/api/settings/route-2b9ff155b9d0f304.js +0 -1
  961. package/app/.next-cli-build/static/chunks/app/api/shutdown/route-2b9ff155b9d0f304.js +0 -1
  962. package/app/.next-cli-build/static/chunks/app/api/tags/route-2b9ff155b9d0f304.js +0 -1
  963. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-2b9ff155b9d0f304.js +0 -1
  964. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-2b9ff155b9d0f304.js +0 -1
  965. package/app/.next-cli-build/static/chunks/app/api/translator/load/route-2b9ff155b9d0f304.js +0 -1
  966. package/app/.next-cli-build/static/chunks/app/api/translator/save/route-2b9ff155b9d0f304.js +0 -1
  967. package/app/.next-cli-build/static/chunks/app/api/translator/send/route-2b9ff155b9d0f304.js +0 -1
  968. package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-2b9ff155b9d0f304.js +0 -1
  969. package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-2b9ff155b9d0f304.js +0 -1
  970. package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-2b9ff155b9d0f304.js +0 -1
  971. package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-2b9ff155b9d0f304.js +0 -1
  972. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-2b9ff155b9d0f304.js +0 -1
  973. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-2b9ff155b9d0f304.js +0 -1
  974. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-2b9ff155b9d0f304.js +0 -1
  975. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-2b9ff155b9d0f304.js +0 -1
  976. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/claude-reset/route-2b9ff155b9d0f304.js +0 -1
  977. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-2b9ff155b9d0f304.js +0 -1
  978. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-2b9ff155b9d0f304.js +0 -1
  979. package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-2b9ff155b9d0f304.js +0 -1
  980. package/app/.next-cli-build/static/chunks/app/api/usage/dashboard/route-2b9ff155b9d0f304.js +0 -1
  981. package/app/.next-cli-build/static/chunks/app/api/usage/history/route-2b9ff155b9d0f304.js +0 -1
  982. package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-2b9ff155b9d0f304.js +0 -1
  983. package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-2b9ff155b9d0f304.js +0 -1
  984. package/app/.next-cli-build/static/chunks/app/api/usage/quotas/route-2b9ff155b9d0f304.js +0 -1
  985. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-2b9ff155b9d0f304.js +0 -1
  986. package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-2b9ff155b9d0f304.js +0 -1
  987. package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-2b9ff155b9d0f304.js +0 -1
  988. package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-2b9ff155b9d0f304.js +0 -1
  989. package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-2b9ff155b9d0f304.js +0 -1
  990. package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-2b9ff155b9d0f304.js +0 -1
  991. package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-2b9ff155b9d0f304.js +0 -1
  992. package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-2b9ff155b9d0f304.js +0 -1
  993. package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-2b9ff155b9d0f304.js +0 -1
  994. package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-2b9ff155b9d0f304.js +0 -1
  995. package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-2b9ff155b9d0f304.js +0 -1
  996. package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-2b9ff155b9d0f304.js +0 -1
  997. package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-2b9ff155b9d0f304.js +0 -1
  998. package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-2b9ff155b9d0f304.js +0 -1
  999. package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-2b9ff155b9d0f304.js +0 -1
  1000. package/app/.next-cli-build/static/chunks/app/api/v1/models/route-2b9ff155b9d0f304.js +0 -1
  1001. package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-2b9ff155b9d0f304.js +0 -1
  1002. package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-2b9ff155b9d0f304.js +0 -1
  1003. package/app/.next-cli-build/static/chunks/app/api/v1/route-2b9ff155b9d0f304.js +0 -1
  1004. package/app/.next-cli-build/static/chunks/app/api/v1/search/route-2b9ff155b9d0f304.js +0 -1
  1005. package/app/.next-cli-build/static/chunks/app/api/v1/systemone/route-2b9ff155b9d0f304.js +0 -1
  1006. package/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-2b9ff155b9d0f304.js +0 -1
  1007. package/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-2b9ff155b9d0f304.js +0 -1
  1008. package/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-2b9ff155b9d0f304.js +0 -1
  1009. package/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-2b9ff155b9d0f304.js +0 -1
  1010. package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-2b9ff155b9d0f304.js +0 -1
  1011. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-2b9ff155b9d0f304.js +0 -1
  1012. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-2b9ff155b9d0f304.js +0 -1
  1013. package/app/.next-cli-build/static/chunks/app/api/version/route-2b9ff155b9d0f304.js +0 -1
  1014. package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-2b9ff155b9d0f304.js +0 -1
  1015. package/app/.next-cli-build/static/chunks/app/api/version/update/route-2b9ff155b9d0f304.js +0 -1
  1016. package/app/.next-cli-build/static/chunks/app/landing/page-38924391f8649361.js +0 -1
  1017. package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-2b9ff155b9d0f304.js +0 -1
  1018. package/app/.next-cli-build/static/chunks/app/page-2b9ff155b9d0f304.js +0 -1
  1019. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-2b9ff155b9d0f304.js +0 -1
  1020. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-2b9ff155b9d0f304.js +0 -1
  1021. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-2b9ff155b9d0f304.js +0 -1
  1022. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-2b9ff155b9d0f304.js +0 -1
  1023. package/app/.next-cli-build/static/css/bdf1d87cd5f4db94.css +0 -1
  1024. package/app/.next-cli-build/static/hWZt96TEErc6dGwTZrX7O/_buildManifest.js +0 -1
  1025. /package/app/.next-cli-build/static/{hWZt96TEErc6dGwTZrX7O → TWKzsrjlsswyo8nggSyiE}/_ssgManifest.js +0 -0
@@ -1,354 +1,394 @@
1
- # Changelog
2
-
3
- User-facing highlights per release. See [CHANGELOG.md](https://github.com/techysy/10router/blob/main/CHANGELOG.md) for the full developer log.
4
-
5
- ## v1.3.1 (2026-10-02)
6
-
7
- ### ✨ New
8
-
9
- - **GLM Coding: Z.ai OAuth sign-in (dual-auth)**: browser authorization alongside pasting an API key; quota cards work with either.
10
- - **New Meta Muse provider (OAuth + model catalog)**: Meta's official Muse Code channel with device-flow sign-in; five Muse Spark models at official pricing.
11
- - **New System One decision provider v1m (v1m.ir)**: a second Jev-compatible decision backend alongside Drex.
12
- - **Codex exposes GPT-6 / GPT-5.6 `[1m]` long-context variants**: 872K window — just suffix the model name with `[1m]`.
13
- - **Experimental "nested cycle quota bars"**: a toggle on the Experimental page restores the concentric nested track for rolling ⊂ weekly ⊂ monthly chains.
14
-
15
- ### 🐛 Fixes
16
-
17
- - **Four upstream 9router v0.5.95 port batches (20+ items)**: codex CLI identity bumped to 0.159 plus a fix for accounts being logged out by auto-ping (refresh-token reuse); grok-cli bumped to 1.0.44 (upstream 426 wall); codebuddy 6004 rate-limit → precise cooldown; Claude trailing-turn retention and thinking-format adaptation plus tool-loop cache breakpoint; new Claude Sonnet 5.5 / Kiro Opus 5.5 models; official GPT-6 pricing and real context windows; same-name tool dedupe for DeepSeek; broader Gemini tool-schema cleaning; strict proxy no longer falls back to direct connections on resolution failure; Responses completion watchdog.
18
- - **Quota fix pack**: reset dates become adaptive countdowns (day+hour / hour+minute / minute+second); the 5-hour timeline centers on now (±12h); the monthly window anchors the bottom of the card; qoder / qoder-cn Auto & Efficient tiers and display-name aliases no longer fall to default capabilities.
19
- - **Sign-in & security**: enabling "Require login" no longer kicks you to the login page; the "Forgot your password?" entry is localized and documents the reset-password file format (any extension works — .txt, .md, …); hidden providers are excluded from usage stats.
20
- - **Drex key link now points at the official invite registration** (Nace is invite-only).
21
-
22
- ## v1.3.0 (2026-10-01)
23
-
24
- ### ✨ New
25
-
26
- - **CLI Tools "Model Combo Profiles" (Claude Card, #17)**: The Claude tool card introduces a Profiles section, enabling you to save Opus/Sonnet/Haiku mappings, API Key, and context window settings as named presets. Selecting a preset from the dropdown instantly writes to `~/.claude/settings.json` without requiring an Apply click (parity with CC-Switch). Profiles persist server-side and synchronize across NAS, Tailscale, and tunnel connections.
27
- - **Quota Visualization Redesign: QuotaToolbar & Window Timeline**: The usage view features a responsive quota toolbar and cycle timeline (`QuotaWindowTimeline`), visualizing rolling reset countdowns across providers. Includes a non-persisted view tab toggle ("Cards" vs. "Quota windows") that always defaults to Cards on fresh page loads. Segmented pack bars align with CreditDaddy visual semantics with absolute nearest-expiry displays.
28
- - **New Search & Fetch Providers: TinyFish & Keenable (#26)**:
29
- - **TinyFish** (Free Tier): Full automated support for Web Search and Web Fetch with zero balance deduction;
30
- - **Keenable** (Standard API Key): Realtime/pro search modes and high-fidelity webpage scraping with `live=true`;
31
- - Seamlessly integrated across Media Providers and `/v1/search` / `/v1/web/fetch`.
32
- - **ZCode Free Trial Provider (`zcode-free`)**: Route Start Plan and Trust Build credits (GLM-5.3-Flash) through CreditDaddy desktop gateway, supporting remote/LAN gateway host configuration and detailed architecture documentation.
33
- - **Qoder Itemized Resource Packs via CreditDaddy Web Session**: Uses synced browser cookies to directly query exact per-pack remaining credits and expiration dates from the web console, avoiding heuristic approximations while validating account ownership.
34
- - **LongCat-2.5-Preview & International Portal**: Added LongCat-2.5-Preview (1M context, multimodal image/video input, thinking mode toggle) and separate `longcat.ai` provider card.
35
- - **Desktop In-Container Password Management (`639f77a8`)**: Automatically captures and auto-fills credentials for web apps running in desktop shell containers (WorkBuddy, CodeBuddy), securely encrypted at rest via OS-level safeStorage (DPAPI).
36
- - **System Theme Adaptive Mode**: Login and dashboard interfaces automatically track OS day/night mode, powered by pre-paint scripts to prevent screen flashing.
37
-
38
- ### 🐛 Fixes
39
-
40
- - **Adaptive reset countdowns**: quota cards and pack bars no longer show a bare reset date — future resets now read as a countdown whose precision follows magnitude (day+hour / hour+minute / minute+second), with the full absolute time still on hover.
41
- - **5-hour quota view centered on now**: the timeline axis is now the 12 hours around the current moment instead of the calendar day, so "now" always sits mid-track instead of clamped to the right edge by evening.
42
- - **Usage Input Tokens Normalization**: Fixed an issue where prompt tokens on unfolded Claude usage shapes were overridden by cached token counts, resolving the 1:1 display skew for high-cache providers like `zcode-free`.
43
- - **Fresh Install Static Model Exposure**: Ensures `noAuth` providers (opencode, mimo-free, zcode-free) expose models in `/v1/models` on brand-new installs with empty connection tables.
44
- - **OpenAI Responses Content Filter Mapping**: Correctly maps Responses `incomplete_details.reason === "content_filter"` to Chat completion `finish_reason: "content_filter"` instead of `"length"`, preventing client SDKs from assuming context cutoffs.
45
- - **Schemeless Proxy Normalization & Leak Prevention (#36)**: Accepts proxy URLs without explicit schemes (e.g. `127.0.0.1:7890`, normalized to `http://`). Keeps encrypted strings on parse failures to strictly prevent direct IP leak fallbacks.
46
- - **Antigravity Upstream Stability**: Removed obsolete `requestType: "agent"` to eliminate spurious 429 errors; fixed empty string tool response 400s; added bidirectional long tool name mapping; reinforced tool schema sanitization with local `$ref` resolution.
47
- - **Strict Bare Model Resolution (#34)**: Rejects unknown bare model names with a clear 400 error rather than guessing upstream providers and producing misleading 404s.
48
- - **Remote Provider Management Authorization (#38)**: Restored permission for valid virtual dashboard keys to POST `/api/providers` and `/api/provider-nodes`.
49
- - **MITM Security Hardening (#31)**: Passed `ROUTER_API_KEY` via stdin in sudo invocation scripts rather than leaking it through process command line arguments.
50
-
51
- ## v1.2.1 (2026-09-26)
52
-
53
- ### 🔒 Security
54
-
55
- - **[Important] Locked out after turning on the log-in check (#33)**: with no password of your own, switching "Require login" on left only the hidden first-login password (on fnOS it is generated at install time into a file you never see), so every password you tried was rejected. The log-in check can no longer be turned on before you set a password, empty passwords are refused, and there is now a way back in: **"Forgot your password?"** on the login page. On fnOS, just enter a new password in **App Center → 10Router → Settings**; on any install, drop a `reset-password` file into the data folder.
56
-
57
- ### ✨ New
58
-
59
- - **CreditDaddy integration: read-only quota overview for external dashboards**: `GET /api/usage/quotas` returns every quota-capable connection in one call, normalized the same way as the dashboard's Provider Limits, and accepts a dashboard virtual key (`sk-…`). Results are cached for 5 minutes; a forced refresh (`?force=1`) is limited to once per connection every 30 seconds, and simultaneous requests share one upstream call. No credentials are returned — note that account emails are visible to anyone holding a virtual key.
60
- - **Imported usage now shows an estimated cost**: rows synced in by the 10router-sync plugin or CreditDaddy used to land at $0. New imports are priced on arrival, and existing history is repaired automatically at startup (a source-computed cost is never overwritten; models without a price stay at $0).
61
- - **The "log-in check is off" banner can be hidden**: Settings → Security gains a switch under *Require login*, shown only while the check is off. Hiding the banner takes a confirmation, and it comes back automatically once you turn log-in back on and off again.
62
- - **Automatic update checks can be turned off** (Settings → Security): for installs pinned to a version on purpose. When off, 10Router no longer contacts the update server on its own or shows new-version notices — the dashboard, the tray balloon and the CLI launcher all go quiet. "Check now" and the tray's "Check for updates" still work.
63
- - **Encrypted OAuth import/export on single-auth cards**: the transfer buttons now appear on OAuth-only cards as well — most importantly **MiMo Desktop**, whose signed-in session is the credential you move between machines.
64
- - **Official Qwen pricing**: new-generation Qwen flagships were priced at the cheap wildcard rate (e.g. qwen3.8-max billed at a quarter of its real price); they now use the official per-model rates.
65
-
66
- ### 🐛 Fixes
67
-
68
- - **[Important] After a restart, remote access stayed down until someone opened the dashboard**: tunnel / Tailscale / MITM auto-resume and the other startup tasks only ran on the first page render — on a NAS used purely through `/v1` they could wait indefinitely. They now start with the server.
69
- - **Qoder's queue throttle was returned as the model's reply**: a queued request (`10605`) reached the client as `[qoder error 403: …]` text and was logged as a success. It now fails over to the next account and cools the throttled one for the time Qoder asks for (about 30 seconds).
70
- - **OAuth transfer import was blocked on passwordless dashboards** even from the machine itself; same-machine imports work again.
71
- - **10router-sync plugin v1.5.0**: follows ZCode's new plan-channel ids (Start Plan traffic had stopped syncing since 09-18), counts mirasim cache in input so dashboards stop showing "input 638, cache 113M", and the mirasim correction script no longer adds the cache twice.
72
-
73
- ### 🔧 Other
74
-
75
- - **Auth header names aligned with 10Router**: `x-10r-cli-token` / `x-10r-password` replace the inherited `x-9r-*` names. The old names are still accepted, so existing CLI launchers, plugins and scripts keep working.
76
-
77
- ## v1.2.0 (2026-09-24)
78
-
79
- ### ✨ New
80
-
81
- - **Xiaomi MiMo splits into three cards, each owning its own account**: cloud (`xiaomi-mimo`: browser sign-in / API key, standard billing), Desktop (`mimo-desktop`: session comes from the MiMo Desktop app signed in on this machine — no API key), and Token Plan (`tp-` subscription keys). One card used to cover two credential kinds, so weekly quota and connection tests were judged by the looser side — the cloud card advertised a desktop-only weekly quota it cannot read. Existing connections created wrong under v1.1.3 are moved back by a migration.
82
- - **MiMo V2.6 in, V2.5 retired**: the whole V2.6 line is in, and MiMo models now declare a **real context window** (1M / 128K output; they previously fell through to guessed defaults). **V2.6 Pro UltraSpeed** joins the cloud and Token Plan cards — a custom-service model: usable straight away with a contract, an upstream error without one, and nothing you have to add by hand.
83
- - **Full StepFun integration**: four channels — China / international × pay-as-you-go / Step Plan — with short aliases `step-cn` / `step` / `stepp-cn` / `stepp`. Step Plan channels spend subscription Credits, expose a native Anthropic API (Claude Code can connect directly), and add the plan-only `step-router-v1`. LLM / TTS / STT are isolated per menu (image generation is not exposed — the provider announced its shutdown); live balance and voucher queries included.
84
- - **ComfyUI local image generation**: connect a local ComfyUI, checkpoints are discovered automatically, SD / SDXL / Flux text-to-image workflows are assembled and served through `/v1/images/generations`.
85
- - **Media provider lists are now drag-sortable with connected-first ordering**, sharing one sort and persistence model with the main providers page; `/v1/models` order follows suit.
86
- - **Combos gained an "switch on empty reply" strategy** (off by default): upstreams that express content filtering as an HTTP 200 empty stream now fall through to the next model — at most 2 by default. Replaying re-bills the full input context, so be careful with large-combination prompts.
87
- - **Pick the model for a one-by-one connection test**: the dropdown defaults to "provider default" because some credentials only cover part of the catalogue — a Desktop session only reaches the desktop models. Qoder now verifies the chosen alias against **that account's live model list** (free), and Qoder CN no longer answers "not supported".
88
- - **"Hide no-quota" moved to Settings → Experimental**, as the quota toolbar had run out of room.
89
-
90
- ### 🔒 Security
91
-
92
- - **No built-in default password.** With no password set (and no SSO) the dashboard **opens on this machine only**; remote requests are refused with a pointer to set one. `INITIAL_PASSWORD` is the only non-interactive bootstrap password. **If you used the old default to sign in from another device, set a password on the host once after upgrading.**
93
- - **Provider credentials are encrypted at rest** (AES-256-GCM), with the key kept outside the database (`$DATA_DIR/credential-key`, or set `CREDENTIAL_SECRET`). A copied or synced database is no longer a credential dump. **Back the key file up with the database — without the key, credentials cannot be recovered.**
94
- - **Usage logs no longer store full API keys** — a readable prefix plus a one-way digest; per-key stats keep working.
95
- - **New Security card (Settings → Experimental)**: listener, password and log-in-check state, effective access and credential storage in one place, plus a **"dashboard: local access only"** switch that applies per request (the `/v1` gateway is unaffected). A warning banner sits on every page while no password is set or the check is off, and turning the check off now needs confirmation.
96
- - **Sessions tightened**: 24h shortened to 2h with sliding renewal (no interruption while working), and this version adds an **absolute cap** — re-authentication after 30 days from the original sign-in, so a stolen session cannot be extended forever.
97
- - **fnOS no longer resets the bootstrap password on upgrade.** The random password now lives in the data directory, which survives upgrades; previously every fpk upgrade replaced it and locked out anyone using the old one.
98
- - **A backup taken with the wrong key no longer silently drops credentials**: it keeps the ciphertext and warns that the original key is needed to restore it (it used to report "downloaded" with none in it).
99
- - **`/api/health` no longer echoes local paths** — the raw driver-load error it returned routinely contained absolute paths.
100
- - **Key files on Windows are restricted by ACL** (encryption and session secrets, like the Root CA key already was); the MITM sudo password no longer encrypts with a fallback key hardcoded in the source.
101
-
102
- ### 🐛 Fixes
103
-
104
- - **[Important] Starting with the wrong key permanently destroyed stored credentials**: restoring the database onto a machine without its key and starting once erased every OAuth token and API key, beyond recovery even after the key came back. Ciphertext is now preserved and comes back with the key.
105
- - **[Important] Some response streams were malformed**: the stop-sequence guard injected its holdover line without a separator, merging it into the terminating frame so some clients (official SDKs included) failed to parse it; Anthropic responses also lacked the event line and used a hard-coded block index. All fixed, and non-text blocks are now dropped whole after a cut (they used to remain as an argument-less tool call a client might execute).
106
- - **[Important] A reply that only called a tool was treated as empty**: with "switch on empty reply" enabled, a model choosing to call a tool was discarded and the next model **re-billed the entire input context**. Tool calls and reasoning now count as content, and the abandoned call's usage is still recorded.
107
- - **Claude Code's auto-mode classifier was always unavailable through the gateway (#18)**: some upstreams accept `stop` / `stop_sequences` and ignore them. The gateway now enforces the client's stop contract in the streaming relay (the sequence itself is not emitted, usage accounting is kept, a truncated `length` is rewritten to a proper stop) and maps stop parameters in both translation directions.
108
- - **MiMo browser sign-in was completely broken over LAN / HTTP**: OAuth `state` generation relied on an API that only exists in secure contexts, so clicking "browser" from another device via `http://LAN-IP` — the normal way a NAS install is used — threw before the flow could start.
109
- - **SiliconFlow CN's short alias was hijacked**: `sfcn` was claimed by two providers, so SiliconFlow requests went to StepFun. It is back with its owner, and a global alias-uniqueness check guards the class.
110
- - **StepFun connection tests answered "not supported"** even for healthy keys; they now run the standard OpenAI-compatible check.
111
- - **Token Plan browser sign-in routed to the wrong cluster**: chat / TTS / connection tests went to the pay-as-you-go host; they now follow the endpoint the platform handed back and we stored.
112
- - **Quota page display and interaction**: under a view filter, "Showing 1-10 of 46" disagreed with the cards on screen (it now reports what is rendered); clicking several "Hidden" chips quickly dropped most of the clicks (five restored two) — all land now; and "Only with balance" is reconnected to manual hiding, so bulk-hidden rows appear in the "Hidden" list and can be brought back by name.
113
- - **Per-key usage merged every key on a machine into one bucket** — the grouping key was a mask identical across keys on the same machine; it now groups by key digest.
114
- - **MiMo miscellany**: an exhausted weekly quota no longer dumps the provider's raw JSON into the connection row; bare TTS model names are no longer silently rewritten; pending browser-login sessions are capped at 8, matching the desktop app.
115
-
116
- ### 🔧 Other
117
-
118
- - Restored 258 UI translations that had gone dead behind the brand rename (they were silently showing English).
119
- - Expiry countdowns no longer collapse across days: 41 hours is `1d 17h`, not `1d`.
120
- - The dashboard's Change Log now only renders released versions — you will not be told about features you do not have yet.
121
- - Installers and docs no longer point users at an unrelated fork's package name.
122
-
123
- ## v1.1.3 (2026-09-20)
124
-
125
- ### ✨ New
126
-
127
- - **Qoder CN fully restored + daily credits auto-claim**: qoder-cn OAuth device-code / PAT auth, model catalog and usage tracking are back; daily credit auto-claim (experimental toggle + per-card manual claim) with per-pack resource-package display (individual expiry dates, first-expiry-first-spend); official Qoder icons plus live Qwen price multipliers and off-peak half-price countdown.
128
- - **Per-model context-window / max-output pins**: a tune icon on every model row (including auto-discovered ones) overrides `contextWindow` / `maxOutput`; leave blank to fall back to defaults. Applies to model listings and usage accounting alike.
129
- - **Server-side auto-compaction for oversized contexts**: when a request is estimated past 90% of the effective window (threshold selectable 80/90/95%, on by default), older turns are summarized by the same model before dispatch — clients that don't self-compress (ZCode / OpenClaw / custom agents) no longer hit "prompt is too long", with reasoning models handled too; any failure passes the original through untouched. Master toggle lives under Experimental.
130
- - **Drag-to-reorder provider cards** with persistence; disabled providers auto-sort to the bottom; the model API listing now follows card order.
131
- - **OpenCode Free anti-abuse fix, enabled by default**; Antigravity image models added (gemini-3-pro-image / imagen-3.0 etc.); 10router-sync plugin v1.5.0 (ZCode plan-channel id adaptation + sync hardening).
132
-
133
- ### 🛠️ Improvements & Fixes
134
-
135
- - **CodeBuddy CN strict-gateway tool-schema compatibility**: tool parameter roots shaped as anyOf/oneOf/allOf, `$ref` or type arrays are now downgraded to a plain object root before forwarding, fixing whole-request `11129` rejections from clients like ZCode (#27).
136
- - **Quota reset badge no longer disappears**: recurring windows (e.g. MiMo weekly quota) keep showing "resets in N days" even when fully drained.
137
- - **Qoder quota parsing fix**: daily/campaign credits on free accounts no longer show 0/0.
138
- - **CodeBuddy intl DeepSeek reasoning_effort mapping fix** (#23).
139
- - **Stability backports**: 4xx request-level errors no longer trip healthy accounts; successful connection tests clear stale backoff locks; stalled silent streams report in-band error frames instead of looking like normal short replies.
140
-
141
- ## v1.1.2 (2026-09-18)
142
-
143
- ### ✨ New
144
-
145
- - **Usage dashboard overhaul**: Lifetime stats cards, a GitHub-style activity heatmap (day/week views with hover details), and a node health score table (success rate / latency / speed weighted, expandable per-model rows) on the Usage Details page. The unit-abbreviation toggle now applies globally — overview cards follow the same switch.
146
- - **Xiaomi Token Plan egress-region matching**: Adding or editing a connection auto-selects the cn / sgp / ams cluster based on your network egress (multi-source probing, fail-open), and the connection test button now routes to the selected cluster. MiMo 429 responses carry friendly guidance, and cooldowns honor the upstream "retry after N seconds" hint.
147
- - **10router-sync plugin v1.4.0**: New `/10router-sync:status` command — instance status and today's usage without opening the dashboard.
148
-
149
- ### 🛠️ Improvements & Fixes
150
-
151
- - **CodeBuddy 11128 channel-level circuit breaker**: Channel-wide risk-control hits now trip a provider-level cooldown (no more per-account retry bursts amplifying risk), with bilingual guidance in the error response; extreme request sizes are backstopped locally.
152
- - **Credential auto-refresh fixed (Cline / ClinePass)**: Background refresh no longer fails with 400 — credentials renew automatically before expiry; dead credentials are explicitly flagged as needing re-authorization.
153
- - **Provider & chart cleanup**: Retired public endpoints removed; OpenCode Free / MiMo Code Free moved to a hidden-by-default "Trial" category; model family aggregation fixed (gpt-6, hy4, qwen3.8 etc. are no longer split); Model Type chart legend moved to the top-right with mobile responsiveness.
154
- - **Security**: The single-connection API no longer echoes the Xiaomi desktop session credential in plaintext.
155
-
156
- ## v1.1.1 (2026-09-14)
157
-
158
- ### ✨ New
159
-
160
- - **Earliest Expiry First multi-account routing strategy**: Solves the pain point of repeatedly exhausting a primary account while short-term promotional packages on other accounts expire unused. A dedicated toggle on the provider details page automatically prioritizes valid packages closest to expiration, with zero blocking and zero request latency.
161
- - **Command Code usage tracking & quota dashboard (#16)**: Full support for 5-hour session rolling windows, 7-day weekly limits, and monthly plan credit allowances/spend. Dynamically detects Go / GOAT / Pro subscription tiers, with countdown timers and balance countdowns.
162
- - **Bulk enable/disable for custom & passthrough models**: One-click bulk enable or disable for custom model catalogs on both OpenAI-compatible endpoints and built-in providers, plus a fix preventing single model updates from overwriting capability attributes.
163
- - **Universal OAuth credential transfer with AES-256-GCM encryption**: Export credentials across all OAuth providers into secure password-protected backups (`10router-oauth-secure-v1`), with smart multi-tier deduplication during import.
164
- - **Official brand SVG icons**: Integrated `@lobehub/icons` with official vector brand icons for 58 providers, supporting automatic light/dark theme adaptation.
165
- - **CodeBuddy check-in & international daily active session**: Check-in upgraded to continuous background scheduling with persistent daily memo deduplication; added daily active session toggle for CodeBuddy International.
166
- - **Desktop client improvements**: Full tri-lingual localization for menu bars, new "Go" navigation menu (open URL / return to 10Router / recent URLs manager), and long-term server log archiving by date.
167
-
168
- ### 🐛 Fixed
169
-
170
- - **Quota panel 0 total & sentinel countdown bug**: Fixed logic where zero-credit accounts were rendered as infinite quota `0 / ∞`, and filtered out far-future sentinel timestamps (such as year 9999) that produced 2.9-million-day countdowns.
171
- - **Quota percentage calculation**: Fixed balance-denominated quotas (e.g. Command Code $9.98) being misread as raw percentages displaying `10% 🔴`.
172
- - **CodeBuddy quota display direction**: Inverted credit pack displays to "Remaining / Total" countdown, aligning numbers with progress bars.
173
- - **CodeBuddy International connection testing**: Added missing IDE transport headers and auth verification handling, resolving "Provider test not supported".
174
- - **Xiaomi MiMo Desktop Preview model errors**: Clarified errors when calling preview models without desktop login, eliminating misleading rate-limit cooldowns.
175
- - **Instant refresh for model disabled states**: Synchronized model availability state immediately upon connection changes, allowing disabled models to be tested directly.
176
- - **Extensive i18n cleanup**: Full English and Traditional Chinese localization across the Endpoint page, provider notices, and API key buttons.
177
-
178
- ## v1.1.0 (2026-09-11)
179
-
180
- > **Version note**: v1.0.9 was skipped and never released — its planned content (Xiaomi MiMo desktop support, etc.) was folded into this release, which grew to minor-level scope; the version number moved straight to v1.1.0. No v1.0.9 tag or artifacts exist.
181
-
182
- ### ✨ New
183
-
184
- - **Xiaomi MiMo Desktop support (one provider, two ways to sign in)**: `xiaomi-mimo` now accepts both an sk- API key (cloud API) and a Xiaomi MiMo desktop-app account — the desktop-exclusive `mimo-x-pro-preview` / `mimo-x-flash-preview` only accept the account cookie, so an API key alone cannot reach them. Both credentials share one provider card; enable whichever you need.
185
- - **Xiaomi MiMo authorization-code sign-in**: after the official authorize page opens in your browser, you can **paste the code shown on that page** straight into the dialog to finish signing in — even if the local callback never connected, or already timed out. The credential is decrypted server-side only and never passes through the browser.
186
- - **CodeBuddy international catalog completed**: every entry was re-checked against the live gateway with real requests, adding five models that were served but missing (GLM-5.1 / GLM-5v-Turbo / MiniMax-M3 / Kimi-K2.7 / DeepSeek-V4.1-Flash) plus `GPT 6.0 Astra`.
187
- - **opencode-go catalog aligned with the official public list (18 models), with a declared endpoint per model**: some models used to fail outright because a missing endpoint declaration sent them down the wrong path; each one now declares its endpoint from the official table.
188
- - **New `gpt-image-2.5` image-model family for Codex / OpenAI**: `gpt-image-2.5` (incl. `-flare` / `-sunburst`), `gpt-image-2`, `gpt-image-1.5` — text-to-image, editing, and multi-image references.
189
- - **Credit-multiplier badge supports limited-time free promos**: the badge shows green `free` during the promo and **automatically** returns to the real multiplier when it ends — no one has to remember to change it back.
190
-
191
- ### 🐛 Fixed
192
-
193
- - **Windows desktop upgrades no longer silently discard old data**: the desktop data directory is also Electron's own config directory, so Chromium fills it with files first and makes it look "non-empty", permanently skipping the old-data migration. The check is now "does the directory already contain our own database".
194
- - **Several real Xiaomi MiMo authorization-code bugs**: the decrypted payload layout was reversed (the actual cause of `decrypt_failed`), the platform requires `app=MiMo`, the callback path is now a random string, and the result is handed back with a 302; pasting a code also keeps working after the callback listener times out.
195
- - **Kiro requests no longer carry a top-level `systemPrompt`** (kiro.dev answers it with an immediate 400 and no retry); endpoint order now prefers the Amazon surface.
196
- - **Claude tool `type` is now decided per provider**: this fixes MiniMax's Claude endpoint (rejected tools without `type`) without breaking DeepSeek's Claude endpoint (which only accepts its own `type` values).
197
- - **Codex strips `\p{...}` regexes it cannot parse from tool schemas**: previously a single property escape in a tool parameter `pattern` failed the whole request with a 400, identically for every account.
198
- - **`better-sqlite3` is skipped on Node 24**: its native addon crashes the process on load there, which used to take the whole server down.
199
- - **AMD Token Factory catalog and capabilities rebuilt from live measurements**: missing chat models were added and a "text-only" misclassification was fixed (images were being silently dropped).
200
- - **CodeBuddy CN's DeepSeek-V4.1-Flash output ceiling lowered to the server-published 128K**: asking for more never errors, it just makes over-limit requests more likely to hit a 400.
201
- - **One provider no longer stores two contradictory disabled-model records**: this fixes models that appeared not to be disabled.
202
-
203
- ## v1.0.8 (2026-09-09)
204
-
205
- ### ✨ New
206
- - **AMD Token Factory provider**: free shared OpenAI-compatible endpoints from AMD Radeon Cloud (`DeepSeek-V4-Flash` 1M context + `Qwen3.8-Flash-Next` 262K context); thinking via reasoning_effort with per-model level pickers; same shape as NVIDIA NIM
207
- - **Antigravity quota host fix**: quota summary now queries the correct daily host (matching the native IDE), fixing systematically stale numbers; percentage reads from the backend value instead of re-deriving in the frontend
208
- - **CodeBuddy catalogs aligned to the server (CN + intl)**: the international catalog is re-aligned (adds the Hy4-Preview / Hy3 free tier, GPT-5.6 Sol/Terra/Luna, GLM-5.3, Kimi-K3; drops retired models); the CN catalog now matches too — `DeepSeek-V4.1-Flash` supersedes `DeepSeek-V4-Flash` and the duplicate `Kimi-K3 (1)` slot is gone; every model on both gateways now carries the published credit multiplier
209
- - **Credit-multiplier badges on the model list**: free-quota models show a green `free` chip, the rest show their modifier as `0.79x` (hover for an explanation); providers with no credit system show nothing
210
-
211
- ### 🔒 Security
212
- - **API key HMAC secret hardening**: built-in fallback secret now triggers a production startup warning; experimental **Key secret rotation** (off by default) auto-generates a per-install secret; `generateKeyId` switched from `Math.random` to `crypto.randomBytes`
213
- - **Dangerous-action confirm dialogs**: "Require API key" off, key-rotation enable/disable, and "Rotate all" now require explicit confirmation; rotation is double-submit protected (server 409 + client guard)
214
-
215
- ### 🐛 Fixed
216
- - **Non-streaming requests defaulted to SSE (issue #4)**: omitting `stream` now correctly defaults to JSON (OpenAI/Anthropic spec); previously returned `text/event-stream` with trailing `data: [DONE]` that broke strict JSON clients (OpenAI SDK, WorkBuddy, curl)
217
- - **Key rotation confirm dialog stuck open / repeated rotation**: confirm modal now auto-closes before executing; repeated rotations no longer stack "(rotated)" suffixes
218
- - **MCP SSE idle disconnect**: long-lived MCP SSE connections now send a 25s comment heartbeat, preventing NAT/firewall silent drops
219
- - **CodeBuddy CN whitelist false-positive (PR #5)**: Claude Code's own system prompt no longer matches the agent-identity whitelist (was triggering 11128)
220
- - **GLM-4.6V-Flash missing vision (PR #5)**: free vision model now registered with correct capabilities
221
- - **DeepSeek effort "max" rejected by SenseNova (PR #5)**: clamped to "xhigh" for cross-provider compatibility
222
- - **Fetched/imported models now default to disabled (enable on demand)**: bulk imports via "Import from /models" and "Fetch Qoder Models" no longer switch everything on at once — they land in the "Disabled models" area for you to enable as needed, and `/v1/models` now only serves enabled models (a disabled model was previously still listed). Single manual adds stay enabled
223
- - **CodeBuddy CN listing intl-only models (fixed)**: the CN catalog had picked up the GPT/Gemini family that only the international gateway serves, which failed with "model service info not found" when selected; removed from CN (kept in intl) with a test guard
224
- - **DeepSeek-V4.1-Flash output ceiling under-reported (fixed)**: its capabilities capped output at 50K (a leftover from the pre-rename id), which truncated client requests; corrected to the model card's 1M context / 384K output / image input / switchable thinking, and the model's two alias ids now carry the same caps
225
-
226
- ## v1.0.7 (2026-09-07)
227
-
228
- ### ✨ New
229
- - **CodeBuddy CN built-in "Total Points" quota row**: the CodeBuddy CN card now leads with a Total Points row summing the live balance of every pack (monthly refills + bonus packs) — no more adding them up yourself; it auto-hides under the "Only with balance" filter once drained; "Bonus Pack" row names are now localized
230
- - **ZCode usage sync plugin (10router-sync)**: import ZCode's local model-usage ledger into 10Router in one step — providers pointed at 10Router are auto-excluded to prevent double counting; re-runs are idempotent via dedup; imported usage shows up in the usage page and the details tab
231
- - **Upstream v0.5.69 selective port**: ① Google-family multi-account background refresh → serial + tiered jitter to dodge anti-abuse risk control; ② Anthropic-compatible nodes on real Claude auto-add context-management beta headers (no more silent model-swap); ③ opencode-go stable sessions (free pool no longer trips risk control); ④ Responses parallel tool-call fix (no longer merges N calls into one); ⑤ Claude Fable weekly-quota tracking; ⑥ codex adds gpt-6-astra etc.; ⑦ codebuddy-cn model catalog aligned to server contract
232
- - **qoder catalog refresh + image passthrough**: model list aligned to server, base64 image direct send; dashboard Antigravity quota grouped by family (per-connection isolation, better than upstream)
233
- - **Desktop tray update path + leaner menu**: desktop update banner now points to GitHub Releases; tray menu merges check-update / about / start-stop into one compact flow
234
- - **copilot switched to VS Code extension guide**: no more MITM intercept — three-step extension config (engine layer retained, manually revertible)
235
- - **Tray icon monochrome**: macOS template icon + Windows dark/light theme black-white adaptive
236
-
237
- ### 🐛 Fixed
238
- - **`/responses` root-path auth gap (security)**: prefix added, path now enforces API-key check
239
- - **Foreign `server_tool_use` poisoning history after Claude combo fallback (400)**: validate `srvtoolu_` prefix and drop foreign tool blocks
240
- - **MCP deferred tool breaking cache anchors (400)**: anchor now pinned to the last cacheable tool
241
- - **gemini schema tuple validation 400**: `prefixItems` conversion + array missing `items` placeholder
242
- - **antigravity system-prompt competitor brand-clean generalization**: OpenCode naming no longer triggers 429
243
- - **Free-model background-refresh noise + connection-test hang**: de-noised + 15s timeout
244
-
245
- ## v1.0.6 (2026-09-05)
246
-
247
- ### ✨ New
248
-
249
- - **CodeBuddy CN auto daily check-in** (experimental, off by default): with "CodeBuddy CN auto daily check-in" enabled under Settings → Experimental, the Import / Export buttons on the CodeBuddy CN page are replaced by an automatic daily check-in (each account checks in at a random 00:00–06:00 local time to renew free quota; failures never interrupt the service and a 401 triggers one token refresh + retry) plus a manual "Check in now" button
250
- - **Antigravity quota aligned with the official site (5h + weekly dual window)**: Antigravity quotas on the usage page now use the official retrieveUserQuotaSummary RPC as the primary source, showing exactly **4 cards** per account (Gemini Models / Claude and GPT models × {5-hour, weekly}), normalized to a 0–100 scale; falls back to the old per-model parse when the RPC is unavailable
251
- - **OpenCode Free catalog aligned with the official free list**: adds Big Pickle / MiMo-V2.5 / Ling 3.0 Flash Fin / Nemotron 3 Ultra / Nemotron 3.5 Lightning; deliberately excludes the DeepSeek / Laguna free tiers the official docs have dropped (avoids accidental paid calls)
252
-
253
- ### 🐛 Fixes
254
- - **Antigravity `ag/gemini-3.8-flash-*` 404**: model addressing now uses per-tier tiered entities and the IDE fingerprint is bumped to 2.11.0 (bare ids 404 with "Requested entity was not found"); adds the un-tiered `ag/gemini-3.8-flash` (routed to the medium tier)
255
- - **"Only with balance" misses newly-checked-in quota packs**: fixed a case where CodeBuddy CN's daily full packs were hidden after older packs were renumbered and the persistent hide never cleared — the hidden set is now recomputed live so any pack with remaining balance (including fresh full packs) always shows
256
- - **Friendly message for free-model 429 rate limits**: when a free-tier model (`oc/*-free`, `contributor-free`, APInex `free/`-prefixed, etc.) hits an upstream rate limit and returns 429, the raw English `rate_limit_exceeded` is no longer passed through — instead a friendly Chinese message is returned showing an estimated wait ("try again in ~N sec/min/hr") when the upstream supplied a reset time, otherwise advising to retry later or switch to a paid tier. Paid models and multi-account fallback are untouched
257
-
258
- ## v1.0.5 (2026-09-03)
259
-
260
- ### ✨ New
261
-
262
- - **Desktop tray app (Windows / macOS)**: an install-and-go desktop app — system tray menu (open console / start / restart / stop / launch at login) plus an embedded window; closing the window minimizes to the tray. Shares data, keys and port with the npm CLI (the two forms run exclusively). Windows ships an NSIS installer (silent `/S` supported) and a portable exe; macOS ships separate Intel + Apple Silicon dmgs
263
- - **CLI / desktop UI localization**: the npm CLI and the desktop tray now follow the system language (Simplified Chinese / Traditional Chinese / English); override with the `TENROUTER_LANG` env var (`zh-CN` / `zh-TW` / `en`)
264
- - **Self-serve custom providers + new Skills-page skill**: register a custom OpenAI/Anthropic-compatible endpoint (baseUrl + upstream key + models) at runtime with a dashboard LLM key — no source change, no repackage. The Dashboard **Skills** page gains a **10router-add-provider** card and now links to the `main` branch (previously `master`, which 404'd)
265
- - **CodeBuddy CN account JSON bulk import / export** (experimental, off by default): after enabling "CodeBuddy CN OAuth import / export" under Settings → Providers, the CodeBuddy CN detail page shows Import / Export buttons to bulk-import or export account credentials in the third-party (wb) JSON format (import dedupes by identity and skips non-CodeBuddy issuers). Import / export now require a dashboard-password confirmation (prevents anonymous token export in no-login mode)
266
- - **Community welfare providers show by default**: GoRouter / TaBiAI now appear by default (no need to toggle them on), consistent across the provider list / Profile toggle / usage topology
267
- - **Community welfare providers sort into one group**: in the Free Tier list, community providers (GoRouter / TaBiAI) now cluster into one adjacent block per rank group instead of interleaving with regular freeTier providers by priority/name
268
- - **New Agnes AI dual-site providers**: international **Agnes AI** (com) + **Agnes AI (CN)** — each with Agnes 2.5 Flash / 2.5 Pro text models (512K / 1M context, vision + reasoning), plus Agnes Image 2.x Flash image models (standard images/generations endpoint; image-to-image / editing)
269
- - **New "Experimental" settings group**: Profile gains a dedicated Experimental card gathering the developer-oriented default-off toggles (Fetch models from GitHub JSON + CodeBuddy CN import/export) for easy future expansion
270
- - **New provider APInex (apinex.bond)**: prepaid USD-credit third-party gateway (OpenAI-compatible) with 18 models (13 paid + 5 `free/`-prefixed free models); provider pages show a copyable invite-code chip (APInex: `SLEWP68C`)
271
- - **Upstream v0.5.65 catalog sync + new search providers**: adds GLM-5.3-Flash(Vision), GLM-4.6V, DeepSeek-V4-Flash-Vision-Exp, Grok-4.6, Claude-Fable-5.1 and more; new search providers Ollama-Search (reuses your local Ollama key) and Xquik (X/Twitter search)
272
-
273
- ### 🐛 Fixes
274
- - **Usage table corruption after Cost/Token switch**: toggling the display mode and sorting no longer reverts some rows to currency values; Traditional Chinese usage-table headers are now fully translated
275
- - **Usage table sorting semantics**: token / cost columns now sort model groups by their totals, matching the header arrow direction
276
-
277
- ## v1.0.4 (2026-09-01)
278
-
279
- ### ✨ New
280
- - **3 new providers**: **TokenBom** (decentralized token marketplace — idle API keys earn credits, credits call many models; 79-model online catalog), **GoRouter** (free gateway, no recharge entry), **TaBiAI** (free gateway, no recharge entry)
281
- - **Usage history import**: import usage data from 9Router backups (SQLite files) — merged into stats without touching config
282
- - **Notification overhaul**: global toasts moved to top-center; browser-native alert() dialogs replaced with friendly notifications
283
- - **Community welfare providers**: GoRouter / TaBiAI are hidden by default with a "community" badge; toggle them on in **Settings → Providers → Show community welfare providers**
284
-
285
- ### 🐛 Fixes
286
- - **Provider ordering fixed**: connected providers first, disabled sink to bottom — no longer scrambled by priority
287
- - **JSON catalog models invisible after enabling**: stale disable records are now cleared ("enabled but not listed" resolved)
288
- - **B.AI / CodeBuddy CN model catalogs completed**: missing models that caused "not found" when switching are added
289
- - **Friendly maintenance hints on connection tests**: endpoint down / Cloudflare-blocked shows a maintenance note instead of a misleading "Invalid API key"
290
- - **Account filter reminder**: quota-pack account filter persists; an amber reminder bar shows when a non-default filter is active
291
- - **CodeBuddy CN DeepSeek 11150**: DeepSeek-series calls no longer fail with 400 on the reasoning-effort param (auto/off); coding agents (dsh, etc.) work normally
292
- - **CodeBuddy empty tool name (11133 / unknown tool)**: empty `function.name` in streaming tool calls is normalized, so standard clients no longer mis-detect the tool name
293
- - **Topology still shows hidden community providers**: the usage topology now honors the "Show community providers" toggle — community welfare sites (GoRouter/TaBiAI) are hidden when it's off
294
- - **Skills page i18n + Chinese links**: Skills page text is now localized; in Chinese (zh-CN) the links point to the Chinese skill files
295
-
296
- ## v1.0.3 (2026-08-30)
297
-
298
- ### ✨ New
299
- - **4 new providers**: **LongCat** (Meituan), **SenseNova** (SenseTime, free beta), **Dots** (Xiaohongshu Dots Studio, free beta), **B.AI** (aggregator — one key for GPT / Claude / Gemini / DeepSeek / GLM / Kimi / Qwen and more)
300
- - **Model JSON catalogs for custom providers**: custom nodes can pull an online model list, toggle models on/off individually, and manage them in bulk
301
- - **fpk update check goes straight to Releases**: fnOS installs jump directly to the matching release download
302
-
303
- ### 🔒 Security
304
- - **Progressive login rate-limit**: 5 failed password attempts → 30s / 2m / 10m / 30m lockout
305
- - **Reject placeholder JWT keys**: copying the public `.env.example` key is ignored; a random key is generated instead
306
- - **Fix npm package leaking build-machine secrets**: no more keys / machine IDs / data snapshots in the build artifact
307
-
308
- ### ⚠️ Notes
309
- - npm package renamed to **`@techysy/10router`** (the old `10router` is an unrelated fork). If you installed `10router-cli`, switch to the new package; data directory unchanged.
310
-
311
- ## v1.0.2 (2026-08-29)
312
-
313
- ### 🐛 Fixes
314
- - **Update check no longer points at a third-party package** (affected 1.0.1): version check, update command, and sidebar install command all target the correct package
315
- - **postinstall no longer aborts install**: npm install no longer fails from the warm-up script on WSL paths
316
-
317
- ### ⚙️ Engineering
318
- - **Test CI added**: tests + regression gate run automatically on push / PR
319
-
320
- > ⚠️ **1.0.1 users should upgrade**: its built-in "check for updates" points to an unrelated third-party package.
321
-
322
- ## v1.0.1 (unreleased; delivered with v1.0.2)
323
-
324
- > 1.0.1 was never published as a release (only the npm `10router-cli@1.0.1` briefly existed). The following reached Docker / fpk / standalone users with **v1.0.2**.
325
-
326
- ### 🔒 Security
327
- - **4 MITM security fixes**: upstream TLS cert validation restored, root CA private key locked to 0600, no longer blindly killing the process on port 443, auto-cleanup of leftover hosts entries (MITM is off by default)
328
-
329
- ### ✨ New
330
- - **Disabled providers sink to the bottom** via a settings toggle
331
- - **Collapsible desktop sidebar**
332
- - **OpenCode Go quota usage**
333
- - **Gitee mirror fallback for model catalogs** (faster in CN)
334
-
335
- ### 🐛 Fixes
336
- - **/v1/models no longer returns orphan custom models**
337
- - **Custom node prefix uniqueness check**
338
- - **Fix CodeBuddy executor dropping the Agent system prompt**
339
-
340
- ### ⚙️ Engineering
341
- - **New npm distribution channel**: `npm i -g 10router-cli`
342
- - **Generic "fetch models from GitHub JSON" capability** (Fetch Models)
343
-
344
- ## v1.0.0 (2026-08-26)
345
-
346
- ### ⚠️ Notes
347
- 1. **Data directory renamed**: `~/.9router/` → `~/.10router/` (Windows: `%APPDATA%\10router`), auto-migrated on first start
348
- 2. **SAML entityID changed**: default issuer is now `urn:10router:sp`; re-register in your IdP
349
- 3. **MITM CA renamed**: re-trust the new CA
350
-
351
- ### ✨ New
352
- - **Rebrand**: 9Router → 10Router
353
- - **i18n multi-region currency**: en / pt-BR / pt-PT / es / de
354
- - **Multi-platform distribution**: Docker (amd64 / arm64), fnOS fpk (x86 / arm × url / iframe), Standalone
1
+ # Changelog
2
+
3
+ User-facing highlights per release. See [CHANGELOG.md](https://github.com/techysy/10router/blob/main/CHANGELOG.md) for the full developer log.
4
+
5
+ ## v1.3.4 (2026-10-05)
6
+
7
+ ### ✨ New
8
+
9
+ - **New Trae Free provider (`trae-free`)** — use Trae (SOLO) remote-agent credits through the local CreditDaddy gateway, same wiring as ZCode Free / MiniMax Free: no login card, shared host/port with a per-line path, 12 models (Doubao Seed Code, MiniMax M2.7, GLM 5 family, DeepSeek V4, Kimi K2.5/2.6, Qwen 3.5/3.6) and thinking-stream support.
10
+
11
+ ### 🐛 Fixed
12
+
13
+ - **Auto-compact default trigger ratio 0.9 → 0.95** — auto-compaction now fires closer to the context limit (threshold levels and the master switch are unchanged; still adjustable on the "Experimental" card).
14
+
15
+ ## v1.3.3 (2026-10-04)
16
+
17
+ ### ✨ New
18
+
19
+ - **New MiniMax Code Free provider (`minimax-free`)** — use MiniMax free credits (M3.1-Flash-Preview / M3 / M2.7) through the local CreditDaddy gateway, same wiring as ZCode Free: no login card, shared host/port with a per-line path, official icon and a gateway-settings section on the detail page.
20
+ - **MiniMax capability wiring matches the official client** — M3.1-Flash-Preview exposes the five official thinking-depth levels (default/low/medium/high/xhigh/max) as pass-through; M3 thinking is an on/off toggle; context reported as 1M.
21
+
22
+ ### 🐛 Fixed
23
+
24
+ - **zcode-free gateway endpoint** — the ZCode gateway path now carries the `/zcode` segment, matching CreditDaddy's migration (the MiniMax line already used the same shape).
25
+ - **CreditDaddy gateway card** — the path field now shows the value that actually takes effect (prefilled, not a hidden placeholder); the remote-access instructions were corrected: the gateway is protected by an IP allowlist and checks no key, so there is nothing to enter (the old text wrongly asked for a key-bearing connection).
26
+ - **CodeBuddy CN no longer blocks tool-heavy Claude Code / codex sessions** — the `>60 tools` local cutoff locked out real MCP sessions; tool count is now reported in the rejection diagnostic only, with the 3.2MB size and message-count guards unchanged.
27
+
28
+ ## v1.3.2 (2026-10-03)
29
+
30
+ ### ✨ New
31
+
32
+ - **Desktop: unified HTML update window** — checking, download progress, cancel and install all live in one branded window consistent with the dashboard; fixed stray scrollbars under Windows fractional display scaling.
33
+ - **Desktop: "Update via desktop shell" button** — when the dashboard finds a new version, one click hands the download → SHA-256 verify → install flow to the tray shell; works from remote dashboards (LAN / Tailscale) too.
34
+ - **Desktop: installer & About window match the dashboard design language** — the installer/uninstaller gain a branded sidebar; "About 10Router" moved from the native dialog to a branded window.
35
+ - **Fixed: Windows upgrades no longer blocked by stale processes (important)** — the old uninstaller could not kill the background service, failing upgrades with "cannot close"; the new installer clears processes up front and the app stops its service deterministically on quit.
36
+ - **Space-Bunny added to CodeBuddy CN** (0.03x limited-time, 10/2–10/7); **APInex is back** with a live-refreshed 36-model catalog (free tier grown to 18).
37
+ - **Vendor catalog & icon refresh** — Token Harbor free tier gains qwen3.8-flash / mimo-v2.6-flash (1M window, vision); fledge-alpha-free capability row; Atria key link points to the official console; new official icons for Atria / Token Harbor / OpenCode Zen; Dahl Inference retired.
38
+
39
+ ### 🐛 Fixed
40
+
41
+ - **Model capability reporting is complete** — login-free vendors (zcode-free etc.), custom models of unconnected vendors (opencode-zen etc.) and login-free static models now all publish "context window / max output" so clients stop guessing.
42
+ - **Cache hit rate algorithm fixed** — cache-dense requests are no longer silently dropped from the stat (684 rows); cache-write tokens count toward the denominator, making the number honest (agent traffic legitimately sits in the high 90s).
43
+ - **Provider detail page** — invite code chip no longer shows twice; provider notice texts fully translated (zh-CN / zh-TW).
44
+
45
+ ## v1.3.1 (2026-10-02)
46
+
47
+ ### ✨ New
48
+
49
+ - **GLM Coding: Z.ai OAuth sign-in (dual-auth)**: browser authorization alongside pasting an API key; quota cards work with either.
50
+ - **New Meta Muse provider (OAuth + model catalog)**: Meta's official Muse Code channel with device-flow sign-in; five Muse Spark models at official pricing.
51
+ - **New System One decision provider v1m (v1m.ir)**: a second Jev-compatible decision backend alongside Drex.
52
+ - **Codex exposes GPT-6 / GPT-5.6 `[1m]` long-context variants**: 872K window — just suffix the model name with `[1m]`.
53
+ - **Experimental "nested cycle quota bars"**: a toggle on the Experimental page restores the concentric nested track for rolling ⊂ weekly ⊂ monthly chains.
54
+
55
+ ### 🐛 Fixes
56
+
57
+ - **Four upstream 9router v0.5.95 port batches (20+ items)**: codex CLI identity bumped to 0.159 plus a fix for accounts being logged out by auto-ping (refresh-token reuse); grok-cli bumped to 1.0.44 (upstream 426 wall); codebuddy 6004 rate-limit → precise cooldown; Claude trailing-turn retention and thinking-format adaptation plus tool-loop cache breakpoint; new Claude Sonnet 5.5 / Kiro Opus 5.5 models; official GPT-6 pricing and real context windows; same-name tool dedupe for DeepSeek; broader Gemini tool-schema cleaning; strict proxy no longer falls back to direct connections on resolution failure; Responses completion watchdog.
58
+ - **Quota fix pack**: reset dates become adaptive countdowns (day+hour / hour+minute / minute+second); the 5-hour timeline centers on now (±12h); the monthly window anchors the bottom of the card; qoder / qoder-cn Auto & Efficient tiers and display-name aliases no longer fall to default capabilities.
59
+ - **Sign-in & security**: enabling "Require login" no longer kicks you to the login page; the "Forgot your password?" entry is localized and documents the reset-password file format (any extension works — .txt, .md, …); hidden providers are excluded from usage stats.
60
+ - **Drex key link now points at the official invite registration** (Nace is invite-only).
61
+
62
+ ## v1.3.0 (2026-10-01)
63
+
64
+ ### ✨ New
65
+
66
+ - **CLI Tools "Model Combo Profiles" (Claude Card, #17)**: The Claude tool card introduces a Profiles section, enabling you to save Opus/Sonnet/Haiku mappings, API Key, and context window settings as named presets. Selecting a preset from the dropdown instantly writes to `~/.claude/settings.json` without requiring an Apply click (parity with CC-Switch). Profiles persist server-side and synchronize across NAS, Tailscale, and tunnel connections.
67
+ - **Quota Visualization Redesign: QuotaToolbar & Window Timeline**: The usage view features a responsive quota toolbar and cycle timeline (`QuotaWindowTimeline`), visualizing rolling reset countdowns across providers. Includes a non-persisted view tab toggle ("Cards" vs. "Quota windows") that always defaults to Cards on fresh page loads. Segmented pack bars align with CreditDaddy visual semantics with absolute nearest-expiry displays.
68
+ - **New Search & Fetch Providers: TinyFish & Keenable (#26)**:
69
+ - **TinyFish** (Free Tier): Full automated support for Web Search and Web Fetch with zero balance deduction;
70
+ - **Keenable** (Standard API Key): Realtime/pro search modes and high-fidelity webpage scraping with `live=true`;
71
+ - Seamlessly integrated across Media Providers and `/v1/search` / `/v1/web/fetch`.
72
+ - **ZCode Free Trial Provider (`zcode-free`)**: Route Start Plan and Trust Build credits (GLM-5.3-Flash) through CreditDaddy desktop gateway, supporting remote/LAN gateway host configuration and detailed architecture documentation.
73
+ - **Qoder Itemized Resource Packs via CreditDaddy Web Session**: Uses synced browser cookies to directly query exact per-pack remaining credits and expiration dates from the web console, avoiding heuristic approximations while validating account ownership.
74
+ - **LongCat-2.5-Preview & International Portal**: Added LongCat-2.5-Preview (1M context, multimodal image/video input, thinking mode toggle) and separate `longcat.ai` provider card.
75
+ - **Desktop In-Container Password Management (`639f77a8`)**: Automatically captures and auto-fills credentials for web apps running in desktop shell containers (WorkBuddy, CodeBuddy), securely encrypted at rest via OS-level safeStorage (DPAPI).
76
+ - **System Theme Adaptive Mode**: Login and dashboard interfaces automatically track OS day/night mode, powered by pre-paint scripts to prevent screen flashing.
77
+
78
+ ### 🐛 Fixes
79
+
80
+ - **Adaptive reset countdowns**: quota cards and pack bars no longer show a bare reset date — future resets now read as a countdown whose precision follows magnitude (day+hour / hour+minute / minute+second), with the full absolute time still on hover.
81
+ - **5-hour quota view centered on now**: the timeline axis is now the 12 hours around the current moment instead of the calendar day, so "now" always sits mid-track instead of clamped to the right edge by evening.
82
+ - **Usage Input Tokens Normalization**: Fixed an issue where prompt tokens on unfolded Claude usage shapes were overridden by cached token counts, resolving the 1:1 display skew for high-cache providers like `zcode-free`.
83
+ - **Fresh Install Static Model Exposure**: Ensures `noAuth` providers (opencode, mimo-free, zcode-free) expose models in `/v1/models` on brand-new installs with empty connection tables.
84
+ - **OpenAI Responses Content Filter Mapping**: Correctly maps Responses `incomplete_details.reason === "content_filter"` to Chat completion `finish_reason: "content_filter"` instead of `"length"`, preventing client SDKs from assuming context cutoffs.
85
+ - **Schemeless Proxy Normalization & Leak Prevention (#36)**: Accepts proxy URLs without explicit schemes (e.g. `127.0.0.1:7890`, normalized to `http://`). Keeps encrypted strings on parse failures to strictly prevent direct IP leak fallbacks.
86
+ - **Antigravity Upstream Stability**: Removed obsolete `requestType: "agent"` to eliminate spurious 429 errors; fixed empty string tool response 400s; added bidirectional long tool name mapping; reinforced tool schema sanitization with local `$ref` resolution.
87
+ - **Strict Bare Model Resolution (#34)**: Rejects unknown bare model names with a clear 400 error rather than guessing upstream providers and producing misleading 404s.
88
+ - **Remote Provider Management Authorization (#38)**: Restored permission for valid virtual dashboard keys to POST `/api/providers` and `/api/provider-nodes`.
89
+ - **MITM Security Hardening (#31)**: Passed `ROUTER_API_KEY` via stdin in sudo invocation scripts rather than leaking it through process command line arguments.
90
+
91
+ ## v1.2.1 (2026-09-26)
92
+
93
+ ### 🔒 Security
94
+
95
+ - **[Important] Locked out after turning on the log-in check (#33)**: with no password of your own, switching "Require login" on left only the hidden first-login password (on fnOS it is generated at install time into a file you never see), so every password you tried was rejected. The log-in check can no longer be turned on before you set a password, empty passwords are refused, and there is now a way back in: **"Forgot your password?"** on the login page. On fnOS, just enter a new password in **App Center → 10Router → Settings**; on any install, drop a `reset-password` file into the data folder.
96
+
97
+ ### ✨ New
98
+
99
+ - **CreditDaddy integration: read-only quota overview for external dashboards**: `GET /api/usage/quotas` returns every quota-capable connection in one call, normalized the same way as the dashboard's Provider Limits, and accepts a dashboard virtual key (`sk-…`). Results are cached for 5 minutes; a forced refresh (`?force=1`) is limited to once per connection every 30 seconds, and simultaneous requests share one upstream call. No credentials are returned — note that account emails are visible to anyone holding a virtual key.
100
+ - **Imported usage now shows an estimated cost**: rows synced in by the 10router-sync plugin or CreditDaddy used to land at $0. New imports are priced on arrival, and existing history is repaired automatically at startup (a source-computed cost is never overwritten; models without a price stay at $0).
101
+ - **The "log-in check is off" banner can be hidden**: Settings → Security gains a switch under *Require login*, shown only while the check is off. Hiding the banner takes a confirmation, and it comes back automatically once you turn log-in back on and off again.
102
+ - **Automatic update checks can be turned off** (Settings → Security): for installs pinned to a version on purpose. When off, 10Router no longer contacts the update server on its own or shows new-version notices — the dashboard, the tray balloon and the CLI launcher all go quiet. "Check now" and the tray's "Check for updates" still work.
103
+ - **Encrypted OAuth import/export on single-auth cards**: the transfer buttons now appear on OAuth-only cards as well — most importantly **MiMo Desktop**, whose signed-in session is the credential you move between machines.
104
+ - **Official Qwen pricing**: new-generation Qwen flagships were priced at the cheap wildcard rate (e.g. qwen3.8-max billed at a quarter of its real price); they now use the official per-model rates.
105
+
106
+ ### 🐛 Fixes
107
+
108
+ - **[Important] After a restart, remote access stayed down until someone opened the dashboard**: tunnel / Tailscale / MITM auto-resume and the other startup tasks only ran on the first page render — on a NAS used purely through `/v1` they could wait indefinitely. They now start with the server.
109
+ - **Qoder's queue throttle was returned as the model's reply**: a queued request (`10605`) reached the client as `[qoder error 403: …]` text and was logged as a success. It now fails over to the next account and cools the throttled one for the time Qoder asks for (about 30 seconds).
110
+ - **OAuth transfer import was blocked on passwordless dashboards** even from the machine itself; same-machine imports work again.
111
+ - **10router-sync plugin v1.5.0**: follows ZCode's new plan-channel ids (Start Plan traffic had stopped syncing since 09-18), counts mirasim cache in input so dashboards stop showing "input 638, cache 113M", and the mirasim correction script no longer adds the cache twice.
112
+
113
+ ### 🔧 Other
114
+
115
+ - **Auth header names aligned with 10Router**: `x-10r-cli-token` / `x-10r-password` replace the inherited `x-9r-*` names. The old names are still accepted, so existing CLI launchers, plugins and scripts keep working.
116
+
117
+ ## v1.2.0 (2026-09-24)
118
+
119
+ ### ✨ New
120
+
121
+ - **Xiaomi MiMo splits into three cards, each owning its own account**: cloud (`xiaomi-mimo`: browser sign-in / API key, standard billing), Desktop (`mimo-desktop`: session comes from the MiMo Desktop app signed in on this machine — no API key), and Token Plan (`tp-` subscription keys). One card used to cover two credential kinds, so weekly quota and connection tests were judged by the looser side — the cloud card advertised a desktop-only weekly quota it cannot read. Existing connections created wrong under v1.1.3 are moved back by a migration.
122
+ - **MiMo V2.6 in, V2.5 retired**: the whole V2.6 line is in, and MiMo models now declare a **real context window** (1M / 128K output; they previously fell through to guessed defaults). **V2.6 Pro UltraSpeed** joins the cloud and Token Plan cards — a custom-service model: usable straight away with a contract, an upstream error without one, and nothing you have to add by hand.
123
+ - **Full StepFun integration**: four channels — China / international × pay-as-you-go / Step Plan — with short aliases `step-cn` / `step` / `stepp-cn` / `stepp`. Step Plan channels spend subscription Credits, expose a native Anthropic API (Claude Code can connect directly), and add the plan-only `step-router-v1`. LLM / TTS / STT are isolated per menu (image generation is not exposed — the provider announced its shutdown); live balance and voucher queries included.
124
+ - **ComfyUI local image generation**: connect a local ComfyUI, checkpoints are discovered automatically, SD / SDXL / Flux text-to-image workflows are assembled and served through `/v1/images/generations`.
125
+ - **Media provider lists are now drag-sortable with connected-first ordering**, sharing one sort and persistence model with the main providers page; `/v1/models` order follows suit.
126
+ - **Combos gained an "switch on empty reply" strategy** (off by default): upstreams that express content filtering as an HTTP 200 empty stream now fall through to the next model — at most 2 by default. Replaying re-bills the full input context, so be careful with large-combination prompts.
127
+ - **Pick the model for a one-by-one connection test**: the dropdown defaults to "provider default" because some credentials only cover part of the catalogue — a Desktop session only reaches the desktop models. Qoder now verifies the chosen alias against **that account's live model list** (free), and Qoder CN no longer answers "not supported".
128
+ - **"Hide no-quota" moved to Settings → Experimental**, as the quota toolbar had run out of room.
129
+
130
+ ### 🔒 Security
131
+
132
+ - **No built-in default password.** With no password set (and no SSO) the dashboard **opens on this machine only**; remote requests are refused with a pointer to set one. `INITIAL_PASSWORD` is the only non-interactive bootstrap password. **If you used the old default to sign in from another device, set a password on the host once after upgrading.**
133
+ - **Provider credentials are encrypted at rest** (AES-256-GCM), with the key kept outside the database (`$DATA_DIR/credential-key`, or set `CREDENTIAL_SECRET`). A copied or synced database is no longer a credential dump. **Back the key file up with the database — without the key, credentials cannot be recovered.**
134
+ - **Usage logs no longer store full API keys** — a readable prefix plus a one-way digest; per-key stats keep working.
135
+ - **New Security card (Settings → Experimental)**: listener, password and log-in-check state, effective access and credential storage in one place, plus a **"dashboard: local access only"** switch that applies per request (the `/v1` gateway is unaffected). A warning banner sits on every page while no password is set or the check is off, and turning the check off now needs confirmation.
136
+ - **Sessions tightened**: 24h shortened to 2h with sliding renewal (no interruption while working), and this version adds an **absolute cap** — re-authentication after 30 days from the original sign-in, so a stolen session cannot be extended forever.
137
+ - **fnOS no longer resets the bootstrap password on upgrade.** The random password now lives in the data directory, which survives upgrades; previously every fpk upgrade replaced it and locked out anyone using the old one.
138
+ - **A backup taken with the wrong key no longer silently drops credentials**: it keeps the ciphertext and warns that the original key is needed to restore it (it used to report "downloaded" with none in it).
139
+ - **`/api/health` no longer echoes local paths** — the raw driver-load error it returned routinely contained absolute paths.
140
+ - **Key files on Windows are restricted by ACL** (encryption and session secrets, like the Root CA key already was); the MITM sudo password no longer encrypts with a fallback key hardcoded in the source.
141
+
142
+ ### 🐛 Fixes
143
+
144
+ - **[Important] Starting with the wrong key permanently destroyed stored credentials**: restoring the database onto a machine without its key and starting once erased every OAuth token and API key, beyond recovery even after the key came back. Ciphertext is now preserved and comes back with the key.
145
+ - **[Important] Some response streams were malformed**: the stop-sequence guard injected its holdover line without a separator, merging it into the terminating frame so some clients (official SDKs included) failed to parse it; Anthropic responses also lacked the event line and used a hard-coded block index. All fixed, and non-text blocks are now dropped whole after a cut (they used to remain as an argument-less tool call a client might execute).
146
+ - **[Important] A reply that only called a tool was treated as empty**: with "switch on empty reply" enabled, a model choosing to call a tool was discarded and the next model **re-billed the entire input context**. Tool calls and reasoning now count as content, and the abandoned call's usage is still recorded.
147
+ - **Claude Code's auto-mode classifier was always unavailable through the gateway (#18)**: some upstreams accept `stop` / `stop_sequences` and ignore them. The gateway now enforces the client's stop contract in the streaming relay (the sequence itself is not emitted, usage accounting is kept, a truncated `length` is rewritten to a proper stop) and maps stop parameters in both translation directions.
148
+ - **MiMo browser sign-in was completely broken over LAN / HTTP**: OAuth `state` generation relied on an API that only exists in secure contexts, so clicking "browser" from another device via `http://LAN-IP` — the normal way a NAS install is used — threw before the flow could start.
149
+ - **SiliconFlow CN's short alias was hijacked**: `sfcn` was claimed by two providers, so SiliconFlow requests went to StepFun. It is back with its owner, and a global alias-uniqueness check guards the class.
150
+ - **StepFun connection tests answered "not supported"** even for healthy keys; they now run the standard OpenAI-compatible check.
151
+ - **Token Plan browser sign-in routed to the wrong cluster**: chat / TTS / connection tests went to the pay-as-you-go host; they now follow the endpoint the platform handed back and we stored.
152
+ - **Quota page display and interaction**: under a view filter, "Showing 1-10 of 46" disagreed with the cards on screen (it now reports what is rendered); clicking several "Hidden" chips quickly dropped most of the clicks (five restored two) — all land now; and "Only with balance" is reconnected to manual hiding, so bulk-hidden rows appear in the "Hidden" list and can be brought back by name.
153
+ - **Per-key usage merged every key on a machine into one bucket** — the grouping key was a mask identical across keys on the same machine; it now groups by key digest.
154
+ - **MiMo miscellany**: an exhausted weekly quota no longer dumps the provider's raw JSON into the connection row; bare TTS model names are no longer silently rewritten; pending browser-login sessions are capped at 8, matching the desktop app.
155
+
156
+ ### 🔧 Other
157
+
158
+ - Restored 258 UI translations that had gone dead behind the brand rename (they were silently showing English).
159
+ - Expiry countdowns no longer collapse across days: 41 hours is `1d 17h`, not `1d`.
160
+ - The dashboard's Change Log now only renders released versions — you will not be told about features you do not have yet.
161
+ - Installers and docs no longer point users at an unrelated fork's package name.
162
+
163
+ ## v1.1.3 (2026-09-20)
164
+
165
+ ### ✨ New
166
+
167
+ - **Qoder CN fully restored + daily credits auto-claim**: qoder-cn OAuth device-code / PAT auth, model catalog and usage tracking are back; daily credit auto-claim (experimental toggle + per-card manual claim) with per-pack resource-package display (individual expiry dates, first-expiry-first-spend); official Qoder icons plus live Qwen price multipliers and off-peak half-price countdown.
168
+ - **Per-model context-window / max-output pins**: a tune icon on every model row (including auto-discovered ones) overrides `contextWindow` / `maxOutput`; leave blank to fall back to defaults. Applies to model listings and usage accounting alike.
169
+ - **Server-side auto-compaction for oversized contexts**: when a request is estimated past 90% of the effective window (threshold selectable 80/90/95%, on by default), older turns are summarized by the same model before dispatch — clients that don't self-compress (ZCode / OpenClaw / custom agents) no longer hit "prompt is too long", with reasoning models handled too; any failure passes the original through untouched. Master toggle lives under Experimental.
170
+ - **Drag-to-reorder provider cards** with persistence; disabled providers auto-sort to the bottom; the model API listing now follows card order.
171
+ - **OpenCode Free anti-abuse fix, enabled by default**; Antigravity image models added (gemini-3-pro-image / imagen-3.0 etc.); 10router-sync plugin v1.5.0 (ZCode plan-channel id adaptation + sync hardening).
172
+
173
+ ### 🛠️ Improvements & Fixes
174
+
175
+ - **CodeBuddy CN strict-gateway tool-schema compatibility**: tool parameter roots shaped as anyOf/oneOf/allOf, `$ref` or type arrays are now downgraded to a plain object root before forwarding, fixing whole-request `11129` rejections from clients like ZCode (#27).
176
+ - **Quota reset badge no longer disappears**: recurring windows (e.g. MiMo weekly quota) keep showing "resets in N days" even when fully drained.
177
+ - **Qoder quota parsing fix**: daily/campaign credits on free accounts no longer show 0/0.
178
+ - **CodeBuddy intl DeepSeek reasoning_effort mapping fix** (#23).
179
+ - **Stability backports**: 4xx request-level errors no longer trip healthy accounts; successful connection tests clear stale backoff locks; stalled silent streams report in-band error frames instead of looking like normal short replies.
180
+
181
+ ## v1.1.2 (2026-09-18)
182
+
183
+ ### ✨ New
184
+
185
+ - **Usage dashboard overhaul**: Lifetime stats cards, a GitHub-style activity heatmap (day/week views with hover details), and a node health score table (success rate / latency / speed weighted, expandable per-model rows) on the Usage Details page. The unit-abbreviation toggle now applies globally — overview cards follow the same switch.
186
+ - **Xiaomi Token Plan egress-region matching**: Adding or editing a connection auto-selects the cn / sgp / ams cluster based on your network egress (multi-source probing, fail-open), and the connection test button now routes to the selected cluster. MiMo 429 responses carry friendly guidance, and cooldowns honor the upstream "retry after N seconds" hint.
187
+ - **10router-sync plugin v1.4.0**: New `/10router-sync:status` command — instance status and today's usage without opening the dashboard.
188
+
189
+ ### 🛠️ Improvements & Fixes
190
+
191
+ - **CodeBuddy 11128 channel-level circuit breaker**: Channel-wide risk-control hits now trip a provider-level cooldown (no more per-account retry bursts amplifying risk), with bilingual guidance in the error response; extreme request sizes are backstopped locally.
192
+ - **Credential auto-refresh fixed (Cline / ClinePass)**: Background refresh no longer fails with 400 — credentials renew automatically before expiry; dead credentials are explicitly flagged as needing re-authorization.
193
+ - **Provider & chart cleanup**: Retired public endpoints removed; OpenCode Free / MiMo Code Free moved to a hidden-by-default "Trial" category; model family aggregation fixed (gpt-6, hy4, qwen3.8 etc. are no longer split); Model Type chart legend moved to the top-right with mobile responsiveness.
194
+ - **Security**: The single-connection API no longer echoes the Xiaomi desktop session credential in plaintext.
195
+
196
+ ## v1.1.1 (2026-09-14)
197
+
198
+ ### ✨ New
199
+
200
+ - **Earliest Expiry First multi-account routing strategy**: Solves the pain point of repeatedly exhausting a primary account while short-term promotional packages on other accounts expire unused. A dedicated toggle on the provider details page automatically prioritizes valid packages closest to expiration, with zero blocking and zero request latency.
201
+ - **Command Code usage tracking & quota dashboard (#16)**: Full support for 5-hour session rolling windows, 7-day weekly limits, and monthly plan credit allowances/spend. Dynamically detects Go / GOAT / Pro subscription tiers, with countdown timers and balance countdowns.
202
+ - **Bulk enable/disable for custom & passthrough models**: One-click bulk enable or disable for custom model catalogs on both OpenAI-compatible endpoints and built-in providers, plus a fix preventing single model updates from overwriting capability attributes.
203
+ - **Universal OAuth credential transfer with AES-256-GCM encryption**: Export credentials across all OAuth providers into secure password-protected backups (`10router-oauth-secure-v1`), with smart multi-tier deduplication during import.
204
+ - **Official brand SVG icons**: Integrated `@lobehub/icons` with official vector brand icons for 58 providers, supporting automatic light/dark theme adaptation.
205
+ - **CodeBuddy check-in & international daily active session**: Check-in upgraded to continuous background scheduling with persistent daily memo deduplication; added daily active session toggle for CodeBuddy International.
206
+ - **Desktop client improvements**: Full tri-lingual localization for menu bars, new "Go" navigation menu (open URL / return to 10Router / recent URLs manager), and long-term server log archiving by date.
207
+
208
+ ### 🐛 Fixed
209
+
210
+ - **Quota panel 0 total & sentinel countdown bug**: Fixed logic where zero-credit accounts were rendered as infinite quota `0 / ∞`, and filtered out far-future sentinel timestamps (such as year 9999) that produced 2.9-million-day countdowns.
211
+ - **Quota percentage calculation**: Fixed balance-denominated quotas (e.g. Command Code $9.98) being misread as raw percentages displaying `10% 🔴`.
212
+ - **CodeBuddy quota display direction**: Inverted credit pack displays to "Remaining / Total" countdown, aligning numbers with progress bars.
213
+ - **CodeBuddy International connection testing**: Added missing IDE transport headers and auth verification handling, resolving "Provider test not supported".
214
+ - **Xiaomi MiMo Desktop Preview model errors**: Clarified errors when calling preview models without desktop login, eliminating misleading rate-limit cooldowns.
215
+ - **Instant refresh for model disabled states**: Synchronized model availability state immediately upon connection changes, allowing disabled models to be tested directly.
216
+ - **Extensive i18n cleanup**: Full English and Traditional Chinese localization across the Endpoint page, provider notices, and API key buttons.
217
+
218
+ ## v1.1.0 (2026-09-11)
219
+
220
+ > **Version note**: v1.0.9 was skipped and never released — its planned content (Xiaomi MiMo desktop support, etc.) was folded into this release, which grew to minor-level scope; the version number moved straight to v1.1.0. No v1.0.9 tag or artifacts exist.
221
+
222
+ ### ✨ New
223
+
224
+ - **Xiaomi MiMo Desktop support (one provider, two ways to sign in)**: `xiaomi-mimo` now accepts both an sk- API key (cloud API) and a Xiaomi MiMo desktop-app account — the desktop-exclusive `mimo-x-pro-preview` / `mimo-x-flash-preview` only accept the account cookie, so an API key alone cannot reach them. Both credentials share one provider card; enable whichever you need.
225
+ - **Xiaomi MiMo authorization-code sign-in**: after the official authorize page opens in your browser, you can **paste the code shown on that page** straight into the dialog to finish signing in — even if the local callback never connected, or already timed out. The credential is decrypted server-side only and never passes through the browser.
226
+ - **CodeBuddy international catalog completed**: every entry was re-checked against the live gateway with real requests, adding five models that were served but missing (GLM-5.1 / GLM-5v-Turbo / MiniMax-M3 / Kimi-K2.7 / DeepSeek-V4.1-Flash) plus `GPT 6.0 Astra`.
227
+ - **opencode-go catalog aligned with the official public list (18 models), with a declared endpoint per model**: some models used to fail outright because a missing endpoint declaration sent them down the wrong path; each one now declares its endpoint from the official table.
228
+ - **New `gpt-image-2.5` image-model family for Codex / OpenAI**: `gpt-image-2.5` (incl. `-flare` / `-sunburst`), `gpt-image-2`, `gpt-image-1.5` — text-to-image, editing, and multi-image references.
229
+ - **Credit-multiplier badge supports limited-time free promos**: the badge shows green `free` during the promo and **automatically** returns to the real multiplier when it ends — no one has to remember to change it back.
230
+
231
+ ### 🐛 Fixed
232
+
233
+ - **Windows desktop upgrades no longer silently discard old data**: the desktop data directory is also Electron's own config directory, so Chromium fills it with files first and makes it look "non-empty", permanently skipping the old-data migration. The check is now "does the directory already contain our own database".
234
+ - **Several real Xiaomi MiMo authorization-code bugs**: the decrypted payload layout was reversed (the actual cause of `decrypt_failed`), the platform requires `app=MiMo`, the callback path is now a random string, and the result is handed back with a 302; pasting a code also keeps working after the callback listener times out.
235
+ - **Kiro requests no longer carry a top-level `systemPrompt`** (kiro.dev answers it with an immediate 400 and no retry); endpoint order now prefers the Amazon surface.
236
+ - **Claude tool `type` is now decided per provider**: this fixes MiniMax's Claude endpoint (rejected tools without `type`) without breaking DeepSeek's Claude endpoint (which only accepts its own `type` values).
237
+ - **Codex strips `\p{...}` regexes it cannot parse from tool schemas**: previously a single property escape in a tool parameter `pattern` failed the whole request with a 400, identically for every account.
238
+ - **`better-sqlite3` is skipped on Node 24**: its native addon crashes the process on load there, which used to take the whole server down.
239
+ - **AMD Token Factory catalog and capabilities rebuilt from live measurements**: missing chat models were added and a "text-only" misclassification was fixed (images were being silently dropped).
240
+ - **CodeBuddy CN's DeepSeek-V4.1-Flash output ceiling lowered to the server-published 128K**: asking for more never errors, it just makes over-limit requests more likely to hit a 400.
241
+ - **One provider no longer stores two contradictory disabled-model records**: this fixes models that appeared not to be disabled.
242
+
243
+ ## v1.0.8 (2026-09-09)
244
+
245
+ ### ✨ New
246
+ - **AMD Token Factory provider**: free shared OpenAI-compatible endpoints from AMD Radeon Cloud (`DeepSeek-V4-Flash` 1M context + `Qwen3.8-Flash-Next` 262K context); thinking via reasoning_effort with per-model level pickers; same shape as NVIDIA NIM
247
+ - **Antigravity quota host fix**: quota summary now queries the correct daily host (matching the native IDE), fixing systematically stale numbers; percentage reads from the backend value instead of re-deriving in the frontend
248
+ - **CodeBuddy catalogs aligned to the server (CN + intl)**: the international catalog is re-aligned (adds the Hy4-Preview / Hy3 free tier, GPT-5.6 Sol/Terra/Luna, GLM-5.3, Kimi-K3; drops retired models); the CN catalog now matches too — `DeepSeek-V4.1-Flash` supersedes `DeepSeek-V4-Flash` and the duplicate `Kimi-K3 (1)` slot is gone; every model on both gateways now carries the published credit multiplier
249
+ - **Credit-multiplier badges on the model list**: free-quota models show a green `free` chip, the rest show their modifier as `0.79x` (hover for an explanation); providers with no credit system show nothing
250
+
251
+ ### 🔒 Security
252
+ - **API key HMAC secret hardening**: built-in fallback secret now triggers a production startup warning; experimental **Key secret rotation** (off by default) auto-generates a per-install secret; `generateKeyId` switched from `Math.random` to `crypto.randomBytes`
253
+ - **Dangerous-action confirm dialogs**: "Require API key" off, key-rotation enable/disable, and "Rotate all" now require explicit confirmation; rotation is double-submit protected (server 409 + client guard)
254
+
255
+ ### 🐛 Fixed
256
+ - **Non-streaming requests defaulted to SSE (issue #4)**: omitting `stream` now correctly defaults to JSON (OpenAI/Anthropic spec); previously returned `text/event-stream` with trailing `data: [DONE]` that broke strict JSON clients (OpenAI SDK, WorkBuddy, curl)
257
+ - **Key rotation confirm dialog stuck open / repeated rotation**: confirm modal now auto-closes before executing; repeated rotations no longer stack "(rotated)" suffixes
258
+ - **MCP SSE idle disconnect**: long-lived MCP SSE connections now send a 25s comment heartbeat, preventing NAT/firewall silent drops
259
+ - **CodeBuddy CN whitelist false-positive (PR #5)**: Claude Code's own system prompt no longer matches the agent-identity whitelist (was triggering 11128)
260
+ - **GLM-4.6V-Flash missing vision (PR #5)**: free vision model now registered with correct capabilities
261
+ - **DeepSeek effort "max" rejected by SenseNova (PR #5)**: clamped to "xhigh" for cross-provider compatibility
262
+ - **Fetched/imported models now default to disabled (enable on demand)**: bulk imports via "Import from /models" and "Fetch Qoder Models" no longer switch everything on at once — they land in the "Disabled models" area for you to enable as needed, and `/v1/models` now only serves enabled models (a disabled model was previously still listed). Single manual adds stay enabled
263
+ - **CodeBuddy CN listing intl-only models (fixed)**: the CN catalog had picked up the GPT/Gemini family that only the international gateway serves, which failed with "model service info not found" when selected; removed from CN (kept in intl) with a test guard
264
+ - **DeepSeek-V4.1-Flash output ceiling under-reported (fixed)**: its capabilities capped output at 50K (a leftover from the pre-rename id), which truncated client requests; corrected to the model card's 1M context / 384K output / image input / switchable thinking, and the model's two alias ids now carry the same caps
265
+
266
+ ## v1.0.7 (2026-09-07)
267
+
268
+ ### ✨ New
269
+ - **CodeBuddy CN built-in "Total Points" quota row**: the CodeBuddy CN card now leads with a Total Points row summing the live balance of every pack (monthly refills + bonus packs) — no more adding them up yourself; it auto-hides under the "Only with balance" filter once drained; "Bonus Pack" row names are now localized
270
+ - **ZCode usage sync plugin (10router-sync)**: import ZCode's local model-usage ledger into 10Router in one step — providers pointed at 10Router are auto-excluded to prevent double counting; re-runs are idempotent via dedup; imported usage shows up in the usage page and the details tab
271
+ - **Upstream v0.5.69 selective port**: ① Google-family multi-account background refresh → serial + tiered jitter to dodge anti-abuse risk control; ② Anthropic-compatible nodes on real Claude auto-add context-management beta headers (no more silent model-swap); ③ opencode-go stable sessions (free pool no longer trips risk control); ④ Responses parallel tool-call fix (no longer merges N calls into one); ⑤ Claude Fable weekly-quota tracking; ⑥ codex adds gpt-6-astra etc.; ⑦ codebuddy-cn model catalog aligned to server contract
272
+ - **qoder catalog refresh + image passthrough**: model list aligned to server, base64 image direct send; dashboard Antigravity quota grouped by family (per-connection isolation, better than upstream)
273
+ - **Desktop tray update path + leaner menu**: desktop update banner now points to GitHub Releases; tray menu merges check-update / about / start-stop into one compact flow
274
+ - **copilot switched to VS Code extension guide**: no more MITM intercept — three-step extension config (engine layer retained, manually revertible)
275
+ - **Tray icon monochrome**: macOS template icon + Windows dark/light theme black-white adaptive
276
+
277
+ ### 🐛 Fixed
278
+ - **`/responses` root-path auth gap (security)**: prefix added, path now enforces API-key check
279
+ - **Foreign `server_tool_use` poisoning history after Claude combo fallback (400)**: validate `srvtoolu_` prefix and drop foreign tool blocks
280
+ - **MCP deferred tool breaking cache anchors (400)**: anchor now pinned to the last cacheable tool
281
+ - **gemini schema tuple validation 400**: `prefixItems` conversion + array missing `items` placeholder
282
+ - **antigravity system-prompt competitor brand-clean generalization**: OpenCode naming no longer triggers 429
283
+ - **Free-model background-refresh noise + connection-test hang**: de-noised + 15s timeout
284
+
285
+ ## v1.0.6 (2026-09-05)
286
+
287
+ ### ✨ New
288
+
289
+ - **CodeBuddy CN auto daily check-in** (experimental, off by default): with "CodeBuddy CN auto daily check-in" enabled under Settings → Experimental, the Import / Export buttons on the CodeBuddy CN page are replaced by an automatic daily check-in (each account checks in at a random 00:00–06:00 local time to renew free quota; failures never interrupt the service and a 401 triggers one token refresh + retry) plus a manual "Check in now" button
290
+ - **Antigravity quota aligned with the official site (5h + weekly dual window)**: Antigravity quotas on the usage page now use the official retrieveUserQuotaSummary RPC as the primary source, showing exactly **4 cards** per account (Gemini Models / Claude and GPT models × {5-hour, weekly}), normalized to a 0–100 scale; falls back to the old per-model parse when the RPC is unavailable
291
+ - **OpenCode Free catalog aligned with the official free list**: adds Big Pickle / MiMo-V2.5 / Ling 3.0 Flash Fin / Nemotron 3 Ultra / Nemotron 3.5 Lightning; deliberately excludes the DeepSeek / Laguna free tiers the official docs have dropped (avoids accidental paid calls)
292
+
293
+ ### 🐛 Fixes
294
+ - **Antigravity `ag/gemini-3.8-flash-*` 404**: model addressing now uses per-tier tiered entities and the IDE fingerprint is bumped to 2.11.0 (bare ids 404 with "Requested entity was not found"); adds the un-tiered `ag/gemini-3.8-flash` (routed to the medium tier)
295
+ - **"Only with balance" misses newly-checked-in quota packs**: fixed a case where CodeBuddy CN's daily full packs were hidden after older packs were renumbered and the persistent hide never cleared — the hidden set is now recomputed live so any pack with remaining balance (including fresh full packs) always shows
296
+ - **Friendly message for free-model 429 rate limits**: when a free-tier model (`oc/*-free`, `contributor-free`, APInex `free/`-prefixed, etc.) hits an upstream rate limit and returns 429, the raw English `rate_limit_exceeded` is no longer passed through — instead a friendly Chinese message is returned showing an estimated wait ("try again in ~N sec/min/hr") when the upstream supplied a reset time, otherwise advising to retry later or switch to a paid tier. Paid models and multi-account fallback are untouched
297
+
298
+ ## v1.0.5 (2026-09-03)
299
+
300
+ ### ✨ New
301
+
302
+ - **Desktop tray app (Windows / macOS)**: an install-and-go desktop app — system tray menu (open console / start / restart / stop / launch at login) plus an embedded window; closing the window minimizes to the tray. Shares data, keys and port with the npm CLI (the two forms run exclusively). Windows ships an NSIS installer (silent `/S` supported) and a portable exe; macOS ships separate Intel + Apple Silicon dmgs
303
+ - **CLI / desktop UI localization**: the npm CLI and the desktop tray now follow the system language (Simplified Chinese / Traditional Chinese / English); override with the `TENROUTER_LANG` env var (`zh-CN` / `zh-TW` / `en`)
304
+ - **Self-serve custom providers + new Skills-page skill**: register a custom OpenAI/Anthropic-compatible endpoint (baseUrl + upstream key + models) at runtime with a dashboard LLM key — no source change, no repackage. The Dashboard **Skills** page gains a **10router-add-provider** card and now links to the `main` branch (previously `master`, which 404'd)
305
+ - **CodeBuddy CN account JSON bulk import / export** (experimental, off by default): after enabling "CodeBuddy CN OAuth import / export" under Settings → Providers, the CodeBuddy CN detail page shows Import / Export buttons to bulk-import or export account credentials in the third-party (wb) JSON format (import dedupes by identity and skips non-CodeBuddy issuers). Import / export now require a dashboard-password confirmation (prevents anonymous token export in no-login mode)
306
+ - **Community welfare providers show by default**: GoRouter / TaBiAI now appear by default (no need to toggle them on), consistent across the provider list / Profile toggle / usage topology
307
+ - **Community welfare providers sort into one group**: in the Free Tier list, community providers (GoRouter / TaBiAI) now cluster into one adjacent block per rank group instead of interleaving with regular freeTier providers by priority/name
308
+ - **New Agnes AI dual-site providers**: international **Agnes AI** (com) + **Agnes AI (CN)** — each with Agnes 2.5 Flash / 2.5 Pro text models (512K / 1M context, vision + reasoning), plus Agnes Image 2.x Flash image models (standard images/generations endpoint; image-to-image / editing)
309
+ - **New "Experimental" settings group**: Profile gains a dedicated Experimental card gathering the developer-oriented default-off toggles (Fetch models from GitHub JSON + CodeBuddy CN import/export) for easy future expansion
310
+ - **New provider APInex (apinex.bond)**: prepaid USD-credit third-party gateway (OpenAI-compatible) with 18 models (13 paid + 5 `free/`-prefixed free models); provider pages show a copyable invite-code chip (APInex: `SLEWP68C`)
311
+ - **Upstream v0.5.65 catalog sync + new search providers**: adds GLM-5.3-Flash(Vision), GLM-4.6V, DeepSeek-V4-Flash-Vision-Exp, Grok-4.6, Claude-Fable-5.1 and more; new search providers Ollama-Search (reuses your local Ollama key) and Xquik (X/Twitter search)
312
+
313
+ ### 🐛 Fixes
314
+ - **Usage table corruption after Cost/Token switch**: toggling the display mode and sorting no longer reverts some rows to currency values; Traditional Chinese usage-table headers are now fully translated
315
+ - **Usage table sorting semantics**: token / cost columns now sort model groups by their totals, matching the header arrow direction
316
+
317
+ ## v1.0.4 (2026-09-01)
318
+
319
+ ### ✨ New
320
+ - **3 new providers**: **TokenBom** (decentralized token marketplace — idle API keys earn credits, credits call many models; 79-model online catalog), **GoRouter** (free gateway, no recharge entry), **TaBiAI** (free gateway, no recharge entry)
321
+ - **Usage history import**: import usage data from 9Router backups (SQLite files) — merged into stats without touching config
322
+ - **Notification overhaul**: global toasts moved to top-center; browser-native alert() dialogs replaced with friendly notifications
323
+ - **Community welfare providers**: GoRouter / TaBiAI are hidden by default with a "community" badge; toggle them on in **Settings → Providers → Show community welfare providers**
324
+
325
+ ### 🐛 Fixes
326
+ - **Provider ordering fixed**: connected providers first, disabled sink to bottom — no longer scrambled by priority
327
+ - **JSON catalog models invisible after enabling**: stale disable records are now cleared ("enabled but not listed" resolved)
328
+ - **B.AI / CodeBuddy CN model catalogs completed**: missing models that caused "not found" when switching are added
329
+ - **Friendly maintenance hints on connection tests**: endpoint down / Cloudflare-blocked shows a maintenance note instead of a misleading "Invalid API key"
330
+ - **Account filter reminder**: quota-pack account filter persists; an amber reminder bar shows when a non-default filter is active
331
+ - **CodeBuddy CN DeepSeek 11150**: DeepSeek-series calls no longer fail with 400 on the reasoning-effort param (auto/off); coding agents (dsh, etc.) work normally
332
+ - **CodeBuddy empty tool name (11133 / unknown tool)**: empty `function.name` in streaming tool calls is normalized, so standard clients no longer mis-detect the tool name
333
+ - **Topology still shows hidden community providers**: the usage topology now honors the "Show community providers" toggle — community welfare sites (GoRouter/TaBiAI) are hidden when it's off
334
+ - **Skills page i18n + Chinese links**: Skills page text is now localized; in Chinese (zh-CN) the links point to the Chinese skill files
335
+
336
+ ## v1.0.3 (2026-08-30)
337
+
338
+ ### ✨ New
339
+ - **4 new providers**: **LongCat** (Meituan), **SenseNova** (SenseTime, free beta), **Dots** (Xiaohongshu Dots Studio, free beta), **B.AI** (aggregator — one key for GPT / Claude / Gemini / DeepSeek / GLM / Kimi / Qwen and more)
340
+ - **Model JSON catalogs for custom providers**: custom nodes can pull an online model list, toggle models on/off individually, and manage them in bulk
341
+ - **fpk update check goes straight to Releases**: fnOS installs jump directly to the matching release download
342
+
343
+ ### 🔒 Security
344
+ - **Progressive login rate-limit**: 5 failed password attempts → 30s / 2m / 10m / 30m lockout
345
+ - **Reject placeholder JWT keys**: copying the public `.env.example` key is ignored; a random key is generated instead
346
+ - **Fix npm package leaking build-machine secrets**: no more keys / machine IDs / data snapshots in the build artifact
347
+
348
+ ### ⚠️ Notes
349
+ - npm package renamed to **`@techysy/10router`** (the old `10router` is an unrelated fork). If you installed `10router-cli`, switch to the new package; data directory unchanged.
350
+
351
+ ## v1.0.2 (2026-08-29)
352
+
353
+ ### 🐛 Fixes
354
+ - **Update check no longer points at a third-party package** (affected 1.0.1): version check, update command, and sidebar install command all target the correct package
355
+ - **postinstall no longer aborts install**: npm install no longer fails from the warm-up script on WSL paths
356
+
357
+ ### ⚙️ Engineering
358
+ - **Test CI added**: tests + regression gate run automatically on push / PR
359
+
360
+ > ⚠️ **1.0.1 users should upgrade**: its built-in "check for updates" points to an unrelated third-party package.
361
+
362
+ ## v1.0.1 (unreleased; delivered with v1.0.2)
363
+
364
+ > 1.0.1 was never published as a release (only the npm `10router-cli@1.0.1` briefly existed). The following reached Docker / fpk / standalone users with **v1.0.2**.
365
+
366
+ ### 🔒 Security
367
+ - **4 MITM security fixes**: upstream TLS cert validation restored, root CA private key locked to 0600, no longer blindly killing the process on port 443, auto-cleanup of leftover hosts entries (MITM is off by default)
368
+
369
+ ### ✨ New
370
+ - **Disabled providers sink to the bottom** via a settings toggle
371
+ - **Collapsible desktop sidebar**
372
+ - **OpenCode Go quota usage**
373
+ - **Gitee mirror fallback for model catalogs** (faster in CN)
374
+
375
+ ### 🐛 Fixes
376
+ - **/v1/models no longer returns orphan custom models**
377
+ - **Custom node prefix uniqueness check**
378
+ - **Fix CodeBuddy executor dropping the Agent system prompt**
379
+
380
+ ### ⚙️ Engineering
381
+ - **New npm distribution channel**: `npm i -g 10router-cli`
382
+ - **Generic "fetch models from GitHub JSON" capability** (Fetch Models)
383
+
384
+ ## v1.0.0 (2026-08-26)
385
+
386
+ ### ⚠️ Notes
387
+ 1. **Data directory renamed**: `~/.9router/` → `~/.10router/` (Windows: `%APPDATA%\10router`), auto-migrated on first start
388
+ 2. **SAML entityID changed**: default issuer is now `urn:10router:sp`; re-register in your IdP
389
+ 3. **MITM CA renamed**: re-trust the new CA
390
+
391
+ ### ✨ New
392
+ - **Rebrand**: 9Router → 10Router
393
+ - **i18n multi-region currency**: en / pt-BR / pt-PT / es / de
394
+ - **Multi-platform distribution**: Docker (amd64 / arm64), fnOS fpk (x86 / arm × url / iframe), Standalone