99 Commits

Author SHA1 Message Date
seaislee1209
5bb49b5940 feat: v0.10.3 用户在线状态 + logout 会话清理
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 2m19s
- 用户管理/团队详情/内容资产页用户名前显示在线状态(绿点/灰点)
- 基于 ActiveSession 表判断在线状态(Exists 子查询)
- 新增 POST /auth/logout 接口,退出时清除 ActiveSession
- 前端退出登录时先用 fetch 发 logout 请求再清 token,确保会话被正确删除

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 01:30:30 +08:00
seaislee1209
b25a839d44 fix: updateTeam 类型定义补充 markup_percentage,修复线上构建失败
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 2m40s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 01:23:00 +08:00
seaislee1209
62356c7e3f Merge branch 'main' of https://gitea.airlabs.art/zyc/video-shuoshan
Some checks failed
Build and Deploy / build-and-deploy (push) Failing after 2m56s
2026-03-21 00:44:22 +08:00
seaislee1209
699a390f45 fix: v0.10.2 — admin重新编辑隐藏/frozen防负数/进度条刷新保持/navigate修正
- admin资产页视频详情隐藏「重新编辑」按钮(hideReEdit prop)
- 团管重新编辑跳转修正:navigate('/') → navigate('/app')
- _release_freeze 防止 frozen_amount 变负数
- 生成进度条用 sessionStorage 持久化,刷新页面后从之前位置继续

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 00:24:14 +08:00
seaislee1209
ef2212e345 fix: v0.10.1 验收修复 — 重新编辑按钮/Decimal序列化/仪表盘布局/.env.local自动加载
- 视频详情弹窗「重新编辑」按钮改为所有视角可见(admin/团管点击跳转生成页回填数据)
- 团队详情月消费限额/加价率支持内联编辑,保存后列表同步刷新
- 修复 Decimal not JSON serializable(审计日志 before/after 字段)
- 允许月消费限额输入 -1(不限制),fmtMoney 显示「不限」
- 仪表盘利润卡片移至第二行,团队/用户排行显示有秒数消耗的历史数据
- 资产页视频详情显示参考图片缩略图(reference_urls→references映射)
- Toolbar 预估消耗仅在有内容时显示,全部清空与预估文字对齐
- settings.py 自动加载 backend/.env.local(本地开发免手动source)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 22:38:44 +08:00
seaislee1209
9259988094 feat: v0.10.0 计费体系重构 — 秒数→金额+次数,token追踪,利润分析
## 计费体系
- 团队额度从秒数改为金额(余额/冻结/月消费上限)
- 用户限额从秒数改为次数(每日50次/每月1500次)
- 新增 billing.py 工具模块(分辨率→像素映射 + token/费用计算)
- 扣费流程:预扣制→冻结制(提交冻结预估金额,完成按实际tokens扣费,失败释放)
- 允许小额透支(实际费用超预估时余额可变负)
- 团队加价比例(markup_percentage),创建团队时必填

## Token 追踪
- GenerationRecord 新增 tokens_consumed/cost_amount/base_cost_amount
- 任务完成时从 Seedance API usage.total_tokens 获取精确值
- 生成页显示预估消耗(tokens + 金额),按团队售价计算

## 管理后台
- 仪表盘新增利润分析板块(总收入/成本/利润/利润率 + 团队利润排行)
- 消费记录新增 Tokens/售价/成本/利润列
- 团队管理:充值改为充金额,新增加价比例设置
- 系统设置:默认限额改为次数,新增基础token单价配置

## Bug 修复
- 登录弹窗:拖选输入框内容不再误关闭(onClick→mousedown+mouseup)
- 视频详情弹窗:遮罩层覆盖全视口(left:76px→0),admin/团管侧栏不再露出

## UI 增强
- 图片大图预览:上传区和视频详情弹窗的图片支持点击查看大图(ImageLightbox)
- 移除 adaptive 比例和智能时长选项,确保 token 预估可精确计算
- 视频详情弹窗显示实际消耗 tokens 和费用

