# Dalamud v15.0.3.1 to v15.0.3.2 - Public Report

Observed: 2026-08-14 12:04 CDT

## Summary

Dalamud `15.0.3.2` is tagged at
`83042016d0e9996dc44c9f7fd96a8d33a5e586f2`. The exact range from
`15.0.3.1` contains 35 commits and 25 changed files after dependency rollups
and the version commit are included.

There is no API-level, SDK, or packager bump. The release corrects localized
noun and SeString evaluation, moves hook reversion onto the Framework thread
during shutdown, adds opt-in Windows AppContainer support, improves failed-hook
diagnostics, and updates ClientStructs.

## Release State

| Surface | Result |
| --- | --- |
| Dalamud tag | `15.0.3.2` / `83042016` |
| Post-tag repository changes | none; `master` matches the tag |
| Public SDK | `Dalamud.NET.Sdk/15.0.0`, unchanged |
| Public packager | `DalamudPackager/15.0.0`, unchanged |
| ClientStructs | `50e46a84`, updated from `8121cbbc` |

At the observation time, STG served applicable `15.0.3.2` for the current
game contract. Release still served the older `15.0.3.1`, but had moved to
the same current-game contract and also reported applicable. Stable delivery
of `15.0.3.2` was therefore still in progress. Confirm the selected channel
and the locally installed commit before compatibility testing.

## What Changed

### Localized text evaluation

German and French noun generation has been corrected, French article coverage
has expanded, and SeString expression evaluation now handles plain numeric
strings, nested string comparisons, and parameter expressions more reliably.

Plugins that render evaluated game text should not need a source change.
Localized output, especially German and French, should be smoke-tested where
text accuracy matters.

### Hook teardown and diagnostics

Tracked hooks are now reverted on the Framework thread during shutdown. Hook
construction failures also produce address-space diagnostics. The public hook
creation API did not change.

Hook-heavy plugins should test enable, disable, reload, disposal, and client
shutdown. These framework fixes do not validate plugin-local teardown order.

### Optional AppContainer sandbox

The injector can now launch the game inside a Windows AppContainer. This mode
is opt-in unless an operator explicitly enables it globally. Normal
unsandboxed launches are unchanged.

Sandboxed plugins may require extra configuration or code hardening when they:

- open localhost listeners or connect to local services;
- launch browsers, media tools, speech engines, or other helper processes;
- read or write outside the plugin and redirected user-data directories;
- access another plugin's files through a hard-coded user-profile path;
- use named shared-memory or cross-process synchronization objects.

Treat sandbox compatibility as a separate acceptance target. A successful
unsandboxed test does not prove sandboxed operation.

### ClientStructs

ClientStructs moves from `8121cbbc` to `50e46a84` across 77 commits and 49
files. Notable areas include configuration state, hotbars, text nodes,
nameplates, packet dispatch, event and layout types, party-finder agents, and
new generated helper functions.

The reviewed changes are largely additive or internal-layout corrections. A
source scan found no use of an exact removed or renamed member in the reviewed
API-15 portfolio. Raw pointers, manual offsets, generated addresses, and
native UI assumptions still require targeted in-game validation.

## Plugin Release Guidance

This release does not by itself require a plugin version bump or a
compatibility-only publication. A plugin release is justified only if its own
source change, package change, or runtime failure requires one.

Static inspection and a successful build do not replace in-client validation.

## Recommended Validation

1. Confirm the selected channel is applicable and `15.0.3.2` is installed.
2. Load hook-heavy plugins and exercise enable, disable, reload, disposal, and
   shutdown.
3. Test localized evaluated text, with German and French cases where relevant.
4. Recheck raw text nodes, hotbars, party-finder agents, packet helpers, and
   other direct ClientStructs consumers.
5. If AppContainer is intentionally enabled, run a separate matrix for local
   networking, helper processes, filesystem paths, and shared-memory features.

## Sources

- <https://github.com/goatcorp/Dalamud/tree/15.0.3.2>
- <https://github.com/goatcorp/Dalamud/compare/15.0.3.1...15.0.3.2>
- <https://github.com/goatcorp/Dalamud/pull/2908>
- <https://github.com/goatcorp/Dalamud/pull/2911>
- <https://github.com/goatcorp/Dalamud/pull/2916>
- <https://github.com/aers/FFXIVClientStructs/compare/8121cbbc26b7a583b63b230306f70419bea727d2...50e46a849ce2b2ada83e8fe4209c50b6a34d7695>
- <https://kamori.goats.dev/Dalamud/Release/VersionInfo?track=release>
- <https://kamori.goats.dev/Dalamud/Release/VersionInfo?track=stg>
- <https://api.nuget.org/v3-flatcontainer/dalamud.net.sdk/index.json>
- <https://api.nuget.org/v3-flatcontainer/dalamudpackager/index.json>
