Releases: more-14-different/tacky-borders
Release list
v1.6.1-runtime.7
Final defensive cleanup preview
This fork-specific prerelease closes the remaining defensive edge cases on top of runtime
hardening preview 6.
Changes since preview 6
- Makes
UnixStreamSinkthe sole owner of its completion port while the worker uses a borrowed,
non-closing handle, eliminating the stale raw-handle race during exceptional worker exits. - Preserves the completion-port owner together with pending
OVERLAPPEDbacking storage if a
catastrophic drain failure prevents proving that every operation completed. - Validates Komorebi notification arrays, indexes, and window handles without panicking on schema
drift or malformed external data. - Builds Komorebi focus state transactionally and publishes it only after the entire notification
has been validated. - Adds a malformed-schema regression test and FIFO runtime snapshot barriers to the create/reload
window tests.
Validation
cargo fmt --checkpassed.cargo check --all-targetspassed.- All 44 automated tests passed on Windows.
cargo clippy --all-targetscompleted successfully with non-blocking style warnings.cargo build --releasepassed.- The focused Komorebi, IOCP panic/shutdown, and window-runtime regression tests passed.
git diff --checkpassed.
This is an independently maintained prerelease of more-14-different/tacky-borders, not an
upstream luke-you/tacky-borders release.
v1.6.1-runtime.6
IOCP exceptional-exit cleanup preview
This fork-specific prerelease closes the final exceptional-exit lifetime gap in the Windows Unix
stream sink on top of runtime hardening preview 5.
Changes since preview 5
- Routes normal shutdown, worker errors, and callback panics through one unconditional IOCP
cancel-and-drain epilogue before releasing any pendingOVERLAPPEDstorage. - Keeps newly issued
AcceptExstreams under cleanup ownership before later fallible operations
and removes streams whoseWSARecvfails synchronously without creating a completion. - Accounts for completion packets already dequeued in a partially processed IOCP batch before
canceling and draining operations that remain queued. - Ignores late stop packets during cleanup and intentionally preserves pending I/O backing storage
if a catastrophic drain failure prevents proving that every operation completed. - Adds a regression test covering callback panic while a trailing
AcceptExis pending.
Validation
cargo fmt --checkpassed.cargo check --all-targetspassed.- All 43 automated tests passed on Windows.
cargo clippy --all-targetscompleted successfully with only pre-existing style warnings.cargo build --releasepassed.git diff --checkpassed.
This is an independently maintained prerelease of more-14-different/tacky-borders, not an
upstream luke-you/tacky-borders release.
v1.6.1-runtime.5
Final lifecycle cleanup preview
This fork-specific prerelease completes the final lifecycle cleanup on top of runtime hardening
preview 4.
Changes since preview 4
- Drains canceled IOCP operations without a deadline before releasing their
OVERLAPPEDstorage
and buffers, with a shared stop flag as a fallback if posting the stop packet fails. - Hardens config watching for notification-buffer overflow and atomic-save rename/replace patterns,
expands the buffer, and performs an interruptible debounce before reloading. - Moves background-service joins to a shutdown coordinator while keeping the UI message pump alive,
then finalizes border destruction and process exit on the runtime owner thread. - Makes theme settling stop-aware and always resolves ThemeWatcher and DisplayAdaptersWatcher worker
ownership even when stop-event signaling fails. - Adds focused lifecycle regression coverage for pending watcher reads, atomic config replacement,
notification overflow, and Unix stream shutdown with pending I/O.
Validation
cargo fmt --checkpassed.cargo check --all-targetspassed.- All 42 automated tests passed on Windows.
cargo clippy --all-targetscompleted successfully with only pre-existing style warnings.cargo build --releasepassed.git diff --checkpassed.
This is an independently maintained prerelease of more-14-different/tacky-borders, not an
upstream luke-you/tacky-borders release.
v1.6.1-runtime.4
Final lifecycle hardening preview
This fork-specific prerelease completes the Phase 9.1 lifecycle hardening on top of runtime
hardening preview 3.
Changes since preview 3
- Reworks the config watcher around overlapped
ReadDirectoryChangesWI/O with dedicated change
and stop events, removing the shutdown race between checking the stop flag and entering a
synchronous directory read. - Cancels and drains the exact pending watcher request before its notification buffer,
OVERLAPPED, or handles are released. - Adds a finite IPC send timeout alongside the existing receive timeout so a client that stops
reading responses cannot hold daemon shutdown open indefinitely. - Limits malformed-config error dialogs to one active worker while continuing to log every parse
failure. - Owns and joins the config reload management worker during shutdown, preventing late reload work
from recreating borders or background services after teardown starts.
Validation
cargo fmt --checkpassed.cargo check --all-targetspassed.- All 38 automated tests passed on Windows.
cargo clippy --all-targetscompleted successfully with only pre-existing style warnings.cargo build --releasepassed.git diff --checkpassed.
This is an independently maintained prerelease of more-14-different/tacky-borders, not an
upstream luke-you/tacky-borders release.
v1.6.1-runtime.3
Background-service lifecycle hardening preview
This fork-specific prerelease completes the Phase 9 lifecycle hardening on top of runtime
hardening preview 2.
Changes since preview 2
- Routes config watcher, tray, and IPC reload requests through a serialized, coalescing management
worker so a config watcher can never destroy and join itself. - Adds an explicit stop, cancellation, unpark, and join protocol for config watchers while keeping
malformed-config recovery observable by the existing watcher. - Owns and stops the komorebi subscription retry thread, replacing its fixed 15-second sleep with
an interruptible wait so repeated enable/disable cycles cannot accumulate workers. - Tracks IPC client workers, gives idle sockets a finite read timeout, and joins all clients during
server shutdown. Reload acknowledgements are written before reload work is scheduled. - Replaces fixed 50 ms integration-test sleeps with border-count predicate waits and diagnostic
timeouts. - Adds two unit tests covering config reload request coalescing and restart after completion.
Validation
cargo fmt --checkpassed.cargo check --all-targetspassed.- All 38 automated tests passed on Windows.
cargo clippy --all-targetscompleted successfully with only pre-existing style warnings.cargo build --releasepassed.git diff --checkpassed.
This is an independently maintained prerelease of more-14-different/tacky-borders, not an
upstream luke-you/tacky-borders release.
v1.6.1-runtime.2
Runtime hardening preview 2
This fork-specific prerelease contains the Phase 8 runtime and graphics hardening from preview 1,
plus fixes found during real debug use on Windows.
Changes since preview 1
- Makes border and runtime timer teardown idempotent and treats already-fired or never-armed
one-shot timers as normal cleanup state. This removes repeated misleading
The operation completed successfully. (0x00000000)error logs when windows close. - Preserves foreground state received during delayed border initialization without attempting to
render before the backend exists. - Stops retrying render and resize operations when their objects are temporarily uninitialized;
device-loss and render-target recovery paths continue to retry normally. - Adds
run-debug.ps1for rebuild-and-restart development andrun-release.ps1for restarting an
existing release build. - Documents the executable-independent configuration location and why the only config copy should
not live undertarget.
Validation
cargo fmt --checkpassed.cargo check --all-targetspassed.- All 36 automated tests passed on Windows.
- A real top-level test window produced the expected border-count transition (
9 -> 10 -> 9)
across creation and destruction, with no new error log entries.
This is an independently maintained prerelease of more-14-different/tacky-borders, not an
upstream luke-you/tacky-borders release.
v1.6.1-runtime.1 — Runtime hardening preview 1
Runtime hardening preview 1
This is the first independently maintained runtime-hardening release of the
more-14-different/tacky-borders fork. It is based on upstream v1.6.0 plus the later per-side
border-offset change and remains compatible with the existing configuration format and CLI.
Highlights
- Centralizes live border ownership, animation scheduling, lifecycle reconciliation, foreground
state, and graphics mutation on the UI runtime thread. - Replaces per-border animation workers and polling threads with runtime timers and
EnumWindows
snapshot reconciliation. - Coalesces reorder and location-change storms without losing their trailing state.
- Prevents an unelevated process from repeatedly attempting to decorate elevated windows.
- Routes IPC, komorebi, display-adapter, and window events through typed runtime commands.
- Hardens DirectX recovery for render-target loss and same-adapter device removal/reset.
- Uses RAII guards for Direct2D multithread locks, draw sessions, and DirectComposition surface
draw sessions.
Validation
- 36 automated tests passed on Windows.
- Debug and release builds completed successfully.
- V2 -> Legacy -> V2 transitions completed without graphics recovery loops.
- 5,000 location changes, 5,000 reorder events, IPC traffic, and repeated reloads completed without
linear handle or thread growth. - Unelevated runtime behavior was checked against an elevated application window.
Physical GPU reset, monitor dock/undock, and sleep/resume fault injection were not performed for
this preview.
This is a fork-specific prerelease, not an upstream luke-you/tacky-borders release.