Commit Graph
106 Commits
Author SHA1 Message Date
Henry_Du 9fc5e3e607 fix(ui): 批量替换所有组件中残留的硬编码深色值以彻底支持浅色主题
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Canceled after 0s
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Canceled after 0s
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Canceled after 1m27s
2026-09-12 15:56:10 +08:00
Henry_Du 8b0934f6f4 fix(ui): 彻底修复深浅色主题切换及内部页面样式
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Successful in 2m12s
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Successful in 10m17s
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Successful in 6s
- 恢复 variables.css 完整的 ClassicDark/ModernDark 等主题定义
- 恢复 nuxt.config.ts 的主题系统逻辑(默认改为 ClassicLight,保留切换能力)
- 修复 BackupManager / VotersModal / ProfileForm / LyricsModal / RequestForm / SongList / ScheduleList / StatsSlide / ArtistSlide 等数十处组件内部硬编码深色(#1a1a1a / #040e15 等)绕过主题的问题,全部改为使用 CSS 变量 (var(--bg-primary) 等)
- 这样实现了:在浅色模式下,所有页面均正确显示浅色;在深色模式下,又能正常呈现深色设计,且恢复了右上角的深浅色切换能力
2026-09-12 15:23:26 +08:00
Henry_Du b1c3af84de fix(ui): 补齐浅色主题遗漏:index 后段弹窗 + dashboard 根 + 改密页根
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Successful in 2m10s
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Successful in 10m4s
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Successful in 6s
- index.vue 规则弹窗 modal-content/close/rule/ripple/login-required 全改为语义化 var()
- index.vue 年度报告 year-review 卡片/按钮/brand/badge/title 全部变量化
- dashboard.vue admin-layout 根 #0a0a0a/#fff 改为 var(--bg/text-*)
- change-password.vue 改密页 auth-layout 容器、表单区、back-link 全改为浅色变量
2026-09-12 14:12:10 +08:00
Henry_Du bf7c40c4fe fix(ci): 回滚 NODE_OPTIONS 非法 --gc-interval,解决 Run#56 立即 exit 9
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Successful in 2m9s
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Canceled after 0s
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Canceled after 5m35s
- Node.js NODE_OPTIONS 不允许传 --gc-interval,导致 Run 56 刚启动 Node v0 检测时就 exit code 9 全局失败
- 保留 max-old-space-size=10240、expose-gc、drop_caches、DISABLE_ROLLDOWN=1、NITRO_MINIFY=false 所有有效内存缓解措施
2026-09-12 14:04:27 +08:00
Henry_Du 7ee5e8b9e9 fix(ci): 解决 Run#55 Nitro 再次 OOM:提升堆上限到 10G 并禁用压缩/minify
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Failing after 9s
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Skipped
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Failing after 3s
- NODE_OPTIONS max-old-space-size 8192 → 10240,新增 --gc-interval=100000 主动 GC
- 构建前 drop_caches 清理页面缓存,降低系统级 RSS 压力
- 禁用 NITRO_MINIFY 与 DISABLE_ROLLDOWN,进一步降低峰值内存
- 构建前后打印内存快照,便于后续排障
2026-09-12 13:59:14 +08:00
Henry_Du 2ee8056ad1 fix(ui): 修复首页强制浅色不生效问题:index.vue 硬编码深色样式变量化
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Failing after 11m43s
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Skipped
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Failing after 3s
- 根容器 .home 背景 #121318 深色硬编码改为 var(--bg-primary)
- 全站文字 color:#ffffff / rgba(255,255,255,*) 按语义改为 var(--text-primary/secondary/tertiary/quaternary)
- 选项卡、内容面板、下拉菜单、通知卡片、分页按钮等背景/边框统一变量化
- 桌面端和移动端适配样式同步处理,彻底杜绝硬编码深色值绕过 CSS 变量
2026-09-12 13:36:15 +08:00
Henry_Du 80b7c256b5 fix(ci): 修复 Run#53 Preflight 构建 Nitro 时 OOM exit 137
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Successful in 2m25s
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Successful in 9m31s
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Successful in 6s
- 将 NODE_OPTIONS max-old-space-size 从 4096 提升至 8192,并加入 preflight job 全局 env
- 构建前打印系统内存状态,便于排障
- 显式声明 NITRO_PRESET=node-server,避免构建阶段默认解析不确定性
2026-09-12 12:57:32 +08:00
Henry_Du 94832e2c82 fix(ui): 强制浅色主题与登录页细节修正
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Failing after 2m43s
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Skipped
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Failing after 3s
- 主题:将 CSS 变量默认值由深色改为 ClassicLight 浅色基准(背景/文字/边框/按钮/输入框/滚动条),追加 prefers-color-scheme: dark 下的 color-scheme: light 覆盖,补齐 surface-xxx 别名避免部分组件底色色值缺失
- 语言按钮:删除首页顶栏语言切换按钮及其点击处理逻辑
- 第三方登录:OAuthButtons 重写为使用语义化 CSS 变量而非无效的 --border-color,新增 alwaysShow 选项在未配置 provider 时显示占位提示;登录页强制启用提示
- 页脚与登录页:全部文字颜色与分割线由硬编码 rgba(255*) 改为 var(--text-tertiary/quaternary/border-primary),在浅色背景下保证对比度
2026-09-12 12:32:27 +08:00
Henry_Du a82ff6747e feat(site): 对齐参考站点UI与交互调整
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Successful in 2m8s
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Successful in 9m11s
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Successful in 7s
- 页脚:响应耗时文字统一为「响应耗时 XXXms」,版本链接改为 GitHub 官方仓库,默认 ICP 备案号设置为粤ICP备2025450093号
- 顶部栏:恢复主题切换按钮与语言按钮(语言暂为占位提示),放置于用户区左侧
- 主题:修复首屏内联脚本默认主题白名单校验,避免 localStorage 中残留的 light/dark/System 等非法值生效,首屏默认改为 ClassicLight(仅允许 ClassicLight/ModernLight)
- 登录页:在密码输入框下方恢复「忘记密码?」入口,新增配套的找回密码引导页 /forgot-password
- 默认配置:system-settings 兜底记录与 SYSTEM_SETTINGS_DEFAULTS 新增 icpNumber 默认值
2026-09-12 11:56:30 +08:00
Henry_Du 0c71328efd fix(nitro-import): permissions/user-avatar 引用路径统一改为 ~~/server/utils 别名,解决 Rollup UNRESOLVED_IMPORT
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Successful in 2m10s
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Successful in 9m33s
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Successful in 6s
2026-09-12 10:27:07 +08:00
Henry_Du ca190a445a fix(vue-parser): BlacklistManager 与 ScheduleManager 补 lang=ts 解决 CI Babel 解析 SyntaxError(Unexpected token, expected ,)
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Failing after 1m57s
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Skipped
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Failing after 3s
2026-09-12 08:55:29 +08:00
Henry_Du d818819fff feat: 实现主题、黑名单、排程等14项功能迭代
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Failing after 1m24s
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Skipped
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Failing after 4s
- style(theme): 修复浅色模式不生效问题,为 ClassicLight 和 ModernLight 增加独立差异化 CSS 变量定义(主色/圆角/阴影/背景对比度)
- feat(blacklist): 后端放开 LANGUAGE/GENRE 类型校验;check API 新增语种(CJK/拉丁/假名/谚文/西里尔/阿拉伯)和曲风关键词匹配逻辑;前端 BlacklistManager UI 增加 语种/曲风 四类型切换、类型筛选、图标与标签颜色映射、输入提示
- fix(DataAnalysisPanel): 活跃用户列表容器加 max-h-[400px] + overflow-y-auto + 底部渐变遮罩;tooltip 加 max-height + truncate 防止超高;头像失败回退首字母
- feat(admin): 新增 user-avatar.ts 工具(OAuth→Gravatar→DiceBear 三级兜底);active-users/realtime/users 列表返回 avatarUrl;DataAnalysisPanel/UserManager 展示圆形头像;权限分级 ROLE_LEVELS,SUPER_ADMIN 全权限,ADMIN 仅可管理 ≤ USER 级用户的密码与角色,前端按钮联动禁用
- fix+style(schedule): ScheduleManager 标签页 sticky min-h 防抖、间距调优、表单分组、移动端 padding 统一
- feat(schedule): 自动排期新增「按投稿人数优先覆盖」策略(算法:requester + collaborators 总数降序),支持 CustomSelect 切换;新增 localStorage voicehub:schedule:auto-config 持久化 7 项配置(策略/时段/年级/排序/标签/搜索/学期)500ms debounce
- fix(schedule): songs/index.get 新增 usePool 参数,从 schedule_song_pool(status=PENDING,targetPlayDate IS NULL) 取歌并去重,排除已排期 songs.played=false;schedule.post 和 draft-bulk 分配后更新池状态为 ASSIGNED 避免重复分配
- feat(player): ScheduleManager 新增「构建播放队列」按钮,按 playDate→时段→sequence 排序后经 useAudioPlayer.playSong 整列载入并 toast 反馈
- fix(db): db.ts 检测 NETLIFY/VERCEL serverless 环境使用最小池 max=1 idle_timeout=1 keep_alive=false,Node Server 保持 max=10
- feat(site-config): site-config.get.ts 与 useSiteConfig.js 导出 statisticsCode 和 statisticsCodeEnabled;index.vue 挂载后解析 HTML 动态重插 script 元素确保第三方统计执行
- fix(schedule-printer): ScheduleItemPrint 封面 aspect-square object-cover;print-fix.css 打印时强制 48px×48px contain、去除圆角阴影
- fix(songRequest): 新增 server/utils/url.ts normalizeCoverUrl(trim/去零宽空格/相对协议补 https/非 http 丢弃/URL.parse 兜底);request.post/add.post/import.post 三处写入 cover/coverUrl 前统一规范化
2026-09-12 08:40:59 +08:00
Henry_Du d09d12828d feat(admin): 优化用户权限分级·统一头像·数据分析面板修复
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Failing after 55s
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Skipped
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Failing after 4s
- fix(DataAnalysisPanel): 活跃用户卡片固定 400px + overflow-y 独立滚动容器,底部渐变遮罩提示滚动;列表项 tooltip 增加 max-height 与 overflow 截断;新增圆形头像显示与 @error 回退首字母
- feat(admin): 新增 getUserAvatarUrl 统一头像策略链(OAuth identity→Gravatar→DiceBear 7.x initials),stats/realtime、active-users、users/index 三处接口返回 avatarUrl
- fix(admin): 建立 SUPER_ADMIN(100)>ADMIN(80)>USER(10) 分级常量与 canChangeRoleOf/canResetPasswordFor 等谓词;reset-password、[id].put、index.post 全面应用级别守卫;前端 UserManager 按钮按权限禁用、availableRoles 按操作者级别过滤 SUPER_ADMIN/ADMIN 等高角色
2026-09-12 08:36:45 +08:00
Henry_Du 153ee41ef0 feat(schedule)+fix(schedule)+feat(player): 排期管理5项功能 - 紧凑布局/投稿人优先算法/localStorage持久化/备选池修复/播放队列按钮
* fix+style(schedule): ScheduleManager 标签页紧凑布局,头部 min-height 防抖,内容区统间距与移动端适配
* feat(schedule): 新增自动排期策略「按投稿人数优先覆盖」,按 requester+collaborators 数排序分配好时段
* feat(schedule): localStorage 键 voicehub:schedule:auto-config 持久化策略/时段/学期/过滤等7项,onMounted 恢复,watch debounce 500ms 保存
* fix(schedule): songs/index.get.ts 新增 use_pool 查询参数,备选池过滤条件 status=PENDING + song.played=false + song未在任何排期中;ScheduleManager/draft-bulk 创建排期时将池记录 UPDATE 为 ASSIGNED
* feat(player): ScheduleManager 工具栏新增「构建播放队列」按钮,按 playDate+playTimeId+sequence 排序后调用 useAudioPlayer.playSong 加载播放列表,支持 confirm 确认与 toast 反馈
* refactor(useSongs): fetchSongs 增加第5参数 usePool,透传 use_pool=true 到 /api/songs
2026-09-12 08:33:25 +08:00
Henry_Du 4d39afd23f fix(ci): replace heredoc-based ENV_SH with printf %q pipe → resolve yaml L544 could not find expected ':' colon false-positive + bash -s positional arg for env source
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Successful in 2m9s
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Successful in 8m57s
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Successful in 6s
2026-09-12 00:54:20 +08:00
Henry_Du e4fe591b82 fix(ci): propagate deploy env vars via remote /tmp file + bash -s arg + fail-fast if IMAGE_NEW/DEPLOY_PATH empty - resolves 5s fake-success deploys using stale :latest image 2026-09-12 00:40:40 +08:00
Henry_Du 87276f5add fix(ci): bump preflight node heap from 2G to 4G - resolves TASK-67 nitro esbuild OOM exit 137
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Successful in 2m9s
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Successful in 10m19s
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Successful in 5s
2026-09-12 00:20:08 +08:00
Henry_Du 0e60f15cfe feat(theme): sync defaultTheme=ClassicLight enabledThemes=[ClassicLight,ModernLight] across all 6 fallback locations
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Failing after 2m50s
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Skipped
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Failing after 3s
2026-09-12 00:13:27 +08:00
Henry_Du 6462b1b8a1 fix(ci): embed python scripts as base64 to avoid YAML block scalar + preflight indentation conflict - resolves TASK-63 build-image IndentationError: unexpected indent
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Successful in 2m8s
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Successful in 10m12s
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Successful in 18s
2026-09-11 23:35:12 +08:00
Henry_Du cc142a58bc fix(system-settings): correctly balance fillDefaults arrow brackets L844 - 3 RPAREN after null (logic/filter/fromEntries) then RCURLY then outer RPAREN, IDE 0 diagnostics
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Successful in 4m12s
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Failing after 4m58s
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Skipped
2026-09-11 23:09:29 +08:00
Henry_Du 285dd24463 fix(system-settings): resolve index.post.ts L844 syntax error Expected ')' but found 'if' - fillDefaults arrow return/object literal close brackets order
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Failing after 1m33s
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Skipped
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Failing after 4s
2026-09-11 23:01:56 +08:00
Henry_Du 5c44fca146 chore(deps): sync package-lock.json; add @parcel/watcher 2.6.0 + platform optionals (fix npm ci EUSAGE)
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Failing after 1m36s
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Skipped
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Failing after 3s
CI npm ci was failing with EUSAGE because upstream packages (Nuxt/Rolldown ecosystem) list @parcel/watcher in peerDependencies (^2.5.6) and optionalDependencies (^2.4.1), but the lockfile was missing the concrete @parcel/watcher@2.6.0 entry. Error message from runner: Missing: @parcel/watcher@2.6.0 from lock file.

Fix: re-ran npm install --ignore-scripts (skip local postinstall which fails on non-linux v24 Node) with npmmirror registry and --legacy-peer-deps to refresh package-lock.json only; this materializes node_modules/@parcel/watcher@2.6.0 plus 14 platform-scoped optional packages (@parcel/watcher-{android-arm64,darwin-arm64,darwin-x64,freebsd-x64,...}). Resolved URLs point to registry.npmmirror.com so CI npm ci install is fast.

Result: CI npm ci will pass the package-lock sync check and proceed to install; --legacy-peer-deps is preserved on the CI command line as before.
2026-09-11 22:51:47 +08:00
Henry_Du 0373c19b54 fix(ci): remove actions/setup-node; use npmmirror/gh-proxy for all remote fetches
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Failing after 8s
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Skipped
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Failing after 3s
Issue: actions/setup-node@v4 directly connects to https://github.com/actions/node-versions/releases/download/... to download Node tarballs (log line Acquiring node-v*-linux-x64.tar.gz), which is throttled or connection-reset from inside China, causing preflight to hang until 15m timeout.

Fix: align preflight with build-image job policy (NO third-party 'uses:' directives, ALL remote resources use CN mirrors or GH_PROXY_PREFIX):

- Remove uses: actions/setup-node@v4 completely; replace with plain run steps

- 3-tier Node 22 readiness with zero direct github.com connections:

  1) Fast path: reuse Runner's system node if major version >= 22, skip download entirely

  2) Primary: fetch Node 22 tarball from npmmirror CN binary mirror (https://registry.npmmirror.com/-/binary/node/...) and auto-resolve latest 22.x patch via npmmirror index.json using python3 single-quote script + printf stdin (NO heredoc, which previously caused YAML block-scalar indentation parse errors)

  3) Fallback: GH_PROXY_PREFIX + official nodejs.org dist URL for the same tarball (proxied, never plain github.com)

