* feat(ssh): support Kerberos/GSSAPI hosts via the system OpenSSH transport ssh2 has no gssapi-with-mic support, and adding it would mean forking its protocol layer plus packaging the kerberos native module for three platforms. Instead, route GSSAPI hosts through the existing system-OpenSSH transport, which delegates Kerberos (tickets, SSPI on Windows) to the platform ssh binary. Two tiers, because RHEL-family distros enable GSSAPIAuthentication globally in /etc/ssh/ssh_config and ssh -G therefore reports it for every host: - Targets whose ~/.ssh/config Host block explicitly sets GSSAPIAuthentication yes (imported as target.gssapiAuthentication) try system ssh first, falling through to ssh2 so key auth and credential prompts still work when no ticket is available. - When ssh2 exhausts key/agent auth and the ssh -G-resolved config enables GSSAPI, retry over system ssh before prompting for credentials, so Kerberos-only hosts on distro-default configs connect without a password prompt. Hosts where keys work never leave the ssh2 path. Manual targets flagged for GSSAPI pass -o GSSAPIAuthentication=yes explicitly since they bypass ssh_config. Both tiers work headless (no credential callbacks required). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(ssh): harden GSSAPI transport selection (review fixes for PR #7507) Review fixes on top of the Kerberos/GSSAPI feature branch (s546126/kerberos-ssh): - HIGH: reset useSystemSshTransport on the ssh2 fall-through. doSystemSshProbe sets the flag before spawnSystemSshCommand, which throws synchronously when no system ssh binary is on PATH (outside the probe try/catch). The proactive fall-through previously reset only 2 of 3 transport fields, so exec/sftp kept routing through the failed transport - breaking GSSAPI on Windows-with-Git-ssh and headless Linux. - MEDIUM: throw a cancellation error (not the stale ssh2 authError) when a disconnect supersedes the reactive probe mid-flight, and guard connect()'s catch on disposed, so a deliberate disconnect is not overwritten with auth-failed. - MEDIUM: skip the encrypted-key passphrase prompt when the GSSAPI fallback applies, so a Kerberos ticket is tried before prompting; the general prompt still fires if the probe fails. Adds 3 mutation-verified regression tests and hardens two existing tests to assert the probe actually ran. Not connected to any PR remote. Co-authored-by: Orca <help@stably.ai> * fix(ssh): isolate GSSAPI system transport Co-authored-by: Orca <help@stably.ai> --------- Co-authored-by: s546126 <268420947+s546126@users.noreply.github.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Neil <4138956+nwparker@users.noreply.github.com> Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com> Co-authored-by: Orca <help@stably.ai> |
||
|---|---|---|
| .. | ||
| plans | ||
| 2026-06-27-orca-mobile-manual-network-address-design.md | ||
| README.md | ||
| agent-hook-stdin-lifecycle.md | ||
| agent-session-resume-cli-evidence.md | ||
| direct-url-or-file-entry.md | ||
| feature-discovery-interaction-tracking.md | ||
| feature-education-retention-analytics.md | ||
| feature-education-state.md | ||
| git-compatibility.md | ||
| headless-linux-server.md | ||
| keyboard-layout-shortcut-dispatch.md | ||
| new-user-parallel-work-telemetry.md | ||
| opencode-commit-message-stdin.md | ||
| project-ordering-mode.md | ||
| reliability-gates-implementation-plan.md | ||
| reliability-pain-points-2026-06-30.md | ||
| ssh-gssapi-kerberos.md | ||
| ssh-typing-latency-under-relay-load.md | ||
| telemetry-availability.md | ||
| terminal-cold-park-reveal-cost.md | ||
| terminal-hidden-view-parking.md | ||
| terminal-model-view-contract.md | ||
| terminal-query-authority.md | ||
| terminal-session-lifecycle.md | ||
| terminal-side-effect-authority.md | ||
| terminal-switch-typing-lag-investigation.md | ||
README.md
Durable Docs
Keep this folder for versioned reference docs that are meant to survive past a single design or implementation pass.
What Goes Here
- Stable reference material.
- Public-facing docs that are not part of the root README.
- Docs that other checked-in files link to.
- Telemetry availability notes that dashboard authors need after the original design or implementation branch is gone. See Telemetry Availability.
- Headless Linux server setup for remote
orca servehosts. See Headless Linux Server. - Feature education state, interaction tracking, and retention analytics notes that define how contextual tours are persisted and measured. See Feature Education State, Feature Discovery Interaction Tracking, and Feature Education Retention Analytics.
- New-user parallel work telemetry notes that define how the parallel-work tour and setup guide should be measured against retention. See New User Parallel Work Telemetry.
What Stays Out
Ephemeral design notes, implementation sketches, and planning docs should stay as local Markdown files under docs/. They are ignored by default so they do not get checked in accidentally.