Skip to content

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 19 May 09:41
· 384 commits to main since this release
7fca400

本次发版完成第三轮客户端 × 后端契约对齐,引入 strict-mode 客户端契约 middleware、AMAS 配置 schema codegen 链路、用户反馈端到端通道与 iOS 客户端硬化,并修复多个 admin 后台契约 bug。

✨ 新功能

  • strict-mode 客户端契约 middleware:UA / OS 平台 / 客户端版本三道门控 + 6 个标准错误码(MISSING_USER_AGENT / INVALID_USER_AGENT / MISSING_PLATFORM / INVALID_PLATFORM / CLIENT_OUTDATED / MISSING_FINGERPRINT 等),通过 STRICT_MODE_ENABLED / STRICT_MODE_HARD_BLOCK / MIN_CLIENT_VERSION 环境变量灰度控制(默认 soft-block 仅警告,hard-block 才返回 400)。
  • 用户反馈端到端:新增 POST /api/feedback(用户提交)+ GET /api/admin/feedback(管理列表)+ admin 后台「反馈中心」页面(含分类、来源页、分页)。
  • AMAS 配置 schema codegen:21 个子配置 + 19 类型 derive JsonSchema → GET /api/admin/amas/config/schema 端点 → frontend/src/types/amas.generated.ts(438 行自动生成),消除前端 as unknown as 强转;pnpm gen:amas-types 一键再生。
  • SRS 自评 self_rating 落库:CreateRecordRequest + LearningRecord 新增 Option<u8> 字段,配套 m013 迁移;为未来 AMAS half-life 模型接入打通 DTO。
  • AuthResponse.refresh_token JSON 字段:登录 / 注册 / 刷新接口均显式返回,iOS 客户端不再依赖 cookie jar。
  • SSE new_llm_suggestion 前端 callback:admin advisor 页支持自动刷新,不再需要手动切 tab。

🔧 修复与改进

契约对齐

  • MetricsSnapshot 序列化 snake_case → camelCase,admin 指标表不再为空。
  • /admin/amas/monitoring 响应统一为 {timestamp, eventType, data} 包装,监控页正常渲染。
  • AMAS memoryModel.w 默认权重对齐 FSRS-5 公版,「重置默认」按钮不再注入老调优值。
  • delete_user 级联清理 wb_center_imports 表,注销用户时无残留。
  • 客户端 telemetry payload 层补 MISSING_TIMEZONE / MISSING_LANGUAGE / MISSING_DEVICE_FINGERPRINT 校验。

性能与稳定性

  • SQLite 默认连接池 4 → 16,补 cache_size / mmap_size / temp_store PRAGMA 调优。
  • sqlite_connection_timeout_ms 默认值 250 → 2000,消除 CI inline 测试 flaky。
  • AuthUser / AdminAuthUser 异步上下文迁入 blocking 线程池,不再阻塞 tokio runtime。
  • vitest 改 forks + singleFork,彻底消除 Node 20 libuv IPC race 偶发崩溃。

前端管理后台

  • 抽取 ConfirmDialog 组件,替换 5 处自拼确认弹窗。
  • SystemLockedModal 重构为 Modal 薄包装,焦点 / ESC / 遮罩行为统一由 Modal 接管。

iOS 客户端(WordForge-App#2)

  • refreshAccessToken 显式注入 Authorization: Bearer <refresh> + Keychain 持久化,杀进程 / 重启自动续期。
  • submitVisualFatigue 上报前 clamp [0, 100] 区间。
  • OfflineQueue 401 / AUTH_EXPIRED 立即丢弃 entry,不再计入 consecutiveFailures 死循环。

📚 文档

  • docs/alignment.md:第三轮契约审计完整报告(4 域并发 + cross-validator 终裁 + 落地清单 + 验证命令)。
  • docs/amas-schema-codegen.md:schemars JsonSchema → TS 类型自动生成链路维护手册。

⚙️ 升级备注

  • 配置新增 STRICT_MODE_* / MIN_CLIENT_VERSION 环境变量,未设置时保持 disabled,可直接平滑升级。
  • 数据库自动执行 m013 迁移,无需手工 DDL。
  • 旧客户端在 strict-mode hard_block=true 时会被拒,建议先以默认 soft-block 灰度观察日志再切硬阻断。

📦 构建产物

  • wordforge-linux-x86_64.tar.gz + .sha256
  • wordforge-linux-aarch64.tar.gz + .sha256