Repository navigation
Releases: ecbob/dsh-window-size-keeper
Release list
v0.1.3 — 打开就是设置的尺寸:Win32 改用本机现编的助手 exe
启动那一下的延迟修复(中英各一段,详情见 CHANGELOG.md / CHANGELOG.zh-CN.md)。
Fixed: DSH used to open at the built-in 1280x820 and only then jump to the configured size - the early restore lost the race with the app's show() by about a second, because the Win32 arm was a powershell.exe agent (process start ~0.8 s plus an Add-Type compile ~0.45 s; first window enumeration 1.24-1.32 s after the plugin's apply, measured). The arm is now a tiny helper exe compiled on the user's own machine with the in-box csc.exe (~110 ms, once), cached next to the state file under a source-digest name and handshake-probed before it is trusted: agent start plus first enumeration 98 ms measured here, and on GitHub's Windows runners the whole compile-and-run group took 756-795 ms against 5,913-6,061 ms for the powershell group. powershell.exe stays as the fallback; a new win32Backend config key (auto / powershell / helper) plus GET /state's win32Backend, win32HelperExe and win32HelperFallback make "which layer is live right now" answerable from the host API. The package still ships no binary. Offline self-check 88 -> 99, and 99/99 inside an installed package as well as on both Windows runners.
本机实测:装好重启后 storages 目录里多出 wsk-agent-<源码摘要>.exe 与同名 .cs,GET /state 报 win32Backend: "helper"、win32HelperFallback: false,窗口外框 180,96 -> 2380,1296 正好是设置的 2200x1200,一出现就是这个尺寸。
安装:dsh plugin --profile desktop add "<这个 .tgz 的绝对路径>",然后完全退出并重启桌面端。装上新版的第一次启动会多付一次现编与 exe 首次执行的成本,从第二次起才是最快的那组数字;不想在本机落 exe 就在 profile 的 cordis.patch.yml 里给这个插件写 config: { win32Backend: "powershell" }。
v0.1.2 — 修「设置页一直读取中」;采样改自适应并跟随手动改尺寸
两处运行期缺陷的修复(中英各一段,详情见 CHANGELOG)。
Fixed: the settings page's "current outer frame" line never left "Loading…" - the loading-state sink was replayed after every successful state read (a regression from the 2026-10-19 i18n round). A new render check pins it across the first refresh, a timer-driven refresh, and a language switch.
Added: adaptive sampling cadence (idle 15 s; 1 s once a change is seen; 10 s tail; the next sample is only scheduled after the previous one returns) plus followManualResize - a manual width/height change becomes the custom restore selection, while a size the plugin set itself never counts. Offline self-check 81 -> 88, and 88/88 inside an installed package too.
安装:dsh plugin --profile desktop add "<这个 .tgz 的绝对路径>",然后完全退出并重启桌面端。
v0.1.1 — 修「设置页一直读取中」;采样改自适应并跟随手动改尺寸
两处运行期缺陷的修复(中英各一段,详情见 CHANGELOG)。
Fixed: the settings page's "current outer frame" line never left "Loading…" — the loading sink was replayed after every successful state read (an i18n round's regression). A new render check pins it across first refresh, timer refresh and a language switch.
Added: adaptive sampling cadence (idle 15 s; 1 s once a change is seen; 10 s tail) plus followManualResize (a manual width/height change becomes the custom restore selection; the plugin's own resize never counts). Offline self-check 81 -> 88 and 88/88 inside an installed package too.
安装:在 DSH 里执行 dsh plugin --profile desktop add "<这个 .tgz 的绝对路径>",然后完全退出并重启桌面端。
v0.1.0 — 窗口尺寸保持 + 设置页中英双语
这个插件干什么
让 DSH 桌面端窗口保持你离开时的大小:记录主窗口最后的外框尺寸(物理像素),下次启动赶在窗口露面之前恢复并居中到工作区——启动动画不会播在错误分辨率上。设置页另有 12 个常用分辨率(1024×768 … 3840×2160)、任意自定义宽高、「恢复时居中」开关与「立即应用当前选择」,选中即生效并持久化。
界面文案中英双语(各 60 条),跟随你在 DSH 里选的当前语言;插件自带的浏览器兜底里只有简体中文算中文,zh-TW / zh-HK / zh-MO / zh-Hant 与任何其它语言一律英文。想钉死哪一边就在 patch config 里写 language: en 或 language: zh。
包里装什么
dsh.bundle 宿主端 + 客户端「设置 → 窗口大小」分区。Win32 走常驻 PowerShell 代理,零运行时依赖,不发任何外部网络请求。
校验(可自己复算)
tarball:11 个文件、75,239 B(未压缩 207,770 B)
SHA-256:e6ca432cec5ddd98273f3a7a2e07e78527423e9534de826632a2c34838bf09de
逐文件摘要、以及同日更早几版(发布前重打)的作废摘要都记在仓库的 RELEASES.txt 里。
装法(桌面端 profile 常见为 desktop)
dsh plugin --profile desktop add ecbob/dsh-window-size-keeper@v0.1.0
dsh plugin --profile desktop add <本 Release 附件的直接地址>
<profile> 的名字由本机决定:看 %USERPROFILE%\.dsh\profiles 下有什么。改过代码后要 profile 重组 + 刷新页面才会看到新界面;之后在 DSH「设置 → 通用 → 语言」里切语言是立即生效的。
自检
81 项离线自检(纯函数 / HTTP 路由 / 真 powershell 代理协议 / 双语词典与语言判定 / 假 DOM 双语渲染)+ 脱敏闸门 scripts/check-sensitive.mjs(9 条规则,禁账号家目录、本机工作区绝对路径、写死的回环端口、凭据样式、邮箱、机器指纹)。
npm run check && npm run scan:sensitive && node scripts/selftest.mjs