Skip to content

Bump soar to v0.2.3: retire sessions stranded by abandoned handshakes - #683

Merged
myleshorton merged 1 commit into
mainfrom
fisk/soar-v0.2.3
Oct 18, 2026
Merged

myleshorton merged 1 commit into
mainfrom
fisk/soar-v0.2.3

Conversation

@myleshorton

@myleshorton myleshorton commented Oct 18, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

This bumps github.com/getlantern/soar from v0.2.2 to v0.2.3, which brings in getlantern/soar#14. radiance needs no code change.

The bug: kindling cancels a Soar dial mid-handshake when another transport wins the race. With the 8 s start delay that's the usual case: Soar joins, and domain fronting wins half a second later. The handshake still completes, leaving a session that never carries a stream.

  • The server ends such a session 15 s after its hello.
  • The client kept it for 90 s.
  • So the next Soar attempt in that window failed at once with soar: server lost the session.

Seen in production: in the 36 hours to 2026-10-18 03:00 UTC, SigNoz traces show 30 Soar attempts that failed 0.1–1 s after joining the race, including after v0.2.2 shipped in beta 5.

The fix: the client now retires a session that has never carried a stream 10 s after its first hello.

v0.2.3 contains only #14, and the wire protocol is unchanged.

Verification

  • go mod tidy: only go.mod and go.sum change.
  • go test -tags with_clash_api ./kindling/... passes, including kindling/soar.
  • With -tags with_clash_api, two failures also happen on origin/main locally:
    • go build fails in cmd/lantern, on the ipc.NewClient signature.
    • go test fails two config tests (TestUserChangeSkipsConfigFetchWithoutCredentials, TestInitialAccountEventDoesNotLoopConfigCreation). config doesn't depend on soar, and main's CI is green, so these look specific to the local environment.

Pre-PR review (local Codex gate)

  • Rounds: 1. Final: CODEX GATE: verdict=approve critical=0 important=0 minor=0 reviewed=6
  • Exit: approve
  • Fixed: none
  • Dismissed: none

🤖 Generated with Claude Code

https://claude.ai/code/session_01QQFpfCXs3JqrfyDuiGabF5

Summary by CodeRabbit

  • Chores
    • This update contains no visible changes to the app’s features or behavior. No new functionality, interface changes, or bug fixes are included.

soar#14: when kindling cancels a Soar dial mid-handshake (another
transport won the race), the handshake still completes and leaves a
session that never carries a stream. The server ends it 15 s after the
hello, but the client kept it for 90 s, so the next Soar attempt failed
at once with "soar: server lost the session". The client now retires an
unused session 10 s after its first hello.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QQFpfCXs3JqrfyDuiGabF5
Copilot AI balanced review requested due to automatic review settings October 18, 2026 03:58
@coderabbitai

coderabbitai Bot commented Oct 18, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 8380a22c-59bc-4764-98de-4215c1101353
📥 Commits

Reviewing files that changed from the base of the PR and between 89f6fb1 and a838466.

⛔ Files ignored due to path filters: 1
  • go.sum is excluded by !**/*.sum
📒 Files selected for processing: 1
  • go.mod

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

📝 Walkthrough

The required github.com/getlantern/soar version changed from v0.2.2 to v0.2.3 in go.mod.

Changes: Soar dependency update

Layer / File(s) Summary
Update required version
go.mod
The required github.com/getlantern/soar version changed from v0.2.2 to v0.2.3.

Priority: ➖ Normal

Estimated code review effort: 1 (Trivial) | ~3 minutes

Change: Bug fix

Suggested reviewers: garmr-ulfr

Merge Risk: ⚪ Minimal · up to a8384

This update is intended to retire handshake sessions that carry no stream sooner, addressing the reported transient session failures. The supplied change presents no actionable merge blocker.

### Architecture Summary

Architecture risk: 🔵 Low · up to a8384

The change affects 1 system.

Changed systems: go.mod

Architecture concerns
No architecture-level concerns identified.

Review details

Systems and components

  • observed — go.mod (service) was modified; 1 changed file maps to changed impact.

Before / after behavior

  • observed — Modified behavior in go.mod: The required github.com/getlantern/soar version changed from v0.2.2 to v0.2.3.
Pre-merge checks: Passed 5
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title clearly identifies the dependency upgrade to soar v0.2.3 and states the primary handshake-session fix included in that release.
Docstring Coverage Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.)

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The focused dependency update has no identified blocking issues; tests were not rerun.

No open issues 🎉

What changed in this PR

Updates Soar to retire unused sessions left by abandoned handshakes, preventing subsequent dial failures.

Changes:

  • Bumps github.com/getlantern/soar from v0.2.2 to v0.2.3.
  • Updates checksums; no radiance code changes are needed.
File Description
go.sum Updates Soar checksums for v0.2.3.
go.mod Requires Soar v0.2.3.

Review effort: Balanced

@myleshorton
myleshorton merged commit 54f039d into main Oct 18, 2026
5 checks passed
@myleshorton
myleshorton deleted the fisk/soar-v0.2.3 branch October 18, 2026 04:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants