Skip to content

Changelog

All notable changes to Frappe Manager are documented here.

Versions prior to v0.19.0 were released without structured changelogs. See the GitHub Releases page for historical notes.

v0.19.0.dev0 - 2026-04-14

Bug Fixes

  • Ensure robust subprocess output decoding (b23bfa1)
  • Add timeouts to mirror selection curl calls (459a563)
  • Fix inaccurate RQ queue status filtering (bef9dfd)
  • Start all services on migration failure instead of workers only (1b2f90b)
  • Treat empty FRAPPE_MANAGER_HOME as unset (e8eebee)
  • Remove debug set -x and fix Docker layer issues (e192c69)
  • Raise on export_to_toml write failure instead of returning False (f4b08c8)
  • Clean up orphaned cert on HTTPS config or reload failure (109daec)
  • Surface renewal failures as errors instead of warnings (fc4d9af)
  • Guard ctx.obj assignments behind help_called check (ec85d70)
  • Switch to root user for final COPY operations (4000b53)
  • Set USER and GROUP env vars for gosu (937baaa)
  • Add timestamp to venv backup directory (f07176b)
  • Explicitly pass env vars in entrypoint (151b8d6)
  • Correctly handle migrations for pre-release versions (f27e326)
  • Use frappe_site_name for asset resolution instead of host (2b0212a)
  • Use stdout to get selected python version (8a48cfd)
  • Pull global service images if missing (40c2ad7)
  • Address Copilot review feedback on constant naming and standalone script support (a543e88)
  • Strip ANSI codes in help text assertion for CI compatibility (f725f1b)
  • Remove trailing slash from admin tool proxy_pass (4ee1977)
  • Resolve various minor bugs and regressions (993ca12)
  • shell: Improve interactive terminal support for bench commands (d938de9)
  • ssl: Remove logger variable references and cleanup (86bc781)
  • cli: Handle SIGPIPE and stop output before interactive shell (bd9c011)
  • logger: Add thread safety to LiveAwareRichHandler with output lock (c884722)
  • logger: Ensure parent directories are created for log files (a142211)
  • nginx: Remove trailing slashes from admin tools proxy_pass directives (c171982)
  • migrate: Parse and quote Python version in uv commands (745e119)
  • migrate: Prompt for rollback in single-bench migrations (f8e4fb9)
  • migrate: Remove archive option for single-bench migrations (f840301)
  • examples: Only show benchname for commands that require it (be553f0)
  • migrate: Replace Literal with Enum for --on-failure parameter (89715c0)
  • examples: Update examples.json to match actual CLI flags (0686479)
  • Correct SSL remove required_flag to match actual CLI flag (fc2d06e)
  • Add required_flag to all prompts for proper non-interactive mode (234ccf2)
  • Implement prompt_fuzzy() to fix --non-interactive flag and spinner context managers (b8e4c73)
  • Revert Phase 2 table reuse optimization to prevent IndexError (6f68ba2)
  • Handle missing database info keys in bench info display (184972e)
  • Replace incorrect error() calls with display_error() (f7851de)
  • Forward set_interactive_mode to delegate in LoggingOutputHandler (b232905)
  • Suppress spinners and status messages in non-interactive mode (cc136b4)
  • Add missing exception parameter in update error handler (33c80e0)
  • Correct spinner and error handling in runtime execution (e6470b1)
  • Validate HTTP 200 status for Ubuntu mirrors before selection (b7ca15d)
  • Improve bench creation resilience and app installation order (befb447)
  • Clean up InquirerPy prompt display (5b90fb6)
  • Suppress sudo hint message in interactive shells (db57f83)
  • Update oh-my-zsh location and bump versions (0d0f16c)
  • Use fnm-managed node path for node-socketio (68f783c)
  • Handle UV Python platform-specific versions and update default symlink (4290e01)
  • Complete type safety improvements - achieve 0 errors (2e3c1f3)
  • Add type safety improvements and docker type stub (b0a1791)
  • Correct certificate manager method calls (aaed8dc)
  • Use newline separator for alias domains in output (2e2a68f)

