Repository navigation
v0.5.0
本次发版完成第三轮客户端 × 后端契约对齐,引入 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_tokenJSON 字段:登录 / 注册 / 刷新接口均显式返回,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_storePRAGMA 调优。 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]区间。OfflineQueue401 / 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+.sha256wordforge-linux-aarch64.tar.gz+.sha256