Skip to content

fix(linux): enable JS resize for frameless windows; fix scrollbar edge detection (#4415, #4680)#5368

Merged
leaanthony merged 7 commits into
masterfrom
agent/engineer-linux/a42a7129
Jun 10, 2026
Merged

fix(linux): enable JS resize for frameless windows; fix scrollbar edge detection (#4415, #4680)#5368
leaanthony merged 7 commits into
masterfrom
agent/engineer-linux/a42a7129

Conversation

@leaanthony

@leaanthony leaanthony commented May 8, 2026

Copy link
Copy Markdown
Member

Summary

  • Frameless windows on Linux could not be resized at all (JS resize-edge logic was gated behind !IsWindows())
  • Scrollbar at window edge blocked resize on all platforms (the 5 px resize zone overlapped with the native scrollbar strip, whose mousedown is never seen by JavaScript)

Root cause

drag.ts contains the resize-edge cursor and wails:resize:* message logic. It has an early-exit guard:

if (!resizable || !IsWindows()) { ... return; }

On Linux the guard always fires, so no wails:resize:* message is ever sent and gtk_window_begin_resize_drag is never called. For decorated windows the WM provides resize handles; for frameless windows nothing does — they are permanently non-resizable in v3.

The second issue (scrollbars) affects both Windows and Linux: the native scrollbar occupies the last ≈ 15–17 px at the window edge. The rightBorder check used raw window.outerWidth - event.clientX, which fired inside the scrollbar strip. The native scrollbar cursor overrides any CSS cursor, hiding the resize hint, and the scrollbar captures mousedown so primaryDown() is never called and canResize stays false.

Changes

File Change
drag.ts Guard condition extended: Linux frameless windows now enter the resize-detection path.
drag.ts rightBorder / bottomBorder / rightCorner / bottomCorner now subtract the scrollbar width/height (innerWidth - clientWidth) so the resize zone sits just before the scrollbar, keeping it mouse-event–accessible.
linux_cgo.go / linux_cgo_gtk4.go setResizable calls execJS to keep window._wails.setResizable() in sync (matching Windows behaviour). setFrameless propagates window._wails.flags.frameless for runtime frameless toggles.
webview_window_linux.go WindowLoadFinished hook initialises flags.frameless and calls setResizable() so the JS runtime has correct state on first load.
runtime.js / runtime.debug.js Rebuilt from updated TypeScript.

Test plan

  • Frameless window on Linux (X11 and Wayland): resize from all 8 edges works
  • Frameless window with a right vertical scrollbar on Linux: hover near content right edge shows ew-resize cursor; click-drag resizes the window; scrollbar still scrolls normally when not at the very edge
  • Frameless window on Windows: existing resize behaviour unchanged; scrollbar-at-edge resize confirmed fixed
  • Decorated (non-frameless) window on Linux: WM-provided resize still works; no regression
  • window.SetResizable(false) at runtime correctly disables JS resize on Linux

Platform notes

Tested with: Ubuntu 24.04 LTS, GTK3 + webkit2gtk-4.0. The GTK4 path (linux_cgo_gtk4.go) receives the same setResizable/setFrameless JS notification changes.

CC @leaanthony

Summary by CodeRabbit

  • Bug Fixes
    • Improved window resize edge detection to correctly account for scrollbars, ensuring accurate cursor feedback during resize operations.
    • Enhanced frameless window support on Linux, enabling proper window resize detection with correct cursor handling.
    • Fixed synchronization of window state changes (resizable and frameless settings) between the application backend and frontend interface.

…e detection

Frameless Wails windows on Linux had no resize capability: the drag.ts
resize-edge logic was gated behind `!IsWindows()`, so neither the
JS-side border detection nor the wails:resize:* messages ever fired on
Linux.  For decorated (non-frameless) windows the WM provides resize
handles, so no change is needed there.

Changes:
- drag.ts: extend the resize-edge condition to also execute on Linux
  when `window._wails.flags.frameless` is true, enabling
  gtk_window_begin_resize_drag to be triggered from the JS path.
- drag.ts (both platforms): account for a scrollbar at the window edge
  by computing rightContentEdge / bottomContentEdge as
  outerWidth/outerHeight minus the scrollbar width/height
  (innerWidth - clientWidth).  The 5 px resize zone is now placed *just
  before* the scrollbar rather than on top of it, so the native
  scrollbar cursor no longer hides the resize cursor and mousedown
  events reach JavaScript rather than being consumed by the scrollbar.
- linux_cgo.go / linux_cgo_gtk4.go: setResizable now calls execJS to
  keep window._wails.setResizable() in sync (mirrors Windows behaviour).
  setFrameless propagates window._wails.flags.frameless via execJS for
  runtime frameless toggles.
- webview_window_linux.go: the WindowLoadFinished hook now initialises
  both flags.frameless and calls setResizable() so the JS runtime has
  the correct state on first load.

Fixes: #4415
Fixes: #4680

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
Copilot AI review requested due to automatic review settings May 8, 2026 02:31
@coderabbitai

coderabbitai Bot commented May 8, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: ce3acc07-811d-4580-9a72-f07c37f45511

📥 Commits

Reviewing files that changed from the base of the PR and between 50fad9a and 7e8aa57.

📒 Files selected for processing (2)
  • v3/internal/assetserver/bundledassets/runtime.debug.js
  • v3/internal/assetserver/bundledassets/runtime.js
💤 Files with no reviewable changes (1)
  • v3/internal/assetserver/bundledassets/runtime.js

Walkthrough

This PR updates Linux frameless window resizing behavior across the frontend runtime and Go backend. The changes enable dragging edges/corners to resize frameless windows on Linux, compute resize zones accounting for scrollbars, and synchronize resizable/frameless state flags between Go and JavaScript.

Changes

Linux Frameless Resize Implementation

Layer / File(s) Summary
Drag/resize detection with scrollbar awareness and frameless support
v3/internal/runtime/desktop/@wailsio/runtime/src/drag.ts
TypeScript drag handler now computes content edges by subtracting scrollbar sizes and uses those shifted edges to determine border and corner resize zones. Frameless windows on Linux can now be resized by dragging edges and corners.
Regenerated frontend runtime bundle
v3/internal/assetserver/bundledassets/runtime.js
Entire minified runtime.js regenerated from TypeScript source preserving all public APIs. Viewport boundary calculations for resize/drag now use window.innerWidth/innerHeight instead of outerWidth/outerHeight.
Window initialization flags
v3/pkg/application/webview_window_linux.go
On WindowLoadFinished, startup JavaScript now includes window._wails.flags.frameless and calls window._wails.setResizable() based on DisableResize.
Linux backend state synchronization
v3/pkg/application/linux_cgo.go
Window methods setResizable() and setFrameless() now call execJS to update frontend JavaScript state in window._wails so dynamic flag changes are reflected in the runtime.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • wailsapp/wails#4616: Both PRs update the bundled runtime's file-drop plumbing—this PR regenerates runtime.js with updated drag-resize logic, while the retrieved PR moves HandlePlatformFileDrop under window._wails.handlePlatformFileDrop.

Suggested labels

Bug, Linux, runtime, size:M

Suggested reviewers

  • atterpac

Poem

🐰 A frameless window dreams of motion free,
Scrollbars recede, edges dance with glee,
The drag detection learns to skip the bars—
Linux resizes from edge to corner stars,
Backend and frontend in sync appear. ✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and specifically summarizes the main changes: enabling JS resize for frameless Linux windows and fixing scrollbar edge detection, with issue references.
Description check ✅ Passed The description comprehensively covers the summary, root causes, detailed changes, test plan, and platform notes; all key template sections are adequately filled with relevant technical detail.
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.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch agent/engineer-linux/a42a7129

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 and usage tips.

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.

Pull request overview

This PR fixes window resizing UX in the v3 desktop runtime by enabling JS-driven resize-edge detection for Linux frameless windows (which otherwise lack WM resize handles) and by adjusting the resize hit-test zone to avoid the native scrollbar strip (which can swallow mouse events at the window edge).

Changes:

  • Enable resize-edge detection on Linux when the window is frameless (previously effectively Windows-only).
  • Adjust right/bottom edge hit-testing to subtract scrollbar dimensions so resize zones remain mouse-accessible.
  • Sync Linux native window state changes (resizable, frameless) into the JS runtime (including initial values on first load) and rebuild the bundled runtime JS.

Reviewed changes

Copilot reviewed 5 out of 6 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
v3/pkg/application/webview_window_linux.go Injects initial flags.frameless and calls JS setResizable() at WindowLoadFinished to bootstrap correct runtime state.
v3/pkg/application/linux_cgo.go Updates GTK3 setResizable / setFrameless to also notify the JS runtime.
v3/pkg/application/linux_cgo_gtk4.go Mirrors the GTK3 runtime sync changes for the GTK4 implementation.
v3/internal/runtime/desktop/@wailsio/runtime/src/drag.ts Enables Linux frameless resizing and shifts resize hit-test zones away from scrollbar strips.
v3/internal/assetserver/bundledassets/runtime.js Rebuilt bundled runtime output reflecting the TypeScript changes.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread v3/pkg/application/linux_cgo.go Outdated
Comment thread v3/pkg/application/linux_cgo.go Outdated
Comment thread v3/pkg/application/linux_cgo_gtk4.go Outdated
Comment thread v3/pkg/application/linux_cgo_gtk4.go Outdated
Comment thread v3/pkg/application/webview_window_linux.go Outdated

@coderabbitai coderabbitai Bot 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.

🧹 Nitpick comments (1)
v3/internal/runtime/desktop/@wailsio/runtime/src/drag.ts (1)

237-251: ⚡ Quick win

outerWidth/outerHeight as edge base is incorrect when a native menu bar is present.

event.clientX/Y are viewport coordinates (bounded by innerWidth/innerHeight). Using window.outerWidth and window.outerHeight as the base for rightContentEdge/bottomContentEdge is fine when outerWidth == innerWidth, but breaks for a frameless window that includes a native menu bar in its GTK vbox: the menu bar's height causes outerHeight > innerHeight. In that case bottomContentEdge = outerHeight - scrollbarHeight > innerHeight, so event.clientY (< innerHeight) can never satisfy the bottomContentEdge - event.clientY < resizeHandleHeight condition — the bottom resize zone becomes permanently unreachable.

Using innerWidth/innerHeight (which already equal clientWidth + scrollbarWidth / clientHeight + scrollbarHeight) is semantically correct regardless of GTK chrome:

♻️ Proposed fix
-    const rightContentEdge = window.outerWidth - scrollbarWidth;
-    const bottomContentEdge = window.outerHeight - scrollbarHeight;
+    const rightContentEdge = window.innerWidth - scrollbarWidth;   // == document.documentElement.clientWidth
+    const bottomContentEdge = window.innerHeight - scrollbarHeight; // == document.documentElement.clientHeight
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@v3/internal/runtime/desktop/`@wailsio/runtime/src/drag.ts around lines 237 -
251, The edge calculations use window.outerWidth/outerHeight which is incorrect
when native chrome (e.g. a GTK menu bar) makes outer* > inner*; change the base
for rightContentEdge and bottomContentEdge to window.innerWidth and
window.innerHeight respectively so viewport-based event.clientX/Y comparisons
work; update any dependent checks (rightBorder, bottomBorder, rightCorner,
bottomCorner) that reference rightContentEdge/bottomContentEdge to use the new
inner-based values and keep existing scrollbarWidth/scrollbarHeight,
resizeHandleWidth/resizeHandleHeight, cornerExtra logic unchanged.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@v3/internal/runtime/desktop/`@wailsio/runtime/src/drag.ts:
- Around line 237-251: The edge calculations use window.outerWidth/outerHeight
which is incorrect when native chrome (e.g. a GTK menu bar) makes outer* >
inner*; change the base for rightContentEdge and bottomContentEdge to
window.innerWidth and window.innerHeight respectively so viewport-based
event.clientX/Y comparisons work; update any dependent checks (rightBorder,
bottomBorder, rightCorner, bottomCorner) that reference
rightContentEdge/bottomContentEdge to use the new inner-based values and keep
existing scrollbarWidth/scrollbarHeight, resizeHandleWidth/resizeHandleHeight,
cornerExtra logic unchanged.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 4682ae93-17cc-44f5-b7bf-b99de005e70e

📥 Commits

Reviewing files that changed from the base of the PR and between d1be17b and ca808cd.

📒 Files selected for processing (6)
  • v3/internal/assetserver/bundledassets/runtime.debug.js
  • v3/internal/assetserver/bundledassets/runtime.js
  • v3/internal/runtime/desktop/@wailsio/runtime/src/drag.ts
  • v3/pkg/application/linux_cgo.go
  • v3/pkg/application/linux_cgo_gtk4.go
  • v3/pkg/application/webview_window_linux.go

taliesin-ai and others added 3 commits May 9, 2026 18:36
- drag.ts: use innerWidth/innerHeight instead of outerWidth/outerHeight as
  the base for rightContentEdge/bottomContentEdge; outerWidth can exceed
  innerWidth when a native menu bar is present (GTK vbox), making the bottom
  resize zone unreachable via event.clientY
- linux_cgo.go/linux_cgo_gtk4.go: guard execJS calls in setResizable and
  setFrameless with if(window._wails&&...) so they silently no-op before the
  JS runtime is initialised or after teardown
- webview_window_linux.go: same guard for the frameless flag assignment and
  setResizable call in WindowLoadFinished
- Rebuild runtime.js / runtime.debug.js from updated TypeScript

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
@taliesin-ai

Copy link
Copy Markdown
Collaborator

Cloudflare Pages failure — root cause and fix

The failing check is not caused by this PR's code changes. None of the frameless resize / scrollbar edge files touch docs.

Root cause

The i18n batch-2 translations (2026-05-07) introduced four categories of MDX syntax errors across all 7 translated locales (de, fr, ja, ko, pt, ru, zh-tw), causing astro build to exit 1:

File Bug Affected locales
concepts/architecture.mdx D2 lifecycle diagram truncated mid-block; Save: "Save State" {--- — close {...} merged with --- separator All 7
quick-start/installation.mdx </TabItem>#### heading on same line — unclosed <Tabs>/<Steps> block All 7
getting-started/your-first-app.mdx [sentence].:::tip[...] merged on one line — admonition outside <Steps> list item All 7
zh-tw/index.mdx Bare <0.5 — invalid JSX before digit zh-tw only

Fix

A dedicated PR with all 22 fixed files (7 locales × 3 files + zh-tw/index.mdx) has been opened:

#5460 — fix(docs/i18n): fix MDX compilation errors causing Cloudflare Pages failure

Once #5460 is merged to master, please rebase or merge master into this PR branch so the Cloudflare Pages check picks up the fixed docs.

CC @leaanthony


Taliesin is an AI agent. CC @leaanthony

…x/a42a7129

# Conflicts:
#	v3/internal/assetserver/bundledassets/runtime.debug.js
#	v3/internal/assetserver/bundledassets/runtime.js
@taliesin-ai

Copy link
Copy Markdown
Collaborator

Status update — License Compliance ERROR + rebase needed

License Compliance: ERROR — This is a transient FOSSA scanner crash, not a real compliance issue. The PR's go.mod is identical to master's — no new dependencies were added. Re-triggering the check should clear it.

Merge conflict — This PR was last synced with master before commit 1c2ec6a78 (feat(linux): flip GTK4 + WebKitGTK 6.0 to the default build) landed. That commit restructured the Linux CGo files: linux_cgo.golinux_cgo.go (GTK4 default) + linux_cgo_gtk3.go (GTK3 opt-in), and deleted linux_cgo_gtk4.go. The PR's changes to those files now conflict.

Fix is ready — A rebased commit is ready that ports all of this PR's changes to the new file structure:

  • drag.ts — unchanged
  • linux_cgo.go (now GTK4) — setResizable/setFrameless + execJS sync
  • linux_cgo_gtk3.go (new file, was GTK3) — same changes
  • webview_window_linux.goWindowLoadFinished JS flag init

To apply against master:

git checkout -b fix-pr-5368-rebased master

# Apply the source changes (drag.ts + Go files)
# ... (apply patch)

# Rebuild the JS bundles
cd v3 && task runtime:build
git add internal/assetserver/bundledassets/runtime.js \
        internal/assetserver/bundledassets/runtime.debug.js
git commit -m "chore: rebuild runtime bundles for frameless resize fix"
git push origin fix-pr-5368-rebased
# Open new PR; close this one

CC @leaanthony


Taliesin is an AI agent. CC @leaanthony

@leaanthony leaanthony added this to the v3.0.0-beta.2 milestone May 20, 2026
@taliesin-ai

Copy link
Copy Markdown
Collaborator

License Compliance: ERROR — Transient FOSSA issue, re-trigger needed

The "License Compliance" status is showing error (not failure) on this PR. This is a FOSSA service error, not a compliance violation:

To resolve: Please re-trigger the FOSSA check via GitHub → PR #5368 → Details → Re-run (or push an empty commit to force a re-scan). No code changes are needed.

CC @leaanthony


Taliesin is an AI agent. CC @leaanthony

@taliesin-ai

Copy link
Copy Markdown
Collaborator

PR needs rebase — Cloudflare Pages failure

The Cloudflare Pages CI failure is caused by a merge conflict with master. The conflict arose because master merged the GTK4/WebKitGTK 6.0 default-build switch (#5459/#5463) after this PR was last synced. That commit restructured the Linux CGo files:

Old (this PR has) New (master has)
linux_cgo.go = GTK3 path linux_cgo.go = GTK4 path (!gtk3 build tag)
linux_cgo_gtk4.go = GTK4 path linux_cgo_gtk3.go = GTK3 legacy path (new file)
(both exist) linux_cgo_gtk4.go = deleted

Rebase instructions

The changes are small — only 2 lines added per Go file.

v3/pkg/application/linux_cgo.go — add execJS calls to setResizable() and setFrameless():

func (w *linuxWebviewWindow) setResizable(resizable bool) {
    C.gtk_window_set_resizable(w.gtkWindow(), gtkBool(resizable))
    w.execJS(fmt.Sprintf("if(window._wails&&window._wails.setResizable)window._wails.setResizable(%v);", resizable))
}

func (w *linuxWebviewWindow) setFrameless(frameless bool) {
    C.gtk_window_set_decorated(w.gtkWindow(), gtkBool(!frameless))
    w.execJS(fmt.Sprintf("if(window._wails&&window._wails.flags)window._wails.flags.frameless=%v;", frameless))
}

v3/pkg/application/linux_cgo_gtk3.go — same changes (both functions exist at ~lines 1491 and 1598):

  • setResizable(): add the w.execJS(...) call
  • setFrameless(): replace the stale TODO comment with w.execJS(...)

v3/pkg/application/webview_window_linux.go — 2 lines in the WindowLoadFinished hook (after enableFileDrop):

js += fmt.Sprintf("if(window._wails&&window._wails.flags)window._wails.flags.frameless=%v;", w.parent.options.Frameless)
js += fmt.Sprintf("if(window._wails&&window._wails.setResizable)window._wails.setResizable(%v);", !w.parent.options.DisableResize)

v3/internal/runtime/desktop/@wailsio/runtime/src/drag.ts — unchanged from the original PR commits; no conflict here.

After applying, rebuild the runtime bundles:

cd v3 && task runtime:build
git add internal/assetserver/bundledassets/runtime.js \
        internal/assetserver/bundledassets/runtime.debug.js

The Linux frameless resize functionality itself is verified working (all 4 edges pass on Ubuntu 24.04 / webkit2gtk-4.1). The PR just needs these conflict-free changes rebased onto the new GTK4-default file structure.

CC @leaanthony


Taliesin is an AI agent. CC @leaanthony

@taliesin-ai

Copy link
Copy Markdown
Collaborator

Status update: License Compliance "3 issues found"

The FOSSA "License Compliance: 3 issues found" status on this PR is pre-existing on master — the same error appears on the current master HEAD commit. It is not introduced by this PR's changes (which touch only TypeScript, Go source, and compiled JS — no new package dependencies).

This PR has been superseded by #5493, which is rebased against current master (after the GTK4/WebKitGTK 6.0 default-build flip in #5459/#5463) and addresses the CodeRabbit review comment about innerWidth/outerWidth. No action is needed on this PR — please review and merge #5493 instead.

CC @leaanthony


Taliesin is an AI agent. CC @leaanthony

@taliesin-ai

Copy link
Copy Markdown
Collaborator

The License Compliance: ERROR status here is a transient FOSSA service error — not a real license violation. PR #5368 has zero new Go dependencies (go.mod is identical to master).

This PR has been superseded by #5493, which is rebased against the current master (after the GTK4/WebKitGTK 6.0 default-build switch) and addresses the CodeRabbit outerWidthinnerWidth nitpick.

Requesting closure of this PR as superseded. All the Linux frameless resize work is in #5493.

CC @leaanthony


Taliesin is an AI agent. CC @leaanthony

Resolve conflicts from the GTK4-default flip (#5463):
- Apply execJS additions in setResizable/setFrameless to the renamed
  linux_cgo.go (GTK4) and linux_cgo_gtk3.go (GTK3); drop the deleted
  linux_cgo_gtk4.go
- Regenerate bundled runtime.js/runtime.debug.js from merged drag.ts
@leaanthony leaanthony merged commit 27d74c3 into master Jun 10, 2026
59 checks passed
@leaanthony leaanthony deleted the agent/engineer-linux/a42a7129 branch June 10, 2026 11:30
leaanthony added a commit that referenced this pull request Jun 13, 2026
Bundles content from the failed alpha.99 release (tag pushed but no
GitHub release created due to token misconfiguration) together with
the alpha.100 cycle. Includes:
- MacWebviewPreferences WKWebView extensions (#5549)
- generate bindings "Access is denied" fix on Windows (#5561)
- Linux frameless JS resize / scrollbar edge detection fix (#5368)
- Windows updater cross-volume rename fallback (#5560)
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.

3 participants