Build

  • Update dependencies and regenerate lock file (0ff9637)
  • Relocate .uv and .fnm directories to frappe-bench (3e1cda0)
  • Pin typer-examples dependency (799a56c)
  • Move version source of truth to about.py (8e92b71)
  • Install wkhtmltopdf in base Docker stage (62fa695)
  • Simplify arch detection for wkhtmltopdf (7f8a5cf)
  • Adjust Docker build environment paths (336fed1)
  • Restrict Python version to 3.13 (d9edf6c)
  • Support Python 3.13 (baba369)
  • Bump required Python version to 3.14.2 (a5bf8be)
  • Increase minimum Python version to 3.14 (4ca16b6)
  • Upgrade Python to 3.14 and update dependencies (37874e3)
  • Use script for Dockerfile mirror selection (42f6fc5)

CI

  • Integrate git-cliff for automated changelog generation (3dc3430)
  • Use CNAME file and alias-type redirect for pages deployment (435712e)
  • Streamline custom domain setup for Pages (a7da3ce)
  • Disable main branch documentation deployment (54fab97)
  • Enhance documentation deployment workflow (5c6cbba)
  • Compile SCSS for documentation styles (7c2c6ec)
  • Conditionally push CLI docs changes (03a3990)
  • Switch to Mike for versioned docs deployment (1c1655c)
  • Add PyPI publish workflow on v* tag push (a229a8c)
  • Separate build cache by architecture (7b2be82)
  • Update default wiki branch to master (1d01765)
  • Always push wiki on manual trigger (5b62c46)
  • Remove ref/0 from docs workflow trigger (7371ced)
  • Disable PR comment for CLI doc updates (21fff1c)
  • Add permissions to CLI docs workflow (fd9c1c6)
  • Bump Python to 3.13 in docs workflow (d34cae5)
  • Add workflow to auto-generate CLI docs (cacfa56)
  • Update pytest workflow for Python 3.13 (9f62715)
  • Update Python version for CI tests (b68fde1)
  • Add unit test workflow and refactor E2E (56a89f7)
  • Unify image baking workflow for all services (4cfe2b2)

Chores

  • Remove Redis Queue Dashboard (46d8089)
  • Prepare for v0.19.0 development (3a882ee)
  • Remove debug print statement (adb57c5)
  • Simplify docs CI and update README (8758fa9)
  • Update build steps in Linux binary workflow (3509055)
  • Add test utilities and Python dependencies (08ddb11)
  • Update .gitignore for virtual environments (ed85ff1)
  • Update .gitignore to exclude .tmp directory (7c1a4f8)
  • Remove poetry files and add uv.lock (a701c09)
  • Update .envrc for uv-based environment setup (202a22e)
  • Migrate to PEP 621 and update dependencies (094ecf7)
  • Remove devbox configuration files (f871d46)
  • Add dependabot configuration (f533414)

Documentation

  • Migrate changelog to docs/changelog.md as single source of truth (c36825a)
  • Show dev version in CHANGELOG.md instead of Unreleased (d29f71d)
  • Document Python update --no-recreate-python-env (b20dd57)
  • Add examples for update command (46665ec)
  • Expand and rewrite reference documentation (611b6bf)
  • Rewrite and expand environments guide (9a4e4bc)
  • Overhaul and expand SSL guide (aa43ef9)
  • Redesign command reference and standardize examples (06d1b3e)
  • Add guides for backup, fmx, and versions (d97ccf2)
  • Reorganize FAQ page with sections (e4fb4ca)
  • Add documentation for fmx utility (b428bb1)
  • Overhaul and standardize documentation (18e68a1)
  • Overhaul documentation site and content (4e333c9)
  • Move documentation to GitHub Pages (bfe49a1)
  • Update scripts README for CLI doc generator (f33f14c)
  • Improve CLI option help texts (7c838cf)
  • Simplify README and move examples to Wiki (6ac53af)
  • Update uvx run instructions (0da9812)
  • Enhance README installation and usage guide (a7d610f)
  • Remove hardcoded examples from command docstrings (81c4eae)
  • tests: Add comprehensive testing guide with global handler documentation (59058a5)
  • Improve CLI command descriptions and examples (8997254)
  • ssl: Update comment to remove certbot reference in site.py (17da3c2)

