- Replace `sed`-based hostname extraction with `grep -oE` to accurately isolate numeric suffixes
- Ensure consistent variable quoting in loops and `printf` commands to prevent word splitting
- Update the free hostname check to use anchored `grep` patterns for precise matching
- Replace string-based DNS record identification with structured objects containing key, id, source, type, target, and ttl
- Update DNS creation, update, and deletion logic to use the new composite key for matching records
- Refine TTL update logic to only trigger when the desired TTL differs from the existing one
- Remove `open-url-with-delay` calls in favor of `open-url` in `upgrade-odoo` and `task` scripts
- Simplify URL opening logic by removing unnecessary delay arguments
- Add `|| true` to `activate-venv` call to prevent script failure if virtual environment is not available
- Ensure task execution continues even when venv activation is skipped
- Change `cp` commands in `task` build-vuepress function to `cp -r` to correctly copy directory contents from roles
- Add `pnpm-workspace.yaml` to project root and update `.gitignore` to track it
- Update README.md to replace Vercel badge with GitHub Actions deploy workflow badge
- Add default values for PORT and TARGET_PORT variables in `bin/upgrade-odoo` script
- Add `.github/workflows/deploy.yml` to automate Kubernetes pod deletion on main branch push
- Change Ansible log path from `/var/log/ansible.log` to `/var/tmp/ansible.log` in `ansible.cfg.template`
- Remove manual log file setup steps from the `task` install function as the log path no longer requires root permissions
- Merge `odoo` and `nextcloud` inventories into `mint_system` with scoped host and group variables
- Rename host_vars folders and apply `_odoo`/`_nextcloud` suffixes to hosts for clear separation
- Restructure `mint_system/hosts.yml` to group hosts under `setup`, `odoo`, and `nextcloud` children
- Update playbooks (`all`, `nextcloud`, `odoo`, `setup`) to target specific host groups instead of `all`
- Remove redundant `postgres` and `mariadb` dependencies from `nextcloud` role meta
- Refactor `list-hosts` script to support flattened inventory structures and improved column sorting
- Mark inventory merge task as completed in documentation
- Replace all references to `inventories/odoo` and `inventories/setup` with `inventories/mint_system` in README.md
- Update cleanup playbook filename from `cleanup.yml.yml` to `cleanup.yml` in documentation examples
- Extend host configuration lookup in `task` script to search nested children groups if not found in direct children
- Update merge strategy prompt to include moving `odoo` and `nextcloud` group_vars to the new `setup` scope
- Create new `bin/upgrade-odoo` script to manage Odoo version upgrades between environments
- Implement steps for database/filestore dump, restore, and rename operations
- Add support for test and production upgrade modes with module initialization and configuration
- Include troubleshooting commands (logs, shell, psql, env, conf)
- Add `upgrade-odoo` command to the main task script with dynamic help table entry
- Introduce dotenv management commands (`copy`, `create`, `edit`, `list`, `load`, `remove`, `rename`, `restore`, `show`)
- Update navigation menu in `.vuepress/config.js` with "Upgrade Odoo" link
- Create comprehensive `upgrade-odoo.md` documentation covering setup, test run, production run, and recovery
- Update `CHANGELOG.md` with new features and changes
- Configure `dev-vuepress` task to automatically open the browser after starting the server
- Added Function column to list-hosts output table for both inventory types
- Implemented optional [grep] parameter for case-insensitive row filtering
- Fixed set -e bug by adding || true to customer detection grep
- Updated help documentation to reflect new list-hosts signature
- Added task prompt documentation file for this enhancement
- Added optional username parameter to connect-host command for flexible user specification
- Implemented fallback logic to use ansible_user when no override is provided
- Improved variable naming and code structure for better readability
- Maintained backward compatibility by keeping original behavior when no username is specified
- Updated help documentation to reflect the new [host][username] parameter format
- Added `bin/visualize-dependencies` script to generate interactive dependency graphs for Ansible roles
- Created `visualize-dependencies` command in `task` file to run visualization and open HTML output
- Updated role dependencies to use `docker_network` instead of `docker` where appropriate
- Added `meilisearch_client` role with dependency on `meilisearch`
- Cleaned up README.md files by removing redundant newlines
- Added kind classification to all role READMEs (consistent with previous commits)
feat(test-localhost): enhance log display with timestamps, tail limit, and empty log handling
chore(nginx): comment out unused proxy configurations for n8n, odoo, grafana, keycloak, and open_webui
- Revert `.python-version` from 3.13 back to 3.10 for compatibility
- Add `run` command to task script for executing Ansible ad-hoc commands
- Update CHANGELOG to reflect Python version change and new command
- Add documentation in ssh role for showing OpenSSH version via `task run`
- Remove unnecessary `activate-venv` calls from functions that don't require it
- Update `.python-version` from 3.11 to 3.10 for consistency
- Simplify `install()` by moving venv setup before dependency installation
- Add explicit Python version check and installation in `install()`
- Update `requirements.txt` to use latest versions without pinning
- Fix example in `roles/restic/README.md` to match Odoo backup context
- Adds new `install-ansible-build-scripts` command to the task script
- Allows installation of scripts for a specified Ansible role
- Extends automation capabilities for role-based script deployment
- Updates help table to include new command with description and usage format
- Merged `odoo_scripts` role into `odoo` role for simplified management
- Moved all Odoo-related scripts from `roles/odoo_scripts/files/` to `roles/odoo/files/`
- Updated installation references and documentation to reflect consolidated structure
- Removed redundant `odoo_scripts` entries from playbooks, cleanup tasks, and documentation
- Adjusted script URLs in documentation and build processes accordingly
- Ensures better organization and maintainability of Odoo-related automation
- Renamed `test` directory to `inventory` for clarity and consistency
- Updated `.gitignore` to reflect new inventory location
- Modified `task` script to use `inventory` instead of `test` for Ansible playbooks
- Updated PostgreSQL image version from 14-alpine to 16-alpine in localhost vars
- Aligns with infrastructure organization and standardization efforts
Closes #XYZ