- NODE_VERSION_FALLBACK=22.13.0 fixed guard when index resolution fails

- Post-install: prepend new node bin PATH to GITHUB_ENV so subsequent steps (clone / npm ci / nuxt build) inherit Node 22 automatically

- Audit: grep deploy.yml now yields zero 'uses:' directives
2026-09-11 22:46:40 +08:00
Henry_Du afb4cd3669 fix(ci): 修复 deploy.yml YAML 语法错误(line 177 could not find expected ':'),消除 heredoc 与块标量缩进冲突
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Failing after 15m2s
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Skipped
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Failing after 3s
- 根因:build-image job 注入 Docker daemon.json 时用了 bash heredoc <<'PY'...PY;heredoc 内部 Python 代码在 YAML 文件里缩进为 0,触发 run:| 字面块标量提前结束;Gitea YAML 解析器尝试把下一行解析为新的 key 却找不到冒号 → 抛 line 177 could not find expected ':',整个 workflow 无法触发
- 修复:移除 heredoc 结构,改为 PY_CODE 单引号字符串 + printf '%s' | python3 - stdin 管道传递;单引号内所有 Python 行统一保持与外层 shell 语句一致的 12 spaces 前导缩进(满足 YAML 块标量 ≥ 10 spaces 基础缩进要求);Python 顶级代码统一缩进 12 spaces,块内再缩进 4 spaces,避免 IndentationError
- 验证:IDE YAML 诊断 0 错误;Gitea Actions 页左侧 deploy.yml 红色感叹号应立即消失,可正常触发 run
2026-09-11 22:28:42 +08:00
Henry_Du 124280a92f fix(ci): 消除 preflight Set up job docker pull 卡点,改用宿主机 Node 22 + daemon.json mirrors + Dockerfile ARG 双保险
- preflight:删除 container.image: node:22-bookworm-slim,避免 Runner 在 Set up job 阶段独立 docker pull(国内连 Hub 被限速一直卡)
- preflight:改用 runs-on 直出 + actions/setup-node@v4 装 Node 22,npm registry 设 npmmirror
- build-image:python3 合法合成 /etc/docker/daemon.json 注入 3 组 docker.io registry mirrors(daocloud/1panel/1ms.run),systemctl→service→失败跳过 三级 non-intrusive 重启 docker
- Dockerfile:新增全局 ARG DOCKER_MIRROR / NODE_BUILDER_TAG / NODE_RUNTIME_TAG,FROM 统一前缀化;本地开发 DOCKER_MIRROR 为空时等价原写法,体验不变
- buildx BUILD_ARGS:新增 3 个 --build-arg 把 DOCKER_MIRROR_PREFIX / NODE_BUILDER_TAG / NODE_RUNTIME_TAG 传入,CI 拉 node:22-alpine 必走国内源
- 修复后:workflow 触发时 Preflight 日志不会再出现 Starting job container / docker pull image=node:***-bookworm-slim;前面 system-settings defaults 兜底修复可顺利部署上线
2026-09-11 21:59:19 +08:00
Henry_Du 13b9b72170 fix(system-settings): 修复线上主题/排期/聚合登录等配置缺失,对新 DB 字段用 SYSTEM_SETTINGS_DEFAULTS 兜底 + 更新接口允许写入新字段 + 缩短 Redis 缓存 TTL
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Failing after 15m0s
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Skipped
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Failing after 3s
- site-config.get.ts:filterPublicSettings 和 Redis/DB 命中分支全部先合并 SYSTEM_SETTINGS_DEFAULTS,解决老库无 schema 新字段导致 public 返回 defaultTheme=light、enabledThemes=light,dark 等旧值的问题
- admin/system-settings/index.post.ts:新增 ~40 个白名单字段(主题/排期可见范围/留言自动审查/OAuth 聚合/首次强制改密/投稿限制/卡密/注册审核/自动备份/统计代码等),支持管理面板保存生效;更新返回结果用 fillDefaults(DEFAULTS) 兜底
- admin/system-settings/index.ts (GET):返回 DB 记录前合并 SYSTEM_SETTINGS_DEFAULTS,避免管理后台 UI 拿不到新字段
- cacheService.ts:CACHE_TTL.SYSTEM_SETTINGS 3600s → 900s(60min→15min),防止 Redis 单机挂或旧脏值导致配置变更长时间不生效
2026-09-11 21:39:45 +08:00
Henry_Du daa86ef50f fix(song-management): add lang=ts to script setup to fix catch type annotation SFC parse error
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Successful in 3m25s
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Successful in 9m14s
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Successful in 6s
2026-09-06 17:58:38 +08:00
Henry_Du bd8df1f026 feat(songs): 歌曲管理支持批量驳回、投稿留言自动审查与排期范围可见性过滤
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Failing after 6m31s
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Skipped
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Failing after 4s
- 新增 /api/admin/songs/batch-reject.post 批量驳回接口(事务清排期/投票/扣接纳数/黑名单去重/异步通知)
- requireSongAdmin 三角色校验 + createApiError 统一错误包装
- scheduleDaysBefore/After 四字段排期可见范围限制(开放 API 与公开排期接口三处缓存路径 + DB 条件过滤)
- submissionNoteAutoModeration 基于黑名单 KEYWORD/LANGUAGE/GENRE 自动判定留言 publicStatus,命中自动关闭 submissionNotePublic
- 更新 songs/request.post 与 songs/[id]/update.put 接入自动审查逻辑
2026-09-06 17:03:20 +08:00
Henry_Du 43e2a05666 fix(ci): docker-compose.override.yml 生成方式从 heredoc 改 printf 单行拼,彻底绕开 bash heredoc 结束分隔符必须行首 + 变量不展开 + YAML parser 误判 services: 三重坑
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Successful in 2m22s
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Successful in 9m14s
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Successful in 6s
2026-09-06 15:10:36 +08:00
Henry_Du 732c9c6725 fix(ci): deploy Job 增加目录可写性预检查 + docker-compose.override.yml heredoc 分隔符改 COMPOSE_OVERRIDE 并对齐缩进(绕开 YAML parser 误判 + 权限问题友好排查)
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Successful in 2m31s
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Successful in 9m16s
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Successful in 4s
2026-09-06 14:17:05 +08:00
Henry_Du 496edf9f71 fix(ci): buildx build --load -> 宿主 docker push 两阶段,彻底绕开 buildkitd OAuth2 空 token 推送失败
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Successful in 2m35s
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Successful in 9m43s
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Failing after 4s
2026-09-06 13:55:40 +08:00
Henry_Du 2097608f51 fix(ci): buildkitd.toml 注入 Gitea Basic Auth 凭据,绕开 OAuth2 空 token(authorization server did not include a token)
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Successful in 2m26s
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Failing after 7m35s
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Skipped
2026-09-06 13:42:04 +08:00
Henry_Du 455438aa64 fix(ci): Docker Registry 仓库路径 owner/repo/tag 强制全小写,修 repository name must be lowercase
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Successful in 2m30s
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Failing after 17m18s
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Skipped
2026-09-06 13:17:50 +08:00
Henry_Du d98fe53658 fix(ci): docker buildx build 删除不支持的 --context flag,改为末尾位置参数 .
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Successful in 2m57s
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Failing after 4m14s
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Skipped
2026-09-06 12:23:15 +08:00
Henry_Du 7b8dabdb49 perf(ci): buildx builder 预拉 moby/buildkit 走国内 registry-mirrors,提速启动 5-10 倍
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Successful in 2m26s
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Canceled after 0s
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Canceled after 52s
2026-09-06 12:19:49 +08:00
Henry_Du e65c65d8e3 fix(ci): 构建 Job 修复 buildx create 空 env= 参数导致的 invalid driver option env 报错
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Successful in 2m29s
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Failing after 14m44s
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Skipped
2026-09-06 11:59:42 +08:00
Henry_Du d247cfbda3 refactor(cleanup): 清理第二轮非酷狗组件残留(PlaylistSelection/NeteaseUpload/BilibiliIframe)
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Successful in 2m22s
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Failing after 4m3s
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Skipped
- RequestForm.vue:删除 PlaylistSelectionModal.vue / NeteaseUploadDialog.vue 2 行无效 import
  (2 组件在合并阶段已物理删除,grep 确认无 ref / 赋值 / template 渲染段残留)