## 前端全量更新
- 所有页面秒数显示替换为金额(元)和次数(次)
- TypeScript 类型全量更新
- API 调用参数同步更新

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 20:32:12 +08:00
seaislee1209
277de4651f fix: 管理后台 UI 优化 — 表格撑满全屏 + 弹窗实心背景 + 设置页/仪表盘双列布局
- 所有表格页面移除 max-width: 1200px,撑满可用宽度
- 表格 td 加 white-space: nowrap 防止长文本折行
- AdminLayout 修改密码弹窗 background 改为实心 #16161e(修复半透明看不清)
- 系统设置页改为双列 grid(配额+设备限制并排,公告+异常检测整行)
- 仪表盘改为撑满 + 团队/用户排行双列并排

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 16:47:41 +08:00
zyc
a389495ee7 add change host
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 2m21s
2026-03-20 16:25:22 +08:00
zyc
e04712cc79 feat: 接入阿里云短信告警通知(dysmsapi)
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 2m10s
异常检测触发时,在飞书告警基础上同时发送短信通知。
签名:广州气元科技,模板:SMS_503445109。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 17:23:36 +08:00
seaislee1209
6a0311d599 fix: LoginRecord 创建时显式传 geo 空字段,修复 MySQL 严格模式 IntegrityError
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 2m24s
MySQL 严格模式下 CharField 即使模型定义了 default='',CREATE 不传字段仍报错。
显式传入 geo_country/geo_province/geo_city/geo_source='' 解决。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 16:16:46 +08:00
zyc
cc8cfe60cf Switch deployment from kubectl to SSH for EC certificate compatibility
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 2m33s
K3s uses EC certificates which CI kubectl cannot parse. Deploy via SSH
to server where local kubectl works natively.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 14:57:01 +08:00
zyc
ecde54b8d8 Upgrade kubectl to v1.34.1 for EC certificate compatibility
Some checks failed
Build and Deploy / build-and-deploy (push) Failing after 3m36s
K3s uses elliptic curve certificates which older kubectl versions cannot parse.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 14:50:05 +08:00
zyc
d75d35dfc0 Migrate deployment from Volcengine VKE to K3s
Some checks failed
Build and Deploy / build-and-deploy (push) Failing after 2m22s
- Switch CI/CD target from KUBE_CONFIG_VKE to KUBE_CONFIG_K3S
- Change ingress class from ALB to traefik (K3S built-in)
- Remove VCI annotations from deployments
- Restore imagePullSecrets for SWR registry access

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 14:46:33 +08:00
zyc
caf51b0909 hide cert
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 2m18s
2026-03-19 11:29:52 +08:00
zyc
447585c617 fix cert bug
Some checks failed
Build and Deploy / build-and-deploy (push) Has been cancelled
2026-03-19 11:26:46 +08:00
zyc
c1a0a477d8 add huoshan build
Some checks failed
Build and Deploy / build-and-deploy (push) Failing after 6m0s
2026-03-19 11:19:28 +08:00
seaislee1209
be656900c0 feat: v0.9.7 登录风控第二期 — IP归属地解析 + 异常检测(R1-R5) + 飞书告警 + 自动封禁
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 2m13s
- IP138 在线 API + ip2region 离线库双通道归属地解析,60 秒熔断降级
- 5 条异常检测规则:地区不对/不可能旅行/频繁登录/团队遍地开花/海外IP太杂
- 飞书 interactive 卡片告警(红色严重/橙色警告),含辅助指标
- R2 自动封禁用户、R4 自动封禁团队,封禁即踢下线
- 系统设置页全局配置 + 团队详情页独立阈值覆盖
- 安全日志页面 + 管理员修改密码入口

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 00:02:56 +08:00
seaislee1209
9809c31143 Merge branch 'main' of https://gitea.airlabs.art/zyc/video-shuoshan
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 13m31s
2026-03-18 18:06:59 +08:00
seaislee1209
16916810c9 fix: 内容资产页加载失败时显示具体错误信息
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 18:04:30 +08:00
zyc
9d810eb62a add git action
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 3m36s
2026-03-18 17:34:00 +08:00
seaislee1209
e2973284d0 feat: 账号安全管控 + 内容资产页 + UI修缮 (v0.9.5 & v0.9.6)
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 2m20s
v0.9.5 — 账号安全管控 + 内容资产页:
- 首次登录强制改密(must_change_password + ForceChangePasswordModal)
- 并发会话限制(ActiveSession + SessionJWT认证,可配置桌面/移动端会话数)
- Token生命周期缩短(access 30min, refresh 1天)
- 登录IP记录(LoginRecord模型,为异常检测打基础)
- 内容资产页(超管三级折叠/团队管两级折叠,按需懒加载)

