Skip to content

Release History

Pawel Osmolski edited this page Aug 6, 2026 · 3 revisions

Release History

v0.9.37 — Custom colour release hardening

  • Consolidated fixed and Custom bottom-area choices through one command dispatcher.
  • Protected the complete DarkOne Tools popup lifecycle with try/finally, ensuring every native menu object is disposed exactly once after success, cancellation or failure.
  • Added strict finite integer and signed/unsigned 32-bit return validation.
  • Treated cancellation and unchanged results as non-destructive, preserving the previous mode and colour.
  • Added contextual native-picker diagnostics to shared JScript Panel and JSplitter colour helpers.
  • Made current control-panel entries import the canonical shared colour helper directly while retaining a validated fallback for older saved entry text.
  • Replaced isolated helper tests with an end-to-end runtime test of the real DarkOne Tools hierarchy, command routing, persistence and cleanup.

v0.9.36 — Signed native colour-picker correction

  • Fixed bottom-area Custom colour commands reaching the native picker but failing with Overflow.
  • Converted opaque ARGB values to signed 32-bit integers only at the native utils.ColourPicker() boundary.
  • Preserved the established opaque ARGB representation for properties, runtime-state serialisation and rendering.
  • Applied the boundary conversion to project helpers, the Enhanced Sample Library mirror and the legacy bottom-area fallback.
  • Added validation that deliberately reproduces native overflow behaviour for out-of-range picker arguments.

v0.9.32–v0.9.35 — Custom colour picker investigation

Superseded test builds used while diagnosing native picker detection, signatures and popup-menu behaviour. The working correction is documented under v0.9.36.

v0.9.31 — Display startup hotfix and package refresh

  • Fixed the Display panel failing during bottom-area appearance initialisation because shared configuration still called the removed DisplaySystem.resetRenderedImages() API.
  • Removed the obsolete call; the direct-sprite Display now refreshes through InitColours() and setColours().
  • Added static validation that compares shared display_system calls with methods actually exported by Object_DisplaySystem.js.
  • Updated the repository screenshots from JPEG to WebP and corrected README asset references and repository layout.
  • Refreshed the maintainer-exported DarkOneJSP3.fcl convenience snapshot.
  • Revised the README and static validation checks for the final v0.9.31 package.

v0.9.30 — Rendering performance and allocation optimisation

  • Cached JS Playlist selection and playback state outside the visible-row paint path.
  • Reused visible playlist row objects during sequential scrolling and cached column geometry and group-header measurements.
  • Reused control buttons and the volume knob during resizing, with font recreation only when effective settings change.
  • Replaced mutable Dot Matrix composites with direct source-rectangle draws from cached Direct2D sprite sheets.
  • Added cached InfoStack render state and shorter yielding Queue Viewer source scans.
  • Removed Playlist Manager PlaylistCount reads from paint.
  • Deferred Album Art blur generation until requested and added pending-resource cancellation and disposal.

v0.9.29 — Release hardening and runtime efficiency

  • Applied persisted bottom-area colours before the first panel paint.
  • Prevented resize callbacks from rereading shared state or querying peers repeatedly.
  • Avoided rebuilding JScript buttons and Display caches for divider-only changes.
  • Moved waveform blanking into the behaviour-reset scope.
  • Kept visible colour synchronisation at 100 ms while checking reset commands every 500 ms.
  • Acknowledged processed reset commands instead of rereading stale files indefinitely.
  • Removed obsolete JScript polling code.
  • Explicitly disposed active Album Art Direct2D bitmaps during unload.

v0.9.28 — Bottom-area fixed-mode regression correction

  • Restored DarkOne grey (#202020) across the three bottom JScript panels.
  • Added a complete six-mode validation matrix across the JScript panels, Bottom Controls host and Automatic Display/Waveform host.

v0.9.27 — Uniform bottom-area inherited background

  • Resolved Transparent / inherit parent to the uniform DarkOne dark grey tone (#181818) across all bottom JScript and JSplitter surfaces.
  • Updated cached Display rendering to remove mismatched #202020 rectangles.
  • Kept transparent lower dividers revealing the same resolved backing.

v0.9.26 — Automatic Display/Waveform host background

  • Added Automatic — Bottom area background and made it the default for new properties and appearance resets.
  • Preserved every existing fixed Host background mode and numeric property value.
  • Reused the sole Bottom Controls state poller and relayed changes within the JSplitter domain.

v0.9.25 — Faster bottom-area synchronisation

  • Reduced the sole Bottom Controls runtime-state poll interval from 500 ms to 100 ms.
  • Retained the single-poller architecture; the three JScript panels do not poll continuously.

v0.9.24 — Cross-host reset and runtime-state hardening

  • Added a short-lived factory-reset command bridge so JScript Panel and JSplitter-owned settings reset together.
  • Moved persistent bottom-area state into js_data with automatic migration from the older project-folder location.
  • Reduced four state-file pollers to one Bottom Controls poller.
  • Added write diagnostics and retry handling.
  • Removed obsolete cross-component notification plumbing and aligned shared menu mappings.
  • Updated the tested JSplitter version to 4.1.12.

v0.9.23 — Bottom-area state persistence correction

  • Corrected the JScript Panel state writer to use the supported two-argument WriteTextFile form.
  • Fixed bottom-background and divider selections updating the host-owned regions and surviving restart.

v0.9.22 — File-backed bottom-area synchronisation

  • Replaced the unreliable cross-component notification bridge with shared file-backed state.
  • Allowed the Bottom Controls host to repaint its full backing, layout gaps and divider strips independently of the JScript Panel notification domain.

v0.9.21 — Shared bottom-area appearance controls

  • Added one shared Bottom area background setting for the left control, right control, Display panel and Bottom Controls backing.
  • Added one shared Bottom area side divider colour setting for both lower divider strips.
  • Preserved DarkOne grey and DarkOne dark grey as the respective defaults.

v0.9.20 — Album Art wheel performance

  • Added an 80 ms trailing debounce so rapid wheel input loads only the final artwork selection.
  • Preserved immediate keyboard and context-menu selection.
  • Cancelled pending work on metadata change and script unload.
  • Updated the sample identity to Album Art — Enhanced v0.1.0.

v0.9.19 — Enhanced Sample Library documentation

  • Added a dedicated Enhanced Sample Library section to the repository README.
  • Documented the standalone architecture, compatibility contract and benefits for other themes.
  • Added direct README links to the distributed enhanced-samples guide.

v0.9.18 — Standalone compatibility hardening

  • Fixed factory reset for saved pre-v0.9.17 sample entries through a generated self-contained legacy adapter.
  • Rejected malformed reset scopes and unknown roles across standalone, JScript Panel and JSplitter receivers.
  • Made current entries load canonical performance and UI-cadence helpers before helpers.txt.
  • Expanded static and runtime validation for the compatibility refactor.

v0.9.17 — Standalone enhanced-sample compatibility

  • Removed hard DarkOneJSP3 profile-path dependencies from enhanced sample entries.
  • Added component-local colour, performance, UI-cadence and reset utilities.
  • Preserved saved properties and older entry-script compatibility.
  • Added the neutral JSP3Enhanced.Reset.Properties protocol while retaining legacy aliases.

Earlier releases

The repository contains the complete project history:

The GitHub Releases page is the source of truth for the current published package and any releases newer than this history page.

Clone this wiki locally