v1.6.0 through v1.15.0 were never published. The whole window layer was being rewritten from ImGui defaults to custom drawing, and repo.json deliberately kept its links on v1.5.6 so nobody could update into a half-finished state. That work lands here in one release. The config is not migrated, it is replaced. A config carried across nine cycles of window rebuilds holds values chosen against surfaces that no longer exist, and starting over is the only way to be sure every install is on the same defaults. The message database is a separate file and is not touched. The old config is copied to HellionChat.json.pre-2.0.0.bak first, so rolling back to 1.5.6 stays a file copy rather than an evening of clicking settings back in. Config schema 27. The reset runs from the constructor, before LoadAsync seeds the default tabs, and the self-test now fails if the tab list is empty at /xlperf -- that ordering breaking would leave every user with no tabs and nothing else in the plugin would notice. Default layout gains an Emote tab: custom emotes, standard emotes and echo. A tester asked for it, emotes get lost between system notices otherwise. Manifest, README, roadmap and the four changelog consumers are on 2.0.0. The release notes lead with what was fixed rather than what was redrawn -- retroactive cleanup that could never be applied, a compaction that reported deleting nothing while deleting everything, pinned tell tabs that came up empty for a session. And with the one behaviour change users should know about: the channel grid is authoritative over storage now, so anyone who had unticked channels while the unknown-channel failsafe was on stores less than they did before.
95 lines
4.7 KiB
XML
95 lines
4.7 KiB
XML
<Project Sdk="Dalamud.NET.Sdk/15.0.0">
|
|
<PropertyGroup>
|
|
<!-- Independent versioning; see yaml changelog for upstream Chat 2 base -->
|
|
<Version>2.0.0</Version>
|
|
<ImplicitUsings>enable</ImplicitUsings>
|
|
<Nullable>enable</Nullable>
|
|
<!-- Use lock file to pin exact versions -->
|
|
<RestorePackagesWithLockFile>true</RestorePackagesWithLockFile>
|
|
<!-- v1.0.0+: standalone fork, no upstream cherry-pick compatibility -->
|
|
<AssemblyName>HellionChat</AssemblyName>
|
|
<RootNamespace>HellionChat</RootNamespace>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<!-- Closed ranges prevent surprise major bumps during lock file regeneration -->
|
|
<PackageReference Include="MessagePack" Version="[3.1.4, 4.0.0)" />
|
|
<PackageReference Include="Microsoft.Data.Sqlite" Version="10.0.8" />
|
|
<!-- v1.5.0 DI-container foundation; matches Lightless pin (Hosting 10.0.7) -->
|
|
<PackageReference
|
|
Include="Microsoft.Extensions.DependencyInjection"
|
|
Version="[10.0.7, 11.0.0)"
|
|
/>
|
|
<PackageReference Include="Microsoft.Extensions.Hosting" Version="[10.0.7, 11.0.0)" />
|
|
<PackageReference Include="Microsoft.Extensions.Logging" Version="[10.0.7, 11.0.0)" />
|
|
<PackageReference Include="Microsoft.Extensions.Options" Version="[10.0.7, 11.0.0)" />
|
|
<!-- SQLitePCLRaw override for CVE-2025-6965, CVE-2025-7709 (SQLite >= 3.50.3) -->
|
|
<PackageReference Include="SQLitePCLRaw.lib.e_sqlite3" Version="3.50.3" />
|
|
<PackageReference Include="morelinq" Version="4.4.0" />
|
|
<!-- NAudio.WinMM 2.2.1 MIT - WaveOutEvent/WinMM path is Wine-safe (WaveOut works under Wine,
|
|
Media-Foundation-based codecs do not). Using the sub-package avoids pulling in
|
|
NAudio.WinForms (which requires WindowsDesktop and does not build on Linux hosts).
|
|
WaveOutEvent and WaveFileReader both live in NAudio.WinMM + NAudio.Core. -->
|
|
<PackageReference Include="NAudio.WinMM" Version="2.3.0" />
|
|
<PackageReference Include="Pidgin" Version="[3.5.1, 4.0.0)" />
|
|
<PackageReference Include="SixLabors.ImageSharp" Version="[3.1.12, 4.0.0)" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<!-- Test assembly needs access to internal helpers (not redistributed) -->
|
|
<InternalsVisibleTo Include="HellionChat.Tests" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<Compile Update="Resources\Language.Designer.cs">
|
|
<DesignTime>True</DesignTime>
|
|
<AutoGen>True</AutoGen>
|
|
<DependentUpon>Language.resx</DependentUpon>
|
|
</Compile>
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<EmbeddedResource Update="Resources\Language.resx">
|
|
<Generator>ResXFileCodeGenerator</Generator>
|
|
<LastGenOutput>Language.Designer.cs</LastGenOutput>
|
|
</EmbeddedResource>
|
|
</ItemGroup>
|
|
|
|
<!-- Embedded resources: bundled UI font (Inter Light, OFL-1.1) + manifest resource -->
|
|
<ItemGroup>
|
|
<EmbeddedResource Include="Resources\Inter-Light.ttf">
|
|
<LogicalName>Inter-Light.ttf</LogicalName>
|
|
</EmbeddedResource>
|
|
<EmbeddedResource Include="Resources\Inter-OFL.txt">
|
|
<LogicalName>Inter-OFL.txt</LogicalName>
|
|
</EmbeddedResource>
|
|
<EmbeddedResource Include="Resources\Branding\fox-banner.png">
|
|
<LogicalName>HellionChat.Branding.fox-banner.png</LogicalName>
|
|
</EmbeddedResource>
|
|
<!-- Bundled custom notification sounds, Mono 44.1 kHz 16-bit PCM WAV (Wine-safe) -->
|
|
<EmbeddedResource Include="Resources\Sounds\notification-1.wav">
|
|
<LogicalName>HellionChat.Sounds.notification-1.wav</LogicalName>
|
|
</EmbeddedResource>
|
|
<EmbeddedResource Include="Resources\Sounds\notification-2.wav">
|
|
<LogicalName>HellionChat.Sounds.notification-2.wav</LogicalName>
|
|
</EmbeddedResource>
|
|
<EmbeddedResource Include="Resources\Sounds\notification-3.wav">
|
|
<LogicalName>HellionChat.Sounds.notification-3.wav</LogicalName>
|
|
</EmbeddedResource>
|
|
<EmbeddedResource Include="Resources\Branding\fox-mini.txt">
|
|
<LogicalName>HellionChat.Branding.fox-mini.txt</LogicalName>
|
|
</EmbeddedResource>
|
|
<EmbeddedResource Include="Themes\Builtin\example-theme.json">
|
|
<LogicalName>HellionChat.Themes.Builtin.example-theme.json</LogicalName>
|
|
</EmbeddedResource>
|
|
</ItemGroup>
|
|
|
|
<!-- Plugin icon: copy images/* to output for Dalamud discovery. ASCII
|
|
study folder is source-only material, no need to ship it. -->
|
|
<ItemGroup>
|
|
<None Include="images\**" Exclude="images\ascii\**">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</None>
|
|
</ItemGroup>
|
|
</Project>
|