v0.9.6 — UI修缮:
- 侧栏导航排序(内容资产移到用户管理下方)
- 视频网格高度调整(440px,3行+暗示可滚动)
- 秒数单位统一(不再换算为分钟/小时)
- 提示词标签溢出修复 + 弹窗方向自适应

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 12:02:54 +08:00
seaislee1209
45b7ca00d1 fix: 密码弹窗样式对齐 ConfirmModal 规范 (v0.9.4)
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 2m15s
背景 #16161e、圆角 var(--radius-card)、输入框 var(--color-bg-page)、
按钮 8px 圆角、onMouseDown 防拖拽误关、z-index 300

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 17:15:32 +08:00
seaislee1209
b520b429c5 feat: 密码管理 + 错误提示体系统一 (v0.9.2 & v0.9.3)
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 2m22s
密码管理:用户自助修改密码(个人中心弹窗)、管理员重置用户密码(审计日志记录)
错误提示:补全火山 ARK 错误码映射(+7 个)、修复创建失败时前端不显示真实错误、
轮询失败走 ERROR_MESSAGES 映射、前端 catch 统一取后端 message

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 17:12:40 +08:00
seaislee1209
10e5bd57df fix: ALLOWED_HOSTS 改为通配符,解决 Traefik 转发 400 问题
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 2m16s
Traefik 转发请求时 Host 头可能不是原始域名,导致 Django 返回 400。
Ingress 已做域名路由,Django 层无需重复检查。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 07:32:15 +08:00
seaislee1209
cfe5031d62 fix: K8s 健康检查 400 + 补充 generation 迁移文件
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 2m18s
- 健康检查探针添加 Host: localhost 头,解决 Django ALLOWED_HOSTS 拒绝
- 补充 generation 0004 迁移(model choices 标签更新)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 06:59:54 +08:00
seaislee1209
b78a220082 fix: gitignore 排除了 PNG 资源导致构建失败
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 2m12s
- .gitignore 中 *.png 规则误忽略了 web/src/assets/ 和 web/public/ 下的 logo/favicon
- 添加例外规则允许 web 资源目录的 PNG 文件
- 补提交 logo_32/128/512.png + favicon.png
- 审计日志变更详情优化:字段名中文化 + 布尔值显示优化 + 空值兜底

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 05:49:21 +08:00
seaislee1209
e5273540e9 feat: v0.9.0~v0.9.1 — 5层极光首页 + 登录弹窗 + 播放器修复
Some checks failed
Build and Deploy / build-and-deploy (push) Failing after 2m0s
- 全新 Landing Page:Canvas 极光动画(5色光球 + additive blending + blur 融合)
- 暗角/胶片颗粒/渐变遮罩 4 层视觉架构
- 鼠标推动光球交互(lerp 缓动)+ 呼吸效果
- 登录弹窗(磨砂玻璃 backdrop-filter blur)替代独立登录页
- Air Spark 全屏毛玻璃弹窗 + 音乐彩蛋(SVG 音波 + BGM)
- 品牌名 AIRFLOW STUDIO / AI VISUAL NARRATIVE + Space Grotesk 字体
- 路由重构:/ → LandingPage, /login → 自动弹登录框
- 自适应视频播放器比例修复(读取 videoWidth/videoHeight)
- adaptive 英文显示改为中文「自适应」
- 首页音乐泄漏修复(组件卸载时 pause+reset)
- 登录弹窗添加「目前仅限受邀创作者体验」提示

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 05:40:41 +08:00
seaislee1209
6053c9b987 ci: deploy.yaml 添加 DJANGO_SECRET_KEY/DB 密钥引用
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 2m18s
K8s Secret 新增 DJANGO_SECRET_KEY、DB_HOST、DB_USER、DB_PASSWORD,
配合 backend-deployment.yaml 中的 secretKeyRef 使用。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 02:26:01 +08:00
seaislee1209
d9a12af078 fix: v0.8.5 安全加固 — CRITICAL/HIGH 漏洞修复
- C1/C2: 移除 settings.py 中硬编码的数据库密码和 SECRET_KEY 默认值
- K8s: DB_PASSWORD/DB_HOST/DB_USER/DJANGO_SECRET_KEY 改为 secretKeyRef
- H1: DEBUG 默认值从 True 改为 False
- H2: 登录接口添加 ScopedRateThrottle (5/min),全局限流 (anon 30/min, user 120/min)
- H4: Django Admin 仅在 DEBUG=True 时注册
- H6: PromptInput innerHTML 使用 DOMPurify 消毒防止 XSS
- H7: ALLOWED_HOSTS 从 "*" 收紧为实际域名
- H9: Nginx 添加安全响应头 + server_tokens off
- M1: 密码策略加强 (min 8 + CommonPassword + NumericPassword)
- M5: Django 生产环境安全头配置
- L1: 登录接口改为 POST-only

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 02:08:50 +08:00
seaislee1209
4c0605e589 fix: 首尾帧模式 aspect ratio 默认改为 adaptive(自适应)
切换到 keyframe 模式时自动设为 adaptive,API 根据首帧图片比例
自动匹配最接近的输出比例,避免图片与视频比例不匹配。
用户仍可手动选择固定比例覆盖。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 01:33:53 +08:00
seaislee1209
85f76d8543 feat: v0.8.2~v0.8.4 — 管理后台 UI 修复 + 团队详情重构 + 审计日志系统
v0.8.2: DatePicker/Select 暗色主题、公告跑马灯、Toast 全局化、失败原因 tooltip
v0.8.3: 团队详情抽屉→弹窗重构 + 修改秒数池功能 + member_count 修复
v0.8.4: AdminAuditLog 模型 + 12 处管理操作埋点 + 日志查询页面(/admin/logs)

