Releases: EstebanForge/construct-cli
Releases · EstebanForge/construct-cli
The Construct CLI 1.4.0-beta.9
Release Notes
The Construct CLI 1.4.0-beta.8
Release Notes
The Construct CLI 1.4.0-beta.10
Release Notes
The Construct CLI 1.4.0-beta.7
Release Notes
The Construct CLI 1.3.9 - 2026-02-24
Release Notes
Fixed
- Podman Non-Interactive Setup Runs: Added
-Tto non-interactive composerunflows used by rebuild/setup/update/package install paths to avoid Podman TTY/conmon startup failures on Linux. - SELinux Home-Directory Rebuilds: When SELinux labels are active and Construct is launched from the home directory, compose override generation now falls back container
working_dirto/projectsto prevent Linux startup failures while preserving the project mount. - Broken Gum Binary Fallback: UI now validates that
gumis executable (not only present inPATH) before using it, ensuring clean fallback output and readable setup error logs on Linux.
Added
- Regression Coverage for SELinux Home Fallback: Added Linux runtime test coverage validating
/projectsfallbackworking_dirbehavior when home-directory SELinux relabeling is skipped.
Changed
- Linux Startup Identity Propagation: Linux compose runs now propagate host
UID:GIDinto startup env for setup, interactive runs, daemon startup, doctor compose actions, and package/update operations. - Entrypoint Ownership Strategy (Linux): Entrypoint now supports host numeric
UID:GIDownership/runtime mapping (when provided) while preservingHOME=/home/constructsemantics.
Fixed
- Recurring Linux Home Ownership Drift: Prevented repeated ownership drift on
~/.config/construct-cli/homecaused by container startup user/ownership mismatch across Docker and Podman flows. - Config Permissions Doctor Coverage:
construct sys doctornow reports ownership mismatch (not only writability) for Linux config directories. - Codex Startup Permission Loop: Resolved repeated permission-fix prompts triggered by home mount ownership mismatch before
ct codexstartup.
Added
- Comprehensive Linux
doctor --fixRemediation: Added Linux--fixflow that repairs config ownership/permissions, rebuilds stale/missing image for startup fixes, recycles stale session container, and recreates daemon container. - Regression Coverage for Linux Ownership Fixes: Added unit tests for ownership-state detection, linux fix flow, host identity env injection, daemon recreation/session cleanup fix paths, and template guards for host identity propagation.
- Release Channels (
stable/beta): Addedruntime.update_channelto config, beta version marker support (VERSION-BETA), and installer channel selection (CHANNEL=beta) for selective prerelease adoption. - Semver Prerelease Comparison: Added shared semantic version comparison logic with prerelease support for update checks and migration gating.
The Construct CLI 1.3.8 - 2026-02-24
Release Notes
Changed
- Linux Startup Identity Propagation: Linux compose runs now propagate host
UID:GIDinto startup env for setup, interactive runs, daemon startup, doctor compose actions, and package/update operations. - Entrypoint Ownership Strategy (Linux): Entrypoint now supports host numeric
UID:GIDownership/runtime mapping (when provided) while preservingHOME=/home/constructsemantics.
Fixed
- Recurring Linux Home Ownership Drift: Prevented repeated ownership drift on
~/.config/construct-cli/homecaused by container startup user/ownership mismatch across Docker and Podman flows. - Config Permissions Doctor Coverage:
construct sys doctornow reports ownership mismatch (not only writability) for Linux config directories. - Codex Startup Permission Loop: Resolved repeated permission-fix prompts triggered by home mount ownership mismatch before
ct codexstartup.
Added
- Comprehensive Linux
doctor --fixRemediation: Added Linux--fixflow that repairs config ownership/permissions, rebuilds stale/missing image for startup fixes, recycles stale session container, and recreates daemon container. - Regression Coverage for Linux Ownership Fixes: Added unit tests for ownership-state detection, linux fix flow, host identity env injection, daemon recreation/session cleanup fix paths, and template guards for host identity propagation.
- Release Channels (
stable/beta): Addedruntime.update_channelto config, beta version marker support (VERSION-BETA), and installer channel selection (CHANNEL=beta) for selective prerelease adoption. - Semver Prerelease Comparison: Added shared semantic version comparison logic with prerelease support for update checks and migration gating.
The Construct CLI 1.3.7 - 2026-02-22
Release Notes
Added
- Unified Test Summary (
make test): Added a combined end-of-run summary that reports unit pass/fail/skip counts, unit package pass/fail counts, integration totals, and overall status. - Codex Regression Tests: Added targeted tests for Codex env injection and fallback behavior, including
CODEX_HOMEpresence for Codex runs, WSL fallback env injection when clipboard patching is enabled, and guard checks ensuring non-Codex agents do not inherit Codex-only env vars. - Attach Execution Regression Tests: Added focused tests covering attach-session env injection (
HOME,PATH, clipboard vars, Codex vars), shell fallback behavior, and Linux host-UID exec mapping. - Podman Compose Selection Tests: Added unit coverage to verify command selection prefers
podman-composewhen present and falls back topodman composewhen it is not.
Changed
- Test Runner Consolidation:
make testandmake test-cinow run through a sharedscripts/test-all.shflow for consistent unit+integration reporting. - Color Controls for Test Summaries: Added status-aware summary coloring (green/yellow/red) with
NO_COLORto disable andFORCE_COLOR=1to force output coloring. - Codex Config Home Resolution: Force Codex runs (standard + daemon) to use
CODEX_HOME=/home/construct/.codexso config is loaded from/home/construct/.codex/config.tomlinstead of project-relative.codexpaths under/projects/.... - Codex Agent Env Injection Refactor: Centralized Codex-specific run/daemon environment injection into dedicated helper functions to reduce drift across execution paths.
- Attach Execution Path Parity: Attach-to-running-container flows now use interactive exec with the same env protections as normal/daemon runs (construct
PATH,HOME=/home/construct, clipboard vars, and agent-specific env injection). - Linux Non-Daemon Host UID Mapping: Non-daemon Linux Docker agent runs now apply host
UID:GIDmapping whenexec_as_host_user=trueand forceHOME=/home/construct. - Podman Compose Invocation Strategy: Compose command resolution now uses
podman-composewhen available and otherwise falls back topodman compose. - Strict Network Naming Consistency: Strict mode now uses a consistent
construct-netnetwork name across network precreate checks and compose override generation. - Ownership Repair Mapping: Runtime and migration ownership repair commands now use numeric
uid:gidmapping for broader Linux compatibility.
Fixed
- Entrypoint HOME/Permissions Regression (Linux Docker): Resolved a regression where entrypoint privilege drop could run as a raw host uid:gid without a passwd entry, causing
HOME=/and repeated permission errors writing~/.ssh,~/.bashrc, and setup files. - Daemon Session Startup Reliability: Restored reliable startup behavior for daemon-backed runs (
construct <agent>) when host UID does not exist inside the container. - Linux Config Ownership Auto-Recovery: Hardened migration/runtime permission recovery to attempt non-interactive sudo ownership repair first, with clearer remediation when elevation is unavailable.
- Host UID Exec Fallback Messaging: Ensured fallback warnings are visible when host UID mapping cannot be used inside the container.
- Docker Override Host UID Injection: Removed runtime host UID/GID env injection from generated Docker overrides to avoid reintroducing raw-UID startup regressions.
- Codex Attach Permission Path Drift (Linux): Fixed attach sessions that could miss home/config env injection and fall back to project-relative
.codexresolution. - Podman Runtime/Compose Mismatch: Fixed runtime detection success followed by compose invocation failure on hosts without
podman-compose. - Linux Exec Documentation Drift: Updated docs/comments to match current behavior when host UID is missing in container
/etc/passwd(keep host mapping and forceHOME=/home/construct).
The Construct CLI 1.3.6 - 2026-02-22
Release Notes
Added
- Unified Test Summary (
make test): Added a combined end-of-run summary that reports unit pass/fail/skip counts, unit package pass/fail counts, integration totals, and overall status. - Codex Regression Tests: Added targeted tests for Codex env injection and fallback behavior, including
CODEX_HOMEpresence for Codex runs, WSL fallback env injection when clipboard patching is enabled, and guard checks ensuring non-Codex agents do not inherit Codex-only env vars. - Attach Execution Regression Tests: Added focused tests covering attach-session env injection (
HOME,PATH, clipboard vars, Codex vars), shell fallback behavior, and Linux host-UID exec mapping. - Podman Compose Selection Tests: Added unit coverage to verify command selection prefers
podman-composewhen present and falls back topodman composewhen it is not.
Changed
- Test Runner Consolidation:
make testandmake test-cinow run through a sharedscripts/test-all.shflow for consistent unit+integration reporting. - Color Controls for Test Summaries: Added status-aware summary coloring (green/yellow/red) with
NO_COLORto disable andFORCE_COLOR=1to force output coloring. - Codex Config Home Resolution: Force Codex runs (standard + daemon) to use
CODEX_HOME=/home/construct/.codexso config is loaded from/home/construct/.codex/config.tomlinstead of project-relative.codexpaths under/projects/.... - Codex Agent Env Injection Refactor: Centralized Codex-specific run/daemon environment injection into dedicated helper functions to reduce drift across execution paths.
- Attach Execution Path Parity: Attach-to-running-container flows now use interactive exec with the same env protections as normal/daemon runs (construct
PATH,HOME=/home/construct, clipboard vars, and agent-specific env injection). - Linux Non-Daemon Host UID Mapping: Non-daemon Linux Docker agent runs now apply host
UID:GIDmapping whenexec_as_host_user=trueand forceHOME=/home/construct. - Podman Compose Invocation Strategy: Compose command resolution now uses
podman-composewhen available and otherwise falls back topodman compose. - Strict Network Naming Consistency: Strict mode now uses a consistent
construct-netnetwork name across network precreate checks and compose override generation. - Ownership Repair Mapping: Runtime and migration ownership repair commands now use numeric
uid:gidmapping for broader Linux compatibility.
Fixed
- Entrypoint HOME/Permissions Regression (Linux Docker): Resolved a regression where entrypoint privilege drop could run as a raw host uid:gid without a passwd entry, causing
HOME=/and repeated permission errors writing~/.ssh,~/.bashrc, and setup files. - Daemon Session Startup Reliability: Restored reliable startup behavior for daemon-backed runs (
construct <agent>) when host UID does not exist inside the container. - Linux Config Ownership Auto-Recovery: Hardened migration/runtime permission recovery to attempt non-interactive sudo ownership repair first, with clearer remediation when elevation is unavailable.
- Host UID Exec Fallback Messaging: Ensured fallback warnings are visible when host UID mapping cannot be used inside the container.
- Docker Override Host UID Injection: Removed runtime host UID/GID env injection from generated Docker overrides to avoid reintroducing raw-UID startup regressions.
- Codex Attach Permission Path Drift (Linux): Fixed attach sessions that could miss home/config env injection and fall back to project-relative
.codexresolution. - Podman Runtime/Compose Mismatch: Fixed runtime detection success followed by compose invocation failure on hosts without
podman-compose. - Linux Exec Documentation Drift: Updated docs/comments to match current behavior when host UID is missing in container
/etc/passwd(keep host mapping and forceHOME=/home/construct).
The Construct CLI 1.3.5 - 2026-02-22
Release Notes
Added
- Unified Test Summary (
make test): Added a combined end-of-run summary that reports unit pass/fail/skip counts, unit package pass/fail counts, integration totals, and overall status. - Codex Regression Tests: Added targeted tests for Codex env injection and fallback behavior, including
CODEX_HOMEpresence for Codex runs, WSL fallback env injection when clipboard patching is enabled, and guard checks ensuring non-Codex agents do not inherit Codex-only env vars.
Changed
- Test Runner Consolidation:
make testandmake test-cinow run through a sharedscripts/test-all.shflow for consistent unit+integration reporting. - Color Controls for Test Summaries: Added status-aware summary coloring (green/yellow/red) with
NO_COLORto disable andFORCE_COLOR=1to force output coloring. - Codex Config Home Resolution: Force Codex runs (standard + daemon) to use
CODEX_HOME=/home/construct/.codexso config is loaded from/home/construct/.codex/config.tomlinstead of project-relative.codexpaths under/projects/.... - Codex Agent Env Injection Refactor: Centralized Codex-specific run/daemon environment injection into dedicated helper functions to reduce drift across execution paths.
Fixed
- Entrypoint HOME/Permissions Regression (Linux Docker): Resolved a regression where entrypoint privilege drop could run as a raw host uid:gid without a passwd entry, causing
HOME=/and repeated permission errors writing~/.ssh,~/.bashrc, and setup files. - Daemon Session Startup Reliability: Restored reliable startup behavior for daemon-backed runs (
construct <agent>) when host UID does not exist inside the container. - Linux Config Ownership Auto-Recovery: Hardened migration/runtime permission recovery to attempt non-interactive sudo ownership repair first, with clearer remediation when elevation is unavailable.
- Host UID Exec Fallback Messaging: Ensured fallback warnings are visible when host UID mapping cannot be used inside the container.
- Docker Override Host UID Injection: Removed runtime host UID/GID env injection from generated Docker overrides to avoid reintroducing raw-UID startup regressions.
The Construct CLI 1.3.4 - 2026-02-21
Release Notes
Added
- Unified Test Summary (
make test): Added a combined end-of-run summary that reports unit pass/fail/skip counts, unit package pass/fail counts, integration totals, and overall status.
Changed
- Test Runner Consolidation:
make testandmake test-cinow run through a sharedscripts/test-all.shflow for consistent unit+integration reporting. - Color Controls for Test Summaries: Added status-aware summary coloring (green/yellow/red) with
NO_COLORto disable andFORCE_COLOR=1to force output coloring.
Fixed
- Entrypoint HOME/Permissions Regression (Linux Docker): Resolved a regression where entrypoint privilege drop could run as a raw host uid:gid without a passwd entry, causing
HOME=/and repeated permission errors writing~/.ssh,~/.bashrc, and setup files. - Daemon Session Startup Reliability: Restored reliable startup behavior for daemon-backed runs (
construct <agent>) when host UID does not exist inside the container. - Linux Config Ownership Auto-Recovery: Hardened migration/runtime permission recovery to attempt non-interactive sudo ownership repair first, with clearer remediation when elevation is unavailable.
- Host UID Exec Fallback Messaging: Ensured fallback warnings are visible when host UID mapping cannot be used inside the container.
- Docker Override Host UID Injection: Removed runtime host UID/GID env injection from generated Docker overrides to avoid reintroducing raw-UID startup regressions.