Skip to content
Open
Show file tree
Hide file tree
Changes from 16 commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
699c9b3
feat(ui): replace static value labels with editable NumericUpDown con…
undead2146 Dec 28, 2025
755e532
feat: implement interactive numeric inputs for game settings (#223)
undead2146 Dec 28, 2025
71d5cdc
feat: fix CD disk detection; add manual folder picker (#222)
undead2146 Dec 31, 2025
9a2cb9e
refactor: centralize game settings mapping and fix persistence bugs (…
undead2146 Dec 31, 2025
b03ae8c
fix: refactor changelog generation logic in GitHub release (#226)
undead2146 Dec 31, 2025
4105527
feat: enhance game profile settings UI, local content, and dependency…
undead2146 Dec 31, 2025
6941a39
feat: implement GeneralsOnline profile reconciliation service and upd…
undead2146 Jan 1, 2026
fca61fb
fix: resolve development branch subscription logic (#224)
undead2146 Jan 1, 2026
fc1d179
refactor: improve process termination logic to prevent UI blocking (#…
undead2146 Jan 1, 2026
32a319a
feat: Implement data-driven provider definition configurations with e…
undead2146 Jan 1, 2026
048d06f
feat: image as backdrop and add header collapse functionality in Game…
undead2146 Jan 1, 2026
a7f2e4c
feat: add "Delete All User Data" logic to the `Delete all application…
undead2146 Jan 1, 2026
c694877
feat: add game type filter and enhance UI elements for better content…
undead2146 Jan 1, 2026
e1f6324
feat: add data directories access in settings tab (#236)
undead2146 Jan 2, 2026
5b7a8dc
feat: Implement Add Local Content feature with new ViewModel and UI (…
undead2146 Jan 3, 2026
615dc70
feat: Enhance Game Installation Service with manual installation stor…
undead2146 Jan 3, 2026
b20861a
fix: resolve generalsonline reconciler and update service (#240)
undead2146 Jan 4, 2026
59d3fa0
feat: redesign the GameProfileCards UI (#244)
undead2146 Jan 5, 2026
250e19b
feat(notifications): Add persistent notification feed with action sup…
undead2146 Jan 6, 2026
f3e8e93
fix(update): overhaul update system platform detection and PR subscri…
undead2146 Jan 7, 2026
d7d92fd
feat: Implement SteamLauncher for game directory preparation and prox…
undead2146 Jan 7, 2026
33dbae1
feat: Refactor and implement Map/Replay Managers and Tools Sidebar (#…
undead2146 Jan 8, 2026
17e2501
feat(content): implement foundation for AODMaps and CNCLabs pipelines…
undead2146 Jan 14, 2026
51ce8ee
feat: implement Tool Profile support for standalone executables and m…
undead2146 Jan 16, 2026
b48204e
fix: GO Reconciler fails to parse versions.
undead2146 Jan 16, 2026
1f1552a
fix: resolve the github and manifest factories regarding TSH content …
undead2146 Jan 19, 2026
72b0589
refactor: Add Executable and ModdingTool to the GameLauncher to track…
undead2146 Jan 21, 2026
b07845d
fix(deps): resolve security vulnerabilities in vite, preact, and esbu…
undead2146 Jan 22, 2026
e84b778
feat(gamelod): fix texture quality reset to low by mapping Very High …
undead2146 Jan 23, 2026
d6847b5
feat: Add Genhub.Tools project for CsvGenerationUtility (#221)
mnoserat Jan 23, 2026
d2359aa
feat: Set up the repository file structure for storing CSV registries…
mnoserat Jan 23, 2026
7e5e1ed
feat: redesign the gameprofile settings window (#258)
undead2146 Jan 24, 2026
11dd3ee
feat: info tab features, faq parser and sidebar refinements, (#248)
undead2146 Jan 25, 2026
5d4f1a7
feat: Add new styles for landing page website components and improve …
undead2146 Jan 25, 2026
df4d717
docs: resolve deadlinks in vitepress documentation site (#260)
undead2146 Jan 25, 2026
81e1843
refactor: Remove the active workspace for steamlauncher and use alrea…
undead2146 Jan 26, 2026
0354aad
refactor: filter non-workspace files from workspace strategies (#263)
undead2146 Jan 26, 2026
64adab9
Fix(github): resolve content downloaded from github not being launcha…
undead2146 Jan 26, 2026
9fb435a
feat: Implement copy profile functionality (#267)
undead2146 Jan 27, 2026
8a82b9f
feat(website): add a tracker for total installs and updates on github…
undead2146 Jan 30, 2026
71792f7
feat(notifications): add mute functionality, improve badge UI, and fi…
aRibals Feb 21, 2026
b937355
Fix: Resolve Hotkeys for legionnaire/leikeze not working and issue wi…
undead2146 Mar 1, 2026
8a09814
feat: replaced all quicklaunch occurances with quickstart (#279)
R3voA3 Mar 14, 2026
5ba2a51
feat: implement content reconciliation system with CAS lifecycle mana…
undead2146 Mar 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
322 changes: 63 additions & 259 deletions .github/workflows/release.yml

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -169,5 +169,5 @@ _NCrunch*
**/.idea/**/modules.xml

# Velopack releases
/releases/
/Releases/
releases/
Releases/
Comment on lines 171 to +173

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Ignore pattern is now broad; consider anchoring to repo root.
Switching from /releases/ to releases/ ignores any nested folder named releases, which can hide tracked content. If you only intended the repo root, keep the leading slash.

🧩 Suggested change (root-only ignore)
- releases/
- Releases/
+ /releases/
+ /Releases/
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
# Velopack releases
/releases/
/Releases/
releases/
Releases/
# Velopack releases
/releases/
/Releases/
🤖 Prompt for AI Agents
In @.gitignore around lines 171 - 173, The .gitignore currently uses unanchored
patterns "releases/" and "Releases/" which will ignore any nested directories
named releases; change them to root-anchored patterns (e.g. "/releases/" and
"/Releases/") so only the repository root releases directories are ignored, or
explicitly add other anchored patterns if you intended different paths; update
the entries referencing the current "releases/" and "Releases/" lines
accordingly.

3 changes: 2 additions & 1 deletion GenHub/Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
<PackageVersion Include="Avalonia.Themes.Fluent" Version="11.2.7" />
<PackageVersion Include="Avalonia.Fonts.Inter" Version="11.2.7" />
<PackageVersion Include="Avalonia.Diagnostics" Version="11.2.7" />

<PackageVersion Include="CommunityToolkit.Mvvm" Version="8.2.1" />
<PackageVersion Include="Material.Icons.Avalonia" Version="2.4.1" />
<PackageVersion Include="Microsoft.Extensions.Caching.Memory" Version="9.0.7" />
Expand Down Expand Up @@ -40,4 +41,4 @@
<PackageVersion Include="FluentAssertions" Version="6.12.1" />
<PackageVersion Include="SharpCompress" Version="0.42.0" />
</ItemGroup>
</Project>
</Project>
176 changes: 176 additions & 0 deletions GenHub/GenHub.Core/Assets/Manifests/generals.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,176 @@
"RelativePath","Language"
"00000000.016",
"00000000.256",
"Audio.big",
"AudioEnglish.big","EN"
"BINKW32.DLL",
"BrowserEngine.dll",
"DebugWindow.dll",
"English.big","EN"
"game.dat",
"Generals.dat",
"Generals.exe",
"Generals.ico",
"generals.lcf",
"gensec.big",
"gp.info",
"INI.big",
"Install_Final.bmp",
"langdata.dat",
"launcher.bmp",
"Launcher.txt",
"maps.big",
"mss32.dll",
"Music.big",
"P2XDLL.DLL",
"ParticleEditor.dll",
"Patch.big",
"Patch.doc",
"PatchData.big",
"patchget.dat",
"PatchINI.big",
"patchw32.dll",
"PatchWindow.big",
"Perf.txt",
"Ping.txt",
"QMPerf.txt",
"readme.doc",
"shaders.big",
"Speech.big",
"SpeechEnglish.big","EN"
"StateChanged.txt",
"Terrain.big",
"Textures.big",
"W3D.big",
"Window.big",
"WorldBuilder.exe",
"Core\Activation.dll",
"Core\Activation64.dll",
"Data\Cursors\sccattack.ani",
"Data\Cursors\SCCAttack_S.ani",
"Data\Cursors\SCCAttMov.ani",
"Data\Cursors\SCCAttMov_S.ani",
"Data\Cursors\SCCCashHack.ani",
"Data\Cursors\SCCEnter.ani",
"Data\Cursors\SCCEnter_S.ani",
"Data\Cursors\SCCExit.ani",
"Data\Cursors\SCCFriendly.ani",
"Data\Cursors\SCCFriendly_S.ani",
"Data\Cursors\SCCGuard.ani",
"Data\Cursors\SCCHeal.ani",
"Data\Cursors\SCCHostile.ani",
"Data\Cursors\SCCHostile2.ani",
"Data\Cursors\SCCHostile3.ani",
"Data\Cursors\SCCHostile_S.ani",
"Data\Cursors\SCCKnifeAttack.ani",
"Data\Cursors\sccmove.ani",
"Data\Cursors\SCCMove_S.ani",
"Data\Cursors\SCCNoAction.ani",
"Data\Cursors\SCCNoAction_S.ani",
"Data\Cursors\SCCNoBomb.ani",
"Data\Cursors\SCCNoEntry.ani",
"Data\Cursors\SCCNoEntry_S.ani",
"Data\Cursors\SCCNoKnife.ani",
"Data\Cursors\SCCOutrange.ani",
"Data\Cursors\SCCPlace.ani",
"Data\Cursors\SCCPlaceBeacon.ani",
"Data\Cursors\sccpointer.ani",
"Data\Cursors\SCCRallyPnt.ani",
"Data\Cursors\SCCRallyPnt_S.ani",
"Data\Cursors\SCCRemoteChg.ani",
"Data\Cursors\SCCRepair.ani",
"Data\Cursors\SCCResumeC.ani",
"Data\Cursors\sccscroll0.ani",
"Data\Cursors\sccscroll1.ani",
"Data\Cursors\sccscroll2.ani",
"Data\Cursors\sccscroll3.ani",
"Data\Cursors\SCCScroll4.ani",
"Data\Cursors\SCCScroll5.ani",
"Data\Cursors\SCCScroll6.ani",
"Data\Cursors\SCCScroll7.ani",
"Data\Cursors\SCCSDIUplink.ani",
"Data\Cursors\SCCSelect.ani",
"Data\Cursors\SCCSell.ani",
"Data\Cursors\SCCSniper.ani",
"Data\Cursors\SCCSpyDrone.ani",
"Data\Cursors\SCCStop.ani",
"Data\Cursors\SCCTimedChg.ani",
"Data\Cursors\SCCTNTAttack.ani",
"Data\Cursors\SCCWaypoint.ani",
"Data\Cursors\SCCWaypoint_S.ani",
"Data\english\Movies\EA_LOGO.BIK","EN"
"Data\english\Movies\EA_LOGO640.BIK","EN"
"Data\english\Movies\sizzle_review.bik","EN"
"Data\english\Movies\sizzle_review640.bik","EN"
"Data\Movies\China01_Final_00s.bik",
"Data\Movies\China02_Final_00s.bik",
"Data\Movies\China03_Final_00s.bik",
"Data\Movies\China04_Final_00s.bik",
"Data\Movies\China05_Final_00s.bik",
"Data\Movies\China06_Final_00s.bik",
"Data\Movies\China07_Final_00s.bik",
"Data\Movies\CHINA_end.bik",
"Data\Movies\CHINA_end640.bik",
"Data\Movies\GLA01_Final_00s.bik",
"Data\Movies\GLA02_Final_00s.bik",
"Data\Movies\GLA03_Final_00s.bik",
"Data\Movies\GLA04_Final_00s.bik",
"Data\Movies\GLA05_Final_00s.bik",
"Data\Movies\GLA06_Final_00s.bik",
"Data\Movies\GLA07_Final_00s.bik",
"Data\Movies\GLA08_Final_00s.bik",
"Data\Movies\GLA_end.bik",
"Data\Movies\GLA_end640.bik",
"Data\Movies\Training_Final_00s.bik",
"Data\Movies\USA01_Final_00s.bik",
"Data\Movies\USA02_Final_00s.bik",
"Data\Movies\USA03_Final_00s.bik",
"Data\Movies\USA04_Final_00s.bik",
"Data\Movies\USA06_Final_00s.bik",
"Data\Movies\USA07_Final_00s.bik",
"Data\Movies\USA08_Final_00s.bik",
"Data\Movies\USA_end.bik",
"Data\Movies\USA_end640.bik",
"Data\Scripts\MultiplayerScripts.scb",
"Data\Scripts\SkirmishScripts.scb",
"Data\WaterPlane\caust00.tga",
"Data\WaterPlane\caust01.tga",
"Data\WaterPlane\caust02.tga",
"Data\WaterPlane\caust03.tga",
"Data\WaterPlane\caust04.tga",
"Data\WaterPlane\caust05.tga",
"Data\WaterPlane\caust06.tga",
"Data\WaterPlane\caust07.tga",
"Data\WaterPlane\caust08.tga",
"Data\WaterPlane\caust09.tga",
"Data\WaterPlane\caust10.tga",
"Data\WaterPlane\caust11.tga",
"Data\WaterPlane\caust12.tga",
"Data\WaterPlane\caust13.tga",
"Data\WaterPlane\caust14.tga",
"Data\WaterPlane\caust15.tga",
"Data\WaterPlane\caust16.tga",
"Data\WaterPlane\caust17.tga",
"Data\WaterPlane\caust18.tga",
"Data\WaterPlane\caust19.tga",
"Data\WaterPlane\caust20.tga",
"Data\WaterPlane\caust21.tga",
"Data\WaterPlane\caust22.tga",
"Data\WaterPlane\caust23.tga",
"Data\WaterPlane\caust24.tga",
"Data\WaterPlane\caust25.tga",
"Data\WaterPlane\caust26.tga",
"Data\WaterPlane\caust27.tga",
"Data\WaterPlane\caust28.tga",
"Data\WaterPlane\caust29.tga",
"Data\WaterPlane\caust30.tga",
"Data\WaterPlane\caust31.tga",
"MSS\mssa3d.m3d",
"MSS\mssds3d.m3d",
"MSS\mssdsp.flt",
"MSS\mssdx7.m3d",
"MSS\msseax.m3d",
"MSS\mssmp3.asi",
"MSS\mssrsx.m3d",
"MSS\msssoft.m3d",
"MSS\mssvoice.asi",
Loading