Skip to content

v1.1.0

Choose a tag to compare

@Elevate08 Elevate08 released this 22 Aug 18:44
· 99 commits to master since this release

Attachments, and the stream limits raised in the marketplace listing review.

Every stream the shell buffers is capped at the producer

The panel is part of a long-lived shell process, and it collected complete
command output into memory: the item list, item detail, folders, collections,
organizations, Sends, the session handoff file, the learned-associations file
and diagnostic stderr. Nothing bounded any of them, so a large vault item or a
large list forced an unbounded allocation inside the shell before any
parse-time limit could help.

Quickshell's StdioCollector offers no size limit of its own, so each stream is
now capped where it is produced -- head -c in the command itself -- and the
data never reaches QML at all. Caps are sized to the stream: 16 MB for the item
list, 8 MB for Sends, 4 MB for a single item, 2 MB for folders, collections and
organizations, 64 KB for status and command responses, 8 KB for diagnostic
stderr, 4 KB for session tokens and the handoff file.

A cap must not hide an error. A pipeline exits with the status of its last
command, which is the cap, so set -o pipefail restores the producing command's
status; the one status not forwarded is the SIGPIPE the cap itself delivers when
it truncates an oversized but otherwise healthy stream. Failures are reported as
failures and truncation is not mistaken for one.

Item attachments

Item detail lists the attachments on a login, with their size, and downloads one
to the XDG download directory. The name is sanitised before it becomes a path
and an existing file is never overwritten -- a second download lands beside the
first.