mirror of
https://github.com/bybrooklyn/alchemist.git
synced 2026-04-18 09:53:33 -04:00
12 KiB
12 KiB
Changelog
All notable changes to this project will be documented in this file.
[0.3.0] - 2026-03-28
Rust & Backend
- Upgraded from Rust 2021 to 2024, set the MSRV to 1.85, upgraded
sqlxto0.8withruntime-tokio-rustls, and upgradedrandto0.9. - Removed
async-trait, adopted nativeasync fnin traits, and addedtrait-variantsoExecutionObserverremained object-safe behindArc<dyn ...>. - Fixed the Apple VideoToolbox probe by using synthetic
lavfiframes withformat=yuv420pand-allow_sw 1, allowing HEVC and AV1 detection to succeed on Apple Silicon. - Split
server.rsintosrc/server/submodules for auth, jobs, scan, settings, stats, system, SSE, middleware, wizard, and tests. - Moved
ffprobeexecution totokio::process::Commandwith a 120-second timeout. - Added poisoned cancellation lock recovery in the orchestrator and truncated oversized FFmpeg stderr lines before logging.
- Invalid notification event JSON now warned instead of silently disabling the target, and invalid schedule day JSON now warned instead of being treated as empty.
UI & Frontend
- Reworked the app shell by removing page
h1headers, replacing the old header block with a thin engine control strip, and dropping the sidebar icon container for wordmark-only branding. - Flattened engine controls into one horizontal row with the status dot, Start/Pause/Stop actions, a divider, About, and Logout.
- Moved the Background, Balanced, and Throughput mode pills into Settings -> Runtime and wired them to the engine mode API.
- Rebuilt the setup wizard inside the main app shell with a grayed sidebar, removed the centered card layout, and replaced progress with a 2px solar line at the top of the content area.
- Setup wizard errors now surfaced as toast notifications instead of an inline error block below the content.
- Redesigned library selection around a flat recommendation list with Add buttons, selected-folder chips, and equal Browse/manual path entry; the preview panel was removed.
- Restructured the dashboard around a compact stat row, a savings summary, and a larger Recent Activity panel.
- Updated the log viewer to group entries by
job_idinto collapsible job sections while rendering system logs inline. - Normalized job status badges to sentence case without letter spacing, aligned table column headers, and standardized the job detail modal radius and section headers.
- Cleaned banned CSS patterns from
ServerDirectoryPicker,ToastRegion, andSavingsOverview, and modernized the login page with wordmark-only branding and tighter field styling. - Darkened the global background gradient slightly, reduced scrollbar width to 6px, increased border radius one step across cards and buttons, and gave inputs more contrast against the page.
CI/CD
- Added a nightly workflow that runs on every push to
mainafter Rust checks pass, builds all platforms, publishesghcr.io/bybrooklyn/alchemist:nightly, and replaces the previous nightly pre-release with{VERSION}-nightly+{short-sha}. - Extracted a shared reusable
build.ymlworkflow so nightly and release builds use the same pipeline. - Simplified
docker.ymlto PR preview builds only, removed theworkflow_runtrigger, and removed themainbranch trigger fromci.yml. - Frontend validation in CI now runs the e2e reliability suite after the frontend check passes.
Docs & Tooling
- Added
CLAUDE.mdandGEMINI.mdas agent context files, addedCONTRIBUTING.mdwith GPL-3.0 CLA terms, and startedCHANGELOG.md. - Hardened the
justfilewith safer process cleanup, a strongerdb-reset, and--frozen-lockfiledocs installation.
[v0.2.10-rc.5] - 2026-03-22
Runtime & Queue Control
- Engine runtime modes now support
background,balanced, andthroughput, with manual concurrency overrides and drain/resume controls exposed through the API and dashboard header. - Engine status reporting now includes pause source, drain state, concurrent-limit metadata, and mode visibility for troubleshooting.
- Queue management continued to harden with safer active-job controls, clearer failure surfacing, and better per-job operational feedback.
Media Processing & Library Health
- VAAPI-first Intel handling, remux planning, subtitle sidecars, and library health issue reporting were expanded across the planner, FFmpeg integration, and dashboard.
- Hardware detection and probe logging were improved to make CPU/GPU backend selection and diagnostics easier to understand.
- Stream rules landed for commentary stripping, audio-language filtering, and keeping only the default audio track when needed.
Paths, Setup & Docs
- Default config and database paths were normalized around the
alchemistruntime home, and the repo now ships ajustfilefor common dev, release, Docker, and database workflows. - The docs site moved onto Starlight and now builds locally with a proper content config, localized collection wiring, and a corrected splash-page schema.
- Release automation now bumps repo-wide version manifests, supports checkpoint commits before release validation, and isolates web-e2e onto a separate port so a local server on
3000does not block release verification.
CI/CD & Release Tooling
- Docker publishing is now gated behind successful validation, and local release verification covers Rust checks/tests, frontend verification, docs build,
actionlint, and the reliability Playwright suite. just updatedoes not create the release commit, git tag, or push until the full validation gate passes.
[v0.2.10-rc.2] - 2026-03-21
Stability & Reliability
- VMAF quality gating: encodes falling below a configurable minimum score are now rejected rather than silently promoted.
- Exponential retry backoff for failed jobs: 5 / 15 / 60 / 360 minute delays based on attempt count prevent tight failure loops.
- Orphaned temp file cleanup on startup: interrupted encodes no longer leave
.alchemist.tmpfiles on disk indefinitely. - Log table pruning: configurable retention period (default 30 days) prevents unbounded log growth on busy servers.
- Auth session cleanup: expired sessions are pruned on startup and every 24 hours.
- Resource endpoint caching:
/api/system/resourcesis cached for 500ms to prevent redundant OS probes from multiple open browser tabs.
New Features
- Per-library profiles: each watch folder can have its own transcoding profile, with four built-in presets (Space Saver, Quality First, Balanced, Streaming) usable as starting points.
- Storage savings dashboard: the Stats page now shows total space recovered, average reduction percentage, a savings-over-time chart, and per-codec breakdowns.
- Library Doctor: scan your library for corrupt or broken files directly from System Settings.
/api/jobsadded as a canonical alias for/api/jobs/table.
Beginner Experience
- Plain-English skip reasons: skipped jobs now show a human-readable explanation with technical detail available in an expandable section.
- Auto-redirect to the setup wizard for first-time users with no watch directories configured.
- Setup wizard field descriptions: CRF, BPP, concurrent jobs, and CPU preset now include plain-English explanations inline.
- Telemetry is now opt-in by default, with a detailed explanation of exactly what is collected.
Job Management
- Skipped tab: dedicated tab in the Job Manager for skipped jobs.
- Archived tab: cleared completed jobs are now visible in an Archived tab rather than disappearing permanently.
- Sort controls: the job list can now be sorted by last updated, date added, file name, or file size.
UI & Design
- Font updated from Space Grotesk to DM Sans.
- Sidebar active state redesigned: a left accent bar replaces the filled background.
- Border radius tightened throughout with a more consistent scale across cards, buttons, and badges.
- Setup wizard refactored into composable step components.
Infrastructure
- CI/CD workflows fully rewritten: Rust caching, TypeScript typechecking, and a frontend build shared across all platforms.
- Multi-arch Docker images are now published for
linux/amd64andlinux/arm64. - Release binaries now ship as
.tar.gzarchives with SHA256 checksums; AppImage and.appbundles were removed. - Dockerfile now uses the stable Rust image with pinned FFmpeg checksums.
- E2E test coverage added for all new features.
[v0.2.10-rc.1] - 2026-03-07
- Job lifecycle safety hardening: queued vs active cancel handling, active-job delete/restart blocking, batch-action conflict reporting, and stricter status/stat persistence.
- Output handling now supports mirrored
output_rootdestinations plus temp-file promotion so replace mode preserves the last good artifact until encode, size, and quality gates pass. - Scheduler, setup, and watch-folder parity updates shipped together: immediate schedule reevaluation, Intel Arc H.264 detection fix, H.264 setup option, canonicalized watch folders, and recursive watch configuration in the UI.
- Jobs and settings UX now expose per-job priority controls, output-root file settings, active-job-safe actions, and the Astro router deprecation cleanup.
- CI/CD rewrite for
0.2.10-rc.1: cached Rust checks, frontend typecheck/build validation, multi-arch Docker publishing, and unified prerelease metadata handling across workflows. - Release packaging cleanup: Linux and macOS now ship plain
.tar.gzbinaries, Windows ships.exe, and every release asset includes a SHA256 checksum file.
[v0.2.9] - 2026-03-06
- Runtime reliability pass: watcher/scanner hardening, resilient event consumers, config reload improvements, and live hardware refresh.
- Admin UX refresh across dashboard, settings, setup, logs, jobs, charts, and system status with stronger error handling and feedback.
- Frontend workflow standardized on Bun, Playwright reliability coverage added under
web-e2e, and deploy/docs/container updates shipped together.
[v0.2.8] - 2026-01-12
- Setup wizard auth fixes, scheduler time validation, and watcher reliability improvements.
- DB stability pass (WAL, FK enforcement, indexes, session cleanup, legacy watch_dirs compatibility).
- Build pipeline updates (rustls for reqwest, cross-platform build script, WiX workflow fix).
- Documentation and design philosophy updates.
- More themes!!
[v0.2.5] - 2026-01-11
Fixes
- Dashboard Crash: Fixed a critical bug where the dashboard would render as a blank screen if GPU utilization was
null. Added strict null checks beforetoFixed()calls inResourceMonitor.tsx. - Animation Glitch: Resolved an issue where the "Engine Status" button would fly in from the top-left corner on page navigation. Implemented unique
layoutIdgeneration usinguseId()to maintain the morph animation while preventing cross-page artifacts. - Migration Checksum: Fixed a startup error caused by a modified migration file. Reverted the original migration to restore checksum integrity and created a new migration for the version bump.
Improvements
- Resource Monitor Layout: Repositioned the GPU Usage section to appear between "Active Jobs" and "Uptime" for better logical flow.
- Animation Timing: Adjusted staggered animation delays in the Resource Monitor to match the new layout order.
Documentation
- Codebase Overview: Added
codebase_overview.mdexplaining the monolith architecture (Rust + API + Frontend) and directory structure. - Migration Policy: Updated
MIGRATIONS.mdto explicitly forbid modifying existing migration files to prevent checksum errors. - Walkthrough: Updated
walkthrough.mdwith detailed debugging logs and verification steps for all recent changes.
Infrastructure
- Version Bump: Updated project version to
0.2.5inCargo.toml,web/package.json, andVERSION. - Database: Established
0.2.5as the new minimum compatible version schema baseline.