Skip to content

Changelog

All notable changes to this project are documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

2.2.0 - 2026-09-16

Added

  • Quick Presets — one-click buttons (Continuous, 30m Agent, 2h Model Run, 6h Overnight) that set the interval and scheduled power action together. Selecting a preset highlights it; editing the interval, power action, or timer manually clears the highlight. Presets are disabled while keep-awake is running.

2.1.0 - 2026-09-16

Reverted

  • Reverted the v2.0.0 React/Vite web rewrite; restored the native Python/Tkinter desktop app from v1.3.1. A browser tab cannot reliably prevent sleep in the background, override lid-close behavior, or schedule a real hibernate/shutdown — the app's core purpose needs OS-level APIs that only a native app can call. src/dontlockpc/, pyproject.toml, requirements*.txt, dontlockpc.spec, mkdocs.yml, and the CI/Docs workflows are back to their v1.3.1 state.
  • Removed the React/Vite/TypeScript sources, package.json, and Vite config added in v2.0.0.

2.0.0 - 2026-09-16

Changed

  • Complete rewrite: Python/Tkinter desktop app → React/Vite/TypeScript web app. The keep-awake logic now runs in the browser via the Screen Wake Lock API, with a background timer and battery-status fallback for browsers that don't support it yet. This is a breaking change: there is no longer a Python package, CLI entry point, or PyInstaller executable.
  • CI now runs npm ci, a TypeScript type-check, and a Vite production build instead of ruff/pytest.

Removed

  • All Python sources (src/dontlockpc/), pyproject.toml, requirements*.txt, and the PyInstaller spec — superseded by the web app.
  • The MkDocs-based documentation site and its Docs deploy workflow (mkdocs.yml, requirements-docs.txt were removed in the rewrite).

1.3.1 - 2026-08-11

Fixed

  • Scheduled power action never fired. The warning dialog built its message label with pady=(18, 6) — a 2-tuple is only valid on .pack(), so Tk raised bad screen distance before the widgets and countdown were created. The result was an empty "Power action" window and no Sleep/Hibernate/Shutdown at any duration, on both Windows and macOS.
  • Windows hibernate is now reliable. Uses shutdown /h instead of SetSuspendState(1, 1, 0), which can silently fall back to sleep on some machines. Falls back to the power API if the command is unavailable.

Added

Removed

  • The redundant dont_lock_pc.py legacy launcher shim; use dontlockpc or python -m dontlockpc.

1.3.0 - 2026-07-26

Added

  • Scheduled power action — a "Then … after …" control to Sleep, Hibernate (Windows), or Shut down the machine once a timer elapses (minutes or a HH:MM clock time). The countdown is armed while keep-awake is running, releases keep-awake first, and shows a 30-second cancelable warning before acting. Backed by a new power_actions/power_action capability on the backend interface (Windows: Sleep/Hibernate/Shutdown · macOS: Sleep/Shutdown).

1.2.2 - 2026-07-13

Changed

  • Polished the developer credit line: crisp red heart, bold underlined name, and a hover highlight on the link.

1.2.1 - 2026-07-13

Added

  • Developer credit — a footer credit line with a clickable link.

Removed

  • Unused color constants (SURFACE, BLUE) from the UI palette.

1.2.0 - 2026-07-13

Added

  • Stay awake with the lid closed (Windows) — an optional toggle that overrides the active power plan's lid-close action to Do nothing while keep-alive is running, and restores the original setting on STOP/exit. Backed by a new prevent_lid_sleep/restore_lid_sleep capability on the backend interface (lid_close_supported). Not available on macOS, where clamshell sleep requires sudo pmset.

1.1.1 - 2026-07-13

Added

  • Automated release builds — a GitHub Actions Release workflow that, on every v* tag, builds the standalone DontLockMyPC.exe (Windows) and DontLockMyPC.app (macOS) with PyInstaller, zips them, and attaches them to the published GitHub Release.

1.1.0 - 2026-07-13

Added

  • Start at login — an in-app "Start automatically at login" toggle backed by a new cross-platform autostart module (Windows Run registry key / macOS LaunchAgent).
  • Standalone build — a checked-in dontlockpc.spec for PyInstaller that produces a windowed DontLockMyPC.exe (Windows) or DontLockMyPC.app (macOS); pyinstaller added to the dev extras.
  • UI preview — docs/screenshot.svg embedded in the README.

Changed

  • Repositioned the app around its core use case: keeping the system awake and unlocked while long-running AI agents work. Updated README, in-app subtitle, and package metadata accordingly.
  • Close button (✕) now fully exits the app; the minimize button (─) hides to the system tray.

1.0.0 - 2026-07-13

Added

  • Cross-platform support for Windows and macOS via a pluggable keep-awake backend abstraction (KeepAwakeBackend).
  • macOS backend using the built-in caffeinate utility plus Quartz CGEvent mouse/F15 input synthesis.
  • Proper src/ package layout (dontlockpc) with python -m dontlockpc and a dontlockpc console entry point.
  • Packaging via pyproject.toml, platform-marked dependencies, and a development extras group.
  • System-tray wrapper that degrades gracefully where a background-thread tray is unavailable (e.g. macOS → minimize to Dock).
  • GitHub Actions CI (lint + import smoke on Windows and macOS), issue/PR templates, CONTRIBUTING.md, CODE_OF_CONDUCT.md, and tests.

Changed

  • Extracted the original single-file Windows script into a package; the Windows Win32 logic now lives in backends/windows.py.
  • UI now uses platform-appropriate fonts and a native title bar on macOS.

Full commit history and release downloads are on GitHub Releases.