Releases: joaodrp/omarchy-controld-panel
Release list
v1.0.2
Security fixes, from a review of the whole plugin after two rounds of marketplace review.
- Both process streams are capped at the producer, not only stdout. cdctl reports failures as a
JSON envelope on stderr, so the two are bounded separately rather than merged. - Every
TextstatesText.PlainText. The default isText.AutoText, which reads anything
tag-shaped as rich text, so a looked-up name carrying markup was rendered as markup. - The analytics region must look like a name. It decides the request host, and a
/in it ended
the authority and sent the API token elsewhere. - Analytics requests no longer follow redirects, which
urllibfollows while re-sending the
Authorization header, including to another host and to plain http. --ends option parsing before every hostname, so a name beginning with a dash is a host and
not a flag, and hostnames from the activity log are validated like typed ones.- Row counts asked of the API are enforced where they are read, rather than trusted.
CI now checks the two invariants qmllint cannot express: a Text without an explicit format, and
a command that would run unbounded.
v1.0.1
Bounds every read by size as well as by time.
A marketplace review pointed out that the watchdogs added in 1.0.0 bound how long a command may
run, not how much it may return. StdioCollector holds a whole stream and offers no cap, and the
panel runs inside a shell process that outlives it, so a hostile response or a pathological config
file could exhaust the shell rather than the plugin.
scripts/controld_api.pyreads a bounded number of bytes and reports a body that exceeds it,
for the error body as well as the answer.- Every process the panel runs is piped through
head -cunderpipefail, so the command's own
exit code still reaches the error handling and argv still passes positionally. - The resolver probe caps each section as well as the whole, so one large file cannot crowd out
the sections after it and hide the resolver that answers.
No behaviour change for anyone whose account and configuration are ordinary size.
v1.0.0
What Control D is doing on your machine, in the Omarchy bar.
What it does
- Bypass a host from the activity log when a site will not load, and put the block back.
- Switch which profile your endpoint enforces.
- Add, switch off and delete custom rules.
- Stand Control D down and bring it back.
- Identifies your endpoint from the resolver actually in use:
ctrld,stubby,dnscrypt-proxy,
unbound,dnsmasq, NetworkManager, systemd-resolved, or a bare IPv6 address. - Queries over time, the blocked share, and the domains and filters doing the blocking.
- Keyboard first, with
?for the legend.
Install
omarchy plugin add https://github.com/joaodrp/omarchy-controld-panel.git --enableRequires cdctl, installed and authenticated.
Everything else it uses ships with Omarchy.
Writes go through cdctl and are verified by a read-back. Your API token is read the way cdctl
reads it and sent in a request header only, never a process argument.
An independent project, not affiliated with Control D.