spark-server/docs/daily/2026-09-24-change-list.md
DESKTOP-L8OUL9F\gfl0034 53426af122 feat: 多广场 channel、音乐公开 API 与订阅 package_name
支持 square/squarenovel/squaresteps/squarehealth 实例与 category 筛选;音乐增加免登录 grouped/track;订阅套餐按 package_name 区分;补 migration 0030/0031 与 OpenAPI。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-30 09:02:28 +08:00

9.6 KiB
Raw Blame History

每日变动 2026-09-24

11:12 — 新增 daily-change-list Agent Skill

概要

  • 新增项目 skill:每次完成代码/配置/文档等实质性修改后,在 docs/daily/ 写入或追加当日变动 Markdown。
  • 文件名格式:{yyyy}-{mm}-{dd}-change-list.md(示例:2026-09-24-change-list.md)。
  • AGENTS.md 与 verify-before-done.mdc 已挂接该流程。

变更范围

类型 说明
文档 / 配置 Agent skill、daily 目录说明、Agent 与 verify 规则

主要文件

  • .cursor/skills/daily-change-list/SKILL.md — skill 定义与模板
  • docs/daily/README.md — 目录说明
  • AGENTS.md — 第 7 条引用 skill
  • .cursor/rules/verify-before-done.mdc — 完成前写入 daily

验证

  • make test: skipped(仅 Agent/文档,无 Go 变更)

关联

  • 用户请求:新增每日修改变动 markdown 流程

11:16 — daily 文件名改为 yyyy-mm-dd

概要

  • 每日变动文件命名由 {yyyy}-{dd}-{mm} 调整为 {yyyy}-{mm}-{dd}(年月日 ISO 顺序)。

主要文件

  • .cursor/skills/daily-change-list/SKILL.md
  • docs/daily/README.md、AGENTS.md、.cursor/rules/verify-before-done.mdc
  • docs/daily/2026-09-24-change-list.md(自 2026-24-09-change-list.md 重命名并更新文内日期)

验证

  • make test: skipped(文档)

14:10 — Spark Messenger 主路径接入:好友拒绝 API + OpenAPI

概要

  • 新增 POST /v1/friends/requests/reject,补齐 App 忽略/拒绝好友申请
  • OpenAPI 补全 password-login / set-password / legal / feedback / subscriptions / reject
  • 与 iOS SparkIMClient 主路径路由扩展配套

变更范围

类型 说明
功能 好友申请拒绝
文档 OpenAPI 路径补全
配置 client 模块与 popadmin 三页(同日 WIP)

