Skip to content

SSHScript 6.1.0: public Console integration for existing Sessions - #27

Merged
iapyeh merged 3 commits into
releasefrom
publish-6.1.0
Oct 23, 2026
Merged

iapyeh merged 3 commits into
releasefrom
publish-6.1.0

Conversation

@iapyeh

@iapyeh iapyeh commented Oct 23, 2026 •

Copy link
Copy Markdown
Owner

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

  • Python 3.11–3.14 normal suites: 379 tests per interpreter, 27 intentional native skips.
  • Python 3.11–3.14 optimized suites: 379 tests per interpreter, 27 native skips; nine dollar smokes and assert scans passed. Extracted-sdist normal/-O gates, strict metadata, fresh installed-wheel import/CLI version checks passed.
  • Public consumer types, version gate, executable documentation examples and skill validation.
  • Five real local PTY Ctrl-C regressions; baseline candidate also passed all 12 OpsFeast backend acceptance tests and its consumer-reported browser UI revalidation.
  • All 32 PR checks passed, including both complete Linux/macOS matrices, CodeQL and all four OpenSSH/native su/sudo variants. PR head 496382a is CLEAN.

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

  • README, public API/Console docs, version policy, changelog and executable examples updated.
  • AI skill, agent guide and downloadable bundle updated to 6.1.0.
  • Module API and dollar-syntax descriptions aligned; development status stated explicitly.

Security and hygiene

  • Explicit release allowlist excludes private tests, credentials and experimental files.
  • Ownership, host-key, privilege, timeout, logging and cleanup boundaries reviewed.
  • No new dependencies or workflow permissions.

Last modified: 2026-10-23 20:05:53

@iapyeh
iapyeh merged commit f16a2e4 into release Oct 23, 2026
32 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant