Repository navigation
fix(env)!: route release_env through IEx chat and resume - #174
Merged
Merged
Conversation
Route release_env through config for chat and resume so later say calls retain the policy. Test inherited and scrubbed child variables and PATH. Document false environment values in the runner typedoc and the CHANGELOG sentence for the release environment scrub.
joshrotenberg
marked this pull request as ready for review
November 1, 2026 14:28
BREAKING CHANGE: Child processes launched inside an Elixir release, when RELEASE_ROOT is set, now scrub RELEASE_*, BINDIR, ROOTDIR, and release PATH entries by default, as introduced in #170. Set release_env: :inherit to opt out. Custom runners must honour {name, false} entries in opts[:env] by removing those variables from the inherited environment on every implemented execution callback.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #170 for #156.
Passing
release_envtoCodexWrapper.IEx.chat/2orresume/2routed it as an exec option and raised an unknown-option error. Both entry points now store it in config, and latersay/2calls retain the selected policy.:inheritand:scrubthrough both entry points and later turns. The tests inspect actual child variables and PATH.{String.t(), String.t() | false}environment entries in the runner typedoc, withfalseremoving an inherited variable on every implemented callback.Validation completed before pushing commit
a87d02da6b4e1262c81e50a9223c185a1f979392:mix docs --warnings-as-errorspassedmix codex.contractpassed for 0.149.0, 0.164.0, and latest 0.166.0The full CI check set includes
mix deps.get,mix deps.unlock --check-unused,mix hex.audit,mix compile --warnings-as-errors,mix format --check-formatted,mix credo --strict,mix dialyzer, andmix test. The real Forcola shim ran in both runtime suites. Only the four opt-in authenticated integration tests were excluded.git diff --checkalso passed.GitHub CI passed all five PR jobs on the same commit: both runtime jobs, docs, and both pinned CLI contracts.
The squash commit must keep the
!title and theBREAKING CHANGE:footer so the release environment scrub introduced in #170 is declared as breaking on main.