mirror of
https://github.com/bybrooklyn/alchemist.git
synced 2026-04-18 01:43:34 -04:00
chore: release v0.3.0
Since v0.2.9, Alchemist gains the first stable 0.3.0 release with: Security: - Fixed a critical bug where a config parse failure on a configured instance could re-enable unauthenticated setup endpoints. - Session cookies are no longer marked Secure by default, restoring plain HTTP and LAN login flows unless ALCHEMIST_COOKIE_SECURE=true is set. - Restricted /api/fs/* filesystem browsing to loopback clients during initial setup. - Hardened proxy header handling with explicit trust configuration. Library and encoding: - Added per-library transcoding profiles with built-in presets. - Added lossless MP4/MOV to MKV remuxing when a file is already in the target codec. - Added subtitle sidecar extraction for text subtitle tracks. - Added stream rules for commentary stripping, language filtering, and default-track retention. - Added optional VMAF quality gating. - Added duplicate detection in Library Intelligence. - Added Library Doctor health scanning. - Added mirrored output roots. Job management: - Added Skipped and Archived tabs. - Added sort controls for jobs. - Added per-job priority promotion. - Added live retry countdowns. - Added structured skip explanations. - Added structured failure explanations. Engine control: - Added Background, Balanced, and Throughput runtime modes with manual overrides. - Added drain mode. - Added boot-time auto-analysis of queued jobs. UI redesign: - Replaced page h1 blocks with a compact engine control strip. - Restructured the dashboard around compact stats, savings, and recent activity. - Grouped log viewer entries by job. - Rebuilt the setup wizard inside the main shell. - Redesigned library selection around recommendations and chips. - Replaced custom stats bars with Recharts area and bar charts. - Merged hardware into Transcoding settings. - Merged notifications and automation into one tab. - Improved mobile navigation and jobs layout. - Tightened typography and token usage across the design system. - Added analyzing shimmer states and protected terminal job states from poll overwrites. Reliability and stability: - Added exponential retry backoff. - Cleaned orphaned temp outputs and subtitle sidecar temp files on startup. - Fixed infinite analysis loops and boot-analysis pagination. - Kept the engine running when the queue drains so new watcher jobs are picked up. - Serialized analysis passes and dropped overlapping watcher-triggered passes. - Added job stall detection. - Fixed graceful shutdown on Ctrl+C and SIGTERM. - Added log retention pruning. - Added auth session cleanup. - Cached /api/system/resources for 500ms. - Added a Drop guard for in_flight_jobs. - Stopped re-probing completed job detail source files when encode_stats already exist. Hardware and encoding: - Fixed Apple VideoToolbox encodes with -allow_sw 1, yuv420p conversion, and hvc1 tagging. - Switched Intel Arc selection to VAAPI-first with QSV as last resort. - Improved audio planning so lossless codecs transcode while common Atmos/EAC3 tracks can copy. - Added libopus runtime fallback to AAC when libopus is unavailable. - Surfaced fuller FFmpeg failure logs and VideoToolbox-specific failure explanations. Backend architecture: - Upgraded to Rust 2024 and MSRV 1.85. - Upgraded sqlx to 0.8 and rand to 0.9. - Removed async-trait in favor of native async fn traits with trait-variant where needed. - Split server.rs into focused submodules. - Moved ffprobe execution to tokio::process::Command with a timeout. - Split high-volume and low-volume broadcast channels. - Hardened cancellation-lock recovery and stderr truncation. - Added warnings for invalid notification and schedule JSON plus safer analysis pagination limits. Database: - Extended decisions with structured reason codes and payload JSON. - Added job_failure_explanations with legacy fallback support. - Added indexes for structured explanation filtering. - Preserved automatic upgrades from 0.2.5 onward. CI/CD and tooling: - Added nightly workflows using the shared build pipeline. - Added actionlint to release checks. - Added the Playwright reliability suite to CI. - Documented and validated the Windows contributor workflow. - Expanded just release-check to cover fmt, clippy, tests, actionlint, web verify, docs build, E2E, and backend build. - Standardized release binaries and checksums. - Published multi-arch Docker images for linux/amd64 and linux/arm64. Release metadata and docs cleanup: - Bumped Cargo, VERSION, web, web-e2e, and docs manifests to 0.3.0. - Updated stable changelog dates and nightly image references. - Removed stale RC-era Windows wording from the README and docs. - Clarified that the Windows core contributor path is supported while broader utility and release recipes remain Unix-first. - Clarified that AMD AV1 remains outside the validated 0.3.0 support matrix. - Aligned Docker Compose, Helm, and release-facing docs on ghcr.io/bybrooklyn/alchemist.
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## [0.3.0] - 2026-04-05
|
||||
## [0.3.0] - 2026-04-06
|
||||
|
||||
### Security
|
||||
- Fixed a critical bug where a config parse failure on a configured instance would re-enable unauthenticated setup endpoints (filesystem browse, settings bundle) for any network client.
|
||||
@@ -89,7 +89,7 @@ All notable changes to this project will be documented in this file.
|
||||
- All databases from v0.2.5 onwards upgrade automatically; no manual migration required.
|
||||
|
||||
### CI/CD & Tooling
|
||||
- Nightly workflow: runs on every push to `main` after checks pass, builds all platforms, publishes `ghcr.io/brooklynloveszelda/alchemist:nightly` with `{VERSION}-nightly+{short-sha}` versioning.
|
||||
- Nightly workflow: runs on every push to `main` after checks pass, builds all platforms, publishes `ghcr.io/bybrooklyn/alchemist:nightly` with `{VERSION}-nightly+{short-sha}` versioning.
|
||||
- Shared reusable `build.yml` workflow so nightly and release builds use identical pipelines.
|
||||
- `actionlint` added to `just release-check`.
|
||||
- E2E reliability suite (`just test-e2e`) runs in CI after the frontend check passes.
|
||||
|
||||
2
Cargo.lock
generated
2
Cargo.lock
generated
@@ -13,7 +13,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "alchemist"
|
||||
version = "0.3.0-rc.3"
|
||||
version = "0.3.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"argon2",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "alchemist"
|
||||
version = "0.3.0-rc.3"
|
||||
version = "0.3.0"
|
||||
edition = "2024"
|
||||
rust-version = "1.85"
|
||||
license = "GPL-3.0"
|
||||
|
||||
@@ -114,14 +114,15 @@ just build
|
||||
|
||||
Alchemist requires Rust 1.85 or later (MSRV). Use `rustup update stable` to ensure you are on a recent toolchain, and make sure FFmpeg is installed separately.
|
||||
|
||||
For Windows local development in RC.2:
|
||||
For Windows local development:
|
||||
|
||||
```bash
|
||||
just install-w
|
||||
just dev
|
||||
just check
|
||||
```
|
||||
|
||||
The broader `just` release and utility recipes are still Unix-first in RC.2.
|
||||
The core contributor path is supported on Windows. Broader release and utility recipes remain Unix-first.
|
||||
|
||||
## First Run
|
||||
|
||||
|
||||
10
RELEASING.md
10
RELEASING.md
@@ -5,14 +5,14 @@
|
||||
Use the repo bump script for version changes:
|
||||
|
||||
```bash
|
||||
just bump 0.3.0-rc.2
|
||||
just bump <next-rc-version>
|
||||
```
|
||||
|
||||
Then complete the release-candidate preflight:
|
||||
|
||||
1. Update `CHANGELOG.md` and `docs/docs/changelog.md`.
|
||||
2. Run `just release-check`.
|
||||
3. Verify the repo version surfaces all read `0.3.0-rc.2`.
|
||||
3. Verify the repo version surfaces all read `<next-rc-version>`.
|
||||
4. Complete the manual smoke checklist:
|
||||
- Docker fresh install over plain HTTP, including login and first dashboard load
|
||||
- One packaged binary install and first-run setup
|
||||
@@ -22,9 +22,9 @@ Then complete the release-candidate preflight:
|
||||
- `just install-w`
|
||||
- `just dev`
|
||||
- `just check`
|
||||
- Note that broader utility and release recipes remain Unix-first for RC.2.
|
||||
- Note that broader utility and release recipes remain Unix-first unless documented otherwise.
|
||||
6. Commit the release-prep changes and merge them to `main`.
|
||||
7. Create the annotated tag `v0.3.0-rc.2` on the exact merged commit.
|
||||
7. Create the annotated tag `v<next-rc-version>` on the exact merged commit.
|
||||
|
||||
## Stable promotion
|
||||
|
||||
@@ -38,7 +38,7 @@ Promote to stable only after the RC burn-in is complete and the same automated p
|
||||
- Packaged binary first-run
|
||||
- Upgrade from the most recent `0.2.x` or `0.3.0-rc.x`
|
||||
- Encode, skip, failure, and notification verification
|
||||
5. Re-run the Windows contributor verification checklist if Windows parity changed after RC.2.
|
||||
5. Re-run the Windows contributor verification checklist if Windows parity changed after the last RC.
|
||||
6. Confirm release notes, docs, and hardware-support wording match the tested release state.
|
||||
7. Merge the stable release commit to `main`.
|
||||
8. Create the annotated tag `v0.3.0` on the exact merged commit.
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
replicaCount: 1
|
||||
|
||||
image:
|
||||
repository: ghcr.io/brooklynloveszelda/alchemist
|
||||
repository: ghcr.io/bybrooklyn/alchemist
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "latest"
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
services:
|
||||
alchemist:
|
||||
image: ghcr.io/brooklynloveszelda/alchemist:latest
|
||||
image: ghcr.io/bybrooklyn/alchemist:latest
|
||||
container_name: alchemist
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
|
||||
@@ -3,7 +3,7 @@ title: Changelog
|
||||
description: Release history for Alchemist.
|
||||
---
|
||||
|
||||
## [0.3.0] - 2026-04-05
|
||||
## [0.3.0] - 2026-04-06
|
||||
|
||||
### Security
|
||||
- Fixed a critical bug where a config parse failure on a configured instance would re-enable unauthenticated setup endpoints (filesystem browse, settings bundle) for any network client.
|
||||
@@ -90,7 +90,7 @@ description: Release history for Alchemist.
|
||||
- All databases from v0.2.5 onwards upgrade automatically; no manual migration required.
|
||||
|
||||
### CI/CD & Tooling
|
||||
- Nightly workflow: runs on every push to `main` after checks pass, builds all platforms, publishes `ghcr.io/brooklynloveszelda/alchemist:nightly` with `{VERSION}-nightly+{short-sha}` versioning.
|
||||
- Nightly workflow: runs on every push to `main` after checks pass, builds all platforms, publishes `ghcr.io/bybrooklyn/alchemist:nightly` with `{VERSION}-nightly+{short-sha}` versioning.
|
||||
- Shared reusable `build.yml` workflow so nightly and release builds use identical pipelines.
|
||||
- `actionlint` added to `just release-check`.
|
||||
- E2E reliability suite (`just test-e2e`) runs in CI after the frontend check passes.
|
||||
|
||||
@@ -24,7 +24,7 @@ Hardware support:
|
||||
|
||||
- NVIDIA: RTX 30/40 class NVENC
|
||||
- Intel: 12th gen+ for AV1 encode
|
||||
- AMD: RDNA 2+ depending on driver/FFmpeg stack; not release-validated for `0.3.0-rc.1`
|
||||
- AMD: RDNA 2+ depending on driver/FFmpeg stack; available but not part of the validated `0.3.0` AV1 support matrix
|
||||
- Apple: M3+
|
||||
- CPU: always available through SVT-AV1
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ git clone https://github.com/bybrooklyn/alchemist.git
|
||||
cd alchemist
|
||||
just install # macOS / Linux bootstrap
|
||||
just install-w # Windows bootstrap
|
||||
just dev # supported on both paths in RC.2
|
||||
just dev # supported on macOS, Linux, and Windows
|
||||
```
|
||||
|
||||
## Common tasks
|
||||
@@ -28,24 +28,24 @@ just dev # supported on both paths in RC.2
|
||||
```bash
|
||||
just install # macOS / Linux bootstrap
|
||||
just install-w # Windows bootstrap
|
||||
just check # supported on both paths in RC.2
|
||||
just check # supported on macOS, Linux, and Windows
|
||||
just test # cargo test
|
||||
just test-e2e # Playwright reliability suite
|
||||
just db-reset # wipe dev DB, keep config
|
||||
just db-reset-all # wipe DB and config (re-triggers wizard)
|
||||
just bump 0.3.0-rc.2 # bump version in all files
|
||||
just update 0.3.0-rc.2 # full guarded release flow
|
||||
just bump <version> # bump version in all repo version files
|
||||
just update <version> # full guarded release flow (Unix-first)
|
||||
```
|
||||
|
||||
## Windows support in RC.2
|
||||
## Windows contributor support
|
||||
|
||||
Windows contributor support in RC.2 covers the core path:
|
||||
Windows contributor support covers the core path:
|
||||
|
||||
- `just install-w`
|
||||
- `just dev`
|
||||
- `just check`
|
||||
|
||||
The following remain Unix-first for now and are deferred to RC.3 or later:
|
||||
The following remain Unix-first for now:
|
||||
|
||||
- broader `just` utility recipes such as database and Docker helpers
|
||||
- release-oriented guarded flows such as `just update`
|
||||
|
||||
@@ -11,7 +11,7 @@ Alchemist is GPLv3 open source. Contributions are welcome.
|
||||
- [`CONTRIBUTING.md`](https://github.com/bybrooklyn/alchemist/blob/main/CONTRIBUTING.md) for licensing and contribution terms
|
||||
- [`RELEASING.md`](https://github.com/bybrooklyn/alchemist/blob/main/RELEASING.md) for release and RC checklists
|
||||
|
||||
RC.2 adds a supported Windows contributor path for `just install-w`,
|
||||
Windows contributors have a supported path for `just install-w`,
|
||||
`just dev`, and `just check`. Other `just` recipes are still Unix-first.
|
||||
|
||||
## Reporting bugs
|
||||
|
||||
@@ -30,7 +30,7 @@ deterministic scoring policy. Override in
|
||||
|--------|-----|------|-------|-------|
|
||||
| NVIDIA NVENC | RTX 30/40 | Maxwell+ | All | Best for speed |
|
||||
| Intel QSV | 12th gen+ | 6th gen+ | All | Best for power efficiency |
|
||||
| AMD VAAPI/AMF | RDNA 2+ on compatible driver/FFmpeg stacks | Polaris+ | All | Linux VAAPI / Windows AMF; HEVC/H.264 are the release-validated AMD paths for `0.3.0-rc.1` |
|
||||
| AMD VAAPI/AMF | RDNA 2+ on compatible driver/FFmpeg stacks | Polaris+ | All | Linux VAAPI / Windows AMF; HEVC/H.264 are the validated AMD paths for `0.3.0` |
|
||||
| Apple VideoToolbox | M3+ | M1+/T2 | All | Binary install recommended |
|
||||
| CPU | All | All | All | Always available |
|
||||
|
||||
|
||||
@@ -7,9 +7,9 @@ AMD uses VAAPI on Linux and AMF on Windows. Set
|
||||
**Settings → Hardware → Preferred Vendor** to `amd` if you
|
||||
want to pin it instead of using auto detection.
|
||||
|
||||
For `0.3.0-rc.1`, treat AMD AV1 as driver and FFmpeg-stack
|
||||
dependent rather than release-validated. HEVC and H.264 are
|
||||
the recommended AMD paths for this release candidate.
|
||||
AMD AV1 remains driver- and FFmpeg-stack-dependent and is
|
||||
not part of the validated `0.3.0` support matrix. HEVC and
|
||||
H.264 are the recommended AMD paths for `0.3.0`.
|
||||
|
||||
## Supported hardware
|
||||
|
||||
@@ -17,7 +17,7 @@ the recommended AMD paths for this release candidate.
|
||||
|------|---------|
|
||||
| H.264 | Polaris+ |
|
||||
| HEVC | Polaris+ |
|
||||
| AV1 | RDNA 2+ on compatible driver/FFmpeg stacks; not release-validated in `0.3.0-rc.1` |
|
||||
| AV1 | RDNA 2+ on compatible driver/FFmpeg stacks; available but not part of the validated `0.3.0` support matrix |
|
||||
|
||||
## Linux
|
||||
|
||||
|
||||
@@ -87,15 +87,15 @@ just build
|
||||
|
||||
Requires Rust 1.85+. Run `rustup update stable` first.
|
||||
|
||||
For Windows local development in RC.2:
|
||||
For Windows local development:
|
||||
|
||||
```bash
|
||||
just install-w
|
||||
just dev
|
||||
```
|
||||
|
||||
Windows contributor support in RC.2 is limited to the core `install/dev/check`
|
||||
path. Broader `just` release and utility recipes remain Unix-first.
|
||||
Windows contributor support covers the core `install/dev/check` path.
|
||||
Broader `just` release and utility recipes remain Unix-first.
|
||||
|
||||
## Nightly builds
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ FFmpeg expert.
|
||||
|--------|-----|------|-------|-------|
|
||||
| NVIDIA NVENC | RTX 30/40 | Maxwell+ | All | Best for speed |
|
||||
| Intel QSV | 12th gen+ | 6th gen+ | All | Best for power efficiency |
|
||||
| AMD VAAPI/AMF | RDNA 2+ on compatible driver/FFmpeg stacks | Polaris+ | All | Linux VAAPI / Windows AMF; HEVC/H.264 are the release-validated AMD paths for `0.3.0-rc.1` |
|
||||
| AMD VAAPI/AMF | RDNA 2+ on compatible driver/FFmpeg stacks | Polaris+ | All | Linux VAAPI / Windows AMF; HEVC/H.264 are the validated AMD paths for `0.3.0` |
|
||||
| Apple VideoToolbox | M3+ | M1+ / T2 | All | Binary install recommended |
|
||||
| CPU (SVT-AV1/x265/x264) | All | All | All | Always available |
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "alchemist-docs",
|
||||
"version": "0.3.0-rc.3",
|
||||
"version": "0.3.0",
|
||||
"private": true,
|
||||
"packageManager": "bun@1.3.5",
|
||||
"scripts": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "alchemist-web-e2e",
|
||||
"version": "0.3.0-rc.3",
|
||||
"version": "0.3.0",
|
||||
"private": true,
|
||||
"packageManager": "bun@1",
|
||||
"type": "module",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "alchemist-web",
|
||||
"version": "0.3.0-rc.3",
|
||||
"version": "0.3.0",
|
||||
"private": true,
|
||||
"packageManager": "bun@1",
|
||||
"type": "module",
|
||||
|
||||
Reference in New Issue
Block a user