v1.1.0 — Security & robustness hardening
Security and robustness hardening release. No new features — everything here makes the plugin safer to run.
Install flow
- Only GitHub repository URLs are accepted (
https://github.com/owner/repoorgit@github.com:owner/repo.git); whitespace, traversal, and non-GitHub hosts are rejected with a clear error (#925 review) - Install output is capped at ~8 KB at write time (drain keeps the clone running), the real exit code is preserved, and
doneis always the final marker so the dialog can never get stuck - Status file created via
mktempunder $XDG_RUNTIME_DIR with 0600 perms; symlink checks on every write (no /tmp race) - 180 s watchdog ends the install dialog if a detached helper dies
Update / Remove / Scans
- Remove, Update, Update-all, repo-link scan, and update-check outputs are capped (8–64 KB) with drain; failed removals now stop the queue and report failure (real exit codes via
PIPESTATUS)
UI hardening
- Every dynamic text sink renders as plain text (
Text.PlainText) — plugin-supplied names, descriptions, URLs, and errors can no longer trigger rich-text resource loading - Tooltips are static strings; the SOURCE button opens only http(s) repository links
Full diff: v1.0.0...v1.1.0