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

LexGo

面向自托管场景的阅读式语言学习项目,规划提供内容导入、阅读查词、词汇与短语、复习和实例管理。

已确认:DevHarness 轻量模式、MySQL 8、go-admin 管理端。工程基础 #2 已通过验收:两端用户名登录、学习账号管理、可撤销会话和本人英语空空间。管理端基于指定 go-admin/go-admin-ui 选用模块,学习端为独立 Vue 3 + TypeScript + Vite 工程,共用 Go 后端和 MySQL 8.4.3。#18 登录日志与操作审计已通过用户验收,支持管理员查询和 90 天保留清理。#5 粘贴导入与章节原文阅读已实现,待用户验收;点词查词、词典、词语状态与复习仍未实现。MVP 定位为“支持多账号、数据独立的自托管学习工具”,先邀请少量用户使用;F01~F12 已确认,X 系列后置。

本地工程基础

运行前在 MySQL 8 中准备项目专用空库,复制 .env.example 为忽略的 .env.local 并填写本机连接及初始管理员密码。首次执行 python scripts/server.py migrate、python scripts/server.py bootstrap;随后执行 python scripts/server.py serve。两端分别通过 npx --yes pnpm@9.15.1 --dir admin dev、npx --yes pnpm@9.15.1 --dir learner dev 启动,首次需安装锁定依赖。

本地入口:学习端 http://127.0.0.1:5173,管理端 http://127.0.0.1:5174。完整安装与测试命令见开发与验证。账号使用用户名,无需邮箱;没有随代码交付的默认密码。

本机三个服务已由 D:/supervisord/supervisord.conf 中的 lexgo-learner、lexgo-admin、lexgo-api 托管,使用时不要重复手动启动同端口。当前 schema v3;从 #2/#18 升级时停止 API,执行 build、migrate 后再启动。审计过期清理可执行 python scripts/server.py audit-cleanup,只影响超过 90 天的日志。

文档与治理

远端为 https://git.ilapage.cn/OPC/lexgo.git,默认分支 main。需要工单的任务以 Gitea 工单为单次任务事实来源;轻量直接实施项通过 Git 提交和结果报告留痕。长期规则以 Wiki 为主源,docs 为单向镜像;默认不创建任务归档。

新项目接入顺序:创建 Gitea 远端仓库并推送当前引导提交,启用工单和 Wiki;优先使用已配置的 Gitea MCP。Home 不存在时先创建并回读 Home,再逐页发布并读取 revision,最后运行下列验证。本地 docs/ 的存在不能证明线上 Wiki 已初始化。

python dev_scripts/harness.py sync --verify
python -m unittest discover -s tests -v

预期同步/严格检查成功且治理测试全部通过。产品验证另见开发与验证页面,治理测试不代表学习业务已实现。当前 MCP 指向另一 Gitea 站点,本轮回退目标站点 API,原因与证据边界见初始化记录。凭据只使用安全配置或环境变量,不写入仓库。

S
Description
No description provided
Readme
5.4 MiB
Languages
Go 41.2%
TypeScript 27.7%
Python 13.9%
Vue 9.1%
JavaScript 5%
Other 3.1%