Commit Graph
450 Commits
Author SHA1 Message Date
HorizonCode 687ab26752 fix(themes): remove enabled/disabled badge in title when logging tab is active 2026-11-04 16:43:48 +01:00
HorizonCode 9d312fb3bb fix(themes): re-add themesV2Css import 2026-11-04 16:42:30 +01:00
HorizonCode ef214d424c feat(themes): add revert for unsynced themes
Restore the published Workshop version after confirmation, keeping a backup of
local edits. Owner reverts send auth headers so themes-service skips the
download counter.
2026-11-04 14:50:03 +01:00
HorizonCode d4be3f845d feat(themes): confirm uninstalls and restore tab padding
Add a confirmation dialog before removing an installed theme, warning
that local edits are deleted. Apply content padding to the absolute tab
panels so the workshop and library views stay inset from the frame.
2026-11-04 13:50:05 +01:00
HorizonCode 83b007818d chore(themes): move theme libs into /theme 2026-11-04 13:39:45 +01:00
HorizonCode cfb6ec8cce fix(themes): hide version tag badge for default theme 2026-11-04 13:20:57 +01:00
HorizonCode 323a6f18af feat(themes): flag unpublished edits and share parallax motion
Compare theme content hashes with a stored Workshop baseline so creators
can see when their local copy is not synced. Extract pointer tracking into
a shared action for the launcher and editor preview, and use the slider
component for parallax depth.
2026-11-04 12:04:13 +01:00
HorizonCode d56ed9d786 feat(themes): polish theme editor, updates, and card motion
- Lazy-load the theme editor, workshop, diagnostics, logs, and presence editor.
- Check installed themes for newer workshop versions and support updates with backup/restore.
- Preserve accordion state for the current editor session and add section icons.
- Animate installed and workshop cards on insertion, and fix the duplicate presence idle action.
2026-11-04 09:54:58 +01:00
HorizonCode 51f5fa3e46 fix(themes): enforce strict semver versions
Require SemVer 2.0.0 when saving, validating, or publishing a theme, and validate again at the workshop upload boundary. This rejects partial versions, v-prefixed versions, leading-zero components, and arbitrary strings while preserving valid prerelease and build metadata.
2026-11-04 00:00:07 +01:00
HorizonCode 07cbfa39a6 fix(themes): require a newer version for each publish
Compare the proposed version with the version currently published in the workshop before opening the publish dialog and again before upload. Reject invalid semver, duplicate versions, and downgrades, while tracking the just-submitted version in-session so pending updates cannot be published twice.
2026-11-03 23:54:02 +01:00
HorizonCode 11aefee7ed feat(themes): persist publisher id in theme manifests
Publishing now stamps the signed-in EZPPFarm user ID into theme.json and saves it before packaging, so installed theme cards can resolve avatars by stable user ID. Older manifests keep the author-name fallback.
2026-11-03 23:45:00 +01:00
HorizonCode 5eea428802 fix(themes): show author avatars on installed theme cards
Installed theme cards rendered only an initial because their manifests store the author name, not an avatar URL. Use the EZPPFarm avatar endpoint with the author name and keep the initial as the image-load fallback, matching the community workshop presentation.
2026-11-03 23:39:25 +01:00
HorizonCode 760bd9a283 refactor(themes): align installed cards with the workshop layout
Installed theme cards now use the same visual hierarchy as workshop cards: status and API badges at the top, version on the preview, an author strip over the artwork, a compact title and description, and a footer with status plus compact actions. This removes the oversized primary button and duplicate version/author rows.
2026-11-03 23:13:44 +01:00
HorizonCode 47c022642f feat(themes): polish installed cards and add workshop theme details
Installed themes now use a 16:9 preview with stable card spacing and a single overflow menu for edit, restore, update, report and uninstall actions. Community theme previews and titles open a large detail dialog with a full-size preview, metadata, tags, review status and the relevant install action.
2026-11-03 23:08:35 +01:00
HorizonCode 5613c3be25 fix(workshop): make moderation and install flows production ready
Replace the remaining native prompt and confirm calls with an in-app action dialog, including focus handling and inline errors. Guard likes and concurrent moderation loads, surface stale-data errors, paginate the review queue, and keep load-more state local to each list. Allow the packaged app to reach the workshop host for API calls and previews.
2026-11-03 22:55:18 +01:00
HorizonCode 4d57184b73 feat(settings): animate the active settings description
The selected settings description now morphs between values with TextMorph unless reduced motion is enabled.
2026-11-03 19:26:52 +01:00
HorizonCode d555ac366f refactor(workshop): use the shared select component for theme filters
The sort, announcement audience and report category controls were still native select elements. They now use the same shadcn-svelte Select as the moderation filters for consistent styling and keyboard behavior.
2026-11-03 19:18:31 +01:00
HorizonCode 918f8651dd fix(workshop): make the takedown action work inside the desktop webview
The action used window.prompt, which returns null in the Tauri webview, so the handler aborted before calling the API. Takedown and lift now use an in-app dialog with a required reason, inline errors and a loading state.
2026-11-03 19:07:22 +01:00
HorizonCode 4b039c9b79 fix(workshop): keep download progress across tab switches
The workshop is unmounted when the Installed tab is opened, so its local download state was discarded and returning to the Community tab showed no progress even though the install was still running. Active downloads and percentages now live in a shared module that outlives the component, and in-flight downloads keep updating it.
2026-11-03 19:03:58 +01:00
HorizonCode 809fca6f29 feat(workshop): add the pre-publication review queue
New themes are submitted for review instead of appearing live, so the workshop now surfaces pending and rejected badges on the creator's own cards and adds a Review queue to the moderation panel with approve and reject actions. Publishing reports that the theme is awaiting review, and approval/rejection notifications are labelled.
2026-11-03 19:01:29 +01:00
HorizonCode 0025313c4d fix(workshop): allow concurrent downloads and stop auto-applying
Downloads shared a single active-id guard, so a second theme could not start until the first finished, and completing one immediately applied it over the current theme. Each download now tracks its own progress, runs concurrently, and only adds the theme to the library. The batch-selection bar and checkboxes are removed in favour of the independent buttons.
2026-11-03 18:48:52 +01:00
HorizonCode 6b1ed5aa1a feat(workshop): download multiple selected themes in one batch
Only one theme could be installed at a time because a single download id
guarded every card, so users had to repeat the flow per theme. A selection
mode now adds checkboxes and a batch bar that installs the chosen themes in
sequence, with per-theme progress and a summary of failures.
2026-11-03 18:43:53 +01:00
HorizonCode fc128b7178 feat(notifications): show full notification details with actions
Long announcements were clamped in the list and had nowhere to open, so
notifications now open a detail dialog with the full message, type, theme,
sender and timestamp, plus a shortcut into the Community Workshop.
2026-11-03 18:33:19 +01:00
HorizonCode 520ad5c4f1 feat(workshop): confirm trash restore and permanent deletion
Add confirmation dialogs for restoring and permanently deleting trashed themes, and wire the permanent-delete API call.
2026-11-03 18:10:34 +01:00
HorizonCode 93536af6a6 chore(lint): resolve launcher lint issues
Format files and fix unused code, reactive collection usage, redundant mustaches, and missing each-block keys.
2026-11-03 16:21:23 +01:00
HorizonCode 3ef59f94ee feat(themes): improve workshop filtering and fork controls
Add a compact used-tag filter, preserve workshop ownership across theme
reloads, and let authors disable forking for their themes.
2026-11-03 16:06:11 +01:00
HorizonCode ebc5fbf9c4 feat(themes): polish workshop moderation and theme controls
Add the in-app tag editor, installed-theme reporting, readable moderation and report dialogs, and notification layering fixes. Persist server-assigned workshop IDs for stable republishes, hide self-reporting, fix report-button contrast, and disable macOS autocorrect and spell checking across launcher windows.
2026-11-03 14:58:28 +01:00
HorizonCode 1f3fa026ce feat(workshop): add role badges and streamline theme cards
Use the service owner, moderator, or supporter role for author badges, expose downloads for owned legacy themes, and move secondary card actions into a menu. Include theme tags in publish metadata and keep API 2.0 exports limited to theme.json and assets.
2026-11-03 13:15:37 +01:00
HorizonCode 9b4158410d feat(workshop): add moderation, search, tag, and tooltip controls
Surface staff reports, takedowns, announcements, audit tools, ranked
search, creator tag editing, and shared tooltips in the workshop.
2026-11-03 10:03:53 +01:00
HorizonCode 1bf8034126 feat(themes): set default themes service URL to https://themes.ez-pp.farm 2026-11-02 16:33:01 +01:00
HorizonCode a423850dc9 refactor(themes): remove session tokens and authenticate exclusively via username and password 2026-11-02 16:25:38 +01:00
HorizonCode a051c021d7 fix(themes): implement native download_and_extract_community_theme and expand fs capabilities 2026-11-01 16:59:41 +01:00
HorizonCode 4a6e8c5cab fix(themes): remove descriptions from legacy themes 2026-11-01 16:30:03 +01:00
HorizonCode 2f0b034c5e fix(themes): correct Execution Clap artist attribution to Trap Chick 2026-11-01 16:28:01 +01:00
HorizonCode f198e2376c fix(themes): update legacy theme descriptions and author id to 1001 2026-11-01 16:27:01 +01:00
HorizonCode c1664ed5bf feat(themes): migrate legacy themes to Community Workshop and clean up installed library filters 2026-11-01 16:23:21 +01:00
HorizonCode 0b4af5a4d4 fix(workshop): correct DefaultThemePreview asset import path 2026-11-01 16:04:28 +01:00
HorizonCode e31d92ed3c feat(communityThemes): include credential headers in getAuthHeaders for direct auth 2026-11-01 16:00:07 +01:00
HorizonCode 8816852fd9 feat(themes): implement community themes workshop and chunked uploader 2026-11-01 15:43:24 +01:00
HorizonCode d38250a5e4 fix(theme-v2): ensure theme audio autoplays on load and handles unlock gesture 2026-11-01 14:54:04 +01:00
HorizonCode ad3fe7c586 fix(theme-editor): fix player card widget overflow, add banner variant, and improve widget selection badge 2026-11-01 14:32:56 +01:00
HorizonCode a025f9b285 fix(theme): unlock unmuted media autoplay without user interaction on macos 2026-11-01 13:57:47 +01:00
HorizonCode ce572de0d2 fix(theme): keep video unmuted with persistent volume knob on launch 2026-11-01 13:35:54 +01:00
HorizonCode e861cda23d fix(theme): do not display api version badge for the default built-in theme 2026-11-01 13:03:56 +01:00
HorizonCode 7332618e85 fix(theme): stream video conversion progress and auto-play v1 theme media 2026-11-01 13:00:58 +01:00
HorizonCode 62b31169cc feat: add game optimization mode, 3d cursor parallax, and embers particle effect 2026-11-01 12:36:10 +01:00
HorizonCode a75e723416 chore(rust): resolve all clippy warnings across codebase 2026-11-01 12:14:23 +01:00
HorizonCode 45962242aa fix(patcher): gate patcher compatibility patching to macos only 2026-11-01 12:08:43 +01:00
HorizonCode ce9112f9e2 docs: update README with theme v2, discord presence, and platform support details 2026-11-01 11:00:32 +01:00
HorizonCode e52399911c fix(macos): resolve osu updater loop and patcher wine compatibility
- Remove host Apple Braille font entries from Wine prefix registry to prevent cold-start GDI+ AccessViolationException.
- Purge .require_update, help.txt, and _pending prior to osu! launch so the game launches directly with -devserver ez-pp.farm instead of entering the updater.
- Reset _UpdateFailCount in osu!.cfg and ensure execute.bat points to ez-pp.farm.
- Update ensure_patcher_compatibility to patch osu!.patcher.exe and embedded ManagedInjector.Lib for .NET 4.0 compatibility under Wine.
- Include theme editor, cursor, and download button refinements on themes-v2 branch.
2026-11-01 10:52:39 +01:00