主要文件

  • internal/module/friend/logic/reject.go — Reject 用例
  • internal/transport/http/handler/friend/handler.go / router.go — HTTP
  • internal/transport/http/docs/openapi.yaml — 规范
  • internal/module/client/**、migrations/0023_*.sql、deploy/popadmin/popadmin.js — 法律/反馈/订阅/密码

验证

关联

  • Spark Messenger 全页面接入检查

14:48 — 修复 make lint / make test

概要

  • 修复 friend_test 中 Accept 双返回值与测试邮箱 OTP
  • 修复 client 模块 goconst/gocritic/goimports;UpsertLegal/UpsertPlan 改为指针入参
  • 补充 client/auth logic 单测以满足 65% 覆盖率门禁

主要文件

  • internal/module/friend/logic/friend_test.go
  • internal/module/client/logic/service.go、model/repo.go
  • internal/module/client/logic/service_test.go
  • internal/module/auth/logic/refresh_test.go、static_test.go
  • internal/bootstrap/app.go、handler/friend/handler.go、handler/admin/client.go

验证

  • make lint: pass
  • make test: pass

15:22 — Git commit 前必须 make test

概要

  • 新增 always-on 规则 git-commit-gate.mdc:Agent 与用户 commit 前须 make test 通过,禁止擅自 --no-verify
  • 新增 scripts/git-hooks/pre-commit 与 make install-git-hooks 安装到 .git/hooks

主要文件

  • .cursor/rules/git-commit-gate.mdc
  • scripts/git-hooks/pre-commit
  • Makefile、AGENTS.md

验证

  • make test: pass

使用

make install-git-hooks   # 本机只需一次

14:55 — 意见反馈区分登录 / 游客

概要

  • POST /v1/feedback 改为可选鉴权:有效 Bearer → auth_type=login + uid;无 token → auth_type=guest,必填 contact(邮箱或手机)
  • 表增加 auth_type / contact;Admin list 支持 ?auth_type=login|guest;popadmin App反馈页加筛选下拉
  • OpenAPI 同步说明

14:53 — Android 白噪音对照后补音乐公开 API

概要

  • 对照 WhiteNoiseJSPPOldAndroid:音乐主路径仍走欢休 app.huanxiu.vip;IM/登录/支付多为旧 JSPP TCP protobuf。
  • 在 Spark V3 风格下补齐迁端缺口:单曲详情、分区嵌套列表、requireMember 筛选;公开路由免登录。
  • 顺手修复先前好友拒绝用例测试(Accept 双返回值、测试邮箱)。

变更范围

类型 说明
功能 反馈登录/游客分流
数据库 migration 0024
管理端 popadmin 筛选
文档 OpenAPI

主要文件

  • migrations/0024_feedback_auth_type_contact.sql
  • internal/module/client/** — entity / logic / repo
  • internal/transport/http/auth.go — /v1/feedback 可选鉴权
  • internal/transport/http/handler/admin/client.go — auth_type 筛选
  • internal/transport/http/docs/openapi.yaml
  • deploy/popadmin/popadmin.js

验证

  • make test: skipped(本机无 go)
  • 需部署并执行 migration 后生效

关联

  • 用户需求:意见反馈分登录与未登录

16:25 — 反馈用例补登录路径断言

概要

  • 补充游客缺 contact 失败、登录态写入 auth_type/uid、AppVersion Header 回填的单测断言
  • auth.go import 顺序整理

验证

  • make test: skipped(本机无 go)

23:30 — 广场机器人 RSS + 媒体压缩检测

概要

  • 广场每 5 分钟由随机 seed 机器人发海外主流媒体公开 RSS 帖(标题+短摘要+原文链接,URL 去重)。
  • 机器人帖 expires_at 默认 15 天,到期软删且 Feed/详情不可见。
  • 用户上传路径:凭证 size + 发帖声明宽高/体积软检测(默认可日志,可拒收)。
  • 机器人配图:入库对象存储前压到最长边 ≤1080;视频路径 ≤720(ffmpeg)。

| 功能 | 音乐公开读 API 增强 | | 文档 | OpenAPI music 路径与 schema | | 修复 | friend Reject 单测 |

主要文件

  • internal/module/music/entity/track.go — GroupedPlaylist / PlaylistGroup
  • internal/module/music/logic/service.go — GetPublic、PlaylistGrouped、PlaylistQuery
  • internal/transport/http/handler/music/handler.go、router.go、auth.go
  • internal/transport/http/docs/openapi.yaml
  • internal/module/music/logic/service_test.go、friend/logic/friend_test.go

验证

  • go test ./...:通过(本机无 make;golangci-lint 与 Go 1.27 export data 不兼容,未跑 lint)
  • music/logic coverage:74.7%

关联

  • 用户:对照 Android 补全 spark-server 缺失 API(不 commit/push)

15:20 — 多广场实例 + 分类筛选

概要

  • 同一套广场能力按 channel 隔离数据:square / squarenovel / squaresteps / squarehealth。
  • 各广场支持分类 Tab:推荐/最新/热门/附近(排序)+ 搞笑/美女(帖标签);附近为 lat/lng 曼哈顿距离 stub。
  • 发帖/点赞/评论/通知水位均带 channel;保留原 /v1/square/... 路径。

变更范围

类型 说明
功能 squarebot 调度、TTL、RSS、配图压缩
配置 media / square_bot
数据库 migration 0026
文档 docs/media.md、docs/square.md

主要文件

  • internal/module/squarebot/logic/* — RSS / Tick / Worker / 压缩上传
  • internal/module/square/logic/bot_publish.go — 发帖 + Expire
  • internal/infrastructure/media/* — 图/视频压缩
  • internal/pkg/media/* — 检测策略
  • internal/bootstrap/app.go — 接线 Start/Stop
  • migrations/0026_square_bot_rss.sql
  • configs/config.yaml

验证

  • make test: skipped(本机无 go)
  • 部署后:go run ./cmd/migrate、go run ./cmd/seed,观察日志 squarebot posted / squarebot expired

关联

  • 用户需求:广场机器人 RSS + 15 天过期 + 后台机器人媒体压缩检测

14:30 — 同开发者应用墙(Discover)

概要

  • 新增免登录客户端接口 GET /v1/developer-apps(别名 /api/client/pop|spark/developer-apps)
  • popadmin「同开发者应用」对接 /api/admin/developer-apps CRUD + 同步官网图标目录
  • 回落默认官网应用目录;migration 编号为 0027(避开已占用的 0024 feedback)

变更范围

类型 说明
功能 同开发者应用列表 API
管理端 popadmin developer-apps 路径可落库
迁移 t_developer_apps 种子数据(0027)

主要文件

  • migrations/0027_developer_apps.sql — 表与种子
  • internal/module/client/logic/developer_apps.go — 业务
  • internal/module/client/model/repo.go — 仓储
  • internal/transport/http/router*.go / auth.go / handlers — 路由与免登录
  • deploy/popadmin/popadmin.js — 客户端路径说明

验证

  • make test: skipped(本机 PATH 无 go)
  • 需部署 spark-server 并跑 migrate 后线上接口才可用;无 DB 时 logic 回落官网默认目录

关联

  • 任务:发现页顶部接入同开发者应用列表(stash 合并进 main)

| 功能 | 多广场 + Feed category 筛选 | | 迁移 | 0031_square_channel_category.sql | | 文档 | OpenAPI {square_channel} 路径;meta 枚举 |

主要文件

  • migrations/0031_square_channel_category.sql — posts/notices/notice_state 加 channel/category
  • internal/module/square/entity/channel.go — Channel / Category 枚举
  • internal/module/square/logic/*、model/* — channel 隔离与 Feed 排序
  • internal/transport/http/handler/square、router.go — 四前缀同路由 + /categories
  • internal/transport/http/docs/openapi.yaml、meta、i18n

验证

  • go run ./cmd/migrate -config configs/config.yaml:通过
  • go test ./...:通过(本机无 make;golangci-lint 与 Go 1.27 不兼容)
  • square/logic coverage:77.5%

关联

  • 用户:spark-server 多广场 + 分类筛选(不 commit/push)