KRATE 0.6.0 alpha.21
Pre-release
Pre-release
KRATE 0.6.0
| Tag | v0.6.0-alpha.21 |
| Channel | pre-release (beta) |
Packages
| Platform | File | SHA256 |
|---|---|---|
debian13-amd64 |
krate_0.6.0.alpha.21-trixie_amd64.deb |
6f7e06a8ef440cbd8934d8f0e169f4a7da2683901d2fe287d6d08d6cc5e3c161 |
Install
zen pull --check
zen pullThe update channel (stable or pre-release) is configured with update_channel in
/etc/krate/environment.d/zenfw.conf (overrides in zenfw.conf.local).
zen pull resolves the matching release automatically when conditions are met.
Changes
console (6460b7c)
- fix(zenfw): fail fast when git clone needs interactive credentials (
6460b7c) — @tomcdj71 - fix(zenfw): accept manifest executables in software::require (
4447f43) — @tomcdj71 - fix(zenfw): emit JSON numbers from integer literals in json::build (
0931640) — @tomcdj71 - fix(zenfw): generate jellyfin WebSocket handle in proxy::generate (
f1e0bfa) — @tomcdj71 - feat(i18n): add Emby lifecycle error translation keys (
d397df4) — @tomcdj71 - fix(zenfw): simplify Jellyfin subpath reverse proxy for native WebSockets (
6771d7f) — @tomcdj71 - chore(ci): bump cache and upload-artifact actions (
1d2f89f) — @tomcdj71 - chore(ci): bump actions/checkout to v6 (
433b6aa) — @tomcdj71 - feat(handler_runtime): add release channel_guard for beta installs (
1063326) — @tomcdj71 - fix(workspace): terminate env files with newline and add Python 3.14 (
a06a6eb) — @tomcdj71 - fix(dependencies): restore setuptools package specification in pip section (
3c60dd4) — @tomcdj71 - fix(dependency): allow mutating grouped APT phase list during install (
719a303) — @tomcdj71 - fix(setup): ensure platform PHP APT group runs on cloud Debian images (
be629a4) — @tomcdj71 - fix(dependency): allow long timeout for apt-get upgrade (
1c45962) — @tomcdj71 - fix(pull): pass release tag into dashboard update helper (
6fe1dd7) — @tomcdj71 - fix(dashboard): rebuild Encore when assets or templates change without lock bump (
550e8dc) — @tomcdj71 - perf(dashboard): fast-path updates with scoped chown and build stamp (
fc8def1) — @tomcdj71 - feat(dashboard): stream composer/pnpm output and log each update step (
e455e20) — @tomcdj71 - fix(dashboard): clear prod cache with correct APP_ENV after update (
9a17ab4) — @tomcdj71 - fix(i18n): add missing dependency keys and clarify wait_ping_timeout (
78d9964) — @tomcdj71 - fix(zenfw): skip apt install when app manifest declares no packages (
556cd17) — @tomcdj71 - fix(zenfw): install setuptools in Python venvs via platform pip deps (
6f817ad) — @tomcdj71 - fix(zen): normalize hyphen pre-release versions in pull --check (
b9bed33) — @tomcdj71 - fix(dashboard): wipe Symfony prod/dev cache before dashboard::update (
0d37012) — @tomcdj71 - fix(zen): match installed krate package by tag and codename suffix (
24e934c) — @tomcdj71 - fix(zen): delegate vault commands to zenfw SQLite vault API (
f9f6f74) — @tomcdj71 - fix(zen): treat dotted pre-release .deb names as up to date (
ecccdba) — @tomcdj71 - fix(zenfw): declare switch_app_env_to_dev before AppEnvSwitchGuard (
d3cff02) — @tomcdj71 - feat(zenfw): reload PHP-FPM after dashboard update (
034d7ce) — @tomcdj71 - fix(zenfw): preserve APP_ENV across dashboard update (
7358975) — @tomcdj71 - feat(zen): provision HarmonyUI user after zen user add (
a76a743) — @tomcdj71 - fix(systemd): set krate-app-statusd working directory for krate user (
d2207fc) — @tomcdj71 - fix(runtime): let krate user refresh versions and run background timers (
7644cd7) — @tomcdj71 - feat(zen): run dashboard::update after zen pull installs a release (
8d030f1) — @tomcdj71 - feat(version): report runtime app versions via manifest probe cascade (
34ae0bf) — @tomcdj71 - fix(firewall): allow ICMP/ICMPv6 in default-deny input chain. (
1e86a5b) — @tomcdj71 - fix(caddy): add www-data supplementary group for php-fpm socket access. (
745bfa6) — @tomcdj71 - fix(dashboard): defer var/ www-data handoff until setup finishes. (
667e8fb) — @tomcdj71 - fix(dashboard): keep var/ writable during HarmonyUI install. (
3f94c2a) — @tomcdj71 - fix(dashboard): composer install from lock with update fallback on drift. (
c84b8de) — @tomcdj71 - feat(crypto): add KRATEH2 handler encryption with slim runtime bootstrap. (
8bed376) — @tomcdj71 - fix(dashboard): resolve node PATH and preserve var/ ownership on build (
5c791d3) — @tomcdj71 - feat(lifecycle): sync manifest-declared git repos on add and update (
981e785) — @tomcdj71 - fix(pull): resolve GitHub release assets when tilde is stored as dot (
13055d0) — @tomcdj71 - fix(firewall): do not open default_port/ssl_port in host firewall (
bb6690c) — @tomcdj71
setup (bea2ac7)
- fix(setup): persist zenfw.command.timeout during install (
bea2ac7) — @tomcdj71 - fix(install): stop pinning APP_ENV in the PHP-FPM pool (
29d0e76) — @tomcdj71 - fix(setup): persist krate.conf branch=beta to zenfw.conf.local (
1b412e3) — @tomcdj71 - fix(setup): declare zenfw_conf_finalize_local_permissions after permission_set (
1fcf013) — @tomcdj71 - fix(setup): normalize krate runtime permissions for timers and vault (
987dff3) — @tomcdj71 - fix(php): restart php instead reload (
52b8937) — @tomcdj71 - fix(setup): grant Caddy access to php-fpm socket via listen.acl_users. (
1514f67) — @tomcdj71 - fix(setup): pre-declare SSH and web ports before nftables default-deny. (
97c0616) — @tomcdj71 - fix(setup): open firewall port 443/tcp for Caddy after nftables init. (
3ead361) — @tomcdj71 - fix(setup): ensure var/ is writable by krate before Harmony migrations. (
e567056) — @tomcdj71 - feat(setup): wire nftables firewall into SSH/FTP setup phase (
ada4ae7) — @tomcdj71 - fix(setup): expose APP_ENV=prod to php-fpm for HarmonyUI (
83bc984) — @tomcdj71 - feat(setup): enable HarmonyUI messenger worker after install (
1d29000) — @tomcdj71 - docs: document update_channel setup flow in README (
9c6ef96) — @tomcdj71 - feat(setup): persist update_channel from krate.conf branch to zenfw.conf.local (
2ebf9a7) — @tomcdj71 - chore: reinit console repo (
049392c) — @tomcdj71 - Initial branch (
a74d37d) — @tomcdj71
web (HarmonyUI) (f2bf9f0)
- fix(ui): show Emby premiere key when ui_options and CLI flags overlap (
f2bf9f0) — @tomcdj71 - fix(migrations): skip ALTER when schema:update already applied columns (
280824b) — @tomcdj71 - fix(apps): rescan update flags after manage jobs and sync card dots (
346a8e8) — @tomcdj71 - fix(apps): route app updates through the same path as remove (
8be953d) — @tomcdj71 - fix(apps): dual-launch zen jobs via messenger and detached CLI (
b74afbe) — @tomcdj71 - fix(apps): queue software jobs via detached worker and zen_job table (
8f230b7) — @tomcdj71 - fix(apps): sync update notifications and refine update UI (
3f907c5) — @tomcdj71 - fix(web): restore clickListenerAttached guard in AppUpdateAction (
41e827f) — @tomcdj71 - feat(apps): replace update Yes label with actionable update controls (
4f71fd9) — @tomcdj71 - feat(web): expose Emby Premiere and Plex Pass keys in install wizard (
ea80ad1) — @tomcdj71 - chore(deps): lock league/commonmark dependencies (
0977884) — @tomcdj71 - feat(updater): detect beta update channel from zenfw config (
27d99e5) — @tomcdj71 - fix(settings): polish general settings save UX (
4abb71b) — @tomcdj71 - fix(updater): place TESTING.md checklist before changelog on update page (
f9b09fc) — @tomcdj71 - fix(updater): show TESTING.md checklist on system update page (
d64a80c) — @tomcdj71 - feat(apps): add remove action to dashboard app options menu (
6ea8740) — @tomcdj71 - fix(updater): normalize hyphen pre-release versions in comparison (
f1ccd47) — @tomcdj71 - fix(updater): remove redundant up-to-date sentence on settings page (
8d1da59) — @tomcdj71 - fix(dashboard): show up-to-date check icon beside footer label (
3da151b) — @tomcdj71 - fix(updater): run dashboard self-update in detached CLI process (
0c3f9c1) — @tomcdj71 - fix(updater): reconcile installed version when zen reports false positive (
40321ef) — @tomcdj71 - style(changelogs): increase modal width for system update changelog (
f11d30a) — @tomcdj71 - fix(vault): use named API_ENDPOINTS import for unlock request (
c803a4f) — @tomcdj71 - fix(vault): load vault page script from app bundle instead of profile_vault (
ac7f851) — @tomcdj71 - fix(updater): format last check time in PHP for notification footer (
fe1e4c0) — @tomcdj71 - fix(dashboard): format last update check time with format_datetime (
e5a92ea) — @tomcdj71 - fix(vault): register profile vault route via controller attribute (
478b59a) — @tomcdj71 - i18n(vault): add EN/FR strings for password vault page (
812e328) — @tomcdj71 - feat(vault): add profile vault UI with unlock toggle and copy actions (
77f9e4b) — @tomcdj71 - feat(vault): add profile page route and password-gated reveal API (
81a20d4) — @tomcdj71 - feat(vault): add service to list and reveal user-scoped credentials (
445f9e6) — @tomcdj71 - i18n(widgets): add EN/FR strings for dashboard widget display preference (
6299c43) — @tomcdj71 - feat(widgets): add profile toggle for dashboard widget row-2 display (
3a42dc8) — @tomcdj71 - feat(widgets): show or collapse dashboard widget row 2 based on user preference (
d7e666e) — @tomcdj71 - feat(widgets): persist dashboard widget row-2 display preference from profile (
26b5d04) — @tomcdj71 - feat(widgets): add dashboard widget row-2 collapsible preference field (
e48a0b8) — @tomcdj71 - feat(dashboard): show green check on notification bell when KRATE is up to date (
474296d) — @tomcdj71 - feat(dashboard): show last KRATE update check time in the UI (
4181091) — @tomcdj71 - feat(settings): show installed changelog with modal for pending update (
7cb622f) — @tomcdj71 - feat(updater): expose installed and available release changelogs (
7afed97) — @tomcdj71 - feat(settings): display rendered markdown on system update page (
4b942c9) — @tomcdj71 - feat(updater): render release notes markdown to HTML server-side (
814a710) — @tomcdj71 - fix(updater): show full package version for pre-release updates (
b412152) — @tomcdj71 - i18n(updater): add EN/FR translations for system update UI (
55794d8) — @tomcdj71 - feat(settings): add admin system update settings page (
47383fc) — @tomcdj71
official apps (41e84d6)
- fix(rutorrent): close awk exit parenthesis in plugin allowlist check (
41e84d6) — @tomcdj71 - fix(rutorrent): filter extension deploy and run initplugins after SCGI (
3dd3cec) — @tomcdj71 - fix(rutorrent): preserve WebUI prefs and surface initplugins failures (
3123d4f) — @tomcdj71 - fix(rutorrent): apply Krate patches after apps-extensions plugin deploy (
9f79f0e) — @tomcdj71 - fix(rutorrent): deploy apps-extensions plugins into plugins/ (
3604103) — @tomcdj71 - fix(rutorrent): deploy apps-extensions themes into plugins/theme/themes (
7f42523) — @tomcdj71 - fix(rutorrent): always restart php-fpm and sync Novik app on update (
30769b1) — @tomcdj71 - fix(rutorrent): ensure www-data can reach rTorrent SCGI socket on install (
bdeb8ac) — @tomcdj71 - fix(jellyfin): dedicated handle block for WebSocket subpath proxy (
853c5b5) — @tomcdj71 - fix(ci): use client-id input for create-github-app-token v3 (
b34233e) — @tomcdj71 - fix(jellyfin): render Caddy fragment from app template with path matcher (
871fc44) — @tomcdj71 - fix(emby): use Krate env file and force EMBY_DATA on each config (
6dd3da7) — @tomcdj71 - chore(ci): bump create-github-app-token to v3 (
730e0c0) — @tomcdj71 - chore(ci): bump actions/checkout to v6 (
a7ba0e7) — @tomcdj71 - fix(jellyfin): map beta channel to stable Jellyfin releases (
4dca417) — @tomcdj71 - fix(emby): pass -programdata so server uses user data_dir (
bc44ac0) — @tomcdj71 - fix(rtorrent): run pre script via sh without requiring execute bit (
b7fb662) — @tomcdj71 - fix(jellyfin): verify Users/Public after wizard and enable proxy URI by request (
0f5a240) — @tomcdj71 - fix(tautulli): allow 180s for CherryPy to become active after start/restart (
e1838aa) — @tomcdj71 - fix(rtorrent): point ExecStartPre at official pre script and extend service wait (
4d48822) — @tomcdj71 - fix(tautulli): install release deps via uv pip with filtered requirements (
d46510a) — @tomcdj71 - fix(rtorrent): use oneshot unit for tmux detached session (
9ed9fc4) — @tomcdj71 - fix(jellyfin): do not fail install when playback API key is missing (
d17db3a) — @tomcdj71 - fix(emby): use loopback root URL and tolerate two-phase startup (
3e32288) — @tomcdj71 - fix(deluge): install venv deps with uv pip and split Pillow install (
ec3eaa9) — @tomcdj71 - fix(decluttarr): install deps via uv pip instead of venv::build (
95f4e9c) — @tomcdj71 - fix(byparr): printf env file and soften systemd start before probe (
dd1da54) — @tomcdj71 - fix(rtorrent): use systemd Type=simple for tmux session (
8f7880e) — @tomcdj71 - fix(tautulli): harden uv venv provisioning on Python 3.13 (
549ca6f) — @tomcdj71 - fix(decluttarr): harden uv venv provisioning on Python 3.13 (
db969c3) — @tomcdj71 - fix(jellyfin): fetch playback API key via GET after POST (
e675526) — @tomcdj71 - fix(emby): defer API readiness check to _secure (
f2fcbf2) — @tomcdj71 - fix(deluge): use distro python3-rencode on Python 3.13 (
ded94f3) — @tomcdj71 - fix(dispatcharr): write Postgres .env keys with explicit newlines (
5385b1a) — @tomcdj71 - fix(quasarr): preserve subpath patch when applying route patches (
fe01608) — @tomcdj71 - fix(apps): repair byparr, decluttarr and deluge beta install flows (
606c25d) — @tomcdj71 - fix(requestrr): avoid tmp RETURN trap under set -u during _secure (
d6e0243) — @tomcdj71 - fix(jellyfin): read playback API key from Auth/Keys response (
d7d9246) — @tomcdj71 - fix(whisparr): drop referenceassemblies-pcl from apt dependencies (
fe873ad) — @tomcdj71 - fix(rtorrent): extend systemd restart wait for forking tmux unit (
81adec8) — @tomcdj71 - fix(emby): wait for API readiness using url_base after install (
028c84b) — @tomcdj71 - fix(quasarr): regenerate subpath routes patch for v4.6.0 (
508c161) — @tomcdj71 - fix(byparr): pin Python 3.13 and extend service restart timeout (
48c6715) — @tomcdj71 - fix(deluge): pin pyOpenSSL below 24 for Deluge 2.2.0 (
06f005d) — @tomcdj71 - fix(dispatcharr): write SECRET_KEY to .env before Django migrate (
c119864) — @tomcdj71
community apps (21ceee3)
- chore: init repo (
21ceee3) — @tomcdj71