- Add scripts/lib/updates-feed.mjs to generate /data/updates.json for Qt6 desktop launcher
- Extract short commit SHA, published date, direct asset download URLs, and cleaned changelog
- Integrate with fetch-github-data.mjs with offline and rate-limiting resilience
- Add UpdateFeed and UpdateAsset TypeScript interfaces to src/lib/github.ts
- Add 15 unit tests covering parsing priorities, asset filtering, and fallback behavior
- Security: restrict /compat and /set* comment workflows to maintainers (OWNER, MEMBER, COLLABORATOR)
- Sitemap: use siteGameKey for canonical URLs matching internal routes
- Sync: pass GITHUB_TOKEN to upstream fetchCandidates to prevent 60 req/hr rate limiting
- Intake: guard slug derivation against missing title in issue-to-compat.mjs and escape frontmatter strings
- Forms: whitelist known template group headings in parseIssueBody to preserve user markdown headings
- Accuracy: fetch true contributor total from GitHub API pagination headers in RepoStats
- Cleanup: delete unused ReportCard component and rename markdown.tsx to markdown-view.tsx
- Content: fix title and filename typos in The Thing and GTA Vice City reports
- Point every hardcoded URL at the org home: SITE_URL and repo URLs in
src/config.ts, index.html canonical + og:url, robots.txt sitemap,
vite.config.ts base comment, deploy.yml comment
- Add GPL-2.0 LICENSE matching the emulator project and update README
- Resolve the design-plan [MAINTAINER INPUT NEEDED] items: canonical
domain and website code license
- Add docs/handover.md with the pre/post-transfer checklist
- ui: fill the compatibility stats card edge-to-edge on desktop
- ci: reuse the latest-release fetch instead of calling the API twice
Asset download counts bump on every download, so the deployed release
snapshot never matched the freshly-fetched one and the refresh workflow
kept dispatching rebuilds. Strip download_count from the snapshot and the
comparison — releases are now compared by identity (tag, date, notes).
The staleness check compared whole GitHub API responses, which include
temp_clone_token (rotates on every authenticated call) and a token-shaped
permissions object — so the JSON never matched and every 30-min refresh
dispatched a full deploy. Strip both fields when writing the snapshot and
again defensively in the comparison; the workflow now rebuilds only when
real data (stars, issues, releases, commits) actually moves.
Strip every mention of the external reference project from code comments,
scripts and workflows, and rewrite the README as a standalone project doc
(functionality, building, derived data, compatibility database, games
database, automation, deployment) with no outside references except the
KytyPS5 emulator itself.
Official site for KytyPS5 — React 19 + Vite + TypeScript + Tailwind v4.
Pages: Home, Download, Documentation, FAQ, Contributing, About, 404,
Compatibility with per-game report pages. Includes GitHub data fetching,
the GUI-compatible compatibility JSON export, the issue-template report
pipeline (template + conversion workflow), CI and GitHub Pages deploy.