Skip to main content

@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 } to overlayed().
  • feat(app): track game session duration and attach outcome Every detected game launch now reports a game_session_end cortex 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.windows now report LCP, INP, FCP, TTFB and CLS as a web_vitals cortex 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, pass analytics: { webVitals: false } to overlayed().
v2.1.0
  • feat(app/siege): add noor to operator records
Breaking
v2.0.0
  • fix(app): harden windows against malicious ad navigation and popups Windows created via overlay.windows no longer navigate their top frame to other origins, and window.open to 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.open to another origin in-app, or without a click: return "allow" or "external" for it from navigationGuard.windowOpenHandler.
    • Your own webContents.setWindowOpenHandler: it can no longer open other origins in-app. Move that logic to navigationGuard.windowOpenHandler.
    Clicks on ads in cross-origin iframes only open their landing page on Electron 37+.
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_id to creator_player_id
  • feat(sand): add the live inventory_* events
v1.6.0
  • fix(sand): rename the inventory_* events to storage_*
v1.5.0
  • feat(app): add the game’s process id to the gameLaunch, gameReady and gameClose payloads, 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/sand module for Sand Raiders of Sophie Universal events now also reach the owning game module when that module declares the event type, so a sand logged_in is delivered to both overlay.universal and overlay.sand.
v1.3.15
  • feat(app): use the per-game injection_delay_ms from 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 arktype external in siege and universal dts so consumers don’t hit Type instantiation is excessively deep / duplicate AliasNode errors when using overlayed({ 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 FeatureFlagLayers type as the named return type of featureFlags.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 a ready promise for awaiting initial fetch
  • feat(app): feature flags interface now supports clearOverride, clearOverrides, isOverridden, getAllOverrides, and inspect for introspecting and managing overrides
v1.2.0
  • feat(app): add feature flag support via overlay.featureFlags module. 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
Breaking
v1.0.0
  • 🚀 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 getAdsScriptElement and getAdsScriptUrl methods 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 login and then overlayed 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 applicationID passed to overlayed and defineConfig is a valid ULID feat(app/siege): add platform to 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 headshot to 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.27.0
  • Add overlayed.universal event listeners. Docs
v0.26.2
  • fix(app): game_ready event doesn’t trigger .on called 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_started and operator_ban_cleared events
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, and SiegeDamageTeamType. 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"
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 hasAnyActiveGames utility
v0.23.0
  • feat(app): add hasAnyActiveGames utility
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 silent option 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 createWindow to createInGameWindow
    • BREAKING - New createWindow method that should be used instead of new BrowserWindow
    • Integrate internal cortex events
  • 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