# 更新日志 Changelog

Any2GGB 所有面向用户的变更都记录在此文件。
版本号遵循语义化版本；页面版本号与「更新日志」浮窗直接读取本文件。

---
## [0.4.5] - 2026-07-13

### Added
- 在线更新正式上线：在「API 设置 → 在线更新」里可检查新版、下载校验、一键重启升级，无需每次重新下载整包。
- 升级时自动保留内置的 GeoGebra 引擎（约 115MB）与你的本地数据，因此后续更新包体积很小、升级很快。

---
## [0.4.4] - 2026-07-13

### Fixed
- 免安装包启动后自动打开浏览器：等服务真正就绪，优先打开局域网地址（同一网络的其他设备也能访问），控制台同时打印本机与局域网两个地址。
- 修复连接本地/局域网模型服务（如 ollama、本机 Cherry Studio 网关）时可能出现的「连接被拒绝」：本机与局域网地址一律直连、不再经系统代理（`HTTP_PROXY`/`HTTPS_PROXY` 等），避免开着代理/VPN 时把本地请求错误地送去代理。连接失败的报错也更清楚，会指出目标地址并提示检查服务是否运行、是否被代理拦截。

---
## [0.4.3] - 2026-07-13

### Fixed
- 线条颜色不再只依赖模型和 GeoGebra 默认主题。新增确定性 2D 样式整理：普通线、线段、圆、圆锥曲线等若未设色，自动补深灰与可读线宽；白色或白底低对比浅色线自动收口为深灰，深红/深蓝等强调色保留。
- 修复 `Polygon` 样式修改不生效：GeoGebra 会为多边形另建边 Segment，并默认命名为 `a/b/c/...`。执行器现在会找到这些真实边，立即重命名到 `a2g_<polygon>_edgeN` 安全空间，避免后续 `c=Circle(...)` 覆盖边并级联删除多边形；再用直接 JS API 同步颜色、线宽与线型。
- 修正提示词中“GGB 默认即黑、通常不必 SetColor”的错误假设；现在要求每个可见线对象明确设深色，多边形需要轮廓时使用封闭 `Polyline` 或逐边 Segment。

### Verified
- 任务 26 的 v3/v4 已复现“脚本写了黑色但正方形只剩四个点”，确认原因是后续圆对象 `c` 覆盖了 Polygon 自动边 `c`。新执行层实测无需改写历史脚本，v3 与 v4 都已恢复四条深色边。
- 25 个 Python 回归测试、前端 JavaScript 语法、多边形边样式传播、等比例坐标与互动 HTML 导出测试通过。

---
## [0.4.2] - 2026-07-13

### Fixed
- 二维视窗不再把 x/y 范围各自强行铺满矩形画布；现在会在完整保留 `# view:` 请求范围的同时扩展较短一边，保证 x/y 每单位的像素长度相同，正方形、圆和角度不再变形。
- 窗口、画布或 GeoGebra 工具栏尺寸变化后会自动按实际 Graphics View 像素宽高重算等比例坐标系。

### Verified
- 新增前端等比例视窗计算回归测试；Python 回归、JavaScript 语法及互动 HTML 导出测试全部通过。

---
## [0.4.1] - 2026-07-13

### Added
- 生成期间显示「■ 停止」按钮，可主动终止当前项目的规划、脚本生成、自愈或等待浏览器验证流程。
- 页面刷新或重新进入项目后会读取后端生成状态；若任务仍在后台运行或存在遗留 pending 记录，停止按钮会自动恢复。

### Changed
- 后端保存每个项目的 asyncio 生成任务句柄；取消时将版本标记为 `cancelled`，释放项目生成锁，并通过 SSE 同步界面。
- 真实模型调用改为可取消的异步 HTTP 请求；点击停止会关闭当前连接，不会只停界面或后续处理。
- 服务异常退出留下的无任务 pending 版本也能通过同一停止入口收口，版本时间线以橙色 `■` 区分已取消版本。

### Verified
- 22 个 Python 回归测试通过，新增覆盖活动任务取消、取消时 HTTP 连接关闭、刷新/重启后的遗留 pending 清理、前端停止控件与取消时间线状态。
- Python 编译、前端 JavaScript 语法及互动 HTML 导出运行测试通过。

---
## [0.4.0] - 2026-07-13

### Added
- 新增确定性 3D 后处理器：在拓扑明确时补齐常见立体棱线，统一点/线/面标签与尺寸，限制面的填充透明度，并移除重复点名；不覆盖模型或用户已经指定的重点线样式。
- 新增精确历史复用：题目、附件哈希、场景、2D/3D、互动开关、供应商、模型与缓存协议全部一致时复用成功脚本，不再调用模型；缓存脚本仍必须经过当前浏览器 GeoGebra 重新执行验证。
- 新增「互动网页」导出：把当前 `.ggb` 快照嵌入 HTML，可拖动图形并使用 GeoGebra 工具栏继续探索。

### Changed
- 3D 后处理进入生成、自动修复和手动保存三条链路；自动内容使用可重建标记块，反复自愈不会重复堆叠命令。
- 历史缓存只保存成功且经浏览器验证的计划和脚本；缓存键不包含 API Key，也不额外保存题目或图片副本。

### Verified
- 18 个 Python 回归测试通过，新增覆盖 3D 样式保护、棱线补齐、幂等性、重复点名清理、缓存隔离/计数、完整复用链路及互动 HTML 导出结构。
- Python 编译检查、两份前端 JavaScript 语法检查与互动 HTML 导出运行测试通过。

---
## [0.3.1] - 2026-07-13

### Added
- 生成选项新增「加入互动」复选框，默认不勾选。关闭时生成纯静态配图；开启后 AI 根据需求设计滑杆、受约束动点、勾选框或动画等互动控件。

### Changed
- 互动设置成为独立硬约束，与场景和 2D/3D 维度共同传入规划、脚本生成、修复与定向编辑提示词。
- 从静态切换到互动或从互动切回静态时强制整体重新规划，避免旧版控件残留或互动需求只做局部修改。
- 后端预检会拦截两类偏差：静态模式意外出现互动命令、互动模式没有实际控件；模型自动修复仍不合格时明确失败，不把错误模式的图交给用户。
- 演示模式同步区分静态/互动脚本，未配置 API Key 时也能体验开关效果。

### Verified
- 11 个 Python 回归测试通过，覆盖默认静态、双向互动预检、方案文字净化、演示模型静态/互动分流及原 v0.3.0 功能。
- Python 编译检查与前端 JavaScript 语法检查通过。

---
## [0.3.0] - 2026-07-13

### Added
- 生成前可选择 **自由 / 解题 / 配图 / 复刻** 四种场景；每种场景在后端使用独立专业约束，分别侧重忠实表达、解题关系与辅助线、规范题目配图、参考图精确还原。
- 生成前可显式选择 **2D / 3D**。3D 脚本支持三维坐标、立体命令、`# perspective: 3d` 与 `# view3d:`，GeoGebra 会自动切到可旋转的三维视图；执行 2D 脚本时会稳定切回平面视图。
- 脚本编辑器新增「保存为新版本」：先在当前画布执行校验，成功后保存脚本、缩略图与 `.ggb` 快照并进入版本时间线。

### Changed
- 生成/修复/定向编辑提示词均感知场景与空间维度；后端会确定性补齐或纠正 `# perspective`，不再完全依赖模型自觉输出。
- 3D 命令速查补充三维点、正方体、棱柱、棱锥、球、平面、圆锥及三维视窗规范。

### Verified
- 真实模型生成 3D 正方体与体对角线成功，浏览器实际切入三维坐标系并落库为版本；同一项目再执行 2D 脚本可正确切回二维视图。
- 手动脚本保存后时间线新增版本，脚本、PNG 与 GGB 快照完整；真实模型定向编辑仅修改目标行并保留其余脚本。
- 6 个新增 Python 回归测试、Python 编译检查与两份前端 JavaScript 语法检查通过。

---
## [0.2.2] - 2026-07-13

### Fixed
- 线条默认黑色/深色，避免出现白色浅色线条（白底看不见）：强化命令速查与配图原则、few-shot 主体图形改用默认黑色；并清理了旧「必须有交互」军规（与静态配图定位冲突）。
- 新建/切换空项目时预览画布未清空的问题：现在会清空画布（新增不产生快照的 clear 方法），步骤栏与「恢复重绘前」一并复位。

---
## [0.2.1] - 2026-07-13

### Added
- **上传参考图/文件让 AI 读取**：上传（或直接粘贴）一张图片，AI 依图还原成干净的题目配图——复刻参考试题插图、复原模糊配图、或对着某道题配图；也支持文本文件（.txt/.md/.csv/.tex）作为题目参考。图片自动等比压缩到 1568px 控制用量；需配置支持视觉的模型（演示模式会忽略图片按文字出图）。
- 导出/复制图片新增「含坐标系」开关（**默认不含坐标轴和网格**，适合几何配图；勾选后带坐标系）。

### Changed
- LLM 抽象层支持多模态：真实端点按 OpenAI 视觉格式传图（`image_url`），参考图透传到「绘图方案」与「脚本生成」两步。

---
## [0.2.0] - 2026-07-13

产品定位简化：从「AI 交互课件」转向「AI 数理配图」——帮数学/物理老师快速画题目配图 🎯

### Changed
- AI 提示词全面改为配图导向：按题目数据取真实比例、标注规范（顶点字母/直角符号/边长）、默认画静态图；只有明确要求时才做滑杆/动点等交互（交互能力完整保留）。
- 界面文案同步调整：教学计划 → 绘图方案，示例改为常见题目配图场景。

### Added
- 预览区显示 GeoGebra 官方工具栏（可一键显示/隐藏）：AI 画完后可直接手动加点、线、标注继续加工。
- 「复制图片」：当前画面一键复制到剪贴板，直接粘贴进 Word/PPT。
- 导出 PNG 升级为高清（2 倍分辨率 300dpi），可勾选透明/白色背景。
- 「恢复重绘前」：AI 重新生成会覆盖画布，现在重绘前自动快照，手动绘制的内容可以一键找回。

---
## [0.1.0] - 2026-07-10

首个 MVP 版本 🎉

### Added
- 一句话生成 GeoGebra 交互课件：教学步骤规划 → GGB 命令脚本 → 浏览器内实时渲染。
- 自愈回路：静态预检（命令白名单/未定义引用/中文标点）+ 前端执行验证 + 自动修复（有界）。
- 步骤播放器：按 `# step_NN` 注释分步呈现，上一步/下一步逐段构造，每步可交互。
- 定向编辑：改一处不重做整片（search/replace 最小改动块）。
- 项目/版本管理：版本时间线、一键回退（脚本重放）。
- 导出：.ggb 文件（GeoGebra 可直接打开）、PNG 截图。
- 多厂商 API 配置（BYO Key，10 家预设 + 自定义）+ 测试连接；无 Key 演示模式离线出课件。
- GeoGebra 引擎自托管（离线可用，不依赖官方 CDN）。
- 在线更新：检查 → 下载校验 → 一键重启升级（免安装包模式）。