Features

  • Add Python and Node version to bench info (923d2b5)
  • Add option to control Python environment recreation (caf9624)
  • Add platform parameter to Docker run command (763946c)
  • Migrate to uv and improve installer UX (597a1ea)
  • Migrate to uv and improve installer UX (d8194fc)
  • Add --version flag to CLI (57e1385)
  • Add structured examples to CLI help output (4cbcd16)
  • Add detailed CLI examples to restart command (f5812ad)
  • Add worker kill timeout and poll options (cc86ae9)
  • Improve migration output and optimize worker restarts (2de9d6e)
  • fmx: Add RQ control command and improve status display (e08c45d)
  • fmx: Add RQ worker status to status command (207531d)
  • Add zero-downtime migration with custom command support (08f5630)
  • Automate command reference updates (ba7f784)
  • Add correct reload for global nginx proxy (194cdeb)
  • Add --bench-console option to shell (0f7276d)
  • Add exit method to logging output handler (2112ddd)
  • cli: Improve example command substitution with dynamic parameter handling (259938e)
  • logger: Integrate contextual logging across commands and managers (00fe584)
  • migrate: Add granular flags for confirmation and failure handling (fde91fc)
  • Add required_flag to migration and SSL prompts (c9c7198)
  • Update commands with non-interactive support (bb49b3f)
  • Add global --non-interactive/-n flag (820a9d2)
  • Add required_flag parameter to OutputHandler implementations (370695b)
  • output: Implement global output handler registry and migrate core commands (ea14388)
  • Add script to find best Ubuntu mirror (25fb077)
  • Add best mirror selection for package installations (0096cfc)
  • Improve Python/Node version management and output (1be4105)
  • Introduce interactive bench selection and improve CLI help (feab3d7)
  • Add comprehensive migration command and system (2e72152)
  • Enhance database backup and SSL management (8b40ab7)
  • Implement migration for v0.19.0 (77082ef)
  • Add domain uniqueness validation for benches (c532e5d)
  • Add explicit primary/alias domain config (7853fb5)
  • Add Docker restart policy management (b24fe0f)
  • Add TTY detection and non-TTY fallbacks to DisplayManager (681f4f3)
  • Replace Rich Prompt with InquirerPy for better UX (0e9590a)
  • Implement self compose and bench validation (0eabd48)
  • Generate unique database names for benches (3da24e1)
  • Add nginx restart support to fm restart command (a45bcef)
  • Add Python/Node version management and flexible restart options (3264687)
  • Enhance shell and logs commands with flexible service targeting and docker compose run support (3350608)
  • Add parallel app cloning with multi-auth fallback and monorepo support (87cf562)
  • Add configurable upload size limit for bench sites (3909735)
  • shell: Add command execution mode with -c flag and passthrough syntax (f0332ae)
  • ssl: Add acme-sh passthrough command for advanced certificate operations (0e5cfb1)
  • Add database deletion control flags and improve SSL certificate cleanup (30d6324)
  • ssl: Fix certificate structure bugs and remove duplicate challenge field (c28ce34)
  • ssl: Add standalone SSL management with CNAME delegation support (a39fbd2)
  • ssl: Enhance SSL commands with output handler, validation, and improved UX (fd9a68c)
  • logger: Add contextual logging with verbose control and comprehensive testing (7ece5ff)
  • Add ComposeOrchestrator and DockerClient integrations (1915324)
  • Update alias domain support in site creation (54413fb)
  • Add alias_domains support in BenchConfig (e8d6fab)
  • Support alias domains for SSL and site management (aa172fa)
  • Add alias domain management to bench (8cd3cd3)
  • Add alias domain support for SSL symlinks (5b3068f)
  • Add alias domains support for SSL certificates (e28fef4)
  • Add support for custom Redis URL in CLI (af558ca)
  • Add CLI for RQ Worker Controller (b500aeb)
  • Extend DockerClient to support new options (bdcbc84)

