win
cbf696bc82
chore(wip): save windsurf changes before upstream v0.1.118 merge
2026-04-25 21:56:42 +08:00
win
2d2f677a64
chore: merge upstream Wei-Shaw/sub2api 至 v0.1.117
...
主要合并内容:
- feat(channel-monitor): admin 渠道监控 MVP + 日聚合/模板/用户端卡片
- feat(available-channels): 新增"可用渠道"聚合视图与平台聚合
- feat(settings): 功能开关联动到配置页
- refactor(channel-monitor): 事件驱动调度器 / runner 生命周期 + 单测
- fix(openai/codex): 图像生成桥接修复、支付 webhook 未知单号处理
- misc: i18n/UI polish, typing tightening
冲突已手动解决,保留本地订制:
- handler.Handlers / AdminHandlers 联合 windsurf + channel_monitor/available_channel 字段
- wire/wire_gen 清理步骤同时注册 WindsurfRefreshService 与 ChannelMonitorRunner
- routes/admin 同时注册 windsurf 与 channel-monitor 路由
- service/wire 合并 Windsurf* 与 ChannelMonitor* 的 provider
- frontend admin API barrel 取两侧并集
- 采纳上游对 migrationChecksumCompatibilityRule 字段的重命名(非订制代码)
2026-04-24 11:52:21 +08:00
win
2a4103298e
Merge remote-tracking branch 'origin/main'
...
# Conflicts:
# backend/cmd/server/wire_gen.go
2026-04-24 01:21:36 +08:00
erio
09fd83ab9b
fix(monitor): clean up unused updatedAt/updatedLabel after label removal
2026-04-24 00:14:30 +08:00
erio
6699d33760
fix(monitor): remove redundant "updated at" label from MonitorHero
2026-04-24 00:08:57 +08:00
erio
f7c8377abf
fix(monitor): remove UNAVAILABLE status, keep only OPERATIONAL/DEGRADED
2026-04-24 00:03:22 +08:00
erio
0dcc0e0504
feat(monitor): proportion-based overall status + reusable auto-refresh
...
- Change overall status logic: >50% failed = UNAVAILABLE, any failed
or degraded = DEGRADED, all ok = OPERATIONAL
- Extract useAutoRefresh composable with localStorage persistence
- Create AutoRefreshButton dropdown component (reusable)
- Integrate auto-refresh into channel status page via MonitorHero
2026-04-24 00:03:22 +08:00
erio
5e060b2222
Merge remote-tracking branch 'upstream/main' into feat/channel-insights
...
# Conflicts:
# backend/cmd/server/wire_gen.go
2026-04-23 22:30:45 +08:00
erio
67518a59ac
revert: remove fork-only changes from release sync
...
Revert payment/wechat, sora/claude-max cleanup, fork-only migrations,
and cosmetic changes that were brought in by the release sync commit.
Keep only channel-monitor related improvements:
- PublicSettingsInjectionPayload named struct with drift test
- ChannelMonitorRunner graceful shutdown in wire
- image_output_price in SupportedModelChip
- Simplified buildSelfNavItems in AppSidebar
- Gateway WARN logs for 503 branches
2026-04-23 21:40:58 +08:00
erio
497872693f
chore: remove test files deleted in release
...
HelpTooltip.spec.ts and PaymentProviderDialog.spec.ts were removed
in release/custom-0.1.115; commit the deletion.
2026-04-23 21:04:54 +08:00
erio
748a84d871
sync: bring over remaining release/custom-0.1.115 changes
...
- Extract PublicSettingsInjectionPayload named struct with drift test
- Add channel_monitor_default_interval_seconds to SSR injection
- Add image_output_price to SupportedModelChip
- Simplify AppSidebar buildSelfNavItems (admins see available channels)
- Add gateway WARN logs for 503 no-available-accounts branches
- Wire ChannelMonitorRunner into provideCleanup for graceful shutdown
- Add migrations 130/131 (CC template userid fix + mimicry field cleanup)
- Clean up fork-only features (sora, claude max simulation, client affinity)
- Remove ~320 obsolete i18n keys
- Add codexUsage utility, WechatServiceButton, BulkEditAccountModal
- Tidy go.sum
2026-04-23 20:55:18 +08:00
win
21325afb33
feat(windsurf): 补全ops日志记录与endpoint派生,对齐其他平台
...
CI / test (push) Failing after 10s
CI / frontend (push) Failing after 8s
CI / golangci-lint (push) Failing after 5s
Security Scan / backend-security (push) Failing after 5s
Security Scan / frontend-security (push) Failing after 4s
- windsurf_gateway_service: 添加上游延迟/TTFT/错误上下文记录
- endpoint: DeriveUpstreamEndpoint 添加 PlatformWindsurf 分支
- ops_error_logger: guessPlatformFromPath 添加 /windsurf/ 识别
2026-04-23 20:46:27 +08:00
erio
5eedf782f4
fix(frontend): add available_channels_enabled to PublicSettings type and defaults
...
featureFlags.ts registry uses 'available_channels_enabled' as a
public-settings key, but the PublicSettings TS type (types/index.ts)
and the app store default (stores/app.ts) only had
channel_monitor_enabled. Adds the missing field so pnpm build passes.
2026-04-23 18:24:07 +08:00
shaw
3fe4fd4c35
chore: add model gpt-5.5
2026-04-23 17:28:01 +08:00
Wesley Liddick
827a4498e0
Merge pull request #1829 from ZHOUKAILIAN/feature/codex-oauth-proxy-message
...
fix: 明确 OpenAI OAuth 未配置代理时的错误提示
2026-04-23 16:55:04 +08:00
james-6-23
dc5d42addc
feat(rpm): RPM 限流模块优化
...
P0:
- rpm_override 嵌入 Auth Cache Snapshot,消除每请求 DB 查询 (snapshot v6→v7)
- 429 RPM 响应返回 Retry-After 头(当前分钟剩余秒数)
P1:
- ClearAll 按钮直连 DELETE API,带 loading 防重复
- 新增 GET /admin/users/:id/rpm-status 管理员 RPM 用量查询端点
优化:
- checkRPM 从级联互斥改为并行取最严,user.rpm_limit 作为全局硬上限始终生效
- Override/Group 变更后自动失效 auth cache
- fail-open 语义不变,Redis 故障不阻塞业务
2026-04-23 16:34:37 +08:00
zhoukailian
2489ea3699
fix: clarify OpenAI OAuth proxy errors
2026-04-23 12:23:04 +08:00
IanShaw027
f35e967516
fix payment qr fallback and admin guidance
2026-04-22 07:33:14 -07:00
win
ff7eab0392
Merge remote-tracking branch 'origin/main'
...
# Conflicts:
# backend/go.mod
# backend/go.sum
# backend/internal/repository/migrations_runner.go
2026-04-22 21:27:18 +08:00
IanShaw027
5551349349
fix: clean up profile auth binding notes
2026-04-22 19:11:51 +08:00
shaw
c6d25f69d5
chore: 恢复PAYMENT系列文件
2026-04-22 18:48:40 +08:00
IanShaw027
22385be515
Merge remote-tracking branch 'upstream/main' into rebuild/auth-identity-foundation
...
# Conflicts:
# backend/internal/service/openai_images.go
2026-04-22 18:13:05 +08:00
shaw
1e0d466002
feat: 补充gpt生图模型测试功能
2026-04-22 18:06:14 +08:00
IanShaw027
ad4600964e
fix(ci): clean up lint and dead code
2026-04-22 16:38:36 +08:00
IanShaw027
ca4e38aa01
fix(profile): stabilize binding compatibility and frontend checks
2026-04-22 14:57:47 +08:00
IanShaw027
1aab084ecb
fix(payment): restore upgrade-safe payment flows
2026-04-22 14:57:16 +08:00
IanShaw027
6696e61c7b
fix(frontend): preserve callback recovery state
2026-04-22 13:19:41 +08:00
IanShaw027
81c827ee51
fix(profile): stabilize identity binding management
2026-04-22 13:19:28 +08:00
IanShaw027
29caf85104
fix(frontend): stabilize wechat payment resume recovery
2026-04-22 12:30:24 +08:00
IanShaw027
84628108fc
fix(auth): preserve backward-compatible oauth defaults
2026-04-22 11:17:32 +08:00
IanShaw027
dd314c41e3
fix(payment): restore public resume and result flows
2026-04-22 11:17:23 +08:00
IanShaw027
c229f33e9e
fix(review): harden payment, oauth, and migration paths
2026-04-22 10:26:22 +08:00
IanShaw027
6d51834a95
refactor(profile): simplify profile page flow
2026-04-22 01:48:09 +08:00
IanShaw027
863258d782
Always show register password hint
2026-04-21 10:15:57 -07:00
IanShaw027
287f2f56d6
Show embedded avatar preview after selection
2026-04-21 10:13:28 -07:00
IanShaw027
0f4a8d7be8
feat(profile): redesign profile center layout
2026-04-22 00:54:38 +08:00
IanShaw027
906802abe3
Fix mobile payment launch detection
2026-04-22 00:36:55 +08:00
IanShaw027
da1d26001f
Merge branch 'main' into rebuild/auth-identity-foundation
2026-04-22 00:35:34 +08:00
IanShaw027
40f7e832b4
fix: restore wechat settings compatibility after rebase
2026-04-21 23:26:45 +08:00
IanShaw027
b22d00e541
feat: drive visible payment methods from enabled providers
2026-04-21 23:20:37 +08:00
IanShaw027
54dc176725
feat(settings): support per-channel WeChat OAuth and persist payment options
2026-04-21 07:51:41 -07:00
IanShaw027
d5819181ea
feat(auth): reclaim stale identities and refresh profile UI
2026-04-21 07:49:40 -07:00
IanShaw027
c0371e9104
frontend: align gateway scheduling toggles
2026-04-21 22:38:47 +08:00
IanShaw027
65d3bd728b
frontend: normalize payment error presentation
2026-04-21 22:26:54 +08:00
IanShaw027
20062b44dc
frontend: normalize profile and admin i18n cleanup
2026-04-21 22:26:35 +08:00
IanShaw027
a6b919eb53
frontend: normalize auth oauth i18n and error toasts
2026-04-21 22:26:11 +08:00
erio
1f81b77911
feat(settings): link feature toggles to their config pages
...
Channel Monitor card now links to 渠道管理 > 渠道监控 and the Available
Channels card links to 渠道管理 > 渠道定价 so admins know where to go
after flipping the switch.
2026-04-21 21:59:23 +08:00
erio
25a5035503
fix(available-channels): description as own column, fixed table layout
...
- 描述独立成列:渠道名与描述各占一列,均用 rowspan 纵向合并
- 渠道名单元格 text-center + align-middle,合并后视觉居中
- table-fixed:给 name/description/platform 显式宽度,groups 和
supported_models 在剩余空间均分。支持模型列此前在 table-auto 下
不会换行导致横向溢出遮挡(反馈截图),加 table-fixed 后天然 flex-wrap
- i18n 增加 availableChannels.columns.description(zh/en)
2026-04-22 19:47:03 +08:00
erio
9dae6c7aee
feat(sidebar+groups): available-channels above channel-status; show rate for subscription groups
...
- Sidebar user-side order: /available-channels now sits directly above
/monitor (渠道状态) for regular users, mirroring the admin section where
it sits above /admin/channels.
- GroupBadge gains an alwaysShowRate prop. Subscription groups default to
a "订阅"/days-remaining label; the new flag swaps that for the rate
multiplier while keeping the subscription theme color, so the Available
Channels page can surface rates on every group type.
2026-04-21 22:10:51 +08:00
erio
ff4ef1b574
feat(channels): themed model popover + group-badge with rate, subscription & exclusivity
...
Pricing popover:
- Teleport to body + fixed-position re-measuring on hover/scroll/resize so it
escapes the card's overflow-hidden clip that was chopping off the lower
half of the panel.
- Header + border adopt the platform theme via platformBorderClass /
platformBadgeLightClass so each model card reads at a glance.
Accessible groups:
- Backend AvailableGroupRef / user DTO now expose subscription_type,
rate_multiplier and is_exclusive. User-specific rates continue to come
from /groups/rates (same pattern as the API keys page).
- Table renders groups through the shared GroupBadge, which already deepens
subscription-type colors and shows default vs custom rate as
<s>default</s> <b>custom</b>.
- Exclusive groups are labelled with a purple shield row, public groups
with a grey globe row so admins and users can tell at a glance which
groups they got via explicit grant vs. public access.
i18n keys for exclusive / public / their tooltips added to zh + en.
2026-04-21 21:44:34 +08:00