Releases: jmylchreest/keylightd
Snapshot 0.1.7-dev.1+75d5df2
Snapshot build from commit 75d5df2
Commit: chore(deps): bump all dependencies to latest (#37)
Go modules:
- fyne.io/systray 1.11.0 -> 1.12.2 (drop master-pin replace directive,
SetOnTapped/SetOnSecondaryTapped now in a tagged release) - danielgtaylor/huma/v2 2.37.3 -> 2.38.0
- fsnotify 1.10.0 -> 1.10.1
- go-chi/chi/v5 5.2.5 -> 5.3.0
- assorted indirect bumps (golang.org/x/*, miekg/dns, echo, etc.)
Frontend (tray):
- vite ^5 -> ^8
Frontend (docs):
- @docusaurus/* 3.9.2 -> 3.10.1
- docusaurus-plugin/theme-openapi-docs 4.7.1 -> 5.0.2
- react/react-dom 19.2.3 -> 19.2.7
- typescript kept on ~5.9.3 (TS6 deprecates baseUrl, unsupported by
the docusaurus 3.x toolchain)
CI (supersedes dependabot PRs #34, #35, #36):
- actions/configure-pages v5 -> v6
- murar8/gnome-extensions-action 0.1.0 -> 0.1.1
go vet + full test suite pass; tray and docs builds verified.
v0.1.6
v0.1.5
Changelog
- da04de4 ci(deps): bump geekyeggo/delete-artifact from 5 to 6 (#32)
- 690e789 deps(deps): bump github.com/fsnotify/fsnotify (#33)
- c147cd4 ci(deps): bump actions/upload-artifact from 6 to 7 (#31)
- 8ba8691 ci(deps): bump actions/upload-pages-artifact from 4 to 5 (#30)
- 16c7547 fix(lint): scope tray pprof to dedicated mux with read header timeout
- f1d8106 keylightd-tray: skip redundant systray emits and re-renders
Snapshot 0.1.5-dev.7+da04de4
Snapshot build from commit da04de4
Commit: ci(deps): bump geekyeggo/delete-artifact from 5 to 6 (#32)
Bumps geekyeggo/delete-artifact from 5 to 6.
updated-dependencies:
- dependency-name: geekyeggo/delete-artifact
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] support@github.com
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Snapshot 0.1.5-dev.1+500a495
Snapshot build from commit 500a495
Commit: keylightd-tray: pause polling when window hidden, diff before render
The frontend ran setInterval(refresh, 1000)/2500 forever, including for
the many hours the tray window is typically hidden. Over ~19h of
uptime that drove the cgroup memory of the tray process from ~140 MB
at startup to ~1.2 GB (peak 2.2 GB). Go heap stayed ~3 MB throughout —
the growth is entirely webkit2gtk's JS engine accumulating GC pressure
from sustained allocation while invisible.
Two changes address the polling waste; the third adds a profiling
on-ramp for future investigations.
-
Pause polling when window is hidden.
Go side (app.go) emits a "window:visible" event from ShowWindow /
HideWindow / showWindowDirect / hideWindowDirect — covering both
the tray ToggleWindow path and any direct API. (document.hidden
doesn't fire on runtime.WindowHide(), so the page-visibility API
isn't enough on its own.)JS side (main.js) replaces the boolean refreshPaused with a
Set-based pauseReasons + helpers (setPollingPaused, applyPauseState,
changePollingInterval) so multiple concurrent pause causes (window
hidden, slider drag) compose cleanly without racing each other.
When all reasons clear, polling resumes with an immediate refresh. -
Diff before render.
refresh() now hashes the GetStatus() response (small payload, plain
JSON.stringify) and skips the entire updateUI / updateStatusBadge /
updateMasterToggle / updateSectionVisibility chain when state is
identical to the last poll. Steady-state DOM operations drop to
near-zero, which is the dominant source of webkit JS heap churn. -
Optional pprof endpoint.
New --pprof flag (default empty/disabled). When set to a listen
address, registers net/http/pprof handlers on a goroutine. Off by
default — no port opens, no behaviour change. Lets us actually
profile the binary in production without rebuilding.
Drops the hardcoded 1000ms initial setInterval — the user-configured
rate (default 2500ms) is used from the start.
Daemon-side push-based event delivery (the architectural fix that
removes polling entirely) is tracked separately as #29.
v0.1.4
Snapshot 0.1.4-dev.1+a8bee01
Snapshot build from commit a8bee01
Commit: ci(deps): bump CI actions and Go dependencies, harden release validation
Bump actions/upload-pages-artifact v3→v4, actions/deploy-pages v4→v5,
codecov/codecov-action v5→v6, huma v2.37.2→v2.37.3, wails v2.11.0→v2.12.0.
Add release version base validation: workflow_dispatch releases now verify
that the base tag has a corresponding GitHub Release before proceeding,
preventing stray tags from hijacking the version calculation.
Skip duplicate main-branch builds when the commit is already tagged.
v0.1.3
Changelog
- 00ebce9 fix(lint): handle all error returns in atomic write and remove unused saveGroups
- 098bd1d fix: return defensive copies from group getters and hold lock through save
- 614ff7b fix: use typed NotFound errors for proper HTTP 404 responses
- ba6f35b feat: add ParseExpiryDuration with day-unit support
- 7685880 fix: use atomic write for config file persistence