Performance

  • Add fast-exec entrypoint for one-off commands (7b5d95b)
  • Use numeric gosu for instant container startup (e4753ee)
  • Add lightweight entrypoint for faster commands (3210174)
  • Remove slow recursive chown on /opt (4a84a00)
  • Optimize container restarts for updates and domain changes (41c93bd)
  • Optimize output handler Phase 2 (table reuse in live_lines) (79376a1)
  • Optimize output handler Phase 1 (console singleton + deprecation caching + emoji constants) (74a784f)

Refactoring

  • Move VS Code configs to JSON templates (6d55f06)
  • Refactor output and supervisor handling (7755646)
  • Refactor supervisor configuration generation (35167f4)
  • Streamline supervisor config generation (f9ea11a)
  • Update Sass mix() function calls (3b47694)
  • Migrate CLI examples to typer-examples (f03dfd2)
  • Refine process kill message and display (c7ba018)
  • Clean up command output and internal API (ab3b9af)
  • Refactor service output and remove force kill (429fd8f)
  • Refactor command execution and utilities (e540a94)
  • Extract RQ worker management to helper module (e595218)
  • Refactor RQ worker drain options (1d2b375)
  • Refactor RQ worker suspension and idle handling (f05b69b)
  • Refactor RQ worker suspension logic (26dc3cd)
  • Refactor RQ worker suspension and cleanup CLI (deebcf2)
  • Refactor bench connection configuration logic (33bdbb2)
  • fmx: Improve status command RQ reporting and process state tracking (451425b)
  • fmx: Simplify bench-wrapper and streamline restart/stop commands (ea6a7bb)
  • fmx: Improve UI output and add verbose/debug flags (3100031)
  • fmx: Comprehensive codebase audit fixes for stability (46c131b)
  • Simplify corepack setup using FNM variable (32d528a)
  • Use corepack to enable yarn (a14ada4)
  • Remove exec-command.sh wrapper script (0e6c940)
  • Generalize image tag update in migration (fbbc2b8)
  • Use dynamic version in migration script (341a8d3)
  • Derive image tags from package version (4a7fb98)
  • Use exec-command.sh for container commands (508d2c2)
  • Refactor Docker run command execution (1dd75f7)
  • Remove redundant bench name check (d745801)
  • Remove redundant bench name check (046d160)
  • Refactor supervisor config generation (c66d085)
  • Remove deprecated --sync-config flag (b1dedea)
  • Clarify database backup message (0a729f6)
  • Simplify backup skip warning message (7479481)
  • Refactor and simplify shell command (aaa8875)
  • docker: Replace subprocess with os.execvp for docker compose execution (10771c6)
  • logger: Simplify LiveAwareRichHandler by relying on Rich Console coordination (e8155c7)
  • logger: Simplify verbose flag and add configurable file logging (46bb2d7)
  • docker: Add auto-streaming support to docker compose wrapper (1d99023)
  • Phase 3 code quality improvements (type hints + f-string optimization) (4b3acef)
  • Remove DisplayManager module completely (BREAKING) (47bde2c)
  • Inline DisplayManager into RichOutputHandler (BREAKING) (ad0e71d)
  • Remove final richprint usage and unused imports (6524894)
  • Enhance app repository validation with detailed auth reporting (650eaa7)
  • Add migration check whitelist and multi-level command path detection (8070c91)
  • Implement interactive migration flow with infrastructure and bench separation (817a3da)
  • Delete old sub_commands/ssl_command.py (f06001f)
  • Move SSL commands to commands/ssl/ module (b4f9d3c)
  • Delete old sub_commands/self_commands.py (64e01bb)
  • Move self commands to commands/self/ module (1da74b4)
  • Delete old services_manager/commands.py (4e3b850)
  • Move services commands to commands/services/ module (e14ff55)
  • Create commands module structure (13fd4d9)
  • Remove unused ComposeOrchestrator layer (1fc3eca)
  • Add port conflict detection to DockerException and remove unused port checking utilities (94d0ae6)
  • Clean up output formatting and remove unused variables (74752cb)
  • Enhance SSL renewal with force/dry-run support and improve output formatting (3e402f9)
  • Use AppConfig objects consistently throughout app handling (24d2bc7)
  • Parallelize app validation and improve progress visibility (163a9aa)
  • Improve migration UX with clearer prompts and runtime rebuild handling (1050f61)
  • Refactor commands and add progress spinners (3e9cd91)
  • Refactor SSL challenge handling and CLI examples (90f3835)
  • Improve BenchNotFoundError handling (8e98914)
  • Refactor database deletion and command execution (4ccab3e)
  • Centralize Docker command output streaming (8044d36)
  • Refactor migration system and output handling (c6bc371)
  • Refactor migration command output and logic (d16d6b5)
  • Refactor user data input format handling (d673c59)
  • Refactor migration system with rolling policy (283930b)
  • Improve Nginx multi-domain and build process (5521f3f)
  • Refactor error handling and bench service init (f2497b7)
  • Refactor output management with context managers (e0d504a)
  • Remove trailing periods from output messages (9573b82)
  • Use output.prompt_ask instead of typer.confirm (5bc3408)
  • Improve Python/Node installation messages (aacf288)
  • Remove oh-my-zsh, switch to system-wide bash config (5680c28)
  • Update SSL challenge type property name (75da146)
  • Improve code readability and documentation (e8b8492)
  • Reduce output verbosity during bench operations (c0c080a)
  • Implement 5-phase bench initialization with docker compose run (826d595)
  • Migrate Docker from pyenv/nvm to fnm/uv for Python and Node management (e13f8a9)
  • Remove frappe_branch param and integrate frappe into apps_list (94fbda8)
  • Remove unused certbot dependencies (bcbaa1b)
  • Add generic subprocess streaming and enhance SSL certificate operations with live output (06e3419)
  • ssl: Remove email requirement from Let's Encrypt certificate operations (1f26e74)
  • Remove SSL and Let's Encrypt options from create/update commands (e7d1716)
  • Remove redundant 'fm ssl delete' command (0aec3fe)
  • ssl: Remove certbot service in favor of acme.sh (14e862b)
  • Bug fixes to acme.sh and ssl manager (c9cc29c)
  • Enhance logging and display coordination (d175dcb)
  • Remove Typer framework dependencies from business logic (c785b94)
  • Replace richprint.exit() with proper exception handling (08901f5)
  • Decouple CLI from business logic with OutputHandler abstraction (78dd3a7)
  • Rename site_exceptions to exceptions (38428b3)
  • Restructure admin and worker module organization (72d1c5a)
  • Replace BenchesManager with BenchService (cca8269)
  • Extract bench operations into modular classes (4c1660b)
  • Modularize and restructure Bench class (9080270)
  • Simplify Docker compose interaction (b5b9320)
  • Consolidate DockerWrapper and ComposeManager modules (0106c8c)
  • Decouple nginx-proxy functionality from monolithic manager (e79d33d)
  • Simplify alias domain handling in SSL management (90a8621)
  • Update service management logic in site manager (8aed9f5)
  • Update alias domain handling for SSL and config (307e4cc)
  • Move rq import inside function (0bf6fe2)

Styling

  • Add custom SCSS stylesheet and docs build tasks (6bd3f25)
  • Implement new docs theme with rtCamp branding (74651dd)
  • Adjust migration start message display (b494f66)
  • Apply ruff formatting across codebase (efb4f1c)
  • Update type hints to use Type | None syntax (aca0d23)

Testing

  • Standardize config formatting and improve migration test coverage (7978800)
  • Update migration tests to use 'yes' parameter instead of 'force' (a8ffc37)
  • Add global handler fixture and fix CLI tests (54d2c44)
  • ssl: Add comprehensive tests for SSL certificate lifecycle operations (c96cf81)
  • ssl: Complete certbot removal and fix all unit tests (4eb18cb)