Changelog
All notable changes to Iblis are recorded here; the website renders this source directly.
Format: Keep a Changelog, with SemVer versions. Shell, catalog, and plugins ship independently; entries cover shell + repo scaffold unless prefixed.
[0.2.0-alpha.45] — 2026-08-24
Added
- XL Turbo / 8 experiment. When the installed ACE-Step engine pack carries an XL (4B) turbo model, Create offers it as a fixed 8-step experiment beside Turbo / 8, so the two can be compared with the same prompt, seed, and LM blueprint and differ by model only. It is labeled an experiment, never a quality tier; the validated Turbo / 8 recipe always keeps the 2B model whatever order the engine lists them in.
Changed
- (repo) Engine pack 0.1.5 preparation:
acestep.cppre-pinned to master9761469(2026-08-08; the/lmrequest form Iblis sends is unchanged), notices re-staged for the new pins plus the XL turbo model, and the Windows engine build can now publish a pack version's native bytes straight from CI to GCS (just engine-build 0.1.5). The pack itself ships only after Jack's Windows stability run.
[0.2.0-alpha.44] — 2026-08-24
Added
- Engine cards. Create and Settings > Engine now show every installed engine as a card with its signed facts: publisher, license, contract version, install size, models, what it can take (lyrics, styles, length window) and live readiness (running, busy, ready on demand, stopped). Picking a card sets the default engine for new takes only.
- Create fits the engine. The form shows only what the selected engine declares: Vocals, Styles, seed, negative prompt, BPM, key, and beats per bar each appear only when supported; the length field carries the engine's own window. New-style engines render their bounded Advanced controls (on/off, number, choice) straight from the signed descriptor, with help text and limits; ACE keeps its native tuning drawer unchanged.
- Exact target in the Library. A take made with a new-style engine now records and shows its operation, provider, engine family, resolved model and revision, signed-capabilities hash, every advanced control it was rendered with, and which extra outputs were kept.
- Preview outputs are kept. When an engine returns a preview beside the
mix, the validated preview is stored next to the track (
preview.wav) instead of being discarded with the job's staging.
Changed
- New-style engine profiles are labeled by their model instead of the ACE validated/expert wording, and are marked as fixed recipes.
[0.2.0-alpha.43] — 2026-07-22
Added
- Multiple engines, one workstation. Iblis can now host more than one music engine at a time. When several are installed, Create shows an Engine picker; your choice is remembered and every queued take records exactly which engine and version it was made for. Pending takes never silently switch engines — if the engine a take was queued for changes or is removed, the take stops with a clear message instead of guessing.
- Engines start on demand. New-style engines no longer launch at app start. The selected engine spins up when a take needs it and unloads itself after sitting idle, keeping memory free for the engine you actually use.
- Fixture Engine (beta channel). A tiny test engine that renders a real audio sketch in about a second, with its own models, phases, and controls. It exists to prove the new multi-engine plumbing end to end on your machine — including install, switching, cancel, update, and removal — before a real second engine ships.
Changed
- Track provenance for new-style engines records the exact operation, provider, model profile, and signed-capability fingerprint used.
Fixed
- Library View menu no longer repeats "Sort tracks". A hidden helper label was rendering visibly above the sort selector; the panel now shows a single heading, and its selector matches the player options styling.
- Folder names no longer truncate in the Library sidebar. The rename and delete actions previously reserved permanent space beside every folder, squeezing names like "Club Tools" into an ellipsis. They now appear over the row only while you hover or focus it, so the full name and track count stay readable.
Changed
- Tidier Library rows. The folder selector sits in a consistent right-aligned column across rows instead of trailing each row's wrapped metadata, and wrapped metadata lines are spaced more evenly.
[0.2.0-alpha.41] — 2026-07-21
Added
- Detected BPM and key, right on the Library rows. Tracks analyzed by your default providers now show measured tempo and key badges beside each row — visibly separate from generation targets, which keep their own labels. Search finds them too ("128 bpm", "f# minor"), and a new sort menu in the Library View options orders tracks by newest, oldest, name, or detected BPM. A View toggle hides the badges if you prefer a quieter list.
[0.2.0-alpha.40] — 2026-07-21
Added
- SDK: engine contract v2 parsers. The plugin SDK now defines the v2 engine descriptor, path-free recipe, normalized job state, and staged output contracts with strict closed-set parsers, a signed-versus-live narrowing rule (live facts may only remove or narrow signed claims), and hostile-fixture tests covering oversize payloads, unknown fields, broadened claims, bad ranges, traversal paths, and undeclared controls or outputs. No engine uses the contract yet; this is groundwork for the fixture engine.
Changed
- The generation host no longer hard-codes its engine. All ACE-Step dialect — endpoints, profile tuples, request resolution, multipart audio carving, and comparison recipes — moved behind an internal engine-provider interface into an explicitly named compatibility driver. The queue, its persisted store, and IPC now speak only the neutral interface, and a new test guards that the ACE dialect cannot leak back into shared host code. No behavior change; this is the engine contract v2 driver seam from the 2026-07-21 audio-platform packet.
[0.2.0-alpha.39] — 2026-07-21
Fixed
- The creation-actions result is finally audible. The probe retains its deterministic source and returned WAV outside the Library and provides skin-native playback, including a control that starts just before the six-second extension boundary.
- Audio-analysis comparisons recover instead of looking frozen. The WAV chooser is now a skin-native picker, benchmark choices clearly say that they are independent from active defaults, disabled controls use an ordinary cursor, and a stalled queue request releases the UI with a useful error.
- Windows sees the product, not its framework. The packaged description and window title are now “Iblis — Soulless Music,” and the Home footer no longer advertises implementation details.
[0.2.0-alpha.38] — 2026-07-21
Fixed
- Plugin minimum versions now mean what they say. Iblis refuses a plugin that needs a newer shell before install or activation, will not switch to an incompatible rollback version, and skips incompatible active plugins safely at startup.
- The creation-actions check cannot overlap generation. Its engine lease now covers the full request, polling, validation, and evidence write. The Settings result also says exactly what was measured: output duration passes in the app, while audible continuity across the extension boundary remains Jack's required Windows check.
[0.2.0-alpha.37] — 2026-07-17
Added
- BPM and key detection now works out of the box. Settings → Audio analysis is no longer empty: four detectors ship built into Iblis and run locally — Iblis DSP (our own, BPM + key), MusicTempo (BPM), Essentia (BPM + key) and aubio (BPM). Each card shows its license terms; the GPL/AGPL evaluation-only options ask for an explicit acknowledgement before you can select them. New installs default both detections to Iblis DSP, so every generated track gets its tempo and key checked automatically; the existing benchmark panel compares any two or more detectors on the same track so you can judge them yourself.
- A packaged detector check guards every release. CI now executes the shipped detector worker on the Windows build against a reference clip (120 BPM, A minor) before packaging the installer.
Changed
- Harder to tamper with. The packaged app now ships with Electron fuses that disable debugger flags and environment-injected scripts and only load code from the packaged archive, and the app bundles are minified. Cloud-provider API keys additionally get an owner-only key file and the diagnostics scrubber now redacts bare API-key patterns as a backstop.
[0.2.0-alpha.36] — 2026-07-17
Changed
- Settings is a map now, not a scroll. Your product key stays at the top; everything else — Appearance, Engine, Audio analysis, Cloud providers, Data location, Diagnostics, Updates — opens from a card, so you can see what Settings contains at a glance and go straight to it. New settings areas will follow the same pattern.
Fixed
- "Enter a product key" links land on the key field again. After the recent tab-state improvement, the deep link only worked on the first visit to Settings; it now always brings the key panel up and focuses the field.
Added
- Groundwork for extend / edit / remix. Settings → Engine gains a developer probe that checks whether the installed engine honors the audio-extension path, using a small generated test clip that never leaves your machine. A passing probe on real hardware is the gate for building the Extend feature our first testers asked for.
[0.2.0-alpha.35] — 2026-07-17
Added
- One visible download queue. Plugin, engine, and training-pack installs now pass through a single install queue you can see: queued position, live progress, cancellation, and recent failures all show in Plugins. Installs keep running when you change tabs, and Create/Training navigation says why it is unavailable until its engine or training pack is installed.
- Audio analysis providers as cards. Settings replaces the BPM/key dropdowns with provider cards: separate explicit BPM and key defaults, a details dialog with each provider's status and legal notes, and ordinary update/rollback/removal from a new Audio analysis filter in Plugins.
- Compare providers before trusting one. A local benchmark workspace runs two or more installed analysis providers over the same audio file and lays out BPM/key, confidence, alternatives, and timing side by side — without touching your defaults. Results export as a clean JSON report.
- Choose where your data lives. Settings → Data location moves plugins, tracks, styles, and training scratch to a folder you pick, safely and only after an explicit restart.
Fixed
- The Style control in Create is readable again. The compact Create controls previously squeezed the Style picker into an unusable sliver on narrow layouts; the row now wraps and every control keeps a readable minimum width, so selecting a downloaded Style is plainly visible.
- Training-pack installs recover instead of failing. Transient Windows file-lock errors during staging cleanup are retried, and interrupted installs clean up stale staging safely.
- Visited tabs keep their state — loaded lists, drafts, and selections no longer reset every time you switch tabs.
[0.2.0-alpha.34] — 2026-07-16
Added
- Your cloud providers, on your terms. Settings now has a Cloud Providers area for adding your own OpenRouter key for song ideas and lyric assistance, and ImageRouter key for manual cover generation. Keys are held only in Windows-backed secure storage; when that protection is unavailable, cloud keys stay disabled.
- Clear before any cloud use. Each provider identifies its capabilities, routing and retention disclosure, model choices, availability, and reported price information. You must deliberately enable a provider and acknowledge its terms; no content request is sent by this release.
Changed
- Safer plugin-catalog transition. Cloud-capable hosts use a separately signed catalog route while alpha.33 continues on its compatible route. Both catalog routes verify and promote together, with rollback protection.
[0.2.0-alpha.33] — 2026-07-16
Added
- Honest, usable audio-detection hosting. Settings now lets you choose separate installed BPM and key providers, and plainly says when no approved detector is installed or a saved provider is unavailable. Library details show queued, running, failed, and completed detection work, with a Retry control for failures. Detected BPM/key evidence remains visibly separate from requested generation targets and the engine's resolved plan.
Changed
- Library search and a clearer organizer. Search the current library view by track name, prompt, or tag; the result count and empty state explain what is filtered. Folder selectors now read as intentional shell controls rather than raw browser dropdowns.
- Community-style installation tells you what to do. The disabled “Add to library” action now stays readable under every skin and says “Acknowledge to add” until its required risk acknowledgement is enabled.
[0.2.0-alpha.32] — 2026-07-15
Added
- Training now tunes itself to your graphics card, with full manual control for power users. The trainer reads how much video memory your GPU has and picks tuned settings automatically: an 8 GB card trains at a lighter, memory-frugal profile that actually fits, while 16 GB and 24 GB+ cards scale up rank, batch size, and speed. A new Advanced settings panel on the last wizard step lets you override any of it — rank, epochs, batch size, gradient accumulation, optimizer, precision, gradient checkpointing, and encoder offload — or leave each on Auto. Every override is range-checked so a stray value can never wedge a run. The training history shows what each run actually trained at.
- Fewer out-of-memory failures on tight 8 GB cards. The trainer now runs with an expandable CUDA memory allocator, which reclaims fragmented video memory instead of failing when free memory exists but is split up. Paired with the low-VRAM optimizer and encoder offload, this is what makes 8 GB training reliable. (Training pack 0.1.1.)
[0.2.0-alpha.31] — 2026-07-15
Security
- Community-style uploads now identify with your license, not a local device id. When you publish a trained style, the app presents your signed entitlement as the credential. The service ties upload limits to that verified identity instead of a device-supplied identifier, so the fair-use quotas can no longer be sidestepped by rotating a local id. Nothing changes for normal use — you still upload exactly as before; the abuse-resistance is on the server side. This closes the last open item from the 2026-07-14 security review.
Older entries (0.2.0-alpha.30 and earlier) are archived in
docs/changelog-archive.md.