refactor (pool 2/N): Pipeline owns its PSInvocationState#26
Merged
irvingouj@Devolutions (irvingoujAtDevolution) merged 2 commits intoJun 23, 2026
Merged
Conversation
Pure, behavior-preserving move of the SecureString in-place encryption walk, the AES-256-CBC helper, and KeyExchangeState out of the ~1900-line pool.rs into a dedicated runspace_pool/crypto.rs module (private, items pub(super)). First step of decomposing the RunspacePool god-object; no logic or wire-format change.
Make the `state` field private and route all transitions through `set_state()` / reads through `state()` / terminal checks through `is_terminal()`, instead of the RunspacePool poking the field directly. Behavior-preserving; no wire/logic change.
2fe1309 to
ce54a1f
Compare
c6453e5 to
25ea785
Compare
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.
Stacked on #25. Second step of decomposing the
RunspacePoolgod-object.Pipelinenow owns itsPSInvocationStateinstead of the pool poking the field:statefield made private; addedstate()/set_state()/is_terminal().pool.rsroutes all reads/writes/terminal-checks through them (theStopped||Completed||Faileddisjunction collapses tois_terminal()at the same point).Reviewed: Benoit-style pass (no actionable findings) + Codex pass (
NO_ISSUES_FOUND).