0.6.17
修正桌面与移动端目录选择器的归属,并改善慢链路下的首屏加载与重复加载。
- 目录选择器归属:不再向 DSH 注册第二个目录选择器。官方 Desktop 保留自己的原生选择器、添加工作区按钮和
Ctrl+O快捷键,不受移动端影响;专用移动页改用页内文件夹浏览,可编辑绝对路径、逐级返回、重试与取消,返回键先关闭选择器。 - 只读目录列举:为移动页的选择器新增一条需鉴权的只读工作区目录接口,只列举不创建,未授权请求一律拒绝;原有图片选择器及其接口不变。
- 慢链路压缩:HTML 文档与不小于 1 KB、带完整长度的 API 响应启用 gzip;事件流保持不压缩,避免帧被缓冲;未声明
Accept-Encoding的客户端收到的字节不变。 - 启动分批:启动页合并批次的源码预算从 16 MB 降到 3 MB,最多 16 批;起始页启用 gzip,批次在 30 秒内重载可复用本地副本,单一超大模块仍不拆分。
- 资源复用:网关自有的设备级资源从
no-store改为可重新验证,浏览器才会发出条件请求,校验通过时返回 304;配对文档与 API 响应仍不可存储。 - 模块传输体积:模块设置显示传输体积并提供“必需模块”预设,保存前不生效,测量不拖慢普通目录读取。
- 慢请求诊断:API 请求超过 3 秒时记录一条脱敏
slow api样本(方法、一级路由、状态、耗时),便于区分网关等待与 DSH 变慢。
Android App 0.6.7 / build 83 继续适用,本版不含新 APK:下载正式 APK · App 更新与校验文件。插件与 App 版本独立,升级插件不需要重装 App。
已知边界:本版未启用通用 API 短缓存(#263),重复打开同一视图仍会重新请求;被代理的上游静态资源仍可能整包重下(#107)。
感谢 @LUgABeEEE(#259、#260、#261、#262、#263)——这是 @LUgABeEEE 在本仓库的首次贡献——以及 @ChaoPhone(#257)、@bvbhu(#258)。原作者提交记录保留,维护者的兼容性与生命周期修正另行追加。
English
Fix desktop and mobile directory-picker ownership, and improve first-load and repeat-load behavior on slow links.
- Directory-picker ownership: stop composing a second directory picker. Official Desktop keeps its native chooser, the Add workspace action and
Ctrl+Oindependently of Mobile; the dedicated Mobile page uses its own in-page folder browser with editable absolute paths, parent navigation, retry, cancellation and Back closing the picker first. - Read-only listing: add an authenticated, read-only workspace-directory route for that picker. It lists folders without creating them and rejects unauthorized requests; the existing photo picker and its routes are unchanged.
- Slow-link compression: gzip HTML documents and API responses that declare a complete body of at least 1 KB. Event streams stay uncompressed so frames are not buffered, and clients that send no
Accept-Encodingreceive the same bytes as before. - Boot batching: lower the merged start-page source budget from 16 MB to 3 MB with at most 16 batches, gzip the assembled start document, and let batches reuse the local copy on a reload within 30 seconds. A single oversized module is still not split.
- Resource reuse: serve owned, device-scoped resources as revalidatable instead of
no-store, so a browser issues the conditional request at all and receives 304 when the validator matches. Pairing documents and API responses stay non-storable. - Module transfer sizes: the module settings panel shows transfer size and offers a required-modules preset. Nothing applies before saving, and measurement does not delay ordinary catalog reads.
- Slow-request diagnostics: record one redacted
slow apisample when an API request takes 3 seconds or more, separating gateway waiting from upstream slowness.
The plugin and Android App use independent versions. This release contains no native change; Android 0.6.7 still applies and does not need reinstalling. Full changelog · Changes since 0.6.16.
Known limits: the generic short API cache (#263) is not enabled, so reopening the same view still re-requests; proxied upstream static resources may still re-download in full (#107).