审计日志覆盖所有管理员 mutation 操作(充值、修改额度、创建/禁用用户等),
记录操作人、变更前后值、IP 地址,支持按操作类型/操作人/日期筛选。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 01:18:44 +08:00
seaislee1209
f803a1ba71 feat: v0.8.1 — Seedance API 友好错误提示 + 前端 Mock 数据清理
- 新增 SeedanceAPIError 异常类 + ERROR_MESSAGES 错误码中文映射
- views.py 异常处理区分 SeedanceAPIError,存储友好错误信息
- 移除 DEV 环境 7 个 mock 任务,消除 404 轮询错误

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 22:31:14 +08:00
seaislee1209
32f0ee58f4 feat: v0.8.0 — Seedance API 全流程修复 + TOS 视频持久化
- 新增音频引用传递给 Seedance API
- 视频生成完成后自动持久化到 TOS(永久 CDN URL)
- 移除 ARK_API_KEY 硬编码默认值
- 前端渐进式轮询(10s/30s/60s)替代固定 3 分钟
- TOS 桶切换到 airdrama-media (cn-beijing)
- K8s Secret 注入 TOS 密钥,CI/CD 同步更新

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 21:26:27 +08:00
seaislee1209
add3af7904 feat: v0.7.0 — 确认弹窗 + 秒数显示统一 + 弹窗拖拽修复 + 团队模型完善
- 新增 ConfirmModal 组件,为6处危险操作添加二次确认弹窗
  (禁用团队/用户/成员、删除视频×3处)
- 所有秒数显示统一为千位分隔符+s后缀(如 36,000s)
- 修复 modal/drawer 在 input 中拖拽导致误关闭的 bug
  (onClick → onMouseDown + e.target === e.currentTarget)
- 团队模型完善:三种角色(超管/团管/成员)、四层额度检查、
  团管成员管理页、超管团队管理页
