Skip to content

chore(main): release 1.1.0 - #2

Merged
devsy-app[bot] merged 1 commit into
mainfrom
release-please--branches--main
Apr 18, 2026
Merged

chore(main): release 1.1.0#2
devsy-app[bot] merged 1 commit into
mainfrom
release-please--branches--main

Conversation

@devsy-app

@devsy-app devsy-app Bot commented Apr 18, 2026

Copy link
Copy Markdown
Contributor

🤖 I have created a release beep boop

1.1.0 (2026-04-18)

Features

Bug Fixes

  • add checkout step to release workflow for auto-merge (#25) (04f1a19)
  • address lint issues in golangci config and streamlocal (#9) (e15de8f)
  • KeyboardInteractive Login (1593226)
  • remove revive rule overrides and fix all resulting violations (#21) (757e9f2)
  • resolve all remaining lint issues (#20) (9251de4)
  • resolve errcheck lint issue in streamlocal.go (#14) (1f166c4)
  • resolve errcheck lint issues in conn.go (#11) (51e7394)
  • resolve gosec lint issues in x11.go (#19) (edebb51)
  • resolve lint issues in agent.go (#10) (be1e766)
  • resolve lint issues in options.go (#12) (916b0bf)
  • resolve lint issues in server.go (#16) (7b416ea)
  • resolve lint issues in session_test.go and server_test.go (#18) (8f6a171)
  • resolve lint issues in session.go (#17) (5139e64)
  • resolve lint issues in tcpip.go (#15) (f831916)
  • resolve lint issues in test files (#13) (374100f)
  • use filepath instead of path for cross-plaform compatibility (1471138)
  • use idiomatic go (570aa23)

This PR was generated by release-please.

@devsy-app
devsy-app Bot merged commit ed16f68 into main Apr 18, 2026
3 of 4 checks passed
@devsy-app
devsy-app Bot deleted the release-please--branches--main branch April 18, 2026 04:00
@devsy-app

devsy-app Bot commented Apr 18, 2026

Copy link
Copy Markdown
Contributor Author

🤖 Created releases:

🌻

skevetter added a commit that referenced this pull request May 25, 2026
Addresses five divergences from OpenSSH sshd surfaced during review.

Channel-close hook (closes #1 of review)
  Previously openChannelSet.remove fired only on a SendRequest failure,
  so a connection that opened and cleanly closed many channels
  accumulated dead entries forever. any() always returned slot 0 — the
  oldest, most-likely-dead channel — degrading the OpenSSH-mirror mode
  into "always probe a dead channel, then fall back to global" within
  one tick. trackingNewChannel.Accept now proxies the per-channel
  request stream through a buffered (16, matching gossh's chanSize)
  forwarder goroutine; when the upstream reqs channel closes, an
  onClose callback prunes the set.

Remove the time.After race (closes #2 of review)
  connectionKeepAlive used a replyCh + time.After(interval) race
  around SendRequest. A reply arriving at interval+epsilon left
  keepAlive.Reset() un-called, ticking the false-disconnect counter
  for live-but-slow clients. Removed the outer timeout entirely. The
  inFlight semaphore already prevents overlapping probes; TimeIsUp
  enforces the deadline at the next tick; sshConn.Close on TimeIsUp
  unblocks any hung SendRequest.

Reset on any inbound traffic (closes #3 of review)
  OpenSSH resets its client-alive counter on every received packet.
  Added SessionKeepAlive.NotePeerActivity — like Reset but without
  bumping the KeepAliveReplyReceived metric. Called from
  Server.handleRequests (global requests), session.handleRequests
  (per-session requests), and the per-channel request forwarder in
  trackingNewChannel. Resets the ticker so the next probe fires
  ClientAliveInterval after the most recent activity, which also
  closes #4 (probe suppression on recent traffic) for free.

Unwrap helper + ChannelHandlers doc (closes #5 of review)
  Added Unwrap() gossh.NewChannel on trackingNewChannel so downstream
  handlers that need the underlying type can recover it. Documented
  the wrapping on Server.ChannelHandlers.

Test added: TestConnectionKeepAlivePrunesClosedChannels opens three
channels, closes them, then asserts subsequent keepalives over a 1s
window are global-only (0 channel-typed, >=1 global). Without the
close hook, the dead channels in the set would force channel-typed
probes that fail and prune one-at-a-time over many intervals.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants