* feat(v2): add runtime.ResetSignalHandlers() for Linux panic recovery
Add a new runtime function that allows users to reset signal handlers
before code that might panic from nil pointer dereferences.
On Linux, WebKit installs signal handlers without the SA_ONSTACK flag,
which prevents Go from properly recovering from panics caused by
SIGSEGV and other signals. This function adds SA_ONSTACK to the
relevant signal handlers (SIGSEGV, SIGBUS, SIGFPE, SIGABRT).
Usage:
```go
go func() {
defer func() {
if err := recover(); err != nil {
log.Printf("Recovered: %v", err)
}
}()
runtime.ResetSignalHandlers()
// Code that might panic...
}()
```
The function is a no-op on macOS and Windows.
Fixes#3965
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* test(v2): add panic-recovery-test example
Add an example that demonstrates the Linux signal handler issue (#3965)
and verifies the fix using runtime.ResetSignalHandlers().
The example includes:
- A Greet function that triggers a nil pointer dereference after a delay
- Auto-call from frontend after 5 seconds
- README with reproduction steps
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* [v2] docs(app-dev): fix inconsistent indentation
- several places had mixed indentation (tabs _and_ spaces)
- some lines had incorrect indentation, partially due to the above
* add changelog entry per PR template
---------
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
* [v2] docs(app-dev): add imports to `app.go` examples
- add `context` and `fmt` imports to the `app.go` examples
- link to the docs for `context` when it is referenced for explicitness/beginner-friendliness
* add changelog entry per PR template
---------
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
* Update `windows.mdx`
Specify to the user that the WebView dependency must be extracted before being used.
* Update no versioned `windows.mdx`
* Update `changelog.mdx`
* docs: add guide for routing in Svelte
* chore: add svelte routing guide example change to changelog
---------
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
* docs: add guides ide change goland option and reference cli add options vscode or goland
* docs: update changelog for ide options
* docs: fix typo golang to goland
* Adding additional NSIS install methods (Scoop, Winget) to windows-installer.mdx
Adding Scoop and Winget package managers to the list of methods by which NSIS can be installed.
* Update windows-installer.mdx
Reordering so chocolatey is last, as Scoop or Winget are better/newer options
* Add support to output ts models as interfaces
* Add support to generate enums from golang
* cleanup logs
* add missing documentation
* fix package names for enum. Fix processing enums that are in separate packages
* revert golang 1.21
* Fix spelling
* Add support for simplified version of Enum for typescriptify
* update docs
* removed unused logs
* Add tests. Fix imported enums types in models
---------
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
* implement MacOS openFile/openFiles events
* wip: windows file association
* fix macro import
* add file icon copy
* try copy icon
* keep only required part of scripts
* update config schema
* fix json
* set fileAssociation for mac via config
* proper iconName handling
* add fileAssociation icon generator
* fix file association icons bundle
* don't break compatibility
* remove mimeType as not supported linux for now
* add documentation
* adjust config schema
* restore formatting
* try implement single instance lock with params passing
* fix focusing
* fix focusing
* formatting
* use channel buffer for second instance events
* handle errors
* add comment
* remove unused option in file association
* wip: linux single instance lock
* wip: linux single instance
* some experiments with making window active
* try to use unminimise
* remove unused
* try present for window
* try present for window
* fix build
* cleanup
* cleanup
* implement single instance lock on mac os
* implement proper show for windows
* proper unmimimise
* get rid of openFiles mac os. change configuration structure
* remove unused channel
* remove unused function
* add documentation for single instance lock
* add PR link
* wip mac os deeplinks
* put custom url listner on top to catch link on app opening
* put custom url listner on top to catch link on app opening
* try add custom url windows
* adjust custom url
* add docs
* merge master
* update documentation
* add comment for darwin
* add PR link
* change naming
* change naming
* change naming
* change naming
* fix formatting
* fix naming
* Fix typo
---------
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
* implement MacOS openFile/openFiles events
* wip: windows file association
* fix macro import
* add file icon copy
* try copy icon
* keep only required part of scripts
* update config schema
* fix json
* set fileAssociation for mac via config
* proper iconName handling
* add fileAssociation icon generator
* fix file association icons bundle
* don't break compatibility
* remove mimeType as not supported linux for now
* add documentation
* adjust config schema
* restore formatting
* try implement single instance lock with params passing
* fix focusing
* fix focusing
* formatting
* use channel buffer for second instance events
* handle errors
* add comment
* remove unused option in file association
* wip: linux single instance lock
* wip: linux single instance
* some experiments with making window active
* try to use unminimise
* remove unused
* try present for window
* try present for window
* fix build
* cleanup
* cleanup
* implement single instance lock on mac os
* implement proper show for windows
* proper unmimimise
* get rid of openFiles mac os. change configuration structure
* remove unused channel
* remove unused function
* add documentation for single instance lock
* add PR link
* changes after review
* update docs
* changes after review
---------
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
* Describe a guide to build an app for all platforms in github actions
* Update changelog, remove tabs from an added guide
---------
Co-authored-by: Denis <denis@Deniss-Mac-mini.fritz.box>
* [assetserver] Add support for HTTP Middlewares
* [dev] Disable frontend DevServer if no Assets has been defined and inform user
* [dev] Consistent WebSocket behaviour in dev and prod mode for assets handler and middleware
In prod mode we can't support WebSockets so make sure the
assets handler and middleware never see WebSockets in dev mode.
* [templates] Migrate to new AssetServer option
* [docs] Add assetserver.Options to the reference