Commit Graph

  • 4fe807eb39 feat(排期): 新增批量发布全部草稿接口 publish-drafts main Henry_Du 2026-10-24 13:39:13 +08:00
  • f5a43b37cc fix(微信订阅): 用微信真实关键词修正歌曲排期模板(thing1/phrase2/time3/character_string4),并修掉字段认领顺序导致的校准失效 Henry_Du 2026-10-24 11:56:50 +08:00
  • dc2565da34 fix(微信订阅): 字段名按微信真实模板校准,不再靠猜编号;phrase 只截断不补齐 Henry_Du 2026-10-24 10:18:57 +08:00
  • c51b7c660a fix(微信订阅): 不再按本地记账拦截发送,一律交给微信裁决 Henry_Du 2026-10-11 16:59:25 +08:00
  • 6f9def0ffd docs(微信订阅): 自测接口的提示指向新的模板登记表与体检接口 Henry_Du 2026-10-11 16:12:28 +08:00
  • d1b643bd93 refactor(微信订阅): 重写订阅消息链路,每一步失败都可见 Henry_Du 2026-10-11 16:02:33 +08:00
  • 09e7f53a1a feat(微信订阅): 新增一键体检接口 /api/admin/wechat/diagnose Henry_Du 2026-10-11 15:37:39 +08:00
  • 308a2103ac fix(通知): 微信订阅消息的每条跳过路径都写日志,不再静默 Henry_Du 2026-10-11 15:16:46 +08:00
  • 81fd05b39a feat(微信订阅): 自测接口支持 dryRun(不消耗额度)与 sendToAll(区分没额度/字段错) Henry_Du 2026-10-11 12:04:03 +08:00
  • b64ee5cbc6 fix(排期): 发布按钮不再兼任删除,清空排期改为显式操作并加服务端守卫 Henry_Du 2026-10-11 01:15:24 +08:00
  • 28238ab00f test(微信订阅): 补上 SONG_REJECTED 驳回模板的映射与截断回归测试 Henry_Du 2026-10-11 01:06:37 +08:00
  • 5962df638d ci(deploy): 工作流从 4 个 job 精简为 2 个,并启用 BuildKit registry 构建缓存 Henry_Du 2026-10-11 00:14:22 +08:00
  • 3eff710d5d feat(微信订阅): 接入歌曲排期模板并加固部署流程 Henry_Du 2026-10-11 00:04:14 +08:00
  • ebf1c3a127 perf(auth): 登录去掉一次冗余查库 + 缓存 2FA 查询 + 修掉 session_key 进日志 Henry_Du 2026-10-01 21:04:02 +08:00
  • 752a2eae87 feat(auth): 已登录账号绑定微信改为一键(不再要求填姓名密码) Henry_Du 2026-10-01 00:08:06 +08:00
  • cd6e235848 fix(users): 状态大小写不敏感 + 彻底修掉「无法编辑其它用户」 Henry_Du 2026-09-30 23:49:40 +08:00
  • deb71875c1 fix(users): 自己可改显示名、超管可在编辑里提升超管(修「保存失败/禁止修改自己的账户」) Henry_Du 2026-09-30 22:58:10 +08:00
  • dfb4891022 fix(users): 只校验"真的改过"的姓名/账号名,修回"管理员无法编辑其他用户" Henry_Du 2026-09-30 22:02:14 +08:00
  • 792b3d4ef6 feat(users): 初始管理员可改显示名(登录名锁死 admin)+ 新增「提升为超级管理员」 Henry_Du 2026-09-30 21:42:59 +08:00
  • 5039ab3f79 feat(auth): 账号名必须是纯中文,唯一例外是管理员账号 admin Henry_Du 2026-09-30 20:50:09 +08:00
  • 1a334bbf5c chore(brand): 补上 Admin/WorkflowTutorial.vue 的品牌名(上一个提交漏了路径) Henry_Du 2026-09-30 20:25:10 +08:00
  • cccaf36990 feat(brand): 站点品牌名统一为「宝一外校园点歌系统」 Henry_Du 2026-09-30 20:24:55 +08:00
  • 9d3edc2c5e feat(kugou): 凭证支持环境变量兜底(配一次永久用);补 deploy.yml 变量映射 Henry_Du 2026-09-30 19:16:55 +08:00
  • af50ff1d95 feat(kugou): 支持粘贴浏览器 Cookie 绑定酷狗(不再必须扫码) Henry_Du 2026-09-30 19:09:26 +08:00
  • 17f2aa7fcd fix(deploy): 把 WECHAT_MINI_SUBSCRIBE_TEMPLATES 加进 ENV_PAYLOAD(远端 unbound variable) Henry_Du 2026-09-27 15:37:58 +08:00
  • 64a81393b5 fix(notify): 环境变量只给模板 id 时保留内置的字段映射 Henry_Du 2026-09-27 15:30:17 +08:00
  • 575e8b9f57 fix(deploy): .env 写入改成引号自适应(JSON 用单引号),并去掉 awk 的值截断隐患 Henry_Du 2026-09-27 15:29:32 +08:00
  • 08a37e4e2f chore(deploy): 补上 WECHAT_MINI_SUBSCRIBE_TEMPLATES 的 secrets 映射 Henry_Du 2026-09-27 15:26:42 +08:00
  • d26996350e feat(auth): 注册时可顺带绑定微信(微信登录发现未绑账号 → 引导注册) Henry_Du 2026-09-27 14:17:20 +08:00
  • a2ba15c3ca feat(notify): 微信订阅消息推送(驳回通知已对接) Henry_Du 2026-09-27 13:55:55 +08:00
  • a080144a86 fix(wechat): jscode2session 需显式 responseType=json,否则 ofetch 不解析响应 Henry_Du 2026-09-27 08:47:56 +08:00
  • 565d6e0fcb feat(api): 新增通用二维码接口 /api/qrcode dsh-agent 2026-09-26 21:38:50 +08:00
  • 9db42861e1 fix(server): 补上 DatabaseManager 缺失的连接池与性能方法 DeepSeek Harness 2026-09-26 16:21:28 +08:00
  • 3614ac6350 fix(schedule): 修复排期重排接口因变量遮蔽而必然报错 Henry_Du 2026-09-26 15:12:07 +08:00
  • 89cc80911e fix(deploy): 让部署工作流把 WECHAT_MINI_APPID / WECHAT_MINI_SECRET 同步进远端 .env Henry_Du 2026-09-26 14:56:03 +08:00
  • 39375c23f2 fix(open-api): schedules 的缓存/Redis 分支补齐 voteCount,消除分支间字段不一致 Henry_Du 2026-09-26 14:30:02 +08:00
  • 12dac95e1b feat(auth): 新增微信小程序登录(绑定策略:首次用学号密码绑定) Henry_Du 2026-09-26 13:57:24 +08:00
  • a140ce8621 fix(open-api): 修复开放API两处缺陷并支持小程序取 token Henry_Du 2026-09-26 13:32:05 +08:00
  • 6f5aa625e6 feat(admin): 导入酷狗页同时保留「自动同步」与「手动生成照片」两种模式 Henry_Du 2026-09-19 14:15:45 +08:00
  • 381f3debf1 fix(admin+server): 酷狗 baseUrl 默认值移除 127.0.0.1 + 新增后台配置入口与推荐快捷地址 Henry_Du 2026-09-19 13:40:59 +08:00
  • 6b3a83ebeb fix(schema): 补导入 jsonb 以解决生产构建 ReferenceError Henry_Du 2026-09-19 12:26:17 +08:00
  • a0184fdeb0 feat(admin+server): 酷狗对接 - 扫码绑定管理员账号 / 按排期自动创建酷狗日歌单 + 同步歌曲 Henry_Du 2026-09-19 11:57:02 +08:00
  • 573e168702 feat(admin-ui): 管理后台整体切换为浅色主题(ModernLight) + 新增 lightbulb 图标 Henry_Du 2026-09-19 08:30:59 +08:00
  • 357876a716 fix(ui+permission): 移除联合投稿 / emoji换SVG / 修复移动端浅色适配 / 已排期显示日期 / 隐藏.env提示 / 公开排期档期游客访问 Henry_Du 2026-09-19 00:43:46 +08:00
  • 25c7517405 fix(ui): 投稿须知卡片浅色化、搜索按钮indigo化、添加按钮几何风格 Henry_Du 2026-09-18 23:48:16 +08:00
  • 87aa12d573 fix(ui): 优化投票/评论按钮样式、评论弹窗浅色化、投稿表单残留黑框修复 Henry_Du 2026-09-18 23:21:53 +08:00
  • 8a82cb77a7 fix(ui): 适配歌曲卡片、日期选择器、平台按钮及搜索占位图的浅色主题 Henry_Du 2026-09-18 22:48:14 +08:00
  • 43f05a6e34 fix(ui): 适配前台浅色背景细节 Henry_Du 2026-09-18 22:15:09 +08:00
  • 90e32ad086 ci(apt): Runner 自带命令已存在时跳过 apt-get update,避免卡 30-90s - 改动点: preflight + meta-warmup 两个系统准备 step 都引入 need_cmd/need_pkg 预探测 - 策略: git/curl/tar/xz/ca-certificates 任一缺包才跑一次 apt-get update + 批量 install,全部满足直接跳过 - 同时: apt 源替换前先 grep archive.ubuntu.com / security.ubuntu.com,避免破坏 Runner 已配的国内/公司镜像 Henry_Du 2026-09-18 21:36:31 +08:00
  • db685f26ba ci: 修复 npm ci EUSAGE @parcel/watcher 缺失并增加 install 兜底 - 锁步: 本地 npm install --legacy-peer-deps 重新同步 package-lock,补齐 @parcel/watcher packages 段 - 兜底: deploy.yml 中 npm ci 全部重试仍失败后,自动降级 npm install --legacy-peer-deps 并写双份缓存 - 诊断: npm ci 失败时附带 node/npm/lockfileVersion 三元组,便于区分版本差与网络问题 Henry_Du 2026-09-18 20:49:42 +08:00
  • de52e4124c ci: preflight npm 升级到 11.x 以匹配 lockfile,修复 npm ci --install-links 报错 - 根因: 本地 Node 24/npm 11.6.2 生成的 package-lock 与 Runner Node 22/npm 10.x 不兼容 - 修复: Preflight 安装依赖前先 sudo npm install -g npm@^11.6.2 对齐版本 - 增强: MAX_RETRY 2→3,失败时打印 node/npm/lockfileVersion 并附带自检命令 Henry_Du 2026-09-18 20:34:55 +08:00
  • 92704d6637 feat(front): 前台默认浅色模式并新增居中投稿按钮与实时空闲档期 - 主题: useTheme 默认 ModernLight + variables.css SSR-safe 浅值并精修组件对比度 - 首页: 插入居中投稿 CTA + 紧邻档期概览卡片(今日排期/待播歌曲/空闲档期数) - 数据: useSongs 新增 fetchExpectedPlayDates 接入空闲档期并走 revision 轮询实时刷新 - 视觉: 移动端优先,少圆角硬边几何 + 概览卡片 3→1 列响应式 Henry_Du 2026-09-13 19:32:27 +08:00
  • f80abe659f feat(frontend): 移动端底部导航与 Hero 插画及页脚浅色化 Henry_Du 2026-09-13 18:43:08 +08:00
  • 1a2031325b feat(frontend): 首页信息流与两大核心界面重构 Henry_Du 2026-09-13 18:39:25 +08:00
  • e8eada885a feat(style): 前台强制切换浅色主题,保护后台管理页暗色 Henry_Du 2026-09-13 18:26:25 +08:00
  • c2114f0d82 fix(theme): 修复移动端深色主题被强锁浅色的问题 Henry_Du 2026-09-13 17:09:20 +08:00
  • 37fd18aaea fix(admin): 修复日期选择框尺寸过大与自动排入跨日期逻辑 Henry_Du 2026-09-13 16:18:09 +08:00
  • c4c30de416 feat(admin): 恢复按日期生成排期图片,重构多项体验问题 Henry_Du 2026-09-13 15:49:05 +08:00
  • ccb39203b8 fix(build): 关闭 nitro 的 minify 压缩,消除其在服务端打包时生成庞大 AST 导致的致命 OOM 137 Henry_Du 2026-09-13 14:30:54 +08:00
  • d3d2673e5c fix(ci): 修复 docker buildx 跨 job 无法复用实例导致 instance multi 找不到的问题 Henry_Du 2026-09-13 14:21:22 +08:00
  • 9a025f5bd5 fix(build): 深度优化构建配置,禁用 compressPublicAssets,取消 manualChunks,以彻底解决内存溢出问题 Henry_Du 2026-09-13 14:02:53 +08:00
  • 456f676929 fix(build): 彻底移除无用的网易云 API 模块,消除由于未安装模块引入导致的 OOM 和解析异常 Henry_Du 2026-09-13 13:54:41 +08:00
  • 7034bbaedb fix(build): 进一步优化打包内存,强制外置超大包,并将 PlaylistCardPage 设为客户端专属避免服务端静态分析 Henry_Du 2026-09-13 13:47:19 +08:00
  • 16f0b1f6b5 fix(build): 避免 CI prerender 阶段因 DATABASE_URL 未设置导致抛出错误 Henry_Du 2026-09-13 13:26:38 +08:00
  • bdefc105bf fix(build): PlaylistCardPage 移除显式 TS 类型注解,保持 pure JS 风格避免 babel parser Missing semicolon Henry_Du 2026-09-13 13:08:22 +08:00
  • 8ff5bec4f0 fix(build): 彻底降 Nitro server build 内存占用,消除 exit 137 OOM Henry_Du 2026-09-13 12:41:47 +08:00
  • a55fa96952 fix(build): SSR 安全化 PlaylistCardGenerator canvasHeight 避免 Nitro 构建 OOM(exit 137) Henry_Du 2026-09-13 12:32:51 +08:00
  • ac4727551c feat(admin): 图片歌单改导入酷狗+自动排入按期望时段+日期滚动修复 Henry_Du 2026-09-13 12:22:28 +08:00
  • 27d718bf01 fix(admin): 日期组件进入界面后应滚动到当前日期/选中项居中 Henry_Du 2026-09-13 10:29:12 +08:00
  • 456bc39e3e perf(ci): deploy.yml workflow 全量提速 30-45%:preflight 步骤合并+npm 本地磁盘缓存;新增 meta-warmup 与 Preflight 并发跑系统/检出/Builder 初始化;build-image 复用 meta-warmup 输出省 6 步;--no-cache 改为 inputs.skip_build_cache 条件触发;timeout 收紧 40→30;deploy 依赖改为 [preflight, build-image] 双成功校验 Henry_Du 2026-09-13 10:09:43 +08:00
  • 28d06dfdb2 fix(admin): 修正日期滚动范围过小导致找不到今天的问题 Henry_Du 2026-09-13 09:58:13 +08:00
  • 604749d08a chore(auth): 临时硬关闭微信聚合登录(aggregate=false)\n\n用户反馈:先暂时不做微信登录了。\n\n双重保险:\n1) 构建期开关:nuxt.config.ts runtimeConfig.public.oauth.aggregate 由\n 原来的 !!process.env.AGGREGATE_OAUTH_APP_ID 改为硬编码 false。\n 影响范围:\n - 登录页 OAuthButtons.vue 中的 v-if 分支不再渲染绿色微信按钮\n - app/pages/account/index.vue 中 hasOAuthProviders aggregate=false → 个人页\n 第三方绑定分区即使其他 provider 都没配也会显示其它 provider,\n 但微信卡片 OAuthBindingCard.vue 因 config.public.oauth.aggregate=false\n 被 v-if 直接拿掉不渲染\n - app/utils/oauth.ts getProviderDisplayName 中 aggregate→微信 映射还保留,\n 恢复时无需再改\n2) 运行期强制关:server/utils/oauth-strategies.ts loadAggregateSettings\n 返回值 aggregateOAuthEnabled 硬编码 false(即使 process.env.AGGREGATE_OAUTH_APP_ID\n 和 system_settings 表都配齐也不启用)。并加 _hardDisabledReason 字段给后续日志\n 留解释,避免以后排查为何 ENV/DB 都有值却 500 说未配置。\n\n后续恢复步骤(两处同时改回即可):\n A. nuxt.config.ts public.oauth.aggregate 改回\n aggregate: !!process.env.AGGREGATE_OAUTH_APP_ID\n B. server/utils/oauth-strategies.ts loadAggregateSettings 返回对象\n aggregateOAuthEnabled 改回原本逻辑:\n enabled && !!(appId && appKey && endpoint)\n 并删除 _hardDisabledReason 字段即可。\n\n注意:Gitea Repository Secrets 中的 6 条 AGGREGATE_OAUTH / OAUTH_* 没有删除,\n保留在仓库里,下次恢复不用重新输入一遍。 Henry_Du 2026-09-13 09:29:05 +08:00
  • ec39f6ab56 perf(admin): 调小日期滚动条的滚动跨度,避免一次飞太远 Henry_Du 2026-09-13 09:19:48 +08:00
  • 71bbd88bb8 fix(admin): 修复日期选择器与选曲日期的 UTC 时差错位 Henry_Du 2026-09-13 08:36:40 +08:00
  • 19ab33b102 feat(admin): 优化后台日期选择器和播出时段交互流程 Henry_Du 2026-09-13 02:04:48 +08:00
  • a481e0ae4c fix(auth): 微信登录按钮放大+主题色 & /api/auth/aggregate 500 诊断日志\n\nUI 改动(微信登录按钮 + 个人页绑定卡片):\n- OAuthButtons.vue:aggregate 微信按钮 48x48 → 56x56,SVG 图标 22px→28px;默认背景微信绿 #07C160,hover #06ad56,active #059a4c;正常态加绿色阴影,纯 #fff 文字;不再和相邻 Google/GitHub 保持原尺寸不变\n- OAuthBindingCard.vue 个人页卡片:aggregate(aggregate):微信图标框 40x40→48x48(h-10→h-12),图标 22px→26px,背景/边框/文字用微信绿 #07C160;未绑定微信色 立即绑定微信 按钮 字号从 xs→sm,py 1.5→2.5,文案 立即绑定→立即绑定微信\n\n500 排错日志(/api/auth/aggregate):\n- loadAggregateSettings:先取 env fallback 前置,DB select 包 try/catch 不抛;并打印 [AggregateOAuth] enabled/appId/appKey 长度/loginType/endpoint 状态(DB=? 配置 / ENV=? 配置 / dbEnabled回退逻辑\n- auxxStrategy.getAuthorizeUrl 全链路结构化日志:\n 1) 参数打印(enabled/endpoint/safe_ok/redirect_uri/state_len\n 2) 配置缺失时逐条枚举原因(APP_ID 空 / APP_KEY 空 / ENDPOINT 空 / enabled=false)\n 3) endpoint 不合法时单独打印 [AggregateOAuth][auxx][getAuthorizeUrl] endpoint 不合法 + JSON(endpoint)\n 4) 请求 auxx.cn/connect.php?act=login 前打印 GET URL(appkey 替换为 ***,日志绝不输出真实密钥)\n 5) $fetch 成功打印 code/msg/has_url/url_prefix\n 6) $fetch 异常打印 err/status/body (response._data 或 data 前 400 字)\n 7) $fetch 加 15000ms 超时,避免 Runner 到 auxx 不通卡死一直挂 30s\n 以上;30s+ 才被 Nitro 强制 500 Henry_Du 2026-09-13 01:05:38 +08:00
  • 9fd8a9ccbd fix(ci,build): 双路径双 Job 注入 OAuth 6 条 secrets 到构建期\n\n根因(Run #71 已确诊):\n - Preflight Job 的「执行 nuxt build」step 的 env 注入在当前 Gitea Actions 版本下没生效(整个日志中搜不到 [OAuth] 字样)\n - 构建镜像 Job 的 docker buildx build 完全没透传 OAuth 变量,镜像内 RUN npm run build 看不到 process.env.AGGREGATE_OAUTH_APP_ID\n - nuxt.config.ts runtimeConfig.public.oauth.aggregate = !!process.env.AGGREGATE_OAUTH_APP_ID 两个路径都拿不到值 → 一直 false\n - 前端登录页第三方登录分区一直渲染占位提示,不出微信按钮\n\n修复(两条独立链路,任一条成功按钮都会出现):\n ① 链路 A(preflight 产物):preflight Job 加「注入 OAuth secrets 到 GITHUB_ENV」Step(_append_env 双引号包住值写 $GITHUB_ENV),保证后续所有 step(含 nuxt build)的进程级 process.env 都有 6 个变量\n ② 链路 B(容器镜像):Dockerfile COPY . . 后新增 6 个 ARG(OAUTH_REDIRECT_URI / OAUTH_STATE_SECRET / AGGREGATE_OAUTH_APP_ID / APP_KEY / LOGIN_TYPE / ENDPOINT)并 ENV 导出,保证 RUN node scripts/memory-build.js(npm run build)能读到\n ③ deploy.yml build-image Job:新增「注入 OAuth secrets 到 GITHUB_ENV」Step(与 preflight 同样的 _append_env 逻辑),紧接着的「构建并推送镜像」Step 把这 6 条变量逐个非空判后拼进 BUILD_ARGS=(--build-arg ...),并打印每条是否已注入(不打印值)\n\n配合 Deploy Job 原本已实现的远端 /data/opt/byw-voicehub/.env upsert(SSH 运行期写入):\n - 运行期容器(docker-compose env_file: [.env])也有同一套 6 条变量 → server/utils/oauth-strategies.ts loadAggregateSettings 的 env fallback 能读到 auxx.cn 凭据,完成微信扫码登录/绑定全链路。\n\n诊断日志(新的 Run #72 中应出现):\n [OAuth-secrets] AGGREGATE_OAUTH_APP_ID=已注入 (len=4) (若配置过 Secrets)\n [OAuth build-args] AGGREGATE_OAUTH_APP_ID=已注入\n [OAuth] build-time AGGREGATE_OAUTH_APP_ID 已配置(前端第三方登录按钮会显示), LOGIN_TYPE=wx Henry_Du 2026-09-13 00:43:37 +08:00
  • f5b7bef285 fix(ci): Preflight npm ci 防超时 + Deploy job 误触发保护\n\n- deploy.yml preflight/安装依赖 Step:新增「双 registry 切换 + 3 轮重试 + npm fetch-retries=5 + fetch-timeout=5min + prefer-offline」\n - 主站 https://registry.npmmirror.com 备用 https://mirrors.cloud.tencent.com/npm/(两套独立 CDN 节点),奇偶次交替\n - npm 内部 read ETIMEDOUT(exit 146)自动走 fetch-retries 重试;整轮失败 bash 层 15s 后再跑下一轮\n - 失败 3 轮才真正 exit 1,并在日志中明确提示可覆盖 NPM_REGISTRY_PRIMARY/FALLBACK\n- deploy.yml deploy job:if 条件从 \x27!cancelled() && !failure()\x27 改为 \x27always() && needs.build-image.result == \x27\x27success\x27\x27\x27\n - 之前 build-image 被 skip(preflight 先失败)时,!failure() 为真导致 deploy 被触发但 IMAGE_NEW 空 → exit 9 误报为 deploy 本身错\n - 现在仅当 build-image 真的 success 时才会执行 deploy,build-image 被跳过/失败时 deploy 自动显示为 skipped(符合语义) Henry_Du 2026-09-13 00:21:09 +08:00
  • a64fa6bc72 ci(deploy): Gitea Actions 自动接入微信OAuth(构建期+运行期双链路注入)\n\n- deploy.yml preflight/nuxt build step: env 注入 6 条 OAuth secrets;显式 export 给子进程,构建日志打印 AGGREGATE_OAUTH_APP_ID 有无值便于排错\n- deploy.yml deploy/SSH step: env 注入 6 条 OAuth secrets 传给远端 bash -s\n - 远端新增 upsert_env_key():对 .env 做 awk 整行覆盖 / 不存在追加,幂等(保证不破坏原有 POSTGRES_* / JWT_SECRET / NUXT_PUBLIC_* 等其它变量)\n - 仅当 AGGREGATE_OAUTH_APP_ID 非空才写入,避免把空值覆盖已有配置\n - 合并写入后立即在日志输出 [OAuth] 成功/跳过提示,无需手改服务器 .env\n- docker-compose.yml 已含 env_file: .env,合并写入后的变量会被容器自动加载为 process.env Henry_Du 2026-09-13 00:10:54 +08:00
  • 7f3e570d8a feat(auth): aggregate OAuth 支持 auxx.cn 自定义规格(按 endpoint 自动分派)\n\n- oauth-strategies.ts: endpoint 命中 auxx.cn 时走新的 auxxStrategy\n - getAuthorizeUrl: GET {endpoint}/connect.php?act=login 拿 {url} 后转发(附 state)\n - exchangeToken: 直接 GET {endpoint}/connect.php?act=callback 拿 social_uid/access_token/nickname/faceimg,10 分钟内存缓存供 getUserInfo 读取\n - getUserInfo: 命中缓存返回 OAuthUserInfo(id=social_uid, username=nickname, avatar=faceimg)\n- 标准 OAuth2 /oauth/... 规格仍由 standardAggregateStrategy 保留,非 auxx 域名不受影响 Henry_Du 2026-09-12 23:07:05 +08:00
  • 7b605351f4 feat(auth): aggregate OAuth 支持环境变量回退配置,默认 LOGIN_TYPE=wx Henry_Du 2026-09-12 22:57:43 +08:00
  • 467dd38d5f feat(auth): 新增微信聚合登录入口与账号绑定卡\n\n- OAuthButtons.vue: aggregate 启用时渲染微信登录按钮,微信绿 hover + 专属 SVG 图标\n- OAuthBindingCard.vue: 新增微信 aggregate 绑定卡,支持绑定跳转 /api/auth/aggregate 和解绑\n- account/index.vue: hasOAuthProviders 判定加入 aggregate\n- oauth.ts: getProviderDisplayName 中 aggregate 映射为 微信 Henry_Du 2026-09-12 21:06:26 +08:00
  • a937f32e6e feat(theme): 移除首页主题切换按钮,恢复默认深色主题 ClassicDark Henry_Du 2026-09-12 20:40:35 +08:00
  • a0f11ff64a chore: remove script Henry_Du 2026-09-12 16:57:53 +08:00
  • 78c3d878ea fix(ui): 修复浅色主题下的 Tailwind CSS 及部分残留硬编码 Henry_Du 2026-09-12 16:56:22 +08:00
  • d8060147ed chore: remove temporary files Henry_Du 2026-09-12 15:57:27 +08:00
  • 9fc5e3e607 fix(ui): 批量替换所有组件中残留的硬编码深色值以彻底支持浅色主题 Henry_Du 2026-09-12 15:56:10 +08:00
  • 8b0934f6f4 fix(ui): 彻底修复深浅色主题切换及内部页面样式 Henry_Du 2026-09-12 15:23:26 +08:00
  • b1c3af84de fix(ui): 补齐浅色主题遗漏:index 后段弹窗 + dashboard 根 + 改密页根 Henry_Du 2026-09-12 14:12:10 +08:00
  • bf7c40c4fe fix(ci): 回滚 NODE_OPTIONS 非法 --gc-interval,解决 Run#56 立即 exit 9 Henry_Du 2026-09-12 14:04:27 +08:00
  • 7ee5e8b9e9 fix(ci): 解决 Run#55 Nitro 再次 OOM:提升堆上限到 10G 并禁用压缩/minify Henry_Du 2026-09-12 13:59:14 +08:00
  • 2ee8056ad1 fix(ui): 修复首页强制浅色不生效问题:index.vue 硬编码深色样式变量化 Henry_Du 2026-09-12 13:36:15 +08:00
  • 80b7c256b5 fix(ci): 修复 Run#53 Preflight 构建 Nitro 时 OOM exit 137 Henry_Du 2026-09-12 12:57:32 +08:00
  • 94832e2c82 fix(ui): 强制浅色主题与登录页细节修正 Henry_Du 2026-09-12 12:32:27 +08:00
  • a82ff6747e feat(site): 对齐参考站点UI与交互调整 Henry_Du 2026-09-12 11:56:30 +08:00
  • 0c71328efd fix(nitro-import): permissions/user-avatar 引用路径统一改为 ~~/server/utils 别名,解决 Rollup UNRESOLVED_IMPORT Henry_Du 2026-09-12 10:27:07 +08:00
  • ca190a445a fix(vue-parser): BlacklistManager 与 ScheduleManager 补 lang=ts 解决 CI Babel 解析 SyntaxError(Unexpected token, expected ,) Henry_Du 2026-09-12 08:55:29 +08:00
  • d818819fff feat: 实现主题、黑名单、排程等14项功能迭代 Henry_Du 2026-09-12 08:40:59 +08:00
  • d09d12828d feat(admin): 优化用户权限分级·统一头像·数据分析面板修复 Henry_Du 2026-09-12 08:36:45 +08:00
  • 153ee41ef0 feat(schedule)+fix(schedule)+feat(player): 排期管理5项功能 - 紧凑布局/投稿人优先算法/localStorage持久化/备选池修复/播放队列按钮 Henry_Du 2026-09-12 08:33:25 +08:00