- AudioPlayer.vue:彻底清理 BilibiliIframeModal 相关 8 处残留:
  ① 封面点击事件 @click 三元嵌套语法 bug 修复 → 简化为 !isMobile ? toggleLyrics()
  ② 删除 v-if=false 的「观看视频」Icon 按钮(保留歌词按钮)
  ③ 删除 ClientOnly 包裹的 BilibiliIframeModal 渲染段
  ④ 删除 BilibiliIframeModal.vue / getBilibiliUrl 2 行 import
  ⑤ 删除 showBilibiliIframe ref 定义
  ⑥ 删除 resolveFallbackUrl 中 if(false) 包裹的 bilibili 死代码分支
  ⑦ 删除整个 openBilibiliVideo 函数(含 iframe 预览 + 新窗口跳转逻辑)
  ⑧ handlePlayerClick 移动端逻辑简化为直接 toggleLyrics(移除 bilibili 平台分支)
- 验证:
  ・IDE GetDiagnostics 0 error / 0 warning
  ・grep 本轮 3 Modal 关键字在 app/components 下 0 命中(仅 utils/url.ts 保留 getBilibiliUrl
    工具函数定义,未被 import,不影响 build)
  ・上一轮 4 Modal(NeteaseLogin/PodcastEpisodes/BilibiliEpisodes/RecentSongs)
    grep 0 命中(持续干净)
