Skip to content

4.3.33: Sharlayan 9.2.0 for 7.55, Screen Capture title-screen crash fix, quieter unreachable-light logging - #208

Open
logicallysynced wants to merge 3 commits into
masterfrom
chromatics-4.x
Open

4.3.33: Sharlayan 9.2.0 for 7.55, Screen Capture title-screen crash fix, quieter unreachable-light logging#208
logicallysynced wants to merge 3 commits into
masterfrom
chromatics-4.x

Conversation

@logicallysynced

@logicallysynced logicallysynced commented Jul 31, 2026

Copy link
Copy Markdown
Owner

Covers v4.3.32 and v4.3.33 on top of the 4.3.31 release.

Sharlayan 9.2.0-prerelease.64

Reader fixes and performance work for FFXIV patch 7.55: corrected inventory slot-array pointer reads with an FCS-derived item stride, chat-log index clamps for torn reads, hoisted hotbar chain resolution, direct status parsing, bulk enmity and condition reads, and single-job gauge reads. Sharlayan.Core is unchanged and no public API moved, so the upgrade is the package reference in both projects.

Screen Capture layer no longer dies at the title screen (CHROMATICS-1D)

Reported from production, 634 events across 2 users on 4.3.31.

GameController calls DisposeAll() on the layer processors every time the player returns to the title or character-select screen, and disposal nulls each processor's cached surface. Every processor clears its _instance on dispose so the factory rebuilds it, except ScreenCaptureProcessor, whose instance was a static readonly field that could never be replaced. The factory handed the disposed object back for the rest of the session, and layergroup.Attach(surface) threw a NullReferenceException on every tick against the null surface. RGB.NET's Attach extension has no null guard and inlines, which is why the stack pointed at Process with no RGB.NET frame.

For the user that meant picking Screen Capture as the base layer, logging out to character select once, and losing lighting until restart. The processor now follows the same lazy-singleton pattern as its 33 siblings, and Process reads the surface once per tick so shutdown disposal on the UI thread can't null it mid-tick.

Lights that are off or unreachable stop reporting as application errors (CHROMATICS-1E)

A Yeelight bulb that answered SSDP discovery but refused the TCP connect (LAN Control switched off, or a reassigned DHCP lease) reached Sentry as an application error, because the setup catch logged at LoggerTypes.Error and Logger.WriteConsole forwards those by default.

New NetworkFailureHelper.IsUnreachable walks the exception chain, including AggregateException members, for socket, timeout, HTTP, IO, and cancellation failures. The per-device setup catches in Yeelight, LIFX, Nanoleaf, and Alienware now log those at LoggerTypes.Devices without forwarding, and so do the Yeelight and LIFX discovery sweeps, where a firewall blocking broadcast produced the same noise one frame up. Genuine faults in those paths still raise errors and still reach Sentry.

Notes

  • Version 4.3.31 -> 4.3.33, changelog updated per bump.
  • 182/182 xUnit tests pass, with six new tests covering the unreachable classification and the processor-rebuild-after-dispose contract.
  • Reviewed with parallel finder agents. The discovery-sweep gap and the mid-tick surface read above were both review findings, fixed in dd0a0e1.

🤖 Generated with Claude Code

…4.3.31 -> v4.3.32)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@logicallysynced logicallysynced self-assigned this Jul 31, 2026
logicallysynced and others added 2 commits August 2, 2026 14:32
…ts stop reporting as errors (v4.3.32 -> v4.3.33)

Fixes CHROMATICS-1D

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…n, single surface read per tick

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@logicallysynced logicallysynced changed the title 4.3.32: Sharlayan 9.2.0-prerelease.64 with 7.55 reader fixes 4.3.33: Sharlayan 9.2.0 for 7.55, Screen Capture title-screen crash fix, quieter unreachable-light logging Aug 2, 2026
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.

1 participant