Repository navigation
feat(desktop): SteamAPI Desktop v0.1.0 - #4
Merged
Merged
Conversation
- Introduce Avalonia UI 11.2 desktop application for Steam game search, response inspection, and visual exploration - Implement MVVM architecture with Game Explorer, API Inspector, Settings, and About tabs - Add Demo Mode with offline curated data for non-API evaluation - Support both embedded companion backend (port 5271) and external API URLs - Implement safe port conflict handling with zero upstream network probing - Implement Win32 Job Object lifecycle management and graceful shutdown - Add persistent software creator attribution for Fatih Emre Sarman (@fatihemres) - Add 65 automated desktop unit/integration tests (222/222 passing solution-wide) - Add self-contained Windows release packaging script and CI packaging validation - Add CI Windows artifact upload for downloadable release candidate ZIP and SHA-256 - Preserve v0.2.0 backend API implementation and contracts completely intact
…umentation - Remove unverified currency code and symbol labels from AboutView storefront cards - Strip currency references from SteamCulture descriptions to match 6-field backend contract - Update README documentation to accurately describe the 3 supported storefront cultures - Correct Avalonia UI framework version string to 11.2 in AboutViewModel and README - Adjust test timeout in ApiProcessManagerTests to avoid runner scheduling jitter
… packaging - Add Inno Setup 6 script (desktop/installer/SteamAPI.Desktop.iss) for per-user non-admin installation - Configure persistent AppId GUID, Start Menu shortcut, optional desktop shortcut, and Add/Remove Programs uninstaller - Ensure safe in-place upgrades and strict user settings preservation (%APPDATA%\SteamAPI.Desktop\settings.json) - Extend desktop/package-release.ps1 to produce both primary installer EXE and optional portable ZIP with SHA-256 sidecars - Update .github/workflows/ci.yml to validate and upload both installer EXE and portable ZIP release artifacts - Update desktop/README.md with comprehensive installation, upgrade, uninstallation, and persistence instructions
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This draft pull request introduces SteamAPI Desktop v0.1.0, an interactive desktop client built with .NET 10 and Avalonia UI 11.2 that exposes the existing SteamAPI service through a graphical user interface, packaged with a professional Windows installer.
Distribution Formats
SteamAPI-Desktop-Setup-v0.1.0-win-x64.exe(Inno Setup 6)%LOCALAPPDATA%\Programs\SteamAPI Desktop).{B42B8D30-80E5-46D9-8E92-E23B86BC7B62}) supporting clean in-place upgrades.%APPDATA%\SteamAPI.Desktop\settings.json).SteamAPI-Desktop-v0.1.0-win-x64.zipfor advanced users and portable/restricted environments..sha256).Actual Implemented Features
1. Game Explorer
1, Country Code:TR)2, Country Code:US)3, Country Code:ES)PAID,FREE TO PLAY,NOT AVAILABLE), and price display.name,storeLink,imageLink,price,saleType,appId). Does not display or fabricate unverified metadata such as developers, publishers, release dates, Metacritic scores, genre tags, discount percentages, or currency symbols.Free to Play,Not Available) derived fromsaleType.steam://store/{appId}) or web browser (storeLink), with buttons to copy App ID and store URL to clipboard.2. API Inspector
3. Settings & Process Management
http://localhost:5271) and HTTP request timeout with an interactive "Test Connection" diagnostic button.Stopped,Starting,Running,Failed).%APPDATA%\SteamAPI.Desktop\settings.jsonwith a "Reset Defaults" action. (Note: Theme switcher UI is not present in this release; the application uses the Steam-inspired dark palette).4. Creator Attribution & About View
Architecture & Lifecycle Design
IClipboardService,ILauncherService,IDemoDataService,ISettingsService,IApiProcessManager).JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE. Child processes are reliably terminated by the operating system if the host application exits or terminates unexpectedly.127.0.0.1:5271is checked via standard socket connection before starting the child process. If occupied by another application, startup halts immediately with a clear error message. NoPOST /steamor HTTP search requests are sent to unknown listeners, avoiding unexpected upstream network traffic or service disruption.Verification Evidence
GitHub Actions CI
ubuntu-latestandwindows-latest, Windows packaging, and artifact upload.steamapi-desktop-v0.1.0-win-x64generated and retained by GitHub Actions (includesSteamAPI-Desktop-Setup-v0.1.0-win-x64.exeinstaller,SteamAPI-Desktop-v0.1.0-win-x64.zipportable archive, and both.sha256sidecars).Local Windows Acceptance Evidence
api\SteamAPI.exeverified present.HKCU:\...\Uninstall\{B42B8D30-80E5-46D9-8E92-E23B86BC7B62}_is1) verified created with complete publisher and version metadata.%APPDATA%\SteamAPI.Desktop\settings.jsonpreserved intact across install and uninstall.git diff --stat 04ee2b1b2a1f1dae96d62ac5b5219955f346b197 -- Infrastructer/ SteamAPI/ SteamAPI.Tests/confirms 0 files modified; existing backend API implementation remains untouched.Known Limitations
5271. If another application uses this port, companion startup fails safely; users must free port5271or configure an alternate external API URL in Settings.Rollback Strategy
All desktop code, installer scripts, and tests reside strictly in
desktop/and solution references inSteamAPI.sln. Reverting the desktop commits cleanly restores the stable v0.2.0 baseline.Product Owner Next Steps
This PR is in DRAFT state for Product Owner acceptance testing. It must not be merged until final UAT is approved.