v0.24.0
v0.24.0 fixes a class of broken e-book imports and puts the version number where you can always find it.
Publisher-style e-books now import whole. A reader handed us a real commercial EPUB, a Chinese translation of Marcus Aurelius from a Shanghai publisher, and the course it produced was broken in three ways. Chapters without titles received invented names like Chapter 5, numbers that appear nowhere in a book organized into twelve parts. Each part had been split by the publisher into a short title page carrying the part name and a separate body file with no heading at all. And the copyright page plus a link-only table of contents had become lessons of their own.
The vanishing bodies deserve the explanation. A lesson's content is sliced from a single file, anchored at a heading. The AI that structures the course anchored each part to the titled file, which held only a hundred characters of epigraph. The untitled body file, wearing a fabricated name that matched nothing in the book, read as noise and was dropped. Twelve parts of Marcus Aurelius went into the course as epigraphs, and the actual text of the book never arrived. The repair works at the parsing layer, where the lies were born. Title pages now pair with the body file that follows them, epigraph and full text becoming one chapter. Files without titles are labeled honestly as unnamed, and the structuring AI names them from their content instead of trusting a number the parser made up. Copyright pages are caught by their catalogue-field fingerprint, runs of lines starting with book-title, author, ISBN fields, and link-heavy tables of contents by link density. A publisher's promo page carries no high-confidence signal, so it is left for the AI to judge rather than guessed at by rules. The sample book went from 27 broken chapters to 13 correct ones, every part carrying its epigraph and complete body, verified end to end through the real AI.
Old imports clean up safely. Re-importing the same file on the new version cannot read the old snapshot even if it survives, because the import identity is a hash of what the parser produces, and the new parser produces something different. Deleting the old course removes its snapshot outright.
The version number lives in Settings now. An About group at the bottom of the settings page shows the exact build you are running, taken from the build itself, and clicking it opens the releases page to see what changed.
v0.24.0 修复了一类坏掉的电子书导入,并让版本号随时找得到。
出版社式电子书现在能完整导入。 一位读者给了我们一本真实的商业 EPUB,上海译文版的《沉思录》,它生成的课程坏在三处。没有标题的章被安上了"第 5 章"这样的发明名,而这本书的体系是十二卷,书中任何地方都找不到这些编号。出版社把每一卷拆成两个文件,短的扉页带着卷名,随后的正文文件完全没有标题。版权页和一个纯链接的目录页也各自成了一课。
正文为什么会消失,值得讲清楚。 每课的正文从单个文件按标题切片。负责结构化的 AI 把每卷的课锚在带标题的扉页文件上,而那个文件只有一百来字的格言。没有标题的正文文件顶着一个与书毫无关系的假名,在 AI 眼里像噪声,就被丢掉了。于是十二卷沉思录进课程的全是格言,这本书真正的正文从未到达。修复做在解析层,谎话出生的地方。扉页现在与紧随的正文文件配对,格言和全文合成一章。无标题的文件诚实地标注为未命名,由结构化 AI 按内容命名,而不是去相信解析器编出的编号。版权页按著录字段指纹识别,连续多行以书名、作者、ISBN 这类字段开头的版式,链接密集的目录页按链接占比识别。出版社宣传页没有高置信信号,留给 AI 判断,不用规则去猜。样本书从 27 个坏章变成 13 个正确的章,每一卷带着格言和完整正文,经真实 AI 端到端验证。
旧导入可以放心清理。 新版本上重导同一文件,即使旧快照还在也不会被读到,因为导入身份是解析产物的哈希,新解析器的产物已经不同。删除旧课程则会连快照一起清掉。
版本号现在就在设置页里。 设置页底部新增"关于"分组,显示正在运行的确切构建版本,点一下打开 releases 页,看这一版改了什么。