Skip to content

XScript v0.2.3

Choose a tag to compare

@JackLuguibin JackLuguibin released this 14 Oct 23:46
· 102 commits to main since this release

XScript v0.2.3 正式版,使用与 v0.2.2 相同的 Release 密钥签名,可直接覆盖升级 v0.2.1 / v0.2.2。主应用版本号 0.2.3,versionCode 5。

下载与安装

  • xscript-v0.2.3-release.apk:Android 8.0(API 26)及以上,包含 ARM64 和 x86_64。
  • SHA256SUMS:安装包 SHA-256 校验文件。
  • 从 v0.2.1 / v0.2.2 正式版可直接覆盖安装;从 Debug 版切换需先导出项目再卸载(卸载会清除应用数据)。
  • 全新安装后需先授予通知权限,HTTP 服务才会启动。

修复

  • 删除工程可能误删工程外的数据:工程内有符号链接时,删除工程或以替换方式导入 ZIP 会跟随链接删除目标内容;现在只删除链接本身,链接目标保持不变。
  • 符号链接越界:读取文件现在与写入一样做工程目录边界校验,文件/文件夹列表不再进入符号链接目录,无法通过链接读取工程外的文件。
  • 并发新建:同时新建同名工程或同名文件时,只有一个请求成功(200),其余返回 409,不会互相覆盖。
  • 网页 IDE 删除:「删除文件」作用于目录树中选中的文件(用方向键选中但未打开的文件也一样),选中 __init__.py 时按钮禁用。

测试

  • 新增网页 IDE 浏览器测试(scripts/tests/editor-dom.test.cjs):用本机 headless Chrome 驱动真实页面,覆盖目录树点击、箭头与行点击、键盘导航、新建/删除流程、标签页与断点清理、语法高亮叠层同步;默认连 mock 设备,设置 XS_DEVICE_URL=http://127.0.0.1:19860 可直接在真实设备上运行。找不到 Chrome 时自动跳过。
  • 新增 Kotlin 单元测试:ProjectRoutesTest(工程/文件接口的状态码与返回内容)、ProjectStoreEdgeTest(符号链接、非法路径、中文名、深层目录、base64、并发新建)。
  • scripts/verify.sh 现在也运行 Kotlin 单元测试(需要 JDK;XS_SKIP_GRADLE=1 可跳过)。

内部

  • 工程/文件接口从 ApiRouter 拆到 ProjectRoutes,错误码映射统一为 ApiRouter.errorReply;接口行为不变。

验证范围

  • Release 构建、签名证书(与 v0.2.2 一致)及 APK 元数据(0.2.3 / 5)校验通过。
  • scripts/verify.sh(含 Kotlin 单元测试和网页 IDE 浏览器测试)通过。
  • 本 Release APK 已在 ARM64 Android 17 模拟器(emulator-5554)上 adb install -r 覆盖安装 v0.2.2 并回归:工程/文件接口冒烟测试、8 路并发新建(1 个 200,其余 409)、XS_DEVICE_URL 浏览器测试 12/12 通过。
  • 符号链接修复只在 JVM 单元测试中验证:设备上工程位于共享存储,系统不允许创建符号链接。未做真机验证。