Commit graph

44 commits

Author SHA1 Message Date
musistudio
240cd73c1c Merge branch 'dev/3.1' into dev/docs
# Conflicts:
#	docs/src/content/docs/en/configuration/profiles.md
#	docs/src/content/docs/zh/configuration/profiles.md
2026-08-06 14:16:12 +08:00
musistudio
b4e6185172 Separate enhanced route from profile routing settings 2026-08-05 20:23:08 +08:00
musi
bc8a8e6205
Merge pull request #1618 from NDViet/main
fix(ui): repair provider setup flow in Get Started onboarding
2026-08-03 13:20:37 +08:00
musi
454daec31c Improve documentation navigation and extension guidance 2026-08-03 08:40:36 +08:00
jesieleo
440241faa0 fix(ui): prevent responsive panels from clipping content 2026-08-02 12:46:10 +08:00
Viet Nguyen Duc
ba80cc81eb
fix(ui): repair provider setup flow in Get Started onboarding
The onboarding wizard and the Add/Edit Provider dialog render the same
AddProviderForm, but the wizard is wired up differently, and several
defects lived in those differences.

Model probe never fired during onboarding. The model-probe useEffect in
App.tsx guarded on `providerAddOpen` only, which is set true solely when
opening the manual Add/Edit Provider dialog. It is never set during the
onboarding wizard, so after entering an endpoint + API key on the Get
Started flow and reaching the "Pick models" step,
probeProviderCandidates() never fired and the model list stayed empty
with no loading state. Regressed in 9f704fc ("Guide onboarding through
granular provider setup steps"), which narrowed the guard from
`providerAddOpen || (activeView === "onboarding" && onboardingStep === "provider")`
down to `providerAddOpen`. Restore the broader guard so the probe runs
both when the dialog is open and when onboarding is on the provider step.

A rejected API key produced an empty model list with no feedback. Typing
an API key switches the probe from mode "protocols" to mode "models",
but the error-reporting branch was guarded on `probeMode !== "models"`,
so it never ran in exactly that mode. The backend still runs full
protocol probing in models mode, so a 401 came back as `supported: false`
with a real message that was then discarded. Report the failure, while
staying quiet when models were discovered, since a provider can expose a
working catalog while a protocol probe endpoint 404s.

"Added models" faked a loading state for data it already had. The panel
renders local draft state, yet showed a skeleton and hid its whole
toolbar whenever the catalog probe re-ran, leaving the header badge
reading a real count above shimmer rows and removing the "Custom model"
button, the only way to add models on a provider with no catalog. Keep
both panels' controls mounted, disabling the catalog search while
loading, which also removes a layout shift and mid-typing focus loss.

An empty catalog gave no way forward, so point at "Custom model" (en+zh).

Onboarding's "Check Connection" spent real credits with no confirmation.
The dialog wraps onCheck in a confirm step that warns about account
balance, lets the user pick models, and shows per-model results;
onboarding passed onCheckProvider straight through, so one click fired a
billable request against every configured model and discarded the
report. Extract that step as ProviderConnectivityCheckDialog and use it
from both surfaces.

ProviderConnectionStatusRow hardcoded bg-emerald-50 / border-emerald-200
/ bg-amber-50 with no dark variant, so the "Verify connection" status
chips rendered as bright light blobs on the dark card. Use alpha fills,
matching the pattern used elsewhere in the file.

The provider error banner was not announced; add role="alert".

Signed-off-by: Viet Nguyen Duc <nguyenducviet4496@gmail.com>
2026-08-01 06:47:14 +07:00
musistudio
43f99b2de8 Use Token consistently in Chinese UI labels 2026-07-30 18:44:03 +08:00
musistudio
571aa63602 Show request and trace costs in agent observability 2026-07-30 17:32:34 +08:00
musistudio
e778687774 Show partial agent session failures in observability UI 2026-07-30 15:25:50 +08:00
musi
8f0b2d91e5 Refactor routing architecture and update project structure 2026-07-29 09:30:04 +08:00
musistudio
6cfd3f226f Expand core functionality and update related components 2026-07-28 17:44:49 +08:00
musistudio
2c89b212ef Merge branch 'main' into dev/3.1
# Conflicts:
#	packages/core/test/unit/gateway/upstream-header-sanitizer.test.mjs
2026-07-28 09:54:13 +08:00
jesieleo
8ea1cd6e19 fix(electron): 避免运行状态轮询阻塞界面 2026-07-27 14:09:02 +08:00
musi
7c4a877c99 feat: support Kilo Code profiles 2026-07-26 22:09:24 +08:00
musistudio
fa5559435f Merge remote-tracking branch 'origin/dev/3.1' into codex/claude-design-profile
# Conflicts:
#	.test-dist/core/runtime/request-log-worker.js
#	.test-dist/core/test/integration/gateway/gateway-client-disconnect.test.js
#	.test-dist/core/test/integration/gateway/gateway-virtual-models.test.js
#	.test-dist/core/test/integration/mcp/grok-media-service.test.js
#	.test-dist/core/test/integration/mcp/local-ai-gateway-media-live.test.js
#	.test-dist/core/test/integration/observability/request-log-pricing-transaction.test.js
#	.test-dist/core/test/integration/observability/request-log-runtime.test.js
#	.test-dist/core/test/integration/observability/request-log-store.test.js
#	.test-dist/core/test/integration/plugins/plugin-service.test.js
#	.test-dist/core/test/integration/profiles/profile-service.test.js
#	.test-dist/core/test/integration/usage/usage-store.test.js
#	.test-dist/core/test/unit/agents/bot-gateway-env.test.js
#	.test-dist/core/test/unit/agents/claude-app-gateway-models.test.js
#	.test-dist/core/test/unit/agents/claude-app-launch.test.js
#	.test-dist/core/test/unit/agents/claude-environment.test.js
#	.test-dist/core/test/unit/agents/codex-app-model-catalog.test.js
#	.test-dist/core/test/unit/agents/codex-media-preview-bridge.test.js
#	.test-dist/core/test/unit/agents/codex-model-catalog.test.js
#	.test-dist/core/test/unit/agents/local-agent-provider-codex.test.js
#	.test-dist/core/test/unit/agents/local-agent-provider-grok.test.js
#	.test-dist/core/test/unit/agents/local-agent-provider-kimi.test.js
#	.test-dist/core/test/unit/agents/opencode-profile-config.test.js
#	.test-dist/core/test/unit/agents/provider-model-metadata.test.js
#	.test-dist/core/test/unit/config/config-env-interpolation.test.js
#	.test-dist/core/test/unit/config/theme-preference.test.js
#	.test-dist/core/test/unit/gateway/codex-patch-bridge.test.js
#	.test-dist/core/test/unit/gateway/gateway-billing-sync.test.js
#	.test-dist/core/test/unit/gateway/gateway-claude-code-oauth.test.js
#	.test-dist/core/test/unit/gateway/gateway-media-config.test.js
#	.test-dist/core/test/unit/gateway/gateway-runtime-change.test.js
#	.test-dist/core/test/unit/gateway/gateway-status.test.js
#	.test-dist/core/test/unit/gateway/router-builtins.test.js
#	.test-dist/core/test/unit/gateway/routing-architecture.test.js
#	.test-dist/core/test/unit/mcp/toolhub-browser-automation-config.test.js
#	.test-dist/core/test/unit/models/pricing-service.test.js
#	.test-dist/core/test/unit/observability/raw-trace-sync.test.js
#	.test-dist/core/test/unit/profiles/ccr-cli-runtime.test.js
#	.test-dist/core/test/unit/profiles/profile-app-process-detection.test.js
#	.test-dist/core/test/unit/profiles/profile-launch-core.test.js
#	.test-dist/core/test/unit/profiles/windows-ccr-launcher.test.js
#	.test-dist/core/test/unit/providers/credential-pool.test.js
#	.test-dist/core/test/unit/providers/provider-account-service.test.js
#	.test-dist/core/test/unit/providers/provider-model-catalog.test.js
#	.test-dist/core/test/unit/providers/provider-preset-utils.test.js
#	.test-dist/core/test/unit/providers/provider-probe.test.js
#	.test-dist/core/test/unit/proxy/proxy-upstream.test.js
#	.test-dist/core/test/unit/routing/route-script-runtime.test.js
#	.test-dist/core/test/unit/web/web-management-server.test.js
#	.test-dist/ui/test/component/components.test.js
#	.test-dist/ui/test/component/layout.test.js
#	.test-dist/ui/test/component/overview-components.test.js
#	.test-dist/ui/test/component/profiles.test.js
#	.test-dist/ui/test/component/tray-components.test.js
#	.test-dist/ui/test/integration/providers.test.js
#	.test-dist/ui/test/unit/mcp-server-config.test.js
#	.test-dist/ui/test/unit/model-selector-format.test.js
#	.test-dist/ui/test/unit/routing.test.js
#	.test-dist/ui/test/unit/usage-activity.test.js
#	.test-dist/ui/test/unit/usage-format.test.js
#	.test-dist/ui/test/unit/virtual-models.test.js
#	README.md
#	README_zh.md
2026-07-26 18:17:48 +08:00
musistudio
3d576d2730 Update project implementation 2026-07-25 22:40:01 +08:00
musi
01488216fe Merge remote-tracking branch 'origin/dev/3.1' into dev/3.1 2026-07-25 20:01:11 +08:00
musi
a0d793680b Update project implementation and configuration 2026-07-25 20:00:57 +08:00
musistudio
28a613c26a Merge branch 'dev/extensions' into codex/claude-design-profile 2026-07-24 23:19:13 +08:00
musistudio
9f704fc911 Guide onboarding through granular provider setup steps 2026-07-24 23:02:28 +08:00
musistudio
084b660cd4 Document Pi agent profile support 2026-07-24 17:38:39 +08:00
musistudio
7867065099 Support Claude Code model aliases in profiles 2026-07-24 16:38:24 +08:00
musistudio
834da64a33 Optimize provider plugin defaults and profile summaries 2026-07-24 16:01:11 +08:00
musistudio
4b0868f8a7 Improve responsive profile card grid layout 2026-07-24 15:51:17 +08:00
musi
943661b4c0 Refactor application implementation 2026-07-24 12:44:12 +08:00
musi
80c7d1f31c feat(ui): improve logs observability UX 2026-07-23 23:46:29 +08:00
musi
b19b32d5cd feat(ui): improve agent profile setup flow 2026-07-23 23:17:14 +08:00
musi
018db8f566 chore: checkpoint local changes 2026-07-23 23:06:32 +08:00
musi
c856b36d50 Merge branch 'main' into dev/extensions 2026-07-21 21:36:17 +08:00
musistudio
e11bb8bb40 Merge branch 'main' into dev/3.1 2026-07-21 20:11:38 +08:00
musistudio
5dbaafa752 Add manual protocol detection mode for providers 2026-07-21 19:32:24 +08:00
musi
aecb74405c fix: update Codex catalog and plugin settings handling 2026-07-21 15:43:51 +08:00
musi
062158a00a Merge remote-tracking branch 'origin/main' into dev/extensions
# Conflicts:
#	packages/cli/src/cli.ts
#	packages/core/src/agents/codex/model-catalog.ts
#	packages/core/src/config/config.ts
#	packages/core/test/unit/agents/agent-console-launcher.test.mjs
#	packages/core/test/unit/agents/plugin-permissions.test.mjs
#	packages/core/test/unit/agents/plugin-stop-reason.test.mjs
#	packages/core/test/unit/agents/socket-compat.test.mjs
#	packages/electron/src/main/ipc.ts
#	packages/ui/test/component/extensions.test.ts
#	tests/main/codex-model-catalog.test.mjs
2026-07-21 12:43:12 +08:00
camjac251
97d37fad04
fix(ui): preserve local usage bucket dates
Daily usage buckets represent local calendar dates, but standard date parsing
interprets their ISO-like form as UTC and shifts them in non-UTC time zones.
Parse date-only buckets directly in local time so heatmap totals stay on the
reported day.
2026-07-20 14:37:19 -04:00
musi
88c07b605a Merge branch 'main' into dev/3.1
# Conflicts:
#	package-lock.json
#	package.json
#	packages/cli/package.json
#	packages/core/package.json
#	packages/core/src/contracts/ipc-channels.ts
#	packages/core/src/gateway/claude-code-router-plugin.ts
#	packages/ui/test/component/layout.test.tsx
2026-07-20 22:09:34 +08:00
musistudio
6c1a90889b Refactor router implementation and configuration 2026-07-20 20:21:18 +08:00
musistudio
ea35ed2eaa Add model summaries to request logs 2026-07-20 15:57:13 +08:00
musi
5a73d1d65b
Merge pull request #1566 from jesieleo/fix/tray-activity-tooltip-theme
fix(ui): 修复暗色主题显示与托盘同步
2026-07-19 21:59:20 +08:00
musistudio
9fb8a89831 Update routing workflows and supporting configuration 2026-07-19 20:07:40 +08:00
jesieleo
107863919c fix(theme): synchronize dark mode across app and tray 2026-07-19 13:16:29 +08:00
jesieleo
c054086a91 fix(ui): keep update entry from auto-downloading 2026-07-19 11:30:07 +08:00
musi
5b8f64160e Refactor router internals and update related integrations 2026-07-16 09:29:48 +08:00
musistudio
adadb1679f Cache parsed request bodies and simplify routing traces 2026-07-15 15:31:38 +08:00
musi
2aa3529449 Refactor router internals and remove obsolete code 2026-07-15 06:39:29 +08:00