Repository navigation
SSHScript 6.1.0: public Console integration for existing Sessions - #27
Merged
Merged
Conversation
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.
Summary
Release SSHScript 6.1.0 with a supported Console(existing_session) API. Hosts can hand an existing target Session to terminal or agent-driven interaction without reconnecting, while retaining Python/shell/program state and explicit ownership and cleanup results. CLI and embedding share the same core.
Behavior and compatibility
Structured updates distinguish incomplete input, running work, program readiness, completion and failure. Credential/policy and switch-result hooks keep host policy outside SSHScript; connection login and effective shell identity remain separate. Borrowing is the default, cleanup uncertainty reports unknown, and the original Session is reusable only after confirmed recovery.
Fix program Ctrl-C readiness lost after the protocol consumed its prompt. A real prompt match remains waiting_input across polls; ignored interrupts remain running and later prompts can recover. Program exit retains its actual status.
This development-stage minor release intentionally removes earlier console internals, open()/execute() entry points and :help/:quit aliases. It does not add compatibility layers. Existing Session SSH/SFTP authentication and host-key sources retain their semantics.
Validation
Linux CI exposed a test-only assumption that a printed start marker must have a leading CRLF. The three marker assertions now accept complete LF/CRLF output lines without requiring that platform-specific prefix; all state/exit/cleanup assertions remain intact. Four Python versions passed normal/-O focused regressions, and final local Python 3.14 full gates passed.
CI verification budgets are extended for the expanded PTY regression suite (30-minute verification/build and 35-minute CI native jobs); all steps, matrices, permissions and required checks are retained.
Local/mocked results and OpsFeast UI evidence do not establish native SSH/PAM/su/sudo behavior. Disposable native CI must pass before release.
Documentation and release notes
Security and hygiene
Last modified: 2026-10-23 20:05:53