2026-09-06 11:50:33 +08:00
Henry_Du 167b60a368 fix(ci): 修复 Preflight/构建 Job 源死循环(ca-certificates 与 HTTPS 镜像源鸡生蛋问题)
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Failing after 1m36s
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Skipped
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Failing after 4s
- env 新增 HTTP/HTTPS 双套镜像源变量(Debian bookworm + Ubuntu 22.04)
- Preflight(Debian slim 容器):Step 0 先用 HTTP 清华源 apt-get 装 ca-certificates
  + update-ca-certificates;Step 1 有证书后再切 HTTPS 清华源装 git/curl
- build-image(Ubuntu 宿主 Runner):apt-get 用默认 HTTP archive.ubuntu.com 先装
  ca-certificates;之后再 sed 换 HTTPS 清华源,避免同样的证书死循环
- 本地 yaml.safe_load 验证通过(YAML_OK);grep uses: 0 行;grep GH_PROXY_PREFIX 7 处
  全部走用户指定的 https://v4.gh-proxy.org/ 前缀
2026-09-06 11:40:32 +08:00
Henry_Du 10117fc7e2 perf(ci): 所有 Job Debian/Ubuntu 换清华源 + GitHub 访问统一走 v4.gh-proxy.org 前缀代理 + Buildx registry-mirrors
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Failing after 8s
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Skipped
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Failing after 4s
2026-09-06 11:32:31 +08:00
Henry_Du cfd90865c8 refactor(ci): 移除所有第三方 uses action,改用纯 run 命令(规避 GitHub 下载超时)
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Canceled after 0s
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Canceled after 0s
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Canceled after 11m42s
2026-09-06 11:20:52 +08:00
Henry_Du f4aa9884e2 fix: 删除 4 个已清理 Modal 的残留 import/ref/template(ScheduleList + RequestForm)
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Canceled after 0s
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Canceled after 0s
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Canceled after 3m0s
2026-09-06 11:14:30 +08:00
Henry_Du cfe3d5bfc5 fix: 同步 package-lock.json + 删除 qq-music-api 残留 + npm ci 加 --legacy-peer-deps
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Failing after 1m18s
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Skipped
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Failing after 2m1s
2026-09-06 10:58:20 +08:00
Henry_Du 10d363ca2b style(ci): 移除工作流步骤中的 emoji,改用专业风格命名
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Canceled after 4m27s
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Skipped
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Canceled after 5m33s
2026-09-06 10:35:56 +08:00
Henry_Du 97af401d89 fix(ci): Preflight 改为 Gitea 标准 container:image 写法(runs-on 只填 ubuntu-latest,避免 no runner matched)
构建 & 部署 BYW VoiceHub / 构建并推送镜像 (push) Canceled after 0s
构建 & 部署 BYW VoiceHub / 部署到生产服务器 (push) Canceled after 0s
构建 & 部署 BYW VoiceHub / Preflight 语法 & 构建检查 (push) Canceled after 3m0s
2026-09-06 10:32:55 +08:00
Henry_Du 7b3294a380 fix(ci): Preflight 直接跑 docker://node:22-bookworm-slim 跳过 setup-node 下载(国内 GitHub release 超时)
构建 & 部署 BYW VoiceHub / Preflight 语法 & 构建检查 (push) Canceled after 0s
构建 & 部署 BYW VoiceHub / 构建并推送镜像 (push) Canceled after 0s
构建 & 部署 BYW VoiceHub / 部署到生产服务器 (push) Canceled after 0s
2026-09-06 10:30:51 +08:00
Henry_Du 082b5c854c fix(ci): deploy.yml 改为用户真实 GITEA_HOST 和 DEPLOY_PATH(/data/opt/byw-voicehub)
构建 & 部署 BYW VoiceHub / 构建并推送镜像 (push) Canceled after 0s
构建 & 部署 BYW VoiceHub / 部署到生产服务器 (push) Canceled after 0s
构建 & 部署 BYW VoiceHub / Preflight 语法 & 构建检查 (push) Canceled after 3m44s
2026-09-06 10:21:48 +08:00
Henry_Du f999d58eef fix: 删除 voicehub 顶层 cpus/mem_limit,避免与 deploy.resources 重复定义报错
构建 & 部署 BYW VoiceHub / 构建并推送镜像 (push) Canceled after 0s
构建 & 部署 BYW VoiceHub / 部署到生产服务器 (push) Canceled after 0s
构建 & 部署 BYW VoiceHub / Preflight 语法 & 构建检查 (push) Canceled after 4m43s
2026-09-06 09:46:55 +08:00
Henry_Du 3ff6c9dd3e fix: docker-compose 顶级 name 小写合法 + .env.example 补充 REDIS_PASSWORD
构建 & 部署 BYW VoiceHub / Preflight 语法 & 构建检查 (push) Canceled after 0s
构建 & 部署 BYW VoiceHub / 构建并推送镜像 (push) Canceled after 0s
构建 & 部署 BYW VoiceHub / 部署到生产服务器 (push) Canceled after 0s
2026-09-06 09:44:58 +08:00
Henry_Du 47d63a48b0 fix: 修复 Docker Compose v2 严格类型下 cpus 双引号导致 ParseFloat 报错
构建 & 部署 BYW VoiceHub / Preflight 语法 & 构建检查 (push) Canceled after 0s
构建 & 部署 BYW VoiceHub / 构建并推送镜像 (push) Canceled after 0s
构建 & 部署 BYW VoiceHub / 部署到生产服务器 (push) Canceled after 0s
2026-09-06 09:41:34 +08:00
Henry_Du 7421906fb9 fix: 修复 Ubuntu 24.04 下 setup-deploy-user.sh useradd 参数错误(--disabled-password 是 adduser 的)
构建 & 部署 BYW VoiceHub / Preflight 语法 & 构建检查 (push) Canceled after 0s
构建 & 部署 BYW VoiceHub / 构建并推送镜像 (push) Canceled after 0s
构建 & 部署 BYW VoiceHub / 部署到生产服务器 (push) Canceled after 0s
2026-09-06 09:35:33 +08:00