Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 13 additions & 7 deletions docs/release-notes.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,21 @@
DynamicLight 0.16.2 adds video-area selection inside captured windows. A video playing inside a browser page can now drive the LEDs without white page margins and browser toolbars dominating the colors.
DynamicLight 1.0.4 is a release of the BrenOne fork of mskutin/DynamicLight, now for Windows, macOS and Linux.

In Screen or Blend, open **Capture source → Application window**, select the browser, and click **Take window preview**. Drag around the video, then **Apply source → Start / Retry**. You can also select an area using percentages without taking a preview. Uncheck the area option for whole-window or fullscreen capture. The window follows its visible tab; after a page layout change, reselect the video area.
**New in 1.0.4**

Previews are explicit, one-shot captures kept in memory while the source dialog is open. They do not start the lights or ongoing capture. Source bindings and crop coordinates stay local and are excluded from portable scene exports. Windows previews use the same capture backend as lighting, and undefined texture padding is excluded from both.
- Windows: the strip is switched off when Windows shuts down, restarts or signs out. It used to stay lit with the last frame.
- Packages for macOS (Apple silicon and Intel) and Linux x64 are built and published together with Windows. If the macOS or Linux build fails, the release goes out without it and says so. macOS and Linux are experimental: they are not yet tested with a real controller.
- `install.sh` and `install.ps1` download from this fork's releases.

Validation includes native sampling and privacy tests, browser UI regression tests, and a real Windows capture fixture that reproduces white margins around an orange video, verifies the cropped colors, follows live color changes, resizes in both directions, and stops on closure. The fixture captures only its own generated window; it does not use USB or record audio.
**Highlights of this fork**

The Windows capture initialization fix from 0.16.1 remains included, along with Studio effects and zones, RGB recording/replay, routines, independent controllers, game telemetry, declarative plugins, the CLI, and paired HTTPS phone controls.
- Stable Robobloq output: steady USB frames, automatic strip-layout detection and up to 60 FPS.
- Windows: no flashes when Caps/Num/Scroll Lock changes. This needs administrator rights; without them output is capped at 30 FPS, which is always stable.
- Windows: the elevated start and **Launch at login** use Task Scheduler tasks created through the Windows API after one UAC approval, per Windows user. No `cmd.exe`/`schtasks` command lines, which antivirus heuristics report as persistence malware.
- Windows: at sign-in the app waits for the taskbar, so the tray icon always appears.
- Windows: with several users or a remote desktop session, the app lets go of the strip while another session has the screen.

Use **Settings → App updates → Check for updates → Install and restart** on Windows, writable macOS app installations, and Linux AppImage. Debian packages use the terminal installer or package manager. After restarting, select the intended window again and explicitly start capture. Windows selected-window capture requires Windows 10 1903 or newer.
Use **Settings → App updates → Check for updates → Install and restart** on Windows, writable macOS app installations, and Linux AppImage. Debian packages use the terminal installer or package manager. Versions before 0.9.0 need one manual upgrade to gain the updater.

Desktop and companion CLI downloads are available for Windows x64, macOS Apple silicon/Intel, and Linux x64. See the [installation guide](https://github.com/BrenOne/DynamicLight/blob/main/docs/installation.md). Desktop updates do not update the separately installed CLI.

Updater packages are cryptographically signed; Windows publisher signing and macOS notarization remain pending. Physical hardware, mobile browser, and accessibility validation remain tracked separately from automated checks.
Updater packages are cryptographically signed; Windows publisher signing and macOS notarization are not available, so the OS may ask you to confirm opening the app. Physical hardware, mobile browser and accessibility validation remain tracked separately from automated checks.
9 changes: 8 additions & 1 deletion scripts/release.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,14 @@ module.exports = { bundles, updates, cli, version, stage, assemble, minisign, ve
if (require.main === module) {
const [command, argument, output] = process.argv.slice(2);
const root = path.resolve(__dirname, '..');
if (command === 'version') console.log(version(root, argument));
if (command === 'version') {
const value = version(root, argument);
// The notes become the release text and the updater's notes: never ship the previous version's.
if (argument && !fs.readFileSync(path.join(root, 'docs/release-notes.md'), 'utf8').startsWith(`DynamicLight ${value}`)) {
throw new Error(`docs/release-notes.md must start with "DynamicLight ${value}"`);
}
console.log(value);
}
else if (command === 'stage') stage(root, argument, output);
else if (command === 'assemble') assemble(root, argument, output);
else throw new Error('Usage: release.cjs version [tag] | stage <target> <directory> | assemble <directory> [tag]');
Expand Down
Loading