Commit Graph
124 Commits
Author SHA1 Message Date
ila 35ed692c4b feat: 编辑和删除本人书籍与章节 (#10)
- PATCH /books/:id 改名、GET /chapters/:id/source 读取编辑用原文(任意状态)、
  PATCH /chapters/:id 改标题与正文、DELETE /books/:id 与 DELETE /chapters/:id
- 版本门控:任务只在 job.content_sha256 与章节版本一致时才能影响章节;过期版本任务
  被标为 superseded 且完全不触碰章节,认领与恢复扫描跳过并作废它们,重试旧版本任务 409
- 只有正文变化才重新处理:重复保存或改回原内容不新建任务;只改标题不改状态
- 删除在事务内硬删除并沿用外键级联,章节删除后重排序号;个人词条、复习排期与作答记录保留
- 处理中删除章节后,在途任务不再发布也不报错;并发删除同一章由书籍行锁序列化
- 学习端:书名与章节编辑对话框、删除确认弹窗、章节行编辑入口、书库删除提示
- Wiki 记录 Architecture、Business-Rules、Local-Development 与需求更新
2026-09-13 23:20:52 +08:00
ila 65b50d5038 docs: record issue 9 acceptance and merge (#9)
- Home、Project-Profile、Architecture-and-Code-Map、Product-Requirements-Overview
  记录 #9 于 2026-09-13 通过用户验收,PR #28 已 fast-forward-only 合入 main
- 功能提交 61d3f63 与用户验收版本一致;本单没有数据库结构变化,schema 仍为 v6
2026-09-13 22:36:46 +08:00
ila fb256d4916 docs: 记录 #9 已确认的 TXT 导入口径 (#9) 2026-09-11 23:38:38 +08:00
ila 61d3f63c69 feat: 上传 TXT 文件,校验编码后导入本人书库 (#9)
- POST /api/v1/books/upload 与 /api/v1/books/:id/chapters/upload:multipart 上传,
  字段白名单、未知或重复字段拒绝、非 multipart 拒绝、单槽并发门忙时 429
- 只接受 UTF-8(可选 BOM 剥离且不进入原文),UTF-16 按 BOM 识别并给出针对性提示,
  非法字节整体拒绝、不使用替换字符;2 MiB 字节上限之后仍套用单章 100000 码点上限
- 文件只在内存中解码,不创建临时文件;客户端文件名不参与任何路径也不入库
- 解码后交给现有 PasteBook/PasteChapter,分章、任务幂等与崩溃恢复与粘贴完全一致
- 学习端导入页新增「粘贴文本 / TXT 文件」来源切换与客户端预检,session.request 支持 FormData
- gofmt 整理 #8 引入的 import 顺序与空行
- 同步 Architecture-and-Code-Map、Business-Rules-and-Glossary、
  Local-Development-and-Verification、Product-Requirements-Overview 与 Home
2026-09-11 23:37:13 +08:00
ila cd2b893bba docs: record issue 8 acceptance and merge (#8)
- Home、Project-Profile、Architecture-and-Code-Map、Product-Requirements-Overview
  记录 #8 于 2026-09-11 通过用户验收,PR #27 已 fast-forward-only 合入 main
- 功能提交 0328505 与审核整改提交 3258498 均与用户验收版本一致;本次只更新
  验收状态文档与镜像
2026-09-11 22:55:57 +08:00
ila 85b8e24429 docs: 记录 #8 审核整改后的复习口径 (#8) 2026-09-11 22:48:14 +08:00
ila 325849816e fix: 整改 #8 审核问题 R1~R3 (#8)
- R2 并发同键作答:取得词条行锁后加锁复查答案键,stale 插入遇到唯一键冲突转为返回
  已记录结果,不再返回 500;新增两个 goroutine 同键提交的集成用例
- R3 排期:只有新建或状态/等级实际变化才移动 due_at,编辑释义与例句保留原排期,
  逾期词条不会被挤出当天队列
- R3 附带发现:保存未提及等级时保留已获得的等级,阅读器面板不再把 4 级词重置为 1 级
- R1 契约:作答响应 result 只取 applied/stale,另加 duplicate 标记,重放返回首次结果;
  客户端按首次结果计数,本轮只解决卡片而没有新计分时显示完成页而不是空队列
- R4/R5:stale 与重放分别给出角色为 status 的提示,answerId 作用域注释与实现一致
- Wiki 更新 Business-Rules-and-Glossary、Architecture-and-Code-Map、
  Local-Development-and-Verification 并同步镜像
2026-09-11 22:46:23 +08:00
ila ec5ec2db35 docs: 记录 #8 已确认的复习决策口径 (#8) 2026-09-11 20:54:55 +08:00
ila 0328505b77 feat: 完成到期单词复习与幂等答题 (#8)
- schema v6 新增 lexgo_term_reviews 与 lexgo_review_answers:语句都是可重试的加法迁移,
  既有已保存词汇按 created_at 立即进入队列;旧二进制回到 v5 仍可写入个人词条
- 固定间隔表 1/2/4/7/15/30/60 天:答对升级封顶 7、答错降级最低 1、再学一次不改等级,
  答错与再学立即回到本轮;已知与忽略不入队
- GET /api/v1/reviews/queue 与 POST /api/v1/reviews/:termId/answers:按 answerId 去重、
  按 expectedDueAt 判定过期标签页,重复提交与并发都不重复更新次数和间隔
- 学习端新增 /review 路由与到期复习入口,正面挖空例句、答案面评分、完成页与空队列页
- 同步 Architecture-and-Code-Map、Business-Rules-and-Glossary、
  Local-Development-and-Verification、Product-Requirements-Overview 与 Home
2026-09-11 20:54:17 +08:00
ila 527d8af0c4 docs: record issue 7 acceptance and merge (#7)
- Home、Project-Profile、Architecture-and-Code-Map、Product-Requirements-Overview
  记录 #7 于 2026-09-11 通过用户验收,PR #26 已 fast-forward-only 合入 main
- 功能提交 8c0946a 与用户验收版本一致;本次只更新验收状态文档与镜像
2026-09-11 20:29:33 +08:00
ila a5a8c3c72d docs: 记录 #7 已确认的个人词条决策 (#7) 2026-09-11 16:34:54 +08:00
ila 8c0946af9f feat: 保存个人词义与状态,并在其他章节同步显示 (#7)
- schema v5 新增 lexgo_terms:身份为学习者+语言+规范化词形,唯一键保证
  重复保存只更新同一条记录,不产生冲突副本
- POST /api/v1/terms 幂等保存并返回 created,GET /api/v1/terms/:id 仅本人可读,
  章节 tokens 为 word 片段附带 term:{id,status,level}
- 状态与等级边界:新词/学习中/已知/忽略,只有学习中带 1~7 级,其余必须为 0,
  并由数据库检查约束守住
- 学习端面板可编辑释义、例句与学习状态,正文按状态高亮;打开已保存词先读取原内容,
  读取失败时禁用保存,切换账号或退出后清理表单、状态与高亮
- 同步 Architecture-and-Code-Map、Business-Rules-and-Glossary、
  Local-Development-and-Verification、Product-Requirements-Overview 与 Home
2026-09-11 16:32:04 +08:00
ila 33182e584b docs: record issue 6 acceptance and merge (#6) 2026-09-11 14:47:22 +08:00
ila ad31ea4225 feat: Go-only WordNet resources and reader lookup (#6) 2026-09-11 11:59:51 +08:00
ila 8310438bee docs: confirm Go-only NLP implementation scope (#6) 2026-09-11 11:51:18 +08:00
ila b18f9cc4a5 fix: 整改 #5 审核问题 R1~R4 (#5)
R1 追加契约:学习端把新建与追加拆成两个请求体,追加不再发送 language(后端严格
解码会拒绝未知字段,此前真实追加返回 400);补充断言真实请求格式的回归测试。
R2 运行期恢复:启动恢复与运行期清扫合并为一处,worker 每秒把停留超过 15 秒的
processing 任务重新入队,超过 5 次尝试的任务置为 failed(attempts_exhausted);
人工重试重置尝试次数;日志如实区分“已入队”与“等待下一次清扫”。
R3 离页作废在途请求:closeBook/closeChapter 推进请求序号并清理 loading,导入页
在卸载后的成功响应不再触发跳转。
R4 重试自愈:重试被接受后先应用返回的 pending 状态并继续轮询,静默刷新失败不再
让页面停在处理失败。

测试:Go 20 个顶层用例通过(新增 2 项);学习端 38 项通过,其中 7 项在整改前代码
上实际失败;真实联调验证追加可用、被中断任务约 0.5 秒内在运行中自动恢复、重试在
首次刷新失败后自动显示最终结果。

文档:Wiki 先写后回读(架构、业务规则、本地验证),导出核心镜像。
2026-09-11 11:02:32 +08:00
ila a55708cd37 feat: 粘贴英语文本、章节处理与本人阅读 (#5)
schema v3 新增 lexgo_books、lexgo_chapters、lexgo_ingest_jobs;一次粘贴生成一个章节,
原文按收到的字符串逐字保存;处理任务具备持久状态机、启动恢复与 requestId 幂等。
新增书籍/章节/任务 API 一律按认证身份过滤归属,他人编号返回 404,后台任务不使用
客户端用户编号;学习端补齐粘贴导入、书库、章节状态与失败重试、原文阅读与章节切换。

测试:MySQL 集成测试覆盖导入→处理中→就绪→阅读完整路径、失败重试、幂等、越权与
Unicode 原文保真;学习端 Vitest 31 项、Playwright 3 项与构建通过;lexgo_dev 已显式
迁移到 v3,迁移前后既有数据指纹不变。

文档:Wiki 先写后回读(架构、业务规则、本地验证、需求总览、Home),导出核心镜像。
2026-09-11 00:36:23 +08:00
ila ed5da31888 docs: 记录阅读选择验证验收通过 (#4) 2026-09-10 22:52:52 +08:00
ila 8d4a095590 feat: 验证阅读连续选择与范围调整 (#4) 2026-09-10 22:38:44 +08:00
ila 2b6aa90813 docs: 记录英语技术验证验收通过 (#3) 2026-09-10 21:51:21 +08:00
ila b7c976eb75 feat: 验证英语分词、原文定位与离线词典 (#3) 2026-09-10 20:59:18 +08:00
ila 96ac5eb618 docs: 记录日志审计验收通过 (#18) 2026-09-10 20:43:50 +08:00
ila 850c78e2aa feat: 管理端登录日志与操作审计 (#18) 2026-09-10 20:37:46 +08:00
ila 1e77f1026b fix: 重置密码最少六字节并统一账号校验 (#2) 2026-09-10 20:13:38 +08:00
ila b7768c10de fix: 新增学习账号密码最少六字节 (#2) 2026-09-10 20:10:14 +08:00
ila 722ae152ca fix: 登录验证已有密码并保留新密码规则 (#2) 2026-09-10 20:02:49 +08:00
ila cc17d1cce7 docs: 记录 Go 后端 supervisor 托管 (#2) 2026-09-10 19:55:14 +08:00
ila d7b6c6d609 docs: 记录两端 supervisor 启动实例 (#2) 2026-09-10 19:38:14 +08:00
ila 2c8e9b3ca0 feat: 接入两端用户名登录和独立学习空间 (#2) 2026-09-10 17:39:57 +08:00
ila 596543b0e2 docs: 拆分 MVP 四阶段工单并明确用户名登录 (#16) 2026-09-10 17:12:29 +08:00
ila f8260b89ba docs: 校准原型审核状态与验证边界 (#1) 2026-09-10 16:21:29 +08:00
ila 893302c5f8 docs: 确认 MVP 范围并登记 Quant-UX 原型 (#1) 2026-09-10 16:11:38 +08:00
ila ee03bff8b0 docs: confirm multi-user positioning and draft MVP selection catalog 2026-09-10 14:59:20 +08:00
ila 691c93be58 docs: record learner frontend architecture and reuse boundaries 2026-09-10 14:50:37 +08:00
ila be34c402f7 docs: select local go-admin management baseline 2026-09-10 14:39:58 +08:00
ila 20de5e7e4c docs: complete LexGo governance and Windows verification guidance
Validated 20 Wiki pages with sync --verify; all 56 governance tests pass. Product implementation remains pending.
2026-09-10 14:29:24 +08:00
ila ffa81901cf docs: import verified LexGo Wiki baseline
Online sync and strict structure checks pass. Full governance tests identify two documentation gaps; follow-up will add lightweight exemptions and verified Windows shell guidance.
2026-09-10 14:28:41 +08:00
ila 3c161363e1 docs: configure LexGo light governance and preserve research sources 2026-09-10 14:27:28 +08:00
ila ecab899502 docs: 新项目默认采用轻量治理模式 (#33) 2026-09-04 14:14:12 +08:00
ila 8615a4048d docs: 明确人工授权后的执行边界 (#32) 2026-09-04 10:58:14 +08:00
ila 40b99387ad docs: 补充 Windows PowerShell 命令约束 (#28) 2026-09-02 15:21:04 +08:00
ila 90938be380 docs: 统一 Agent 中英文交流规范 (#31) 2026-09-02 15:10:20 +08:00
ila c13f6adb76 docs: 清理轻量治理冲突门禁 (#30) 2026-09-02 10:15:20 +08:00
ila fe795c4367 docs: 增加轻量项目治理模式 (#30) 2026-09-02 10:13:47 +08:00
ila cbdd27d861 perf: 优化 Wiki 镜像增量同步 (#29) 2026-09-02 09:38:09 +08:00
ila 4bbacf4d7f docs: 规范 PowerShell UTF-8 与执行策略 (#28) 2026-08-27 15:01:43 +08:00
ila 0b6ec7675d docs: 记录 #27 验收通过 2026-08-26 16:11:48 +08:00
ila a75a7783dc docs: 明确外部原型仅按需保存快照 (#27) 2026-08-26 16:07:08 +08:00
ila c65e06b7ab docs: 登记线上原型按需导出 (#27) 2026-08-26 16:05:47 +08:00
ila 68cf1f3705 docs: 原型改为线上审核与按需导出 (#27) 2026-08-26 16:03:49 +08:00