Skip to content

v1.2.0

Choose a tag to compare

@itiswdwa itiswdwa released this 14 Oct 05:12

dsh-android 1.2.0

这一版是应用版本升级,三块改动一起进来:终端重写(亮色白底、弃用 xterm、标签页)、
悬浮球改造(单窗口、状态外部驱动、一堆崩溃与裁切修复)、issue 修复与预装
(#1/#2/#3/#4,含沙箱预装 pnpm 与插件市场)。

1.1.5 的设备需要安装新的 APK。 热更新包不跨应用版本线(应用端按 <app>-t<terminal>- 前缀
判断,1.1.5 的机器不会收到 1.2.0 的热包),设置页里会显示"有新外壳"而不是热更新。

Changed

  • 终端重做:亮色主题下终端是白底(暗色保持原样);弃用 xterm,改成自写的终端渲染 ——
    中文输入法、长按选择复制、方向键/回车/回删、光标位置都按手机的用法重做;底部新增功能键行
    (Esc / Tab / Ctrl / 方向 / 粘贴 / 复制),按下有轻触反馈
  • 终端支持标签页:一个面板里多个会话用 tab 切换(可新建、关闭,最多 4 个);侧边栏「终端」
    重复点只激活已有终端,不再每点一次就新开一个 shell;关掉标签或插件卸载会把 pty 交还
  • 悬浮球改成单窗口:球、输入条、状态气泡现在是同一个窗口(收起=球矩形、展开=条、状态=按文字
    自适应的气泡),形变过程中不再被上层窗口盖住 —— 这是"两条胶囊、动效看不见"的根治
  • 球上的状态改为外部驱动:新增 ball_doing(每次工具调用必带),由独立的状态总结器插件按会话
    事件推到球上,不额外调用模型;干活的模型不再被要求自报状态。停留规则:下一条是"思考中"
    最多等 2 秒,是工具调用最少停 0.5 秒

Added

  • 沙箱预装 pnpm(自包含单文件,随运行时包下发):插件安装 / dsh plugin 这类操作用得上(issue #4)

Fixed

  • 方向键的光标不再"看不见落在哪":以前底部整行输入框会把 ←/→ 吃掉(一个字节都不发给 shell),
    而 xterm 自己的光标又是另一套逻辑;现在只有一条输入路径,屏幕上的光标就是 shell 的光标
  • 键盘收起后能稳定唤回:点一下终端屏幕即可输入;连续尝试失败会给出提示,而不是静默失效
  • 全新安装不再缺「安卓沙箱」设置页与终端按钮(issue #3):播种闸门从"目录是否存在"改成
    "profiles/web/package.json 是否存在"(热包会先把插件目录建出来,目录判断必然被跳过)
  • 已经装坏的设备会被自动补齐:启动时按文件补齐 profile(缺哪行补哪行,从不覆盖用户自己的
    bundle 列表),并把丢失的插件注册行加回去 —— 以前入口都在没注册的插件里,用户无法自救
  • 现有设备自动获得三个内置插件:状态总结器、浏览器预览、插件市场(随热包下发,profile 行自动补)
  • issue #2:装瘦包 / 从没检查过更新的机器上,「下载运行时」按钮点着没反应、文案也看不懂 ——
    按钮原来只认更新清单里的地址,而"装了瘦包、从没检查过更新"恰好是空的。现在它回退到 release 资产
    (releases/latest/download/payload.zip 与 payload.manifest),文案改成一屏可照做的中文引导:
    为什么需要运行时、大约多大、直接下到 App 私有目录(不用自己找位置、解压、手动导入)、下完自动导入、
    看到"已安装"后终端就能用,失败会写明原因并可重试(只改插件引导层,未动 App Java)
  • 侧边栏 ⋯ 菜单:点会话右侧「三个点」时菜单闪现后消失、还直接进了那个会话 —— 根因是我们
    自己的手机布局补丁在 capture 阶段就把抽屉收了起来(菜单的锚点被抽走)。已修并重新注入
  • 球的加载指示真的在转:换成会转的圆环(鲸鱼居中),"思考中"也转圈;固定文案不再每 1.4 秒换词
  • 对勾徽标不再被裁:done 收回成球时 ✓ 收进圆内,不再被圆的边切掉半个
  • 气泡按行数长高(40 / 52 / 72dp):两行字不再被硬塞进球的 40dp 里
  • 不再"莫名其妙重启":morph() 动画完成回调为空时的空指针已兜底,并把所有调用点补齐
  • 球会话不再逼你去 DSH 点选项:球专用会话结构性移除提问卡片、免审批,配 floating-ball
    skill(一句话结论 + 纯文本编号澄清);收件箱自愈 —— 球会话被删掉后,下一句会自动开新线程,
    不再永久哑掉

注意

  • 瘦包(slim)用户:pnpm 随运行时包(payload)一起发,装完瘦包不会自动重新下载 payload。
    要拿到 pnpm(以及本次 payload 内的改动),需要重新下载一次运行时(设置 → 检查更新,约 230 MB);
    在那之前热包只会带来插件、技能与沙箱脚本的改动。装了完整包的不受影响
  • 底部功能键行的轻触反馈、「应用过的热包在重启后不被 APK 内建内容覆盖」、以及侧边栏 ⋯ 菜单
    这三条修复都要等新 APK 装上才生效
    (它们分别落在 App 的 Java 与前端 assets 里);只装热包不生效

安装:下载本页的 dsh-android.apk,覆盖安装即可;会话、API Key、挂载与设置都会保留。
首次启动需要解包内置运行时(约 2 分钟),之后冷启动约 5 秒。完整说明见 README。