Releases: Miaotofu01/Study-Mate
Release list
v0.2.0
0.2.0 - 2026-09-24
所有提交
-
feat(gpt插件):新增的codex/gpt插件支持 (7e2552e)
-
feat(gpt插件):新增的codex/gpt插件支持 (838604f)
修复 Windows Node 22.19 中文路径下测试示例复制,保留插件导出和课件渲染回归。
安装
DeepSeek Harness (DSH):
npx @yunmiao/studymate@0.2.0Codex / ChatGPT Work:下载同版本 OpenAI 插件 ZIP。解压后按包内使用指南安装;学习数据保存在插件目录之外。
v0.1.5
0.1.5 - 2026-09-24
已合并的 Pull Request
- fix(attachments): render GLOSSARY and RESOURCES markdown to static HTML (#12)
- fix(lesson-design): restore practice stage naming rule (#15)
所有提交
-
fix(安装): install.ps1 加 UTF-8 BOM,PowerShell 5.1 不再按 GBK 解码 (26c2c08)
-
fix(attachments): render GLOSSARY and RESOURCES markdown to static HTML (c9f919c)
-
Merge pull request #12 from yMvvL/fix/attachment-markdown-rendering (2cdba17)
fix(attachments): render GLOSSARY and RESOURCES markdown to static HTML
-
refactor(大纲)!: 删掉节点「过关标准」字段,判分锚下移到 objective 与题目判分要点 (78393eb)
-
refactor(提示词): SKILL 正文改用「代称」指代文件(见 docs/文件归属.md) (326e6f4)
-
fix(lesson-design): restore practice stage naming rule (ff50185)
-
Merge pull request #15 from GodBlessRen/fix/lesson-design-stage-name-rule (ffc2b02)
fix(lesson-design): restore practice stage naming rule
-
refactor(提示词): 精简搜图的提示词 (cf9a72a)
-
refactor(提示词): 精简搜图的提示词 (6575500)
-
refactor(提示词): 精简 11 份规格并统一措辞 (62865ee)
- 删掉 frontmatter 已经强制的机械约束重复(学生不会直接调用你、只能由总控加载、三条边界副本)
- 派工给的值收进 docs/文件归属.md 的角色表,删掉 learning-system 的值映射表
- 目录树、owner 声明、输入节标题三处去重;五份角色统一「## 输入(总控在 prompt 里给)」
- 措辞统一:落盘→写盘、课件三件→课件三份产物、对位→对照、口径→标准
-
docs(设计): 修样例节点字段(补必填 kind、resources 改成对象数组、删已移除的 evidence) (0e343ce)
- kind 是 schema 必填项,样例里缺了
- resources 的元素是 {title,type} 对象,原来写成字符串数组
- evidence 字段已随「过关标准」一并移除,且 schema 是 additionalProperties: false,
这份样例原本过不了 check_curriculum.py(现在只剩样例本身的悬空前置引用)
-
docs(设计): 目录树与角色计数对齐现状,工作区树改用真名 (d58ec68)
- 技能份数 9 → 11,「三个角色」→ 五个角色(资料收集 / 采图 / 课程设计 / 讲解 / 练习评估),共 5 处
- 区域二把预设目录写了两遍,其中一遍漏了点;合并成 ~/.dsh/.agent-presets/learning/
- 区域三的汉化文件名(科目信息.md / 大纲.yaml …)换成真实文件名,并修掉指向
工程约束的失效指针(那份清单现在在《文件归属》) - docs/ 的注释补齐(课件内容格式、文件归属);版本行 v1.3 → v1.4
-
docs: 脚本清单收敛到《工程约束》§四 一处 (7accbfe)
- 工程约束把「脚本一览」从占位符契约里拆出来,独立成 §四(前端选型、实测坑顺延为五、六)
- 使用说明 §五 删掉与它重复的 6 条命令,只留「什么时候跑 + 阻断项 + 退出码」+ 指针
- 使用说明 §三 的脚本指针改成直接指 §四,少一跳
-
docs(导航): 把《文件归属》接进 README 与使用说明 (3765841)
它此前只被《工程约束》引用一次,属于半孤儿文档:
- README 的文档清单、使用说明的「相关文档」都加上它(含一句话定位)
- 使用说明 §六 的目录树旁声明「权威清单在文件归属」,避免两份树各说一套
- 顺带把 README 里工程约束的说明补上「脚本一览」
-
docs(使用说明): 措辞对齐(落盘→写盘、落成→写成、修旧标题指针) (9a8707f)
- 落盘 → 写盘 5 处,落成 → 写成 4 处(与 SKILL 那批统一)
- 「课件三件」→「课件三份产物」,两处指针改指 record-keeping 现在的标题
「课件三份产物的归属(lessons/)」(旧标题已不存在) - 口径 → 标准 2 处
-
docs: 措辞对齐(设计方案、课件内容格式) (61f6414)
- 设计方案:落盘 → 写盘 4 处
- 课件内容格式:落成 → 写成 3 处、核心口径 → 核心约定
- 至此 docs/ 全目录 落盘 / 落成 / 课件三件 / 口径 清零
-
docs(测试): 修自述失真的条数与套件数,补上漏掉的附件渲染套件 (64f6919)
实测(run_tests.sh 全绿)对照后修正:
- run_tests.sh:快测 11 → 12 套、含浏览器 13 → 14 套;安装脚本 30 → 39 项、
提示词规则 417 → 410 条、附件 Markdown 渲染 29 → 32 项 - tests/README:安装脚本 30 → 39 项、位次重排 21 → 22 例、规则条数 417 → 410 条;
表格里补上 test_attachment_render.py(此前整份套件没进表) - 「evidence 字段映射仍留在使用说明」这句不成立:字段本身已删,判分锚是节点
objective + 每题 criteria,改指使用说明 §四
- run_tests.sh:快测 11 → 12 套、含浏览器 13 → 14 套;安装脚本 30 → 39 项、
-
refactor(提示词): 总控盘问优先推荐jupyter (9b0f551)
-
feat(示例): 线性代数示例科目(大纲、三节课、lab、档案) (40edb98)
- 5 个节点:向量与线性组合 / 矩阵与线性变换 / 高斯消元与解的结构(实操)/ 基、维数与坐标 / 特征值与特征向量(实验)
- 前三课各一份内容文件 + 题库(每课 3 个锚点,共 11 道题)+ 渲染产物;正文 186/217/237 行
- lab 0003:只用标准库实现 rref / pivot_columns / rank / solve,留白态 20 条红、参考解 22 条全绿
- 三张自产示意图(脚本 assets/img/gen/linear-algebra-diagrams.py 可复现)+ 完整图片库索引
- 档案:评估记录(节点 1 通过,含缺口与追问)、学习记录(节点 2 带学生原话)、会话摘要、两处误解双落点
- 科目组件三件(style.css / quiz.js / lesson-toc.js)与 templates/assets/ 逐字节一致
-
feat(示例): 计算机网络示例科目(大纲、三节课、lab、档案) (23aab5f)
- 5 个节点:分层模型与封装 / 链路层与以太网帧 / IP 地址、子网与路由(实操)/ TCP 与可靠传输 / 实验:TCP 回显客户端与抓包
- 前三课各一份内容文件 + 题库(每课 3 个锚点,共 12 道题)+ 渲染产物;贯穿线索是「一次网页请求」
- lab 0003:只用标准库(ipaddress)实现 parse_cidr / same_subnet / split_subnet,留白态 30 条红、参考解 17 条全绿
- 档案:评估记录(含学生先漏了帧尾 4 字节、追问后补上)、学习记录、会话摘要、三处误解双落点
- 科目组件三件与 templates/assets/ 逐字节一致;图片库为空索引(三节课全用内联 SVG)
-
chore(示例): 生成示例工作区的页面与共享层(clone 即可点开) (3d2a31f)
- 6 个课件页 + 2 个科目主页 + 根主页 + 术语表/资源清单/学习记录/会话摘要的附件页
- examples/.learning/assets/:整份共享层(sayo + 主题层 + 图标),离线打开不依赖网络
- gen_home.py 链接自检通过;正文里只剩两处「下节课还没产出」的悬空指针(节点 4 规格是暂无课件)
-
feat(检查): check_lesson 增加「本地引用可达」(检查项 10) (629ad38)
页面可以同时「通过全部检查」和「点开是白板 / 404」:检查项 2/3 只核对引用写没写齐、
第 9 项只管 <img>,而 gen_home 的断链自检不管课件页。示例工作区里真踩到两次——
科目 assets/ 缺 quiz.js 与 style.css(页面没样式、题点不动、侧栏出不来),
以及正文里那条 lab 链接指向不存在的 README。- check_lesson.py:新增检查项 10,页面里所有 href/src 的本地目标必须真实存在;
跳过外链/锚点/协议相对 //、HTML 注释里的示例路径、上下节课指针(落空是设计内的),
?查询串 与 #片段 先剥掉、%xx 先解码(与第 9 项同口径) - fixtures.py:临时科目改成真实布局(<root>/.learning/subjects/<slug>/),
并铺共享层、科目组件与科目主页的占位文件——路径写歪了这套测试自己就红 - test_lesson_links.py:10 例(拦 4:正文死链、quiz.js / lesson-toc.js / 共享层缺失;
放行 6:齐全、存在、外链锚点、注释内、带查询串、下节课未产出) - learning-system:检查 FAIL 的归属补一条——缺科目组件或共享层文件是总控自己补齐,不打回角色
- README / 使用说明:阻断项清单补上这一条
- check_lesson.py:新增检查项 10,页面里所有 href/src 的本地目标必须真实存在;
-
test(模板): 新增「模板与规格一致」套件,钉住规格与模板的静默漂移 (29aeabb)
规格是散文(写在 SKILL 与 docs/ 里),模板是另一份文件,两者之间没有测试连着。真出过事:
templates/GLOSSARY.md 一直写 `## Terms`,而 docs/文件归属.md、learning-system、image-scout
三处都按 `## 待掌握` / `## 已掌握` 读词——照模板建出来的术语表,采图查不到主题词、
主页也没有那两节可读。这类漂移不会报任何错,只能靠交叉阅读发现。- test_templates.py:两边一起钉——规格侧仍要求这些分节名,模板侧必须真有;
subject.yaml 的键与 subject.schema.json 完全一致,status 取值在 enum 里(8 项) - run_tests.sh / tests/README:登记为第 14 套快测(含浏览器 16 套)
顺带:templates/GLOSSARY.md 本身已在示例重建那批里改成两节式,这条测试防它漂回去。
- test_templates.py:两边一起钉——规格侧仍要求这些分节名,模板侧必须真有;
-
feat(渲染器): 图注编号交给渲染器(作者只写描述,页内顺序自动编号) (c05a104)
编号是可推导的信息(这一页第几张图),要求作者手写必然漂移——示例里就出过同页两张图都写
「图 1」,两门课的编号口径还不一致(一门整门连续、一门每课重开)。现在渲染器按页内出现顺序
给号,::: figure 与 ::: svg 共用一条序列,输出形如「图 1 · 收拢过程」。- render_lesson.py:新增页内计数器与 numbered_caption();已写「图 N ·」的旧课件会剥掉旧号重编
(所以重渲染幂等,老写法不改也不会重号);没写 caption 的图不编号、也不占号(不出现跳号) - docs/课件内容格式.md:figure/svg 的例子改成只写描述,补上编号规则与「正文里见图 N 要对一遍」的提醒
- learning-coach:caption 口径改成「只写一句话,编号由渲染器加,别自己写图 N」(钉串同步更新)
- test_render_lesson.py:新增 ⑬′ 一组(页内顺序 / 两类图共用序列 / 旧号剥掉重编 / 重渲染幂等 /
空白 caption 不生成图注 / 只数有说明的图) - 示例 6 份课件的 11 处手写编号去掉后重渲染:产物**逐字节相同**,6 页全过检查
- render_lesson.py:新增页内计数器与 numbered_caption();已写「图 N ·」的旧课件会剥掉旧号重编
-
feat(公式): 课件支持数学排版($…$ 行内 /
$$…$$ 块级,离线 KaTeX) (845d8d9)线代示例暴露的真问题:系统里从来没有数学排版这条路(格式文档原来写「要排数学式写 ::: svg,
或用纯文本」),于是矩阵写成 ```text 围栏、公式写成纯文本 + Unicode 下标——语法合规,看着就是没排版。- render_lesson.py:行内 `$…$`、块级 `$$…$$`(整段只有它时出 <div class="math-block">,
段落中间出 <span class="math-block">);判据是「开 $ 后、收 $ 前都不能是空白,中间不跨行」,
散文里的价格写法不误判;没收尾按行号报错(页面只会显示 TeX 原文,看不出错,所以必须拦下);
`\$` 是字面美元号;代码围栏与行内代码里的 `$` 不受影响 - 按需注入:只有页面里真有公式时才在壳里加 KaTeX 三件(katex.min.css / katex.min.js /
lesson-math.js)——非数学课与老课件产物零 diff(模板新增 <!-- @LEARN:MATH --> 占位符) - templates/assets/katex/:KaTeX 0.18.7(MIT)整体 vendor,只留 woff2 字体(20 个,CSS 里去掉
woff/ttf 回退),共 600 KB;templates/assets/lesson-math.js 负责排版,KaTeX 没加载成功时
元素里留着的 TeX 原文照样可读(降级不白屏) - check_lesson.py:新增检查项 11(条件判定)——页面里有 .math-inline / .math-block 就必须带这三个引用
- 共享层清单同步:gen_home.ensure_shared_assets、preview_templates、templates/assets/README.md
- 测试:渲染器 ⑬″ 一组(行内/块级/代码里不解析/\$ 转义/没收尾报错/无公式不注入)、引用套件两条
条件断言、新增真 Chrome 套件 browser/math_test.mjs(断言 .katex 真出现、块级走 display、
KaTeX 字体生效、写错的公式不炸整页);套件 16 → 17 - 文档:课件内容格式第 3 节新增「数学式」、已知边界那条改写;learning-coach 加公式口径;
使用说明与工程约束各补一句
- render_lesson.py:行内 `$…$`、块级 `$$…$$`(整段只有它时出 <div class="math-block">,
-
refactor(提示词): 优化课设规范 (11669ef)
-
docs(示例): 线性代数的公式改成 LaTeX 排版(矩阵、消元链、下标) ([31291ba](https://github.com/Miaotofu01/Study-Mate/commit/...
v0.1.4
0.1.4 - 2026-09-23
已合并的 Pull Request
- Fix/dsh old host graceful degrade (#7)
所有提交
-
Update README to remove studymate commands (14c44f1)
Removed installation and upgrade instructions for studymate.
-
fix: let old DSH hosts skip native plugin loading (fbf7399)
-
test: cover graceful fallback on old DSH hosts (c42e81c)
-
Merge pull request #7 from GodBlessRen/fix/dsh-old-host-graceful-degrade (f839b93)
Fix/dsh old host graceful degrade
-
docs(README):新增配图 (263dd5f)
-
docs(README):新增配图 (1f0953a)
-
docs(README):新增配图 (c9667b8)
-
fix(lesson-design):优化课件提示词 (7813fb1)
-
fix(layered-practice):优化课件提示词 (9da9090)
-
添加项目交流群 (dc53a7c)
-
fix: protect DSH downgrades and make installer migration explicit (883829f)
-
修复:调整 CI 临时目录变量的使用位置 (ca9bec0)
将 DSH 测试路径从作业级环境变量移到对应测试步骤,避免 runner.temp 在工作流校验阶段不可用,恢复兼容性检查的执行。
-
fix:Readme 安装引导 (261f15f)
Updated installation instructions and added emphasis on npm installation.
-
fix(ci):等待 DSH 预设检查的异步结果 (8dcc4fa)
为两处 inactiveRows 检查补充 await,兼容 DSH 0.1.6 的异步返回值及旧版同步返回值,修复发布流程中的测试失败。
验证:DSH 0.1.6-alpha.2 的运行时和 CLI 测试 5 项通过;DSH 0.1.5-rc.2 的运行时测试 2 项通过。
-
fix(发布):纠正修复代码后的重试说明 (d868364)
检查失败后若已有修复提交且尚未创建版本 tag,应从最新 main 新建发布;重跑旧任务不会包含新提交。已有版本 commit/tag 的任务仍重跑原任务,保留原版本的恢复机制。
安装:
npx @yunmiao/studymate@0.1.4v0.1.3
v0.1.2
0.1.2 - 2026-09-23
已合并的 Pull Request
- 修复若干问题 (#3)
所有提交
-
修复安装路径含单引号、方括号等字符时安装失败或配置损坏的问题。 修复重复安装时无法正确沿用带特殊字符工作区的问题。 修复主页漏扫文件、特殊字符链接失效和空大纲显示旧进度的问题。 修复学习目标悬停提示显示成节点标题的问题。 修复非法大纲导致校验崩溃、重复节点造成编号异常及依赖方向提示错误的问题。 修复题目属性误报、多个题目块漏检和异常题库导致渲染崩溃的问题。 修复图片目录被误放行、编码路径误报和绝对路径漏拦的问题。 修复异常题目中断后续练习、无效题目参与计分的问题。 修复题号和反馈前缀破坏代码围栏,以及 Windows 换行解析失败的问题。 修复代码高亮误判字符串、破坏原文及未知语言触发异常的问题。 修复平板侧栏无法展开,以及切换手机布局后上下课导航消失的问题。 修复无题理由回填破坏换行格式、写入失败可能损坏原文件的问题。 修复课件重编号临时文件冲突、失败回滚不完整及恢复提示错误的问题。 修复技能调用开关判断错误、异常元数据中断批量检查的问题。 修复图片池索引放行错误列数、无效日期及非法文件名的问题。 修复 Windows 无法自动打开预览页面的问题。 修正示例答案路径和错误类型声明,并同步示例前端资源。 (d3ff025)
-
fix:修复 MAC 在运行 install.sh 时将紧邻的中文括号误读为变量名 (fb6ffd0)
-
增加 npm 安装方式 (61fc675)
-
Merge pull request #3 from guoweiyi/main (c69a768)
修复若干问题
-
docs: 新增待办清单,方便人工维护 (c8cb604)
-
README:新增前言 (8af8275)
-
README:修改readme (b7e662f)
-
fix(提示词): 按 issue #5 的实测反馈改课件与采图规则 (a4ecc2c)
- curriculum-designer:第一个节点改成用具体材料/案例开场,不再先上全景图
- lesson-design:术语与配图两条改成可执行的要求
- learning-coach:用图前必须先打开图片核对图注;补 SVG 不许写死宽度、字号下限
- image-scout:交稿前跑 check_pool.py 并改到没有为止;主题词以 GLOSSARY.md 为准
- learning-system:开课先写 GLOSSARY.md 的「待掌握」,采图与课件共用同一套词
Refs #5
-
修改:测试文件 (84f3af7)
-
fix(提示词): 第一课禁用学科定义/发展史/本课结构 (632b441)
-
feat(校验): check_curriculum 报依赖位次倒挂 (93d7923)
示例科目 typescript-web-api 现有一处倒挂(exp.pg-and-tests 依赖 test.api),本次未修。
-
docs(README): 加 Star 趋势图 (c79f2cd)
-
fix: 兼容 DSH 新版预设与工作流插件 (cb9e448)
分别适配 0.1.6 工作流更名和 0.1.7 声明式预设,保留旧版安装方式及用户配置。Refs #4
-
ci: 自动生成发布日志并发布 npm 包 (88be504)
手动选择版本增量,经三平台检查后整理合并 PR 和全部提交,更新 CHANGELOG、版本标签和 GitHub Release,通过 npm OIDC 发布。
-
test: 兼容 Windows 临时目录的短路径表示 (0da4ca7)
-
fix: 绕过 Node 22 在 Windows 复制中文目录时的崩溃 (c4b2613)
安装:
npx @yunmiao/studymate@0.1.2