1.9.9472

April update with UI responsiveness plus SEO and sharing fixes

1.9.9472 RU/EN

A small patch focused on improving window responsiveness under load and helping your packs appear in search results faster.

C# Scripting - Memory API docs

New Memory API documentation for C# scripts has been added. It gradually explains the core memory model in EyeAuras: which backends are available, where to start, how to find a code cave, how to plug in your own IProcess, and how to build custom memory backends.

Useful entry points:

C# Scripting - UserLicense improvements

New signed fields were added to UserLicense in the internal licensing APIs, and sublicenses now expose an explicit MaximumSessions.

csharp
var license = GetService<ILicenseAccessor>();

Log.Info($"UserId: {license.UserId}");
Log.Info($"Roles: {string.Join(", ", license.Roles)}");
Log.Info($"AppVersion: {license.AppVersion}");

if (license.ShareSublicenses.Length > 0)
{
    Log.Info($"MaximumSessions: {license.ShareSublicenses[0].MaximumSessions}");
}

Read more: Pack sublicenses

C# Scripting - Memory API - added free memory

IProcessControlApi now includes explicit FreeMemory(...) and ProtectMemory(...) methods. That means an allocated region can now go through the full lifecycle properly: get it through AllocateMemory(...), change protection, perform the required actions, and then release it cleanly.

csharp
using System.Diagnostics;
using EyeAuras.Memory;

using var process = LocalProcess.ByProcessId(Process.GetCurrentProcess().Id);
var control = (IProcessControlApi) process;

var region = control.AllocateMemory(
    IntPtr.Zero,
    4096,
    MemoryAllocationType.Commit | MemoryAllocationType.Reserve,
    MemoryProtectionType.ReadWrite);

var oldProtection = control.ProtectMemory(region.Address, region.Size, MemoryProtectionType.ExecuteRead);
control.ProtectMemory(region.Address, region.Size, oldProtection);
control.FreeMemory(region);

Read more: Memory API - Getting started

Fixes and improvements

  • [UI] BlazorWindow resizing and dragging were significantly improved, so windows should behave better under load
  • [Web] Improved SEO (search engine optimization) - your packs should now be detected by search engines faster and appear in results more often
  • [Web / Share] Fixed a race condition when enabling code highlighting while share pages were reloading
  • [Licensing] Added signed metadata and explicit sublicense limits to the internal licensing APIs
  • [Loader / Remote] Improved Scryde detection