Repository navigation
v1.2.0
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。