All plugins

DSH / BUNDLE / CLIENT-UI

dsh-file-download

v0.5.0KaguraSayuki / dsh-file-downloadd403d3d35e

InstallableBundlesUI & client pluginsCommunity · Topic auto-analysisWeb UI

Overview

dsh-file-download

File browser, download surface, and mode-gated upload for the DSH Web GUI: browse the whole serving filesystem, resume a download with Range, archive folders and selections as streamed ZIPs, and upload with an overwrite prompt under a read-only / workspace-write / full-access policy that defaults to the session's own.

README / EN

Package documentation

Registry summary

File browser, download surface, and mode-gated upload for the DSH Web GUI: browse the whole serving filesystem, resume a download with Range, archive folders and selections as streamed ZIPs, and upload with an overwrite prompt under a read-only / workspace-write / full-access policy that defaults to the session's own.

dsh.pub verifies the pinned bundle contract, runtime facts, and distribution semantics. The complete README remains in the source repository.

Read the full README on GitHub

LIMITATIONS

Known limitations

- **Write scope is narrow by design.** Upload adds a file into an existing directory; it cannot create directories, rename, move, delete, or edit in place. Directories are created by the agent or by `mkdir` in a shell. - **Resume is the browser's.** The route serves `Range`, so the download manager resumes; a client that ignores it simply starts over. A generated ZIP cannot resume, because it has no stable byte identity between requests. - **Archive caps are hard.** A tree over 20000 entries or 2 GiB in total is refused instead of streamed. The total cap keeps every offset inside the 32-bit fields this writer emits, which is why no ZIP64 record is needed; raising it means implementing ZIP64. - **Symlinks and special files are skipped** rather than followed, in listings and archives alike. - **Binary uploads assume a local execution world.** A text upload always goes through the composed filesystem; a binary one is written by the host process, so a backend whose execution world is not this host (a remote workspace) would text-upload correctly but binary-upload to the wrong place. - **Download-all is a burst of downloads.** Browsers may ask for permission or block the extra downloads when a turn has many files; per-file downloads are always reliable. - **A turn's list is bounded by the official row.** Only files the official deliverables row would show are listed: successful first-party mutations and explicit `present` declarations.