- 关闭公开注册,所有账号由管理员创建

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 20:16:21 +08:00
seaislee1209
f8358a28c6 feat: 前端UI重构 — Air Spark设计系统对标
- 全局样式对标Air Spark设计系统(背景、glass card、配色、圆角)
- 视频详情弹窗(VideoDetailModal)全屏预览+信息面板
- GenerationCard重构:fixed定位tooltip、9:16视频适配、blob下载
- 个人中心:总额度/今日/本月三卡片布局
- Dashboard图表配色统一为#6c63ff主色调
- Sidebar、InputBar、Toolbar等组件样式优化
- 新增AmbientBackground、AssetsPage组件

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 18:48:07 +08:00
zyc
c1f29cbf85 feat: integrate Seedance API key via K8s Secret and auto-create admin user
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 3m46s
- CI/CD creates K8s Secret from Gitea Secrets (ARK_API_KEY not in code)
- Backend deployment reads ARK_API_KEY from secretKeyRef
- Enable SEEDANCE_ENABLED=true in production
- Auto-create admin superuser on container startup if not exists
- Update CLAUDE.md and agent-auto memory docs

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 00:41:22 +08:00
zyc
1f3a955bfb fix time search
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 2m16s
2026-03-13 17:29:01 +08:00
zyc
060d3a726f fix bug report
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 2m16s
2026-03-13 17:17:01 +08:00
zyc
7aa1788035 fix video bug
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 2m52s
2026-03-13 15:47:11 +08:00
zyc
566c3a476f add 存储桶
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 2m17s
2026-03-13 15:38:08 +08:00
zyc
6af651ccd6 feat: duration range changed to 4-15s with 1s intervals
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 2m0s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 11:36:39 +08:00
zyc
9896c0dff0 add log
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 1m58s
2026-03-13 11:24:35 +08:00
zyc
dd7b693c0b fix: @ mention popup appears above cursor with correct positioning
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 1m47s
- Popup now appears above the cursor line (matching reference design)
- Header changed to "可能@的内容"
- @ character stays visible while popup is open, removed on mention select
- All references shown in popup (no dedup filtering)
- Fixed zero-rect fallback using temp marker for empty editor

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 11:14:37 +08:00
zyc
7b804df30f Fix: restore video generation UI features
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 2m1s
- Remove 图片生成 option — only 视频生成 available
- Remove Seedance 2.0 Fast — fixed to Seedance 2.0
- Implement @ mention system with contentEditable editor:
  - Click @ or type @ to show reference popup
  - Select media to insert dimmed mention tag
  - Hover over mention shows media preview tooltip
  - Videos auto-play on hover
2026-03-13 10:59:24 +08:00
zyc
8ef3d17553 Integrate Log Center for error reporting
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 1m57s
- Backend: DRF custom exception handler → Log Center (async, non-blocking)
- Frontend: global error handlers + axios 5xx interceptor → Log Center
- CI/CD: failure step reports build/deploy errors with actual logs
- K8S: add LOG_CENTER env vars to backend deployment
- Registered projects: video_backend, video_web
2026-03-13 10:35:49 +08:00
zyc
b2c60a118f Fix: pymysql import crash in Docker environment
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 1m59s
Docker installs mysqlclient natively, so pymysql isn't needed.
Use try/except to handle both environments gracefully.
2026-03-13 10:31:05 +08:00
zyc
f42eb64e25 Add CI/CD pipeline and K8S deployment
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 3m13s
- Backend/Web Dockerfiles with multi-stage builds
- K8S deployments, services, and ingress for both domains
- Gitea Actions workflow: build → push to SWR → deploy to K3s
- Health check endpoint (/healthz/)
- CORS env var support for production domains
- Nginx reverse proxy for frontend → backend API

Domains:
  - video-huoshan-api.airlabs.art (backend)
  - video-huoshan-web.airlabs.art (frontend)
2026-03-13 10:24:31 +08:00
zyc
304b8e9746 add agent-auto file 2026-03-13 10:03:12 +08:00
zyc
ffe92f7b15 Initial commit: 即梦视频生成平台
- web/: React + Vite + TypeScript 前端
- backend/: Django + DRF + SimpleJWT 后端
- prototype/: HTML 设计原型
- docs/: PRD 和设计评审文档
- test: 单元测试 + E2E 极限测试
2026-03-13 09:59:33 +08:00