@overlayed/app
v2.3.0
-
feat(app): track app crashes
The app now reports crashes to Overlayed: window and process crashes, uncaught exceptions in the main process, and sessions that ended unexpectedly. Home directories are removed from error messages before they’re sent. To opt out, pass
analytics: { crashes: false }tooverlayed(). -
feat(app): track game session duration and attach outcome
Every detected game launch now reports a
game_session_endcortex event when the game closes or the app quits, with the session duration, whether the game was subscribed and became ready, render support, and time to ready.
v2.2.0
-
feat(app): track Core Web Vitals for overlayed windows
Windows created via
overlay.windowsnow report LCP, INP, FCP, TTFB and CLS as aweb_vitalscortex event, once per page load. Nothing to change if your preload script already imports@overlayed/app/preload, which collects the metrics. The preload grows by about 3 kB gzipped. To opt out, passanalytics: { webVitals: false }tooverlayed().
v2.1.0
- feat(app/siege): add noor to operator records
-
fix(app): harden windows against malicious ad navigation and popups
Windows created via
overlay.windowsno longer navigate their top frame to other origins, andwindow.opento another origin opens in the system browser, and only right after a user click. Nothing to change unless your app relies on one of these:- Top-frame navigation to another host (e.g. an OAuth redirect): add the host to
navigationGuard.allowedHosts. window.opento another origin in-app, or without a click: return"allow"or"external"for it fromnavigationGuard.windowOpenHandler.- Your own
webContents.setWindowOpenHandler: it can no longer open other origins in-app. Move that logic tonavigationGuard.windowOpenHandler.
- Top-frame navigation to another host (e.g. an OAuth redirect): add the host to
v1.8.1
- fix(app): send active games in a format the API reads, so game-specific notices and game-targeted feature flags now apply
- chore(app): hash the game build natively instead of on the main process
- fix(app): only download native modules for the games the app subscribed to, instead of every game in the raven config
v1.8.0
- feat: game event fields are now camelCase
v1.7.0
- fix(sand): rename
trampler_acquired.creator_account_idtocreator_player_id - feat(sand): add the live
inventory_*events
v1.6.0
- fix(sand): rename the
inventory_*events tostorage_*
v1.5.0
-
feat(app): add the game’s process id to the
gameLaunch,gameReadyandgameClosepayloads, and track running games per process - refactor(app): move game detection into the native module
- refactor(app): move game executable monitoring into the native module
- fix(app): don’t inject into a game that closed before its injection delay elapsed
- fix(app): remove a redundant write when staging the bundled binaries
v1.4.0
-
feat: add the
@overlayed/app/games/sandmodule for Sand Raiders of Sophie Universal events now also reach the owning game module when that module declares the event type, so a sandlogged_inis delivered to bothoverlay.universalandoverlay.sand.
v1.3.15
- feat(app): use the per-game
injection_delay_msfrom the raven config instead of a hardcoded 45 second wait before injecting into a freshly launched game. Games with no configured delay are injected into immediately, and processes that have already been running a while still skip the wait
v1.3.14
- fix(build): forward VITE_* env vars to vp run build tasks so import.meta.env.VITE_API_BASE_URL/VITE_DASHBOARD_URL are actually replaced in published builds
v1.3.13
- fix: user keybinds not working in some games
v1.3.12
- chore(deps): update memfs and vite-plus, and raise the Node engine floor to >=24 (LTS) so it stays aligned with commander
v1.3.11
- fix(build): forward VITE_* env vars to vp run build tasks so import.meta.env.VITE_API_BASE_URL/VITE_DASHBOARD_URL are actually replaced in published builds
v1.3.10
- chore: fix builds
v1.3.9
- fix(app): surface a clear error and bootstrap correctly when dev metadata is not cached yet, instead of the misleading “function overlayed was not called”
v1.3.8
- feat(app/siege): add map “Calpyso Casino” to consts
v1.3.7
- chore: bump internal dependencies
- chore: update internal package versions
v1.3.6
- fix(app): keep
arktypeexternal insiegeanduniversaldts so consumers don’t hitType instantiation is excessively deep/ duplicateAliasNodeerrors when usingoverlayed({ modules: [Siege.module()] }) - chore: fix error when no application is scoped
v1.3.5
- fix(app): remove dead dependency causing build issues
v1.3.4
- fix(app): top-level auto-updater call breaking bundle command
v1.3.3
- refactor(app): export
FeatureFlagLayerstype as the named return type offeatureFlags.inspect()
v1.3.2
- fix(app): electron-updater cjs <-> esm interop issues
v1.3.1
- docs: fix typos and grammar across guides
v1.3.0
-
feat(app): feature flags now accept a
Record<string, boolean>for default values and expose areadypromise for awaiting initial fetch -
feat(app): feature flags interface now supports
clearOverride,clearOverrides,isOverridden,getAllOverrides, andinspectfor introspecting and managing overrides
v1.2.0
-
feat(app): add feature flag support via
overlay.featureFlagsmodule. Docs - chore(app): bump dependencies
v1.1.19
- chore(app): bump render-interface to v0.6.7
v1.1.18
- fix(app): issue where users cursor appears but the window does not, and input is blocked. Instead now the cursor wont appear and input wont be blocked.
v1.1.17
- refactor(app): remove unncessary webhook call on feedback submission
v1.1.16
- chore(app): bump dependencies
v1.1.15
- chore(app): bump dependencies
v1.1.14
- feat(app): include metadata when creating bundles
v1.1.13
- chore(app): increase injection delay
v1.1.12
- chore(app): delay injection on newly created processes
v1.1.11
- chore(app): bump dependencies
v1.1.10
- chore(app): bump dependencies
v1.1.9
- chore(app): provide crash_identifier on game crash dump upload
v1.1.8
- fix(app): remove hardcoded release_id in crash dumps
v1.1.7
- chore(app): update dependencies
v1.1.6
- chore(app): update dependencies
v1.1.5
- chore(app): update dependencies
v1.1.4
- chore(app): drop cortex events older than 600 seconds before submission
v1.1.3
- refactor: update crash dump endpoints
v1.1.2
- fix(app): strip Windows duplicate-download suffixes from UTM campaign codes
v1.1.1
- chore: bump internal package versions
v1.1.0
- feat: add crash dump detection and upload support via
overlay.crashDumps.on("new", ...). See the docs for details.
v1.0.3
- feat(app/siege): add solid snake to constants
v1.0.2
- fix: bug reports not submitting when user has large amount of log files
v1.0.1
- fix: campaign codes not registering
-
🚀 Features
- Auto-updating support: Complete implementation of application update flow including support for private channels
- Campaigns: Ability to create UTM campaigns for tracking user acquisition
- Electron Window Logging: Logs from electron windows will now be in feedback submissions
- Ads enhancements: New
getAdsScriptElementandgetAdsScriptUrlmethods for better ads integration - Enhanced CLI bundling: Improved the CLI bundling process to be more robust and reliable
📚 Documentation Improvements
- Deployment guides: New documentation sections on application deployments and updating mechanisms
- Refreshed docs theme: Refreshed the docs theme
- Local Development: Established guideliens for local development
📝 Breaking Changes
- After updating, you’ll need to run
overlayed loginand thenoverlayed init. This only needs to be done once, and is only needed for local development.
🐛 Bug Fixes
- Fixed broken documentation links
- feat: internal changes for deployments
- feat: Add app and site updater modules [https://docs.overlay.dev/deployment/updates]
v0.36.3
- chore: bump internal package versions
v0.36.2
- fix: stream write failed when sleeping app
- chore(app): adjust feedback submission url
v0.36.1
- chore: temporarily revert previous changes
v0.36.0
- feat: internal changes for deployments
v0.35.1
- fix: @overlayed/app/security export
v0.35.0
- feat: add @overlayed/app/security module
v0.34.10
- fix: internal changes
v0.34.9
- chore(app): support nullable build_hash in module releases
- refactor: move config store internals
- chore: update meta data
v0.34.8
- fix: console color logging
v0.34.7
- Export individual GameLaunchManager events GameLaunchEvent, GameCloseEvent, and GameReadyEvent
v0.34.6
- feat(app): adopt new game module delivery system
v0.34.5
- fix: old bug report endpoint not submitting
- chore: bump dependencie
v0.34.4
- chore(app): fix 32-bit game support
v0.34.3
- feat(app): add support for 32bit games
v0.34.2
- chore: bump package versions
v0.34.1
- chore(app): fix build issue
v0.34.0
- feat(app): add notices
v0.33.1
- fix(app): correctly send version, channel, and extra data
v0.33.0
- feat(app): BREAKING - submitBugReport is now submitFeedback and takes a type
v0.32.3
- chore: bump dependencies
v0.32.2
- chore: bump dependencies
v0.32.1
- chore: bump dependencies
v0.32.0
- feat(app): support conditional rendering / dll injection
v0.31.6
- chore(app): bump dependencies
v0.31.5
- chore: bump dependencies
v0.31.4
- chore(app): update dependencies
v0.31.3
- chore(app): validate
applicationIDpassed tooverlayedanddefineConfigis a valid ULID feat(app/siege): addplatformto player_joined event
v0.31.2
- fix(app): log level ‘log’ -> info, dont attempt to register already registered processes
v0.31.1
- refactor(overlay): update event communication channel
v0.31.0
- feat(app/siege): add
headshotto player_died event
v0.30.1
- fix: .node file not found
v0.30.0
- feat(app/siege): add damage_hit_zone, damage_source_id to round end damage events. Also add SIEGE_DAMAGE_HIT_ZONES.
v0.29.0
- refactor(app/siege): remove player_stats_changed event in favor of smaller events like player_kills_changed
v0.28.1
- chore(app): export ModuleLoadedEvent, ModuleUnloadedEvent, UnsupportedGameVersionEvent types
v0.28.0
- refactor(app/siege): move module_loaded, module_unloaded, unsupported_game_version to universal events
v0.27.1
- fix(app): logs will now log in UTC
v0.26.2
- fix(app): game_ready event doesn’t trigger
.oncalled after game is ready
v0.26.1
- chore(app): add logs around events
v0.26.0
- chore(app/siege): BREAKING - remove map.id from event types
v0.25.3
- chore(app): add debug tools
v0.25.2
- feat(siege): add constants for halloween event
- fix(app): only download dll when update is needed
- fix(app/siege): missing map id
v0.25.1
- fix(app): allow multiple listeners per keybind
v0.25.0
- feat(app/siege): add
operator_ban_voting_startedandoperator_ban_clearedevents
v0.24.5
- feat(app/siege): add PlayerDamageDataSchema#damage_item_instance_id
v0.24.4
- refactor(app/siege):
- Removed strict validation on
SiegeGameModePhase,SiegeSide,SiegePlayerLifeState,SiegeDamageType, andSiegeDamageTeamType. Now validates that its a string, but nothing more. - Add 3 new SIEGE_DAMAGE_TYPES:
"melee-pushback","supressive-fire","gas-pipe-fire", - Add 1 new SIEGE_GAME_MODE_PHASES:
"first"
- Removed strict validation on
v0.24.3
- chore: update dependencies fix: various types exported from @overlayed/app like RenderWindow, etc.
v0.24.2
- test(app): actions
v0.24.1
- fix(app): send app build version
v0.24.0
- feat(app): add
hasAnyActiveGamesutility
v0.23.0
- feat(app): add
hasAnyActiveGamesutility
v0.22.2
- fix(app): properly stringify various data types like errors, maps, sets, etc
v0.22.1
- fix(app): reuse previous session if last used less than 5 minutes ago
v0.22.0
- feat(app/siege): add missing consts for game_mode_type and maps
- chore(app/siege): remove PlayerMatchStatsDataSchema#plants
v0.21.0
- feat(app): add baseDir option to overlayed config bundle configs
v0.20.0
- feat(app/siege): add game_log event
v0.19.2
- fix(app/siege): player_joined missing branded type for profile_id
v0.19.1
- fix(app): overlayed-gg imports not renamed
v0.19.0
- feat(app/siege): add denari to operator records
v0.18.4
- fix(app): add missing time_of_day type
v0.18.3
- fix(app/siege): missing game_mode and match_type types
v0.18.2
- feat(app): expose
silentoption to log internal logs to console, refactor cortex in_game internals
v0.18.1
- feat(app): dont send game events through cortex
- feat(app/cortex): also emit game_ready
v0.18.0
- refactor(app): internals
v0.17.5
- fix(app): adjust cortex date logic
- fix(app): invalid dates being sent with cortex
v0.17.4
- fix: cortex events using the wrong date
v0.17.3
- chore(app): update packages
v0.17.2
- chore(app): update package versions
v0.17.1
- feat(app): update native interface
- fix: remove hard coded games from list
v0.17.0
- fix(app/siege): add game event flushing - now you must call readyForGameEvents when you’re ready to listen to game events
v0.16.6
- fix(app): submitBugReport fails
v0.16.5
- chore: bump package versions
- feat(app): extend log persistence duration to 7 days (from 3)
v0.16.4
- fix(app): recursively read subfolders and files for bug submission
v0.16.3
- feat(logger): color log output and improve format
- fix(app): Object not destroyed error
v0.16.2
- fix(app): expose LoggerScope type
v0.16.1
- fix(app): logger doesnt include timestamp in console logs
- fix(app): dont log internal logs to console by default
v0.16.0
- feat(app): add log.debug method which logs when debug: true is passed
- fix(app/siege): missing siege game modes
v0.15.0
-
feat(app):
- BREAKING - Renamed
createWindowtocreateInGameWindow - BREAKING - New
createWindowmethod that should be used instead ofnew BrowserWindow - Integrate internal cortex events
- BREAKING - Renamed
- feat(app/siege): expose Translation type
v0.14.1
- fix: built package size
v0.14.0
-
feat(app): expose defineConfig function & related types for bundling apps.
v0.13.1
- fix(app/siege): match started event incorrect validation rule
v0.13.0
- feat(app): add branded types to siege events
- refactor: change internal build system
v0.12.0
- feat(app): add log module
v0.11.0
- refactor(app/siege): BREAKING - expose more consts, rename existing costs to consistent naming, expose all siege vars, functions, and types at top level instead of in a Siege object.
v0.10.2
- chore(app): bump package versions
v0.10.1
- fix(app): getAppInfo not returning userId when called a second time
v0.10.0
- feat(app): expose cortex
v0.9.2
- fix: contextBridge not defined
v0.9.1
- fix(app): api misconfiguration for siege
v0.9.0
- feat: add ads support

