# 每日变动 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` — 法律/反馈/订阅/密码 ### 验证 - `make test`: skipped(本机 PATH 无 go) - 需部署后刷新 https://sparkapi.wyrs365.com/docs ### 关联 - 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 ### 使用 ```bash 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 同步说明 ### 变更范围 | 类型 | 说明 | |------|------| | 功能 | 反馈登录/游客分流 | | 数据库 | 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)。 ### 变更范围 | 类型 | 说明 | |------|------| | 功能 | 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)