* replace compose.services.desktop with compose.services.dashboard across all roles
* rename role web-app-desktop to web-app-dashboard
* rename sys-front-inj-desktop to sys-front-inj-dashboard
* update resolver mapping to include web-app-dashboard when dashboard is enabled
* adjust CSP filters to reference dashboard for frame-ancestors handling
* update lookup plugins, filter plugins, templates, vars and run_once flags
* migrate all tests to dashboard naming and service key
* update role dependencies and port mappings
* remove legacy desktop role and variables
BREAKING CHANGE:
The service key compose.services.desktop has been renamed to compose.services.dashboard.
All custom configs, inventories, or overrides must be updated accordingly.
https://chatgpt.com/share/698da7ad-1978-800f-82b4-4755b17be026
Wrap `docker compose up` in a retry loop (6 attempts, 30s delay) to mitigate
temporary Docker Hub / registry 5xx pull failures. Add unit tests covering
success-after-retries, exhaustion behavior, and no-sleep on first success.
https://chatgpt.com/share/698b8d67-0084-800f-ad33-ec8933dfba15
Switch sufficient_storage CLI to support JSON output and update CI matrix
generation to use JSON-only pipelines, preventing roles from collapsing
into a single matrix entry.
Switch cli.meta.applications.invokable to call module_utils.invokable.list_invokable_app_ids
directly instead of using filter_plugins.get_all_invokable_apps.
This removes the Ansible filter dependency from the CLI, making invokable discovery
pure-Python, deterministic, and easier to test.
https://chatgpt.com/share/698b225f-2c2c-800f-bd0e-624e82e5460a
- Move server/workstation/universal resolution into Python CLI
- Add optional --lifecycles filter to cli.meta.applications.type
- Gate invokable roles by galaxy_info.lifecycle in module_utils.invokable
- Replace legacy resolve-invokable-roles.sh with CLI-based implementation
- Apply global hard excludes consistently across all deploy types
- Fix SC2086 issues and make lifecycle argument handling shell-safe
- Extend unit tests to cover lifecycle forwarding and normalization
https://chatgpt.com/share/698b0039-c4c4-800f-b962-7033324c07a8
- Restore full teardown semantics in Compose.down by delegating to down_stack
(including volume removal and CI cleanup)
- Normalize templar render output to string to avoid None-related failures
- Clean up unused variable in templating fallback path
- Reorder test imports without changing behavior
https://chatgpt.com/share/69890935-4f1c-800f-8f2c-1b18a1df0ea5
- Import get_invokable_paths and get_non_invokable_paths at module level
so unittest.mock.patch can replace them
- Forward roles_file and suffix unchanged to preserve CLI boundary
- Remove implicit default resolution from CLI
- Keep error handling and output behavior unchanged
https://chatgpt.com/share/6987a639-0f8c-800f-9ee0-70cff683aa56
- Replace legacy app.sh/distros.sh orchestration with explicit all_distros.sh + dedicated_distro.sh
- Deploy each app sequentially across distros against a fresh stack
- Run two deploy passes per distro:
- Pass 1 with ASYNC_ENABLED=false
- Pass 2 with ASYNC_ENABLED=true against the same stack
- Remove deprecated cli.deploy.development run orchestrator
- Extend init command with --vars to inject inventory overrides
- Enforce debug mode for CI deploys
- Add hard Docker cleanup after each distro (containers, networks, volumes, build cache; keep images)
- Emit disk and docker usage before and after deploy for observability
https://chatgpt.com/share/6981c7d4-642c-800f-8438-9e2349ac53fb
- Introduce reusable workflow `mirror-images-missing.yml` to mirror only missing
Docker Hub images to GHCR using `--only-missing`
- Scope mirror concurrency per branch using `github.ref_name`
- Rename full mirror workflow to `mirror-images-all.yml` for clarity
- Integrate missing-image mirror into CI orchestrator and gate server/universal
deploys on successful mirror completion
- Add tag existence checks via `skopeo inspect` to avoid redundant uploads
- Keep mirror runs best-effort to avoid blocking CI on transient registry issues
https://chatgpt.com/share/698141e9-0844-800f-9c4f-fecd468ede73
- Add required GHCR mirror environment variables to CI workflows
- Generate mirrors.yml during development inventory init on CI
- Introduce mirrors helper module with strict env validation
- Minor formatting cleanup in mirror providers
`
https://chatgpt.com/share/6980ff2e-8f18-800f-85e1-79d56a2027f5
- mirror sync now continues on individual skopeo failures
- collect and summarize failed images
- return non-zero exit code only after all images were processed
- make GitHub workflow respect mirror sync exit status
https://chatgpt.com/share/6980b558-5fdc-800f-911e-48bbc35a461f