Skip to content

chore: merge 4.18.1 into master - #3572

Merged
jeanfbrito merged 1 commit into
masterfrom
release/4.18.x
Oct 11, 2026
Merged

jeanfbrito merged 1 commit into
masterfrom
release/4.18.x

Conversation

@jeanfbrito

@jeanfbrito jeanfbrito commented Oct 10, 2026 •

Copy link
Copy Markdown
Member

Merge the 4.18.1 patch release into master, so that master holds the latest stable release.

This is the first merge under the rule in #3571. release/4.18.x is 4.18.0 plus the 4.18.1 release commit (#3561), so the merge has no conflicts.

Merge with a true merge commit (gh pr merge --merge). Do not squash.

Summary by CodeRabbit

  • Bug Fixes
    • Improved recovery when a server becomes unreachable: the app checks for connectivity and reloads the server view when it is available again.
    • Added detection for stalled page loads, with automatic retry when the server responds.
    • When the app comes back online, failed server views now reload automatically; views that are not failed remain unchanged.

* fix: recover a workspace that starts without a network (#3560)

When the app starts before the network or a VPN is up, the server's
service worker holds the first navigation open and never answers it.
Electron then reports no failure, so the workspace stays gray and does
not recover when the connection comes back.

The main process now probes the server when a main-frame navigation has
no response after 3 seconds. A network error shows the failure view at
once. A navigation that is still held while the server answers loads
again one time. After a network failure, the main process probes every
2 seconds and loads the page as soon as the server answers. A server
that refuses connections gets a longer interval, up to 30 seconds, with
jitter. The failure view also reloads on the OS online event, and
main-frame load failures are now logged.

(cherry picked from commit edb3d06)

* chore: bump version to 4.18.1
@coderabbitai

coderabbitai Bot commented Oct 10, 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: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 2a91efdc-0400-4f9d-8d48-6643d3e21fcf

📥 Commits

Reviewing files that changed from the base of the PR and between 97b88fc and 34b7a8f.


📒 Files selected for processing (10)
  • electron-builder.json
  • package.json
  • src/ui/components/ServersView/ServerPane.spec.tsx
  • src/ui/components/ServersView/ServerPane.tsx
  • src/ui/main/serverView/conferenceWindow.spec.ts
  • src/ui/main/serverView/hangRecovery.spec.ts
  • src/ui/main/serverView/index.spec.ts
  • src/ui/main/serverView/index.ts
  • src/ui/main/serverView/stuckNavigation.main.spec.ts
  • src/ui/main/serverView/stuckNavigation.ts

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


📜 Recent review details
⏰ Context from checks skipped due to timeout. (9)
  • GitHub Check: test (windows-latest, 2)
  • GitHub Check: test (macos-latest, 1)
  • GitHub Check: test (windows-latest, 1)
  • GitHub Check: build (windows-latest)
  • GitHub Check: test (ubuntu-24.04-arm, 1)
  • GitHub Check: test (ubuntu-24.04-arm, 2)
  • GitHub Check: build (ubuntu-latest)
  • GitHub Check: test (macos-latest, 2)
  • GitHub Check: build (macos-latest)

🧰 Additional context used
📚 Code guidelines (2)
AGENTS.md — auto-discovered
docs/development-and-release-flow.md — auto-discovered

📓 Path-based instructions (3)
Source excerpt: `electron-builder.json`'s `mac.bundleVersion` (macOS `CFBundleVersion`) is independent from the `version` in `package.json`.

📄 CodeRabbit inference engine (AGENTS.md)

Files:

  • electron-builder.json

Source excerpt: Versions follow semver (`MAJOR.MINOR.PATCH`, with an optional `-alpha.N`/`-beta.N` pre-release suffix).

📄 CodeRabbit inference engine (docs/development-and-release-flow.md)

Files:

  • package.json

Source excerpt: Write all new code in TypeScript strict mode, unless the request says otherwise.

📄 CodeRabbit inference engine (AGENTS.md)

Files:

  • src/ui/main/serverView/conferenceWindow.spec.ts
  • electron-builder.json
  • package.json
  • src/ui/components/ServersView/ServerPane.spec.tsx
  • src/ui/main/serverView/index.spec.ts
  • src/ui/components/ServersView/ServerPane.tsx
  • src/ui/main/serverView/stuckNavigation.main.spec.ts
  • src/ui/main/serverView/index.ts
  • src/ui/main/serverView/hangRecovery.spec.ts
  • src/ui/main/serverView/stuckNavigation.ts

🔇 Additional comments (10)
src/ui/main/serverView/stuckNavigation.ts (1)

41-61: LGTM!


src/ui/main/serverView/stuckNavigation.main.spec.ts (1)

1-507: LGTM!


src/ui/main/serverView/index.ts (1)

372-392: LGTM!


src/ui/main/serverView/hangRecovery.spec.ts (1)

248-265: LGTM!


src/ui/main/serverView/conferenceWindow.spec.ts (1)

93-93: LGTM!


src/ui/main/serverView/index.spec.ts (1)

210-210: LGTM!

Also applies to: 247-247, 317-317, 411-411


src/ui/components/ServersView/ServerPane.tsx (1)

188-193: LGTM!

Also applies to: 201-201


src/ui/components/ServersView/ServerPane.spec.tsx (1)

44-44: LGTM!

Also applies to: 146-170, 172-197


package.json (1)

9-9: LGTM!


electron-builder.json (1)

21-21: LGTM!



Walkthrough

The change adds stalled-navigation detection and server reachability probing for server views. It also retries failed server panes when the window comes online and updates the package and macOS bundle versions.

Changes

Server view recovery

Layer / File(s) Summary
Navigation detection and reachability probes
src/ui/main/serverView/stuckNavigation.ts, src/ui/main/serverView/stuckNavigation.main.spec.ts
Adds navigation-stall detection, server probes, and cancellable reconnect checks with capped jittered backoff. Tests cover navigation states, probe results, and reconnect scheduling.
Server view recovery integration
src/ui/main/serverView/index.ts, src/ui/main/serverView/hangRecovery.spec.ts, src/ui/main/serverView/conferenceWindow.spec.ts, src/ui/main/serverView/index.spec.ts
The server view starts and stops reachability probes in response to load and navigation events. Main-frame failures are logged, and recovery callbacks dispatch failure or responsive actions when the server remains configured.
Online retry for failed server panes
src/ui/components/ServersView/ServerPane.tsx, src/ui/components/ServersView/ServerPane.spec.tsx
When the window goes online, a failed pane dispatches a reload action with its server URL. Tests check failed and non-failed panes.

Release version metadata

Layer / File(s) Summary
Package and macOS bundle versions
package.json, electron-builder.json
The package version changes from 4.18.0 to 4.18.1. The macOS bundle version changes from 26106 to 26107.

Priority: ⬇️ Low

Estimated code review effort: 4 (Complex) | ~45 minutes

Change: Bug fix

Sequence Diagram(s)

sequenceDiagram
  participant WebContents
  participant watchStuckNavigation
  participant probeServer
  participant ServerView as serverView/index.ts
  WebContents->>watchStuckNavigation: navigation and loading events
  watchStuckNavigation->>probeServer: probe server reachability
  probeServer->>WebContents: issue HEAD request through guest session
  probeServer-->>watchStuckNavigation: return probe result
  watchStuckNavigation->>ServerView: report stuck, held, or recovered navigation
  ServerView->>WebContents: reload server URL when reachable
Loading

Suggested labels: type: bug

Merge Risk: ⚪ Minimal · up to 34b7a

No actionable issue was established that would block this release merge. Refused-connection recovery remains unverified.

Pre-merge checks | Passed 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title clearly and concisely describes the primary change: merging release 4.18.1 into master.
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 8…
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.

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Warning

Some tools did not complete. Review the errors below.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

package.json

Parsing error: Missing semicolon. (2:11)


Warning

Errors were encountered while retrieving linked issues.

Errors (1)
  • JIRA integration encountered authorization issues. Please disconnect and reconnect the integration in the CodeRabbit UI.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@jeanfbrito
jeanfbrito merged commit 26b7e67 into master Oct 11, 2026
25 checks passed
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.

1 participant