| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat(ui): 横屏两栏布局 + 补齐报错行解析单元测试 (0.4.1) 横屏两栏(兑现设计稿验证过的方案) - 横屏下编辑器(64%)与输出面板(36%)左右分栏,中间细分隔线; 此前只有「输出面板高度上限 62%」的让位策略,横屏时上下排布 会把编辑器挤到几乎不可用——设计稿 grid 方案已验证两栏收益 - 编辑器区 / 输出区抽成局部 Composable(捕获 ui/vm 闭包), 横竖屏共用同一份内容,避免两份拷贝日后走样 - 拖拽把手仅竖屏渲染;竖屏行为与布局完全不变 单元测试(补上一轮报告中的最大遗留项) - 新增 ParseErrorLineTest:17 个用例与 Python 快速回归版一一对应, 覆盖 Python traceback / javac / flake8 / ./ 前缀 / 绝对路径 / Windows 路径,以及 traceback 头、💡 提示、—— 分隔线、版本号、 时间戳、命令回显六类误报,外加 line 0 钳制与 Int 溢出两个边界 - 引入 testImplementation(junit 4.13.2),跑 ./gradlew :app:testDebugUnitTest - Python 版注释同步更新:不再声称"不跑 Kotlin 测试" 构建 - versionCode 4→5 / versionName 0.4.1:0.4.0 的 APK 无横屏两栏, 同版本号不能有两种内容 - 新排查结论:多个 Gradle daemon 并存会复发 usrtar.zip 的 MD5 哈希 竞态(本次出现在 packageDebug,上次是 compressDebugAssets), 与 gradle.properties 的 parallel=false 无关——daemon 间并发访问 同一 build 目录所致;./gradlew --stop 后单实例构建即稳定 - CHANGELOG 补全 0.4.0 / 0.4.1 两个条目 验证:compileDebugKotlin 通过;单测 17/17;assembleDebug 出包 454MB(versionCode 5),classes5.dex 内可检索到新的 editorArea 布局。 | 1 个月前 | |
test(v0.8.0): 全量测试 + 截图/录屏/宣传片 + GitHub 发布脚本修正 - 新增 tools/demo_record.mjs:本地静态服务 + 系统 Chromium(CDP 实时录屏) 驱动 mockup.html 真实运行 13 道题目(含 numpy/pandas/matplotlib),产出 demo.mp4 与全部截图 - design/mockup.html:新增 v0.8.0 题库(离线数据分析 pandas / 离线可视化 matplotlib 出图)、 6 套编辑器主题切换、Markdown/HTML 实时预览;修复死循环题终止 worker 后不重建解释器导致后续题目卡死 - design/pyworker.js:按 import 自动装载本地 wheel;拦截 matplotlib 显示并回传 base64 PNG - tools/build_promo.py:修正 ffprobe 二进制名;新增 v0.8.0 截图卡片 - tools/publish_github.sh:修正仓库名(x33834/Morningstar202604)与 tag(v0.8.0),编排推送+Release - 全量测试:Kotlin 单元测试 29/29、selfcheck 通过、Web 端到端 13/13 通过 | 1 个月前 | |
test(v0.8.0): 全量测试 + 截图/录屏/宣传片 + GitHub 发布脚本修正 - 新增 tools/demo_record.mjs:本地静态服务 + 系统 Chromium(CDP 实时录屏) 驱动 mockup.html 真实运行 13 道题目(含 numpy/pandas/matplotlib),产出 demo.mp4 与全部截图 - design/mockup.html:新增 v0.8.0 题库(离线数据分析 pandas / 离线可视化 matplotlib 出图)、 6 套编辑器主题切换、Markdown/HTML 实时预览;修复死循环题终止 worker 后不重建解释器导致后续题目卡死 - design/pyworker.js:按 import 自动装载本地 wheel;拦截 matplotlib 显示并回传 base64 PNG - tools/build_promo.py:修正 ffprobe 二进制名;新增 v0.8.0 截图卡片 - tools/publish_github.sh:修正仓库名(x33834/Morningstar202604)与 tag(v0.8.0),编排推送+Release - 全量测试:Kotlin 单元测试 29/29、selfcheck 通过、Web 端到端 13/13 通过 | 1 个月前 | |
chore(release): publish_github.sh 支持 --dry-run 自检;兼容已配置的 github/github-mirror remote - 新增 --dry-run:不触网校验远端仓库、附件齐备性、tag 状态 - remote 解析兼容命名 remote,正式执行时自动补 gh-<repo> - 附件清单:APK / demo.mp4 / promo.mp4 / 测试报告 | 1 个月前 | |
init: DevTerminal v0.1.0 — 完全离线的安卓编程终端 - Kotlin + Jetpack Compose + Material 3,20 个源文件约 3190 行 - 离线执行引擎:ProcessBuilder + termux 环境变量模拟,工具链预打包零网络 - Python 交互式 stdin / Java 多文件编译运行 - SAF 导入导出、设置页、静态补全、友好报错、崩溃日志 - 含高保真交互 UI 原型(design/mockup.html)与静态自检脚本 | 1 个月前 | |
feat(engine): 接入离线真实 Python 运行引擎 + 11 道题库 + 全量端到端测试 (0.5.0) 设计稿 (design/mockup.html) 接入 Pyodide 0.26.4 离线真实解释器: - Web Worker 架构,真实 stdout/stderr 捕获、完整 traceback、input 预喂、 多文件 import、超时中断 - 内置 11 道真实可运行题目(素数筛/递归溢出/语法错误/除零/KeyError/ 多文件导入/长输出/死循环/文件IO/中文Emoji/交互问答) - 报错行点击跳转:traceback 自动变可点击行,与 Kotlin parseErrorLine 一致 修复: - worker 超时提示字符串拼接错误 - traceback 内部帧清洗、中文/Emoji UTF-8 流式解码 - 多文件 import 的 sys.path、setup 与用户代码分离避免行号偏移 测试与交付 (tools/ + test_results/): - test_suite.py 端到端 11/11 通过,test_ui.py UI 覆盖,build_promo.py 宣传片 - 27 张截图 + 测试报告;宣传片/录屏作为 Release 附件 构建: versionCode 5→6, versionName 0.4.1→0.5.0 说明: 本轮核心改动在设计稿与测试工具链,原生 APK 未集成 Pyodide | 1 个月前 | |
refactor(engine): 换用 Pyodide(WASM) 执行引擎,真正做到装完即离线 旧实现依赖 441MB 的原生 Termux 工具链(assets/usrtar.zip),该文件不入库、 必须联网下载,导致「完全离线」名不副实——clone 源码构建出的 APK 根本跑不了代码。 本次重构把执行引擎整体换为 Pyodide(WASM 版 CPython,约 13MB), 运行时随 APK 打包,安装后零下载、零网络即可运行 Python。 核心改动: - 新增 PyodideEngine.kt:内嵌 WebView + WebViewAssetLoader 承载 WASM 运行时, 通过 JavascriptInterface 双向通信,复刻旧引擎公开接口,UI 层零改动 - 新增 assets/python-runner.html:移植 design/pyworker.js 的成熟逻辑 (流式 UTF-8 解码、traceback 内部帧清洗、setup 与用户代码分离防行号偏移) - 删除 TermuxEngine.kt 与 EnvironmentInstaller 的 usrtar 解压/环境变量模拟等死代码 - input() 支持运行中实时喂入(JS 输入队列 + pushInput 桥) - 修复 Flow 收到 Finished 后未 close() 导致 UI 卡在「运行中」的缺陷 - EnvDiagnostics 改为校验 APK 内运行时资源完整性 构建约束: - build.gradle.kts 增加 noCompress += ["wasm","zip"],否则 AAPT 压缩后 WebView 无法加载 WASM(此为 Pyodide 在 Android 上的典型坑) - 新增 androidx.webkit 依赖 能力边界(诚实标注,已在 README/CHANGELOG 说明): - Java 执行下线:JVM 无法运行于 WASM 沙箱,保留编辑与语法高亮 - Git 操作下线:原依赖 git 二进制,后续可用 JGit(纯 Java)恢复 - 性能约为原生的 1/10~1/50 清理: - 删除死脚本 tools/fetch_toolchain.sh、extract_bootstrap.sh、build_offline_bundle.sh - CI release.yml 移除 441MB 工具链拉取步骤,改为校验运行时资源齐备 - design/pyodide/full/ 不再入库(避免 13MB 重复),改用 tools/sync_design_runtime.sh 同步 - NOTICE.md 更正为 Pyodide MPL-2.0 声明 验证: - 沙盒内 assembleDebug 构建成功,APK 31MB - 已确认 pyodide.asm.wasm 与 python_stdlib.zip 在 APK 内为 Stored(未压缩) - 端到端实测 Pyodide 加载并执行 Python 3.12.1,sum(range(101))=5050 正确 净减少 563 行代码。 | 1 个月前 | |
feat(engine): 接入离线真实 Python 运行引擎 + 11 道题库 + 全量端到端测试 (0.5.0) 设计稿 (design/mockup.html) 接入 Pyodide 0.26.4 离线真实解释器: - Web Worker 架构,真实 stdout/stderr 捕获、完整 traceback、input 预喂、 多文件 import、超时中断 - 内置 11 道真实可运行题目(素数筛/递归溢出/语法错误/除零/KeyError/ 多文件导入/长输出/死循环/文件IO/中文Emoji/交互问答) - 报错行点击跳转:traceback 自动变可点击行,与 Kotlin parseErrorLine 一致 修复: - worker 超时提示字符串拼接错误 - traceback 内部帧清洗、中文/Emoji UTF-8 流式解码 - 多文件 import 的 sys.path、setup 与用户代码分离避免行号偏移 测试与交付 (tools/ + test_results/): - test_suite.py 端到端 11/11 通过,test_ui.py UI 覆盖,build_promo.py 宣传片 - 27 张截图 + 测试报告;宣传片/录屏作为 Release 附件 构建: versionCode 5→6, versionName 0.4.1→0.5.0 说明: 本轮核心改动在设计稿与测试工具链,原生 APK 未集成 Pyodide | 1 个月前 | |
feat(engine): 接入离线真实 Python 运行引擎 + 11 道题库 + 全量端到端测试 (0.5.0) 设计稿 (design/mockup.html) 接入 Pyodide 0.26.4 离线真实解释器: - Web Worker 架构,真实 stdout/stderr 捕获、完整 traceback、input 预喂、 多文件 import、超时中断 - 内置 11 道真实可运行题目(素数筛/递归溢出/语法错误/除零/KeyError/ 多文件导入/长输出/死循环/文件IO/中文Emoji/交互问答) - 报错行点击跳转:traceback 自动变可点击行,与 Kotlin parseErrorLine 一致 修复: - worker 超时提示字符串拼接错误 - traceback 内部帧清洗、中文/Emoji UTF-8 流式解码 - 多文件 import 的 sys.path、setup 与用户代码分离避免行号偏移 测试与交付 (tools/ + test_results/): - test_suite.py 端到端 11/11 通过,test_ui.py UI 覆盖,build_promo.py 宣传片 - 27 张截图 + 测试报告;宣传片/录屏作为 Release 附件 构建: versionCode 5→6, versionName 0.4.1→0.5.0 说明: 本轮核心改动在设计稿与测试工具链,原生 APK 未集成 Pyodide | 1 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 |