Skip to content

Changelog

[2026.05.25] - Harden Chat Attachment Opening

Changed

  • Reveal downloaded chat attachments with active, archive, or unknown file types in their containing folder instead of opening them directly with OS handlers.
  • Keep direct opening for image and text preview types that the launcher already recognizes.

[2026.05.25] - Add Mandatory Launcher Updates

Added

  • Block Minecraft starts when the Versions API marks a launcher update as required while keeping the rest of the launcher usable.
  • Show required launcher updates in the footer and Settings updater panels with localized German and English copy.

[2026.05.25] - Trim Play Lobby Quests

Changed

  • Remove the secondary quest description from the Play lobby quest panel so the card starts with the quest list directly below the title.

[2026.05.21] - Shape Slenderman Catalog Copy

Changed

  • Present Slenderman Classic as a hidden-note hunt with an Enderman hunter in the fallback catalog.

[2026.05.21] - Add Slandermann Minigame

Added

  • Add Slandermann Classic to the Uebliche.games fallback catalog with localized Launcher copy, horror-role tags, and round-based party metadata.

[2026.05.20] - Format CurseForge Descriptions

Fixed

  • Render CurseForge project descriptions with preserved headings, lists, links, inline emphasis, and code blocks in Discover details.
  • Keep the direct CurseForge fallback aligned with the Public API normalized description format.
  • Refresh existing local CurseForge detail cache entries once so old plain-text descriptions are replaced on the next detail open.

[2026.05.20] - Use Unified Provider Compatibility

Changed

  • Read the normalized Public API Discover provider contract for Modrinth and CurseForge compatibility data.
  • Keep direct provider fallback compatibility generation aligned with the Public API contract.

[2026.05.20] - Fill CurseForge Support Matrix

Fixed

  • Build Discover support-matrix rows from provider version Minecraft and loader metadata when explicit support-target entries are missing.
  • Show the Discover support matrix before long project descriptions so CurseForge pages expose compatibility immediately.

[2026.05.20] - Fix Discover Split View Clipping

Fixed

  • Keep Discover split-view cards inside the visible page height so long project details are not clipped behind the footer.

[2026.05.20] - Fix CurseForge Details

Fixed

  • Load CurseForge project details and file details through the current Public API proxy routes.
  • Show cached CurseForge project descriptions as the detail body while keeping the short summary separate.
  • Show CurseForge Minecraft version and loader support in the Discover support matrix.
  • Refresh stale local CurseForge Discover detail cache entries when they have a body but no Minecraft support metadata yet.

[2026.05.20] - Restore Update Prompt

Changed

  • Move Downloads into a compact bottom-right footer icon with active download and update badges.
  • Show a launcher update prompt from the footer icon with install-and-restart, update check, and Downloads actions.
  • Leave the footer status area empty when no real status message is active.

[2026.05.20] - Simplify Play Navigation

Changed

  • Make the top Play button open the Play lobby directly without showing dropdown options.
  • Keep Play highlighted while Play subsections such as worlds, servers, and minigames are active.

[2026.05.20] - Use One Social Live Stream

Changed

  • Use one multiplexed Social WebSocket for Friends, Party, Chat Inbox, and open Chat Conversations.
  • Fall back to the legacy Party and Chat streams when the unified Social stream is unavailable.

[2026.05.20] - Add Live Chat Inbox Badges

Added

  • Keep the chat inbox live through a global Social Chat stream so unseen conversations update without manual refresh.
  • Show unread chat badges in the Social chat list, Friends sidebar, and top navigation.

Changed

  • Clear unread chat badges when a conversation is opened or already streamed in an active chat view.

[2026.05.20] - Refine Play Lobby Skin Hover

Fixed

  • Replace rectangular Play lobby player hover boxes with skin-shaped glow outlines for local and party stage skins.
  • Make Play lobby player hover glows stronger and easier to see.
  • Keep the Play lobby stage clipped below the launcher header while scrolling.
  • Receive incoming party invites through the live Party stream immediately instead of waiting for the fallback polling tick.

[2026.05.18] - Add Discord Party Invites

Added

  • Add Discord join secrets to launcher party presence so active, joinable parties can publish invite metadata without exposing server addresses.
  • Add an optional Discord Social SDK bridge that can update Rich Presence, receive Discord invite/join callbacks, send activity invites, and accept Discord activity invites when the official SDK runtime is provided by the release build.
  • Package Discord Social SDK runtime libraries from UEBLICHE_DISCORD_SOCIAL_SDK_DIR or UEBLICHE_DISCORD_SOCIAL_SDK_ARCHIVE into release bundles without committing the SDK archive to the repository.
  • Add Discord friends and incoming Discord invite actions to the party area of the Social sidebar.

Changed

  • Prefer release Discord Social SDK runtimes when an SDK archive contains both release and debug libraries, so launcher builds do not accidentally package debug SDK binaries.
  • Add macOS and Linux runtime search paths to the final launcher binary when the Discord Social SDK is linked, so packaged bundles can load the SDK runtime from their shipped sidecar directory.
  • Keep Discord Rich Presence working through the existing IPC fallback when the Discord Social SDK runtime is not available.

[2026.05.18] - Add Play Lobby World Overrides

Added

  • Let Play lobby minigames and servers carry optional world override metadata through selection sync and launch preparation.

[2026.05.18] - Filter Play Lobby Destinations

Added

  • Add search and a favorites-only toggle to the Play lobby destination area.

[2026.05.18] - Clean Up Party Sidebar

Changed

  • Compact the party area at the top of the Social sidebar with smaller member rows and a concise Play lobby target row.
  • Route the party action in the Social sidebar to the Play lobby instead of directly starting a legacy party profile.

[2026.05.18] - Synchronize Party Play Lobby

Added

  • Sync Play lobby selections through the party API so party members see the same selected minigame, server, or world.
  • Add party ready controls for round-based minigames, including automatic launch when all current party members are ready.
  • Let party leaders choose which members may change the shared Play lobby selection.
  • Add temporary Play lobby profiles for matching selected server or game requirements, with a visible temporary badge and a keep action.

Changed

  • Make Play lobby destination cards select targets instead of starting them immediately.

[2026.05.18] - Keep Play Lobby Stage Clear

Fixed

  • Keep Play lobby party slots in the lower stage area so they no longer cover the upper 3D lobby space.
  • Clip the Play lobby 3D stage to its hero area so skins and stage visuals cannot spill into the destination lists below.
  • Remove the Play lobby shortcut cards from the 3D hero so the stage remains unobstructed.
  • Move the local player nametag above the 3D skin instead of anchoring it to the stage floor.

[2026.05.18] - Report FairPlay Mod Names

Fixed

  • Send local mod file names with FairPlay hash resolution so the Dash review queue can show a mod label instead of only a hash for newly seen unknown mods.

[2026.05.17] - Keep Discover Images Responsive

Fixed

  • Load cached remote preview images away from the UI thread so opening Discover no longer stalls on large cached media.
  • Reuse short preview-source cache keys for remote images so repainting Discover no longer hashes full image payloads.
  • Decode remote preview textures before handing them to the UI so Discover no longer blocks while turning cached images into pixels.
  • Let the Discover split view fill the available page height instead of shrinking to its current content.
  • Keep inline Discover details from turning into a separate window when switching to another launcher page.
  • Add Uebliche Playerlist to the first-party extension catalog so profile mod search can find published Playerlist builds.
  • Send loader filters to the Public API as array parameters so profile mod searches can retrieve Modrinth and CurseForge results again.
  • Refresh Uebliche Extension searches from the local provider and fall through on empty cached catalog searches so new catalog entries are not hidden by stale Discover cache data.
  • Clear stale profile mod search results from startup restore so old empty searches do not mask newly available catalog entries.
  • Show Playerlist under its actual mod name and add it to profile recommendations so searching playerlist finds it without the Uebliche prefix.
  • Add conservative fuzzy matching for first-party extension and profile mod searches so small typos like playrlist still find Playerlist.
  • Download non-managed first-party mods like Playerlist during profile installation instead of only writing a manifest marker.
  • Finish profile mod downloads before reporting catalog installs as done so install clicks are immediate instead of waiting for a later auto-build.
  • Keep profile mod result cards from overlaying their action buttons so clicking Installieren reaches the install handler.
  • Resolve downloadable first-party catalog mods through their provider instead of treating Playerlist as a missing local file:// jar.
  • Restore the previous profile mod entry when an immediate catalog download fails so failed installs do not leave Playerlist hidden as installed.
  • Serialize remote image cache index updates so concurrent preview loads no longer overwrite cache metadata.

[2026.05.09] - Compact Launcher Scale

Changed

  • Render the launcher UI at 70% scale so text, images, buttons, and lists take less space across the app.
  • Keep the dashboard on a zoom-stable content width so cards, screenshots, and news remain proportioned at every supported zoom level.

Added

  • Add a dedicated Downloads page with active and recent transfer history, progress, speed, profile context, and error details.

Fixed

  • Restore launcher zoom shortcuts so Ctrl/Cmd plus and minus can resize the UI again without losing the 70% default scale.
  • Prevent launcher zoom shortcuts from shrinking the UI below the readable 70% minimum scale.
  • Label the footer download pill as Downloads only so it no longer appears as a second Logs button beside the Logs icon.
  • Open the new Downloads page from the footer download pill instead of routing downloads into Logs.

[2026.05.09] - Cache Discover Version Metadata

Added

  • Persist Discover version side support and dependencies in the local SQLite content cache so launcher views and future resolver logic can use client/server requirements without reparsing provider payloads.

[2026.05.08] - Keep List Details Visible

Added

  • Mirror Modrinth and CurseForge Discover providers through the Public API so launcher-local Discover sync can receive projects, versions, support data, and cached details without waiting on live provider requests.

Fixed

  • Keep World and Discover detail panes visible next to their lists when an item is selected instead of falling back to list-only browsing.
  • Open Discover catalog and seed details from the last selected item, or from the first visible list item when nothing was selected yet.
  • Remove stale Discover catalog entries from the local cache and list when their provider reports the project as deleted, then continue with the next visible item.
  • Load missing Modrinth project descriptions from the live provider when the local Discover cache has only support and version metadata.
  • Run Discover searches directly while typing so the compact sidebar search no longer stays stuck as a draft.
  • Add a Discover target-profile dropdown with an all-versions-and-loaders option for unfiltered mod searches.
  • Force Discover Plugins to use Server as the install target because plugins are server-only.
  • Use the shared 8px spacing rhythm between Discover detail tabs.
  • Move Discover project link buttons into the detail header instead of a separate links section.
  • Align Discover project link buttons with the right-side slug metadata block in the detail header.
  • Make the Discover detail header metadata and project-link cluster more compact and right-aligned.
  • Add proper spacing between icons and labels in Discover project-link buttons.
  • Replace the Discover slug label with a compact provider icon followed by the project slug.
  • Move the Discover web action into a compact header icon and remove redundant category and search badges from the sidebar.
  • Debounce Discover search input so typing keeps focus and no longer refreshes the whole page on every keypress.
  • Keep Discover search focus stable by using a fixed input identity and restoring focus after automatic refreshes.
  • Keep compact Discover result rows stable by shortening sidebar summaries and using fixed-height list notices for empty or unavailable states.
  • Cache Discover project details in the local SQLite content database and refresh them asynchronously, so reopening details no longer waits on provider APIs.
  • Keep Discover catalog pages in the left-list and right-detail layout even when searches are empty or have no matching entry.
  • Keep Discover detail tabs visible immediately so mod navigation no longer appears only after project details finish loading.
  • Cache Discover catalog results per target context so quick Profile/Server switching restores the last list immediately without re-querying external providers.
  • Hide cached-provider fallback warnings inside Discover lists when usable cached results are already displayed.
  • Select the most recent World automatically so the Singleplayer page opens with list and detail content in view.
  • Keep the World cloud storage summary fixed above the scrolling world list in split view.
  • Add a clear gap between the World data and Sync panels in the World overview.
  • Keep World overview panels stretched to their grid columns so the spacing between them stays even.
  • Use the shared spacing rhythm between World detail section tabs.
  • Move World header actions to the right side without the extra action-box frame.
  • Remove redundant action buttons from World list cards because clicking a World opens its detail view.
  • Keep World header actions pinned to the far right edge of the header.
  • Remove the duplicate World detail title and subtitle above the hero card.
  • Clean up World list cards with an icon-left layout, visible world playtime, fewer unknown badges, and less default backup noise.
  • Standardize compact entity list cards so shared lists keep icons on the left and content on the right automatically.
  • Move the World backup target from the header action button into a dedicated Backup detail section.
  • Replace verbose World backend and backup text badges with a compact backup icon in list cards.
  • Replace the World launcher-link text badge with a compact link icon in list cards.
  • Remove the World launcher-link badge from list cards because link details belong in the detail view.
  • Open World details on the Overview section by default and label the preview tab as 3D preview.
  • Show broken World version detail loads inline instead of raising a global launcher error toast.
  • Keep the profile browser search header compact and hide the match count until a filter is active.
  • Replace the profile settings list with a real recursive file explorer and show reader metadata such as file size and line count.
  • Use a download-style icon for profile import actions instead of the upload icon.
  • Clean up the profile import dialog with full-width fields, balanced source tabs, and German umlauts.
  • Switch the Multiplayer page to the shared left-list and right-detail workspace layout.
  • Keep Multiplayer server list cards and header actions inside the left column without clipping at desktop split widths.
  • Remove the duplicate title block from the Creator Server Manager and separate section titles from their descriptions.

[2026.05.08] - Keep Profile Details Visible

Fixed

  • Keep the selected profile detail visible beside the profile list instead of falling back to a list-only profile browser.

[2026.05.08] - Align Discover Header

Fixed

  • Right-align the Discover detail metadata label and slug value inside the header metadata box.
  • Move the Discover detail install button into the top-right header area without the separate action box.

[2026.05.08] - Optimize Discover Sidebar

Fixed

  • Virtualize large Discover sidebar catalog lists so loading many entries no longer stalls the launcher UI while scrolling.

[2026.05.08] - Stabilize Discover Loading Rows

Fixed

  • Keep Discover loading and infinite-scroll footer text inside the list width so reaching the bottom no longer shifts the layout.

[2026.05.08] - Simplify Discover Details

Changed

  • Remove the extra close button from mod detail headers while keeping the normal window close behavior.

[2026.05.08] - Cache Discover Content Locally

Added

  • Add a local SQLite Discover content cache that stores synced projects, categories, versions, files, support targets, ranking data, and FTS search metadata.
  • Add a Public API sync endpoint for launcher Discover content so the launcher can refresh catalog data in the background.

Changed

  • Load Discover catalog pages and details from the local cache first, then fall back to the existing provider path while unsynced sources are still missing locally.

[2026.05.08] - Show Extension Versions

Changed

  • Move project metadata into the top-right Discover detail header instead of showing it as a separate overview card.
  • Remove redundant Install and Details buttons from Discover list cards because clicking a card already opens its detail view.
  • Keep Discover list cards in a horizontal icon-and-title layout at sidebar widths.
  • Place Discover list labels directly under the project title and let descriptions use the full card width.
  • Let the compact Discover sidebar list keep loading more catalog results while scrolling instead of stopping after the first small batch.

Added

  • Show a Minecraft support matrix on Discover detail pages for Uebliche Extensions with per-target release status.
  • Include local profile Minecraft versions in the support matrix so unsupported profile targets are visible instead of disappearing.
  • Show matching local profiles in extension version details and in the support matrix.
  • Move project category badges into the Discover detail header so the overview no longer starts with a separate categories block.

Fixed

  • Keep the Discover sidebar search compact so its hint text, action buttons, and install target controls no longer overflow the left list column.
  • Use the compact catalog list inside Discover split view so source filters, local filtering, sorting, and long section descriptions stay out of the left navigation column.
  • Load Uebliche Extension release data from the public Versions API so Discover detail pages list available versions instead of showing an empty Versions tab.

[2026.05.08] - Improve Minigame Modes

Added

  • Let players favorite Minigame modes, rate them with Like or Dislike, and store a free-text comment per mode.

Fixed

  • Keep Minigame mode cards inside the available launcher width and show favorite modes first.

[2026.05.08] - Standardize Split Page Layouts

Changed

  • Use the Server Manager split layout for list-and-detail pages so News, Discover, Profiles, Creator lists, and the Skin Library share the same left-list and right-content behavior.
  • Reduce shared page-header spacing while keeping split panels filled to the visible page height.

[2026.05.08] - Generate Screenshot Thumbnails

Added

  • Generate smaller local thumbnail files for screenshots and use them in launcher screenshot grids and dashboard strips.

[2026.05.08] - Move Builder Actions

Changed

  • Move Creator skin builder actions into the left project column above the project list.

[2026.05.08] - Notify Party Invites

Added

  • Show incoming party invites from the live stream as actionable desktop notifications and matching in-launcher notification cards.

[2026.05.08] - Standardize Creator List Layouts

Changed

  • Keep Creator library and project lists consistently on the left with a fixed list column and the active editor or preview workspace on the right.

Fixed

  • Let the skin submission library and 3D preview fill the available Creator workspace height.

[2026.05.07] - Rework Builder Cape Selection

Changed

  • Replace the Creator skin builder's oversized cape dropdown with an embedded cape browser that stays inside the preview panel.

[2026.05.07] - Fix Skin Part Editor Width

Fixed

  • Keep the Skin Part editor slot selector inside the editor column instead of clipping its label on the right edge.

[2026.05.07] - Expand Skin Builder Workspace

Changed

  • Let the Creator skin builder parts list and 3D preview grow into the available workspace instead of stopping at fixed preview heights.

[2026.05.07] - List Creator Skin Projects

Added

  • Show saved skin builder projects beside Creator skin creation so projects can be opened directly from the editor.

[2026.05.07] - Make Skin Part Paint 3D

Changed

  • Replace the Skin Part editor's flat model paint surface with a real rotatable 3D body that paints through projected UV hit-testing.

[2026.05.07] - Gate Submission Rules

Changed

  • Require accepting the submission rules before opening skin submission and community part submission pages.

[2026.05.07] - Parallelize Profile Downloads

Changed

  • Prepare profile downloads faster by fetching Minecraft libraries, assets, and mods with bounded parallelism instead of one file at a time.

[2026.05.07] - Select Latest Profile By Default

Changed

  • Select the last active profile by default in the local profile list, falling back to the last listed profile when none has play history.

[2026.05.07] - Explain Profile Changes

Added

  • Show profile change details when hovering the modified status badge, including version and loader changes when available.

[2026.05.07] - Fix Profile Switch Warning Flicker

Fixed

  • Keep profile launch controls scoped per surface so switching selected profiles no longer flashes egui duplicate-widget warnings.

[2026.05.07] - Fix Selected Profile Account Dropdown

Fixed

  • Let the selected profile's launch account dropdown open reliably when the same profile is visible in both the profile list and detail pane.

[2026.05.07] - Fix Account Dropdown Widget IDs

Fixed

  • Keep account dropdown rows in profile launch menus from reusing egui widget IDs and showing red debug error overlays.

[2026.05.07] - Prepare Profiles After Changes

Changed

  • Prepare updated profiles automatically in the background by downloading Minecraft metadata, client files, libraries, assets, logging configuration, and launch-managed mods before the next start.

[2026.05.07] - Fix Profile Launch Account Menu

Fixed

  • Keep the profile-list account dropdown open after clicking the launch split-button arrow instead of immediately treating the opening click as an outside-menu click.

[2026.05.07] - Add Cobblemon Experience

Added

  • Add Cobblemon Adventure to the uebliche.games catalog fallback with its own server address, Minecraft version, Fabric loader, and Cobblemon profile target.
  • Install Fabric API and Cobblemon from Modrinth while preparing the dedicated Cobblemon profile.
  • Label Cobblemon as an Experience in the Minigames catalog so persistent playable worlds can sit beside round-based queues.

[2026.05.07] - Add Web Discover

Added

  • Add a browser-ready Discover surface with launcher deep links and an external web fallback from the native Discover page.

[2026.05.07] - Compact Profile Browser Header

Changed

  • Make the profile browser header shorter by folding metrics and create/import actions into a compact toolbar.

[2026.05.07] - Fix Community Chat Layout

Fixed

  • Keep the Community friends list and chat panel inside the visible launcher width so messages and the composer no longer clip on wide windows.

[2026.05.07] - Compact Launcher Shop Variants

Changed

  • Arrange shop product variants side by side inside each catalog entry, separate them with dedicated card borders, and keep checkout actions compact.

[2026.05.07] - Explain Sidebar Account Metrics

Added

  • Add hover explanations for the sidebar account selector, quest points, XP level bar, and flame streak.

[2026.05.07] - Simplify Quest Overview

Changed

  • Make the Quest overview easier to scan by replacing the large wallet hero with a compact status row.
  • Move Uebliche.Games Daily Quests directly below the status row and separate active quests from optional extra choices.

[2026.05.07] - Fix Daily Quest Title Spacing

Fixed

  • Add spacing between Uebliche.Games daily quest titles and their automatic, selected, or optional state pill.

[2026.05.06] - Compact Daily Quest Cards

Fixed

  • Keep XP and quest point rewards from overlapping on compact Uebliche.Games daily quest cards.

Changed

  • Make Uebliche.Games daily quest cards slimmer with smaller meta pills and compact inline actions so seven daily quests fit with less scrolling.

[2026.05.06] - Expand Daily Quest Choices

Changed

  • Assign five Uebliche.Games daily quests automatically each day while keeping two extra daily quest choices optional.
  • Show automatic, optional, selected, and reroll state directly on Uebliche.Games daily quest cards.

Added

  • Add one daily reroll action for active Uebliche.Games quests.

[2026.05.06] - Store Build Moe Seen Assets In SQLite

Changed

  • Store locally seen Build Moe heads and banners in a SQLite state database with one-time JSON backup import, keeping manual and auto-submit behavior unchanged.

[2026.05.06] - Keep Launcher Friends Online

Fixed

  • Keep friends visible as online while their Launcher is open, even when they are not currently in a Minecraft session.
  • Show launcher-only friends as in the Launcher and switch them to away after Launcher inactivity.
  • Add an Ullm answer report action that sends wrong-answer chat context through the Launcher feedback Public API.
  • Format Ullm recipe ingredients and results as compact rows so long item names no longer run together.
  • Show Ullm report send, success, and failure feedback directly in the chat panel.
  • Enlarge Ullm 3D block previews so block outputs fill Minecraft recipe slots more clearly.
  • Change each Ullm report button to a disabled reported state after that answer has been submitted.
  • Resolve generic plank labels in Ullm recipes so 2x2 crafting ingredients render their item textures.

[2026.05.05] - Normalize Launcher Size Units

Changed

  • Show Launcher storage and RAM values with the largest readable unit, so large values appear as GB or TB instead of raw MiB-style labels.

Fixed

  • Skip self-copying already staged Windows launcher sidecar binaries during release packaging, so repeated deploys no longer fail when llama-server.exe is already in the release bin directory.
  • Limit launcher release cleanup to the selected target bundles, so a Linux-only packaging pass no longer removes already built Windows or macOS artifacts before the final deploy upload.
  • Allow launcher build and deploy actions to opt out of the remote non-mac builder, so Linux release bundles can be produced locally when the Windows studio builder has no Linux environment.

[2026.05.03] - Refine Friends Party Area

Changed

  • Make the friends sidebar party area flatter and more compact with a quieter header, member/invite count, and cleaner empty state.

[2026.05.03] - Allow Connect Social Delegation

Changed

  • Allow the Launcher bridge to proxy Connect server identity and delegated-token requests needed for Hub friends access.

[2026.05.03] - Polish Friends Party Controls

Changed

  • Make the friends sidebar party panel cleaner with full-width launch controls, centered invite inputs, and a responsive invite row.

[2026.05.03] - Keep Quest List Stable

Fixed

  • Keep the visible quests panel populated with its empty state while background refreshes are running, avoiding blank middle-page flicker.

[2026.05.03] - Move Party Above Online Friends

Changed

  • Show the party as a compact friends-style section above the online friends heading in the friends sidebar.

[2026.05.03] - Keep Quest Refresh Stable

Fixed

  • Keep the current Launcher Shop purchases visible while the Quests page refreshes in the background, avoiding empty-state flicker during reloads.

[2026.05.03] - Add Launcher Party Controls

Added

  • Add launcher controls to invite players to a party, accept incoming party invites, leave the current party, and launch the shared Uebliche.games party profile with one click.

[2026.05.03] - Add Cloud Storage Upsell

Added

  • Add a Cloud Storage card action that opens the Launcher Shop on the world-cloud-storage product when storage is missing or above 80% usage.

Changed

  • Refresh world cloud storage immediately after shop entitlement events so bought storage appears without restarting the Launcher.
  • Show variant-level shop grants so storage tiers display their GB quota directly in the Launcher Shop.

[2026.05.03] - Show Current Party

Added

  • Add a current-party group at the top of the friends sidebar when the selected account is in a party.

[2026.05.02] - Speed Up Chat Refresh

Changed

  • Keep live chat refreshes on recent messages only and mark Uebliche API calls above 100 ms as slow in Launcher logs so expensive paths are visible immediately.
  • Skip redundant message-list GET refreshes while a chat live stream is already active.

[2026.05.02] - Show Log Accounts as Chips

Changed

  • Move account metadata in Logs out of the raw message text and show it as a right-aligned account chip with the player's head when available.

[2026.05.02] - Fit Settings Sync Panels

Fixed

  • Keep shared sync backend and Minecraft options sync controls inside the settings content width with responsive wrapping.

[2026.05.02] - Relax Public Server Refresh

Fixed

  • Reduce automatic public server directory refreshes and back off longer after rate limits while keeping cached servers visible.

[2026.05.02] - Hide Account IDs in Logs

Fixed

  • Show account names instead of raw Microsoft account ids in formatted Launcher log details.

[2026.05.02] - Align Account Header

Changed

  • Align the selected account name, status, points, and player head as a right-side identity block in the sidebar.

[2026.05.02] - Polish Logs Layout

Fixed

  • Keep the Logs toolbar controls within the available page width beside the friends sidebar.
  • Add steadier spacing between stream selection, search, and signal filtering.

[2026.05.02] - Track Recent Players

Fixed

  • Track recently met players in the Launcher even when Minecraft cannot provide a server address or world id for the encounter.
  • Store recently met players for the default account when Minecraft is launched without an explicit account override.

[2026.05.01] - Improve Mod Browser Filtering

Added

  • Add source checkboxes for Uebliche, Modrinth, and CurseForge in the Discover catalog and profile Mod Browser.
  • Load more catalog entries automatically when the user scrolls to the end of mod result lists.

[2026.04.30] - Keep Shared Profile Bases Updating

Added

  • Track profiles imported from share codes as shared bases, so the Launcher can refresh the author's base profile later.

Changed

  • Refresh shared profile bases before building or launching while preserving locally added mods on top of the imported base.
  • Prepare Uebliche.games minigame launches from the shared profile code 438Z2V instead of creating a plain local Fabric profile.

[2026.04.30] - Launch Minigames Through Connect

Changed

  • Pass Uebliche.games minigame selections to the bundled Connect mod as a typed join target instead of showing or relying on queue command strings.

[2026.04.30] - Improve Activity Detection

Fixed

  • Detect multiplayer joins from the running Minecraft log as a fallback when the Connect bridge does not report the server session, so Launcher activities and friend presence can update more reliably.

[2026.04.30] - Add Quick Play Worlds

Changed

  • Tighten the profile detail card spacing, keep launch controls compact inside the hero, keep the hero inside the main content width beside the friends list, and focus its bounded Quick Play search filter on open.
  • Keep the profile Mod Browser at a readable maximum width even when the friends list is collapsed.
  • Show Uebliche Maps as a first-party Mod Browser recommendation and prefer Uebliche sources over external providers when matches overlap.

Fixed

  • Keep profile detail pages from inheriting the profile browser scroll position, so the profile hero no longer opens clipped halfway down.
  • Render the reusable search clear action with the correct icon font and aligned right-side spacing instead of a missing-glyph placeholder.

[2026.04.30] - Move Profile Actions

Changed

  • Place the profile detail Actions menu in the top-right corner of the profile card.

[2026.04.30] - Add Direct Mod Search Fallback

Added

  • Fall back to direct Modrinth and CurseForge provider searches when the public Uebliche mod search API is unavailable.

[2026.04.30] - Auto Search Profile Mods

Changed

  • Remove the manual profile mod catalog search button and quick-search chips; load catalog matches automatically shortly after typing stops.

[2026.04.30] - Simplify Profile Details

Changed

  • Reduce the normal profile detail view to one calmer hero with inline facts, compact launch controls, and direct access to the Mods and Settings tabs.

[2026.04.30] - Fix Windows Launch Preparation

Fixed

  • Prepare native libraries in a separate per-launch folder so locked Windows DLLs from previous launches no longer block launch preparation with access denied errors.
  • Continue launch preparation when latest.log is temporarily locked by another process.

[2026.04.30] - Improve Profile Details

Changed

  • Present profile details with a wider hero, compact launch controls, responsive library metrics, and two-column detail cards in the normal launcher view.

[2026.04.29] - Store Playtime in SQLite

Changed

  • Store local playtime sessions, open launches, sync outbox entries, daily buckets, and cached totals in state/playtime.sqlite instead of state/global_playtime.json.
  • Start the SQLite playtime store without importing older JSON or profile stats data, so new playtime totals are session-based from this version forward.

[2026.04.29] - Improve Profile Mod Browser

Changed

  • Make the profile Mod Browser calmer and more direct with a clearer header, quick searches, explicit catalog search, compact mod rows, and reduced status noise.

[2026.04.29] - Preserve Running Playtime

Fixed

  • Update saved playtime heartbeats whenever a launched Minecraft process is still alive, so sessions no longer fall back to their old starting total after the Launcher restarts.

[2026.04.29] - Add Stop Instance Dropdown

Added

  • Add a dropdown to the compact hub Stop action when the selected profile has multiple running instances, letting users stop a specific launch without changing accounts.

[2026.04.29] - Fix Log Window Colors

Fixed

  • Render compact Logs window row overlays with normal alpha blending so log rows no longer appear as bright washed-out panels.

[2026.04.29] - Hide Running Instance PID

Changed

  • Hide process IDs from compact hub running-instance cards while keeping them for internal launch tracking.

[2026.04.29] - Show Multiple Running Instances

Fixed

  • Show every active launch in the compact hub instead of only the most recently started instance.

[2026.04.29] - Keep Launch Account Scoped

Fixed

  • Keep account overrides from profile launch dropdowns scoped to the launched instance instead of switching the Launcher's active account.

[2026.04.29] - Compact Friends Window

Fixed

  • Remove the extra framed box from the compact Friends window and tighten its header, rows, and section spacing.

[2026.04.29] - Show Running Account

Added

  • Show the account used for the active launch in the compact hub running-instance card.

[2026.04.29] - Add Compact Profile Actions

Added

  • Add a right-click context menu to compact profile tiles with launch, edit, logs, mods, and account launch actions.
  • Add a compact launch-account dropdown next to the sidebar Start button when multiple accounts are available.

[2026.04.29] - Dock Friends Recent Section

Fixed

  • Keep the collapsed Recently met section anchored at the bottom of the Friends window so the online friends list can use the available space above it.

[2026.04.29] - Add World Context Menu

Added

  • Add a right-click context menu to world cards and compact hub world tiles with launch, details, backup, version, sync, share, and publish actions based on the world's current state.

[2026.04.29] - Use Native Chat Window Buttons

Changed

  • Use native macOS window buttons for popped-out chat windows while keeping the Launcher-styled chat titlebar and drag area.
  • Pull macOS popout chrome closer to the window edge so native buttons sit visually inside Launcher titlebars.
  • Disable docking popped-out chat windows back into the main window while Compact Multi-Window Mode is active.
  • Remove the extra framed header from popped-out chat windows so messages start closer to the titlebar without duplicated chat chrome.

[2026.04.29] - Surface Recent Friends

Fixed

  • Keep the Recently met friends section visible in the Friends panel with an empty state when no local encounters have been recorded yet.
  • Place Recently met below the friend list so encounters read as a follow-up to current friends instead of a block above them.
  • Add collapsible separator bars for Offline friends and Recently met players so long friend panels stay compact.
  • Show a profile card hover preview on friend rows with avatar, background, status, XP, level, and streak/favorite context.

[2026.04.29] - Add CLI Quick Play Launch

Added

  • Let launcher-cli profiles launch accept a multiplayer server address so local tooling can start a profile directly into a server via Quick Play.

Fixed

  • Keep launcher-cli servers add compatible with the current server-status model by initializing the status timestamp field.

[2026.04.29] - Fix Ultra Compact Hub

Fixed

  • Keep the compact hub usable at ultra-narrow window sizes by replacing the stacked profile sidebar with a slim fixed action strip and preventing footer text overlap.
  • Keep the right-side compact profile sidebar vertical on wide layouts while only using the slim action strip in ultra-narrow stacked layouts.
  • Collapse compact hub header actions into a dots menu when the toolbar gets too narrow instead of clipping or wrapping buttons.
  • Integrate native macOS window buttons into the compact main window and compact workspace titlebars while keeping the OS-provided controls.
  • Center compact workspace window titles in their titlebars.

[2026.04.29] - Simplify Chat Server Embeds

Changed

  • Remove the small top-left server icon from chat server embeds while keeping the server artwork as a subtle background.

[2026.04.29] - Pop Out Compact Friend Chats

Changed

  • Open chats from the compact Friends workspace directly as separate chat windows.

[2026.04.29] - Fix Compact Workspace Dragging

Fixed

  • Let compact workspace windows, including Friends, be moved by dragging their custom title bar.

[2026.04.29] - Show Compact Running Instances

Added

  • Show the active launch instance in the compact hub with profile, elapsed time, PID, and quick actions for Logs, cancel, and profile details.

[2026.04.29] - Simplify Compact Profile Sidebar

Removed

  • Remove the Folder shortcut from the compact hub profile sidebar.

[2026.04.29] - Fix Launcher Playtime Tracking

Fixed

  • Count profile playtime from the real launch exit time before stale process cleanup can close the session with an old heartbeat.
  • Keep launch bridge heartbeat updates ahead of dead-process reconciliation so late presence cleanup no longer records near-zero sessions.

[2026.04.29] - Add Compact Multi-Window Mode

Added

  • Add an optional Compact Multi-Window Mode that turns the main Launcher window into a compact launch hub and opens larger areas as native workspace windows.
  • Restore compact workspace window positions, sizes, and open state separately from the normal Launcher window.

Changed

  • Route Launcher navigation to focused workspace windows while Compact Multi-Window Mode is active, leaving the normal sidebar layout unchanged by default.
  • Redesign the compact launch hub with a Prism-style toolbar, profile grid, selected-profile actions, and bottom news/status strips.
  • Show the Launcher profile icons in the compact launch hub instead of generic placeholder blocks.
  • Keep compact hub profile tiles left-aligned with fixed wrapping so small profile sets no longer drift off the right edge.
  • Split the compact hub into configurable Profile, Games, and Worlds sections with right-click visibility controls and drag-to-reorder section headers.
  • Replace the compact hub's Profile create shortcut with a Create dropdown for profiles, servers, skins, skin parts, banners, and texture packs.
  • Keep compact hub section grids and the top toolbar constrained to the visible window width across intermediate resize states.
  • Reserve more footer height in the compact hub so the news and playtime bars no longer clip at the bottom edge.
  • Render compact hub tiles with a manual left-aligned flow layout so profile, game, and world sections no longer collapse into a right-edge column.
  • Use explicit clipped rectangles for the compact hub content and sidebar so rows cannot paint past the visible right edge.
  • Keep the compact hub toolbar, footer, and selected-profile sidebar outside the scroll area so only the center content list scrolls.
  • Anchor compact hub footer bars to the bottom edge so the news and playtime rows stay aligned while content scrolls.
  • Show compact hub empty states as inline text and remove the Minigames shortcut from the Games loading state.
  • Make compact hub item single-clicks selection-only and keep starts or queue joins on double-click.
  • Mark compact hub worlds that have Uebliche Cloud backups with a small cloud-check icon on the world tile.
  • Show the latest loaded News title in the compact hub notification footer and open that entry when the footer is clicked.
  • Remove the Play shortcut from the compact hub header so the top toolbar stays focused on creation, settings, discovery, social, and account actions.
  • Render compact workspace close buttons with the Phosphor icon font so the top-right close icon appears as an X instead of a missing glyph box.
  • Move the compact hub account control into a right-aligned header switcher with avatar preview and account dropdown.
  • Keep single-click profile focus inside the compact hub local to the hub so it no longer changes the global selected profile.
  • Tighten the compact hub header spacing so toolbar actions sit higher with less empty space above them.
  • Open compact profile Mods as a focused mods-only workspace with the installed mod list and add-more browser instead of the full profile detail page.
  • Keep Create and profile/account dropdown menus compact so they no longer open wider than their surrounding toolbar controls.
  • Render the compact Friends workspace with the same compact friends-sidebar design as the normal launcher view.
  • Flatten the compact hub header with shorter toolbar controls and a calmer account chip so the top bar matches the rest of the hub.
  • Simplify the Launcher Troubleshooting window by hiding raw diagnostics JSON and setup maintenance actions from the ready state.

[2026.04.29] - Add Uebliche.games Minigames

Changed

  • Load the Minigames page from the Uebliche.games public server report instead of keeping queue cards hard-coded in the Launcher.
  • Use the reported Uebliche.games profile metadata for automatic profile creation and refresh when a queue is joined.
  • Share profiles without the old manual policy override option so policy handling stays launcher-managed.
  • Hide the managed Java runtime note in profile editing because Java selection is fully automatic.
  • Keep profile Mod Browser catalog results visible when remote providers return partial-warning states.

Added

  • Add a Minigames subpage under Play with direct Uebliche.games queue launch cards from the live catalog.
  • Add an auto-managed Uebliche.games launcher profile that is created or refreshed before joining a queue.
  • Add a cancel action to the game launch splash so launch preparation can be stopped directly.

[2026.04.29] - Improve Banner Color Slots

Changed

  • Show banner categories as a dropdown with a plus action for adding a new submission category.
  • Show banner tags as removable chips with a dedicated add field instead of a raw comma-only text field.

Added

  • Add a color-slot grid with a plus tile in the banner generator so slots can be created from the slot picker and directly from a layer color menu.
  • Add right-click editing for banner color slots so their default dye color can be changed without exposing manual slot naming.

[2026.04.28] - Add Recently Seen Build Assets

Added

  • Show recently seen Connect banners and heads in Discover, with one-click submit and toggles for collecting and auto-submitting seen assets.
  • Store seen build.moe assets locally per Launcher account so repeated sightings stay deduped before submission.

Fixed

  • Use Windows junctions for launcher-managed directories and hardlink or copy fallbacks for managed files so Windows installs no longer need symbolic-link privileges.

[2026.04.27] - Constrain Start Page Screenshot Content

Fixed

  • Keep the Start page screenshot preview, details, and capture selector at responsive content widths so they no longer dominate the dashboard column.

[2026.04.27] - Fit Start Page Quick Start Rows

Fixed

  • Keep Start page Quick Start world and server rows inside the available content width so metadata, status badges, and action buttons resize instead of clipping.

[2026.04.27] - Cache Account Level Progress

Fixed

  • Cache launcher account level and XP progress per account so the sidebar can show the last known value immediately after restart or account switches.

[2026.04.27] - Resize Friends Sidebar Without Covering Content

Fixed

  • Keep the Start page friends sidebar in a reserved adaptive column so dashboard content resizes instead of being covered.

[2026.04.27] - Keep Friends Sidebar Toggleable

Fixed

  • Keep the Start page friends sidebar openable on narrow layouts by using a compact right-side column instead of suppressing its width.

[2026.04.27] - Anchor Dashboard Sidebar

Fixed

  • Anchor the Start page friends sidebar to the visible page edge and only switch screenshots into side-by-side details on truly wide dashboards, keeping screenshots and friends inside the window.

[2026.04.27] - Clamp Dashboard Viewport Width

Fixed

  • Measure the Start page split layout from the actual clipped viewport so the content and friends sidebar stay inside the visible launcher window.

[2026.04.27] - Stabilize Dashboard Columns

Fixed

  • Position the Start page content and friends sidebar in fixed rects so wide dashboard cards can no longer push or clip the friends column.

[2026.04.27] - Fix Dashboard Sidebar Layout

Fixed

  • Keep the friends sidebar at its full reserved width and switch the Start page screenshot preview to a compact two-column layout sooner, preventing clipped sidebar text and oversized screenshot blocks.

[2026.04.27] - Prevent Dashboard Horizontal Drift

Fixed

  • Keep normal launcher pages vertically scrolling only so oversized dashboard content can no longer shift sideways and hide text behind the sidebar.

[2026.04.27] - Compact Screenshot Capture Strip

Fixed

  • Turn the Start page "More screenshots" selector into a compact thumbnail strip so it no longer wastes vertical space.

Fixed

  • Reduce the Start page "More screenshots" card and thumbnail sizes while keeping the gallery responsive across available widths.

[2026.04.27] - Show Server Icons On Screenshots

Added

  • Show the matching server icon as a small bottom-left overlay in screenshot previews when the screenshot is tied to a known server.

Changed

  • Let the Start page screenshot gallery expand to more columns on wide dashboards and collapse naturally on narrower widths, reducing unused space inside the screenshots card.

Changed

  • Give the Start page screenshot gallery a little more room with four compact columns while keeping the outer screenshots card full-width.

[2026.04.27] - Restore Full Width Screenshot Card

Fixed

  • Let the Start page screenshots card use the full dashboard width while keeping the inner screenshot selector compact.

[2026.04.27] - Narrow Dashboard Screenshot Block

Fixed

  • Reduce the Start page screenshot showcase and selector width so the screenshots block stays compact in the dashboard flow.

[2026.04.27] - Prevent Chat Server Badge Overlap

Fixed

  • Measure and draw chat server player-count and ping badges with exact widths so long counts no longer overlap.

[2026.04.27] - Compact Dashboard Screenshot Selector

Fixed

  • Make the Start page "More screenshots" cards narrower and allow four compact columns so the selector no longer dominates the page width.

[2026.04.27] - Align Chat Server Status Badges

Fixed

  • Keep player count and ping badges right-aligned in chat server embeds.

[2026.04.27] - Show Flame Streak Placement

Added

  • Show friend flame streak placement next to the flame count, using exact # ranks for top-1000 streaks and top-percent labels for lower ranks.

[2026.04.26] - Fix Delta Update Query

Fixed

  • Send the launcher delta-update opt-in as a boolean query value so update checks keep working against strict versions API deployments.

[2026.04.26] - Mark Stale Servers Offline

Fixed

  • Keep cached server MOTDs visible while marking player and ping data offline once the last status heartbeat is too old.

[2026.04.26] - Reduce Chat Render Work

Fixed

  • Avoid reparsing normal text messages as embeds and stop cloning full chat message lists just to resolve server embed icons each frame.

[2026.04.26] - Add Recently Met Players

Added

  • Store local in-game player encounters per account and show recently met non-friends in the Launcher friends sidebar with a direct friend-request action.

[2026.04.26] - Align Chat Server Actions

Changed

  • Place Add and Join actions next to each other in chat server embeds instead of stacking them vertically.

[2026.04.26] - Tighten Chat Server Badges

Fixed

  • Keep the player-count and ping badges in chat server embeds at a consistent compact gap.

[2026.04.26] - Sharpen Chat Server Backgrounds

Fixed

  • Render chat server embed background icons as one crisp low-opacity image instead of stacked offset copies, so server artwork stays readable without looking smeared.

[2026.04.26] - Use Minecraft Banner Patterns

Changed

  • Build Creator and Discover banner previews from the full vanilla Minecraft banner pattern list and bundled original pattern masks instead of placeholder shapes.

[2026.04.26] - Show Friend Flame Streaks

Added

  • Submit in-game friend encounter events to the Public API and show compact flame streak badges with grace-status tooltips in the Launcher friends sidebar.

[2026.04.26] - Show Account Level In Sidebar

Added

  • Show the signed-in user's global level and Minecraft-style XP bar directly inside the sidebar profile button.
  • Load the account level from the Public API and keep the last profile-level payload in Launcher UI state so the sidebar does not recompute progress locally.

Fixed

  • Move the level text out of the XP bar and into a larger label row so it remains readable in the compact sidebar profile button.

[2026.04.26] - Add Chat Message Editing

Added

  • Let users edit or delete their own sent chat messages from the right-click menu, with Shift-hover delete shortcuts and edited markers next to message timestamps.
  • Show deleted chat messages as compact grouped placeholders so consecutive deleted messages collapse into one readable row.

[2026.04.26] - Smooth Launch Asset Downloads

Changed

  • Show Minecraft asset downloads as one stable launch splash row instead of rapidly switching between individual small asset files.

[2026.04.26] - Prioritize Delta Updates

Changed

  • Prefer matching launcher delta artifacts from the release payload even when the resolver falls back to a full update mode, and keep the full artifact as the automatic fallback when delta validation, reconstruction, or download fails.

[2026.04.26] - Fix Light Mode Friends Counter

Fixed

  • Keep the toolbar friends counter readable and visually aligned in light mode by using solid header-friendly badge colors for active and request states.

[2026.04.26] - Fix Banner Catalog Loading

Fixed

  • Load build.moe banner and head catalog responses when the Public API includes both legacy and current count fields such as total and totalCount.

[2026.04.26] - Clean Up Multiplayer Page

Changed

  • Keep the Multiplayer page in the same stacked flow as Singleplayer by showing one compact metrics strip above the saved server list instead of a split overview sidebar.
  • Remove the JoinMe shortcut from the Multiplayer overview and use the saved server list as the primary workspace.

[2026.04.26] - Seed Delta Updates On Fresh Installs

Changed

  • Seed the current launcher update artifact into the local update cache when a fresh install has no delta base yet, then retry the resolver with delta parameters so the first offered update can use the delta path when the published base artifact is available.

[2026.04.26] - Show Expert Launch Splash Details

Added

  • Show expert-only launch preparation details such as profile IDs, selected account, loader, Quick Play target, ignored mods, paths, timing, events, and downloads in the start splash window.

[2026.04.26] - Gate Advanced Sync Targets

Changed

  • Keep Minecraft options sync on the Uebliche Cloud by default and show alternative options backends only in expert mode.
  • Keep world backup setup on the Uebliche Cloud by default and show local backup targets only in expert mode.

[2026.04.26] - Gate Debug Menu Behind Expert Mode

Changed

  • Require five clicks on the sidebar version label to enable expert mode before opening the launcher debug menu, and add an in-menu action to leave expert mode again.

[2026.04.26] - Improve Chat Server Embeds

Changed

  • Resolve shared server icons through the Public API instead of embedding icon payloads directly in chat messages.

Fixed

  • Show shared server icons in chat embeds, render Minecraft-formatted MOTDs with colors, and move player count plus ping into compact status badges matching the server list.
  • Preserve the server icon aspect ratio in the blurred chat embed background and keep the status badges above the title and address.

[2026.04.26] - Prefer bridge-complete Connect jars

Fixed

  • Prefer Fabric Connect jars that contain the required launcher bridge API over newer incomplete artifacts, so cached or workspace connect jars no longer crash singleplayer share startup with missing bridge classes.

[2026.04.26] - Harden Launcher Deploys

Changed

  • Use sccache automatically during launcher release builds when it is installed, so repeated multi-target deploys can reuse Rust compiler outputs instead of recompiling unchanged crates.
  • Require signed updater artifacts for public launcher release and beta builds unless explicitly disabled for a local experiment, so published launcher releases no longer silently skip auto-update delivery.
  • Retry uebliche.net release API calls with exponential backoff on rate limits and transient server failures, and fall back to a public resolver check when the authenticated release-list verification is blocked.

[2026.04.26] - Add Creator Banner Generator

Added

  • Add a Creator banner generator for build.moe banners with editable base colors, pattern layers, reusable color slots, and color variants for letter-style banners.
  • Submit generated banners from the Launcher to the Public API review queue, with offline submissions stored in the existing offline actions outbox.

[2026.04.26] - Add build.moe heads and banners to Discover

Added

  • Show build.moe heads and banners in the Launcher Discover skins area, including search-driven loading, localized empty/loading/error states, head previews, and banner color previews.
  • Add dedicated Discover subpages for build.moe heads and banners so both catalogs can be opened directly from the Discover sidebar.
  • Add Creator tabs for creating complete skins in the builder and submitting saved skins to Discover.
  • Add a Quests sidebar sub menu with Overview and Quest Shop entries, including a first shop tab for wallet state while offers are not yet available.

Changed

  • Load build.moe head and banner catalogs through the Public API so the Launcher can browse them separately from skins and skin parts.

Fixed

  • Let News page entry cards and article detail panels fill the available feed width instead of shrinking to the text content.
  • Use proper German umlauts in the Discover and Mods unavailable-source messages.

[2026.04.25] - Keep Ullm Runtime Warm

Changed

  • Reuse the local llama-server process across Ullm answers, suggestions, troubleshooting, and voice turns until it sits idle or the launcher shuts down, so follow-up questions no longer pay the full model startup cost every time.

[2026.04.25] - Validate chat sharing

Added

  • Add opt-in anonymized Sentry reporting for profile launch preparation and spawn failures, so Windows errors such as OS error 5 can be grouped by phase and error code without sending profile names, paths, logs, tokens, server addresses, or raw launch arguments.
  • Forward the launcher Sentry DSN and release parallelism through the local build/deploy actions, direct deploy helper, and launcher-shell build script, so opt-in launch-failure reporting can be enabled in published builds without ad-hoc release-script edits.
  • Let chat users attach the current screenshot selection and insert personal, public, or managed server details into the message composer before sending.
  • Push chat message updates through the chat WebSocket when messages or poll votes change, so open launcher chats update much faster than the old snapshot interval.
  • Add a typed compact insert menu to small chat windows and support /server slash insertion inside drafts, replacing selected server tokens client-side before the message is sent.
  • Let chat users insert shared profiles and screenshot references from the main composer, small chat insert menu, or /profile and /screenshot slash commands.
  • Include server IDs, optional slugs, player counts, and MOTDs in shared server chat embeds.
  • Read extended uebliche.connect screenshot metadata such as server IDs, server names, server addresses, minigames, game modes, and maps, so screenshot references can carry richer context.
  • Add optional custom server nickname fields to the profile export and share server lists.
  • Add bottom actions to the right friends sidebar for sending friend requests with avatar preview and reviewing incoming requests inline.
  • Keep slash-inserted server shares readable inline by showing the server name in the message text while appending the full server card at the end.

Changed

  • Auto-register locally saved launcher servers through the public server directory import path, so known servers receive a system identity for later discovery and sharing.
  • Render Discover skin and skin-part cards on the shared 3D character model, so browsing shows the actual wearable shape instead of flat preview thumbnails.
  • Move JoinMe into its own Play subpage next to Singleplayer and Multiplayer, so friend joins are no longer embedded inside the multiplayer server list.
  • Highlight joinable friends in JoinMe with stronger success cards and an accent rail, so active friend sessions stand out from normal online friends.
  • Move right friends sidebar actions into a compact top header next to search, and restyle friend rows as a cleaner messenger-style list with full-width hover states.
  • Turn the right friends sidebar search icon into an inline friend filter and route JoinMe friend handoffs through the sidebar/chat docks, so friend search no longer opens the fullscreen social page.
  • Render popped-out chat windows with the same frameless launcher window treatment as the profile launch splash, including a custom drag titlebar and launcher card surface.
  • Let the launcher window shrink further and let main pages scroll horizontally only when needed, so narrower layouts can keep the global friends list visible.
  • Restyle sidebar sub-navigation as compact versions of the main navigation rows, with matching small icons, active rails, and preserved right padding.

Fixed

  • Validate chat attachment paths, file kinds, and the 16 MiB API limit before upload, and send inferred content types for screenshots, images, videos, text, JSON, and archives.
  • Keep main, floating, and standalone chat windows pinned to the newest message after incoming or outgoing updates.
  • Align the fullscreen friends chat with the compact chat windows by using left/right message bubbles, fixed in-bubble times, and a composer-first layout with compact attachment, server-share, and poll controls.
  • Render server shares as compact chat embed cards instead of plain multiline text in fullscreen, docked, and standalone chat windows.
  • Make inline server names in chat messages hoverable and clickable, using the same join action as the server card.
  • Render profile and screenshot shares as compact chat cards instead of leaving the generated share metadata as plain multiline text.
  • Add save and join actions to chat server embeds, so shared servers can be added to the personal server list or launched directly from the chat.
  • Keep the floating chat header click target out of the pop-out controls and repaint immediately after pop-out or dock-in, so opening a chat in a separate window responds reliably.
  • Add always-on-top pinning and an opacity slider to standalone chat windows, so popped-out chats can stay visible above the launcher with adjustable transparency.
  • Complete /server while typing slash commands and let Enter or Tab accept the first server-search result instead of sending the unfinished chat draft.
  • Keep the chat composer focused while slash suggestions are open, so Tab reliably completes commands instead of moving to another control.
  • Render still-sending chat messages in a muted bubble and show a small clock under their timestamp instead of a text status pill.
  • Restyle server embeds as compact chat cards with a fixed internal layout, readable server details, and tighter add/join actions.
  • Remove the extra avatar frame from the right friends sidebar when real profile images are shown, so the head image no longer has an additional circle over it.
  • Keep popped-out chat windows at the same usable minimum size as profile launch windows and clamp chat composer and embed widths, so narrow standalone chats no longer cut off controls or server cards.
  • Make chat chrome, metadata, embeds, status labels, and controls non-selectable while keeping the actual chat message text selectable for copying.
  • Prioritize the full global friends sidebar width on narrow pages and clamp the animated gap, so opening the friends list no longer clips the list or pushes the page past the window edge.
  • Back off Friends refreshes after API rate limits and keep showing the last loaded list instead of raising a red error toast for HTTP 429 responses.
  • Keep the right friends sidebar footer pinned to the bottom while add/request panels open above it.
  • Compact the Options page controls, sync summary badges, Git settings fields, and options conflict window so they wrap instead of forcing overly wide layouts.
  • Remove the launcher version from the Start page session block while keeping it available in settings and debug views.
  • Remove the active account from the Start page session block, keeping account details in the account menu and settings surfaces.
  • Keep sidebar subpage labels clipped and ellipsized with a fixed right inset, so profile subpoints still keep breathing room in narrow launcher windows.
  • Make the Start page constrain dashboard frames to their inner width, stack wide sections sooner, and shrink screenshot selector cards, so the right friends list can stay fully visible in smaller launcher windows.
  • Use Einzelspieler in the German launcher UI instead of the English Singleplayer label.
  • Keep Discover profile cards at a stable width by sizing their action bars to the card interior instead of letting every row grow the next one.
  • Keep the small chat insert menu open while choosing an insert type, so the Server, Profile, and Screenshot sublists can be selected before the menu closes.
  • Let the Start page news cards fill their available row width, so the latest news no longer stays cramped while empty space remains beside it.
  • Reflow the Ullm chat page on narrow launcher windows, wrap the composer controls, and scale Minecraft recipe/process cards so chat content no longer overlaps its controls or side panels.
  • Remove the pulsing lamp dot from the Ullm 3D stage, so the avatar view stays visually quiet.
  • Rework the Feedback page into a responsive compose-and-browse workspace with clearer filters, summary counts, and quieter feedback cards.
  • Let Quest page panels and visible quest cards fill the available width, and keep the last loaded quest state visible while refreshes are in flight to avoid loading flicker.
  • Rework the Creator Skin Parts page with a narrower searchable part browser, a wider structured editor, integrated 3D previews, and clearer layer controls.
  • Clamp the launcher minimum width to the current launch width rounded up to the next ten pixels, so tested responsive layouts no longer collapse below the intended viewport.
  • Use proper German umlauts across the Troubleshooting, Ullm, voice, and debug helper text instead of ASCII fallback spellings.

[2026.04.25] - Keep chat order stable

Fixed

  • Sort launcher chat conversations by newest activity and chat messages by oldest-to-newest display order, so API refreshes, live updates, and pending sends no longer flip the visible chat sequence.
  • Remove usernames from chat message bubbles while keeping timestamps and delivery states visible, including floating and standalone chat windows.
  • Let standalone chat windows keep their user-resized size, avoid forcing the content back to a fixed minimum during layout, and size message bubbles from the current window width, so resizing feels more natural.
  • Skip message-list and composer layout while a floating chat dock is being minimized, so collapsing chats stays responsive even with longer conversations.
  • Center the floating chat input text vertically, so the message placeholder sits correctly inside the composer field.
  • Slide the right friends sidebar out with a clipped full-width panel instead of shrinking its inner controls during the animation.
  • Replace the floating chat header text buttons with centered icon controls for minimize, pop out, dock, and close actions.
  • Cache recently loaded chat messages locally so selected conversations and chat docks can show their latest known messages immediately after restart while the live refresh catches up.
  • Group chat messages by day with separator bars and show fixed clock times in message bubbles instead of relative timestamps.

[2026.04.25] - Add standalone chat windows

Added

  • Let floating chat docks pop out into their own resizable native window and dock back into the launcher, so conversations can stay visible outside the main launcher layout.

[2026.04.25] - Render skin parts on models

Changed

  • Render skin-part previews on a neutral 3D character model in the builder, community market, and part editor, so parts can be judged in the same body context where they will be used.

[2026.04.24] - Keep chat docks user-controlled across devices

Changed

  • Persist the set of open side-chat docks in the launcher profile settings and restore that state on refresh, so each user decides which chats stay open or closed and that choice now follows the same account across devices.
  • Open a dock chat immediately when a friend is clicked even before a direct conversation exists, and only create that backend conversation when the first message is actually sent, so starting a new side chat no longer waits on an existing thread.

Fixed

  • Show outgoing chat messages in the main chat and floating dock immediately while they are still sending, and keep failed sends visible with an error highlight instead of silently losing them.
  • Send chat messages from the main chat view and floating dock chats when Enter is pressed, while keeping Shift+Enter available for line breaks in the larger composer.
  • Stop closing dock chats automatically when the social refresh briefly drops a conversation from the latest list, so open chats no longer vanish on their own during normal polling or short backend gaps.
  • Keep floating dock chats visually bottom-aligned inside their animated slot and resolve the title avatar from the actual chat partner identity, so the dock now sits flush to the launcher edge and shows the partner head reliably in the header.
  • Recover stale direct-chat sends automatically by creating a fresh direct conversation on 404 Conversation not found and rebinding the open chat UI to the new thread, so side chats and the main chat view no longer fail permanently when an old direct conversation ID expires.
  • Position floating dock chats with fixed right-edge stack offsets instead of an implicit horizontal layout, so open chat windows no longer drift or jump further to the right while the launcher reflows.
  • Keep the dock windows anchored to the launcher bottom without flipping their internal layout, so chat headers stay on top and the message composer stays at the bottom where it belongs.
  • Enlarge the floating chat docks and merge remote dock preferences into the current local stack instead of replacing it, so side chats stay roomier and no longer close themselves just because a later sync payload is missing one of the currently open windows.
  • Refine the enlarged chat docks with a real fill-height message area and a cleaner bottom composer row, so empty chats no longer look like stretched placeholder panels and the send controls now sit in a tighter, more deliberate layout.
  • Let the entire dock header toggle the chat open and closed instead of only the small icon button, so the floating chat windows behave more like a real messenger header while x still stays an explicit close action.

[2026.04.24] - Add a collapsible right friends rail

Changed

  • Add a dedicated friends rail on the right side of the launcher shell with a top-right toggle and live counter, so friend presence and quick chat access stay visible without switching away from the current page.
  • Animate the new friends rail open and closed from the toolbar and keep its refresh cycle alive outside the dedicated social page, so the side panel stays responsive instead of feeling bolted on or stale.
  • Open Twitch-style floating chat docks from the right friends rail instead of forcing a full page switch, so direct conversations can stay docked in the bottom-right corner and expand left as more chats stay open.
  • Grow newly opened dock chats upward from the launcher edge, keep per-conversation drafts in place, and pulse unread dock headers until they are focused, so fast side conversations behave like a real chat system instead of a hidden navigation shortcut.
  • Remove the old left-sidebar friends destination once the right-side friends rail exists, so friend access now lives in one consistent place instead of two competing navigation entries.

Fixed

  • Load real Minecraft head icons inside the new right-side friends rail instead of falling back to initials for every entry, so the compact friends list matches the visual identity of the main friends page.
  • Remove the presence dot overlay from the compact friends avatars, so the new right-side rail no longer paints an extra circle directly on top of the head image.
  • Subscribe visible chat conversations and dock windows to the live chat websocket instead of waiting for the next full refresh cycle, so new messages, unread states and dock content update immediately while the launcher stays open.
  • Keep floating chat docks anchored to the left of the right-side friends rail instead of inside its column, so side chats now hover over the page content and stay visually separate from the friends list.
  • Move the launcher skin hub under the Creator submenu instead of keeping it as a separate top-level sidebar destination, so creation-related workspaces now stay grouped in one place.

[2026.04.24] - Clarify discover source warnings

Fixed

  • Replace the old Discover rate-limit and source-unavailable copy with selection-specific wording, so warning banners no longer talk about a vague combined Discover area after workspace navigation moved into the sidebar.

[2026.04.24] - Move discover workspaces into sidebar

Changed

  • Move the Discover workspace switch for Mods, Plugins, Resourcepacks, Shaderpacks, Skins, Profiles, Servers, Seeds and Worlds into the sidebar, so those browse areas now behave like proper launcher subpages instead of an extra button row inside the page.
  • Let the Discover page header follow the active browse area and keep the in-page workspace controls focused on search, install target and context once the sidebar owns category switching.

[2026.04.24] - Extend sidebar subpages to creator tools

Changed

  • Move the Creator top-level tool switch for Texture Packs, Skin Parts and Server Manager into the sidebar, so those high-level workspaces now behave like proper launcher subpages instead of a second tab row inside the page.
  • Keep the Creator header focused on the active workspace and its metrics by replacing the old inline mode buttons with a simpler context/status bar once the sidebar owns the tool switch.

[2026.04.24] - Extend sidebar subpages to profile browsers

Changed

  • Move the profile browser mode switch for personal and public profiles into the sidebar, so those high-level destinations now behave like proper launcher subpages instead of inline workspace toggles.
  • Keep the profile workspace header focused on counts, actions and search by removing the old local/public button row once the sidebar sub-navigation owns that switch.

[2026.04.24] - Move play navigation into sidebar subpages

Changed

  • Replace the in-page Singleplayer and Multiplayer switcher with dedicated play subpages, so the page header now reflects the active destination directly instead of showing an extra tab strip above the content.
  • Add Singleplayer and Multiplayer as sidebar subpoints below Play that only expand while Play is selected, so launcher navigation stays compact until the user enters that area.
  • Refine the Play sub-navigation into quieter nested rows with matching sidebar rhythm, so the expanded submenu now feels like a natural continuation of the main navigation instead of a separate widget style.
  • Smooth the Play submenu open and close motion with animated height and reveal transitions, so the sidebar no longer snaps between collapsed and expanded states.

[2026.04.24] - Open dashboard details on card click

Changed

  • Open the world detail view when a Quick Start world card is clicked, while keeping the explicit launch and restore buttons as the direct execution actions.
  • Open the relevant server detail workspace when a Quick Start server card is clicked, so personal servers jump into the editor and public fallback entries jump into the server discovery focus instead of only exposing the join button.

[2026.04.24] - Add Git-backed launcher sync backends

Added

  • Add a shared launcher sync backend section in settings that can switch Minecraft options between Uebliche Cloud and a Git repository, accept repository URLs with embedded credentials, and store those credentials securely in the OS keychain instead of leaving them in plain text config files.
  • Add Git-backed syncing for the personal server list as an alternative to the local-only flow, so servers.json and per-profile servers.dat can be seeded from and written back to the same shared repository used for launcher options.

Changed

  • Treat the options sync viewer and conflict flow as a generic shared source instead of a Cloud-only feature, so the same local-versus-remote inspection now works when the shared backend is a Git repository.

[2026.04.24] - Collapse combined catalog rate-limit noise

Fixed

  • Collapse simultaneous Modrinth and CurseForge rate-limit warnings in Discover and the Mods Browser into one combined catalog message, so a failed aggregated search no longer reads like two unrelated provider errors at once.
  • Preserve the last visible Modrinth and CurseForge Discover results for the same search context when only those remote providers fail temporarily, so a short catalog throttle no longer leaves the feed showing only local Uebliche entries.
  • Keep remote catalog traffic behind the Public API by default and stop fanning out launcher-side direct Modrinth and CurseForge fallback requests unless an explicit emergency env flag enables it, so launcher search bursts no longer amplify upstream throttling exactly when the shared catalog path is already failing.
  • Explain temporary external-source outages as missing Modrinth and CurseForge sources instead of generic provider noise, so users can tell when Discover or the Mods Browser is currently showing only local Uebliche entries.
  • Merge matching Uebliche Cloud worlds into the launcher's local world browser and allow remote-only entries to open history and restore directly, so backed up worlds remain discoverable and recoverable even after their local save folder is gone.
  • Stop forcing the profile launch splash viewport to stay always-on-top and re-activate itself, so the preparation window can move behind other windows instead of permanently jumping into the foreground during launch.
  • Show the full launcher preparation step timeline underneath the profile launch splash progress area and add a collapsible log panel there as well, so every preparation phase stays visible during launch instead of only a short recent-step snippet.
  • Replace existing staged sidecar symlinks during local launcher restarts, so the dev watcher no longer crashes with File exists while re-linking llama or voice runtime files after code changes.

[2026.04.24] - Handle empty active cape responses

Fixed

  • Accept null or empty API responses for the active cape selection and keep that empty state cached in the launcher UI, so the capes screen no longer spams a decode error toast when an account simply has no active cape selected yet.

[2026.04.24] - Speed up launcher multi-target deploys

Changed

  • Run multi-target launcher release builds in bounded parallel batches instead of one fully serial queue, so cross-platform launcher deploys spend less wall-clock time waiting for independent target builds to finish one after another.
  • Add an optional windows-aarch64 launcher deploy target across release.sh, uebliche.dev, updater artifact naming, and direct release finalization, so Windows on ARM can be shipped through the same launcher release flow once the required cross-compiler is installed.
  • Detect a user-local llvm-mingw install under ~/.local/opt/llvm-mingw/current automatically during windows-aarch64 release builds and pin windres, ar, and ranlib to that same toolchain, so the new Windows-on-ARM path no longer depends on manually exporting compiler paths or accidentally falling back to host macOS archive tools.

[2026.04.23] - Unstick macOS launcher release builds

Fixed

  • Bump the launcher's cc build dependency to a release that avoids the compiler-family detection deadlock seen during darwin-aarch64 release builds, so local launcher deploys no longer stall indefinitely inside the ring native build script on newer Apple toolchains.
  • Include libudev in the generated Linux cross-build sysroots and merge missing triplet headers like sys/cdefs.h back into the generic include roots, so cross-platform launcher release builds no longer fail on Linux targets when native crates resolve pkg-config metadata or libc headers.
  • Resolve updater upload artifacts directly from the built bundle outputs for macOS and strip the duplicated portable/ segment from the Windows portable upload key, so launcher release uploads now land on the expected artifact paths across all supported targets.
  • Reuse unchanged staged sidecar and voice asset trees across launcher release runs and only rebuild Windows/Linux bundles when their actual inputs changed, so repeated local deploys no longer spend extra minutes recopying the embedded runtime payload for every target.
  • Stop rewriting apps/launcher-ui/Cargo.toml during launcher releases and inject the shipped version through UEBLICHE_VERSION instead, so same-version reruns can reuse Cargo release outputs instead of recompiling the launcher workspace just for version bookkeeping.
  • Propagate the real launcher app build version into launcher-core HTTP headers, user agents, telemetry, and launch substitutions, so uebliche.online and other downstream services no longer see the internal crate fallback 0.1.0 instead of the shipped YYYY.M.D-bHHMMSS<hash> release version.
  • Move the launcher's sidebar account switcher and primary navigation into a scrollable top section and only keep a footer gap when the viewport is tall enough, so short windows no longer clip the bottom sidebar actions off-screen.
  • Clamp the launcher's debug window to the visible viewport and cap its inner scroll area to the remaining height, so runtime and download tester cards no longer get cut off when the launcher window itself is short.
  • Size the launcher's download toast rows from the actual text metrics instead of fixed 16px lines, so error and progress details in bottom-right download cards no longer get clipped at the lower edge.

[2026.04.22] - Add launcher server manager

Added

  • Add a new operations-first Server Manager inside the launcher's Creator workspace, so hosts, managed servers, local agent controls, runtime details, logs, and lightweight network context can now be handled in one desktop flow instead of bouncing out to Dash for every task.

Changed

  • Reuse the same managed-host and managed-server APIs that back Dash inside the launcher, so server creation, lifecycle actions, maintenance, host assignment, and move requests now work from one shared control plane instead of a launcher-only side path.
  • Let the launcher install and control a local managed-server agent, and generate copy-ready native or Docker host install snippets for remote hosts, so local-first hosting and lightweight remote onboarding now fit into the same workspace.
  • Bind Discover's Install to server target list to the same managed-server selection state as the new Server Manager, so server content installs and runtime administration stay synced instead of drifting between separate selectors.
  • Add breathing room between the Creator tool switcher and the Server Manager status pills, so the top toolbar no longer feels cramped when the new manager is active.
  • Add matching top and bottom padding around the Creator and Server Manager button rows, so toolbar button lists no longer sit pressed against their surrounding frames.
  • Submit the selected host's stable serverId from the Server Manager instead of the internal host row id, so creating a managed server on an existing host no longer fails immediately.
  • Reuse an already healthy local Agent before spawning a new one, and refuse duplicate starts when the admin port is already occupied, so the Server Manager no longer provokes Address already in use crashes in the local Agent log.
  • Drop stale create-dialog template, plan, and host selections before sending Server erstellen, keep a freshly created server even if the follow-up host assignment fails, continue rendering the selected server when the list endpoint still comes back empty, and tolerate older managed-server detail payloads that still omit moveState, so outdated wizard state, lagging server lists, and partially rolled out API fields no longer surface as a generic io error.
  • Size the Creator Server Manager split view from the actual viewport instead of a fixed server-list cap, so the managed server list no longer looks vertically cut off in wide layouts.
  • Auto-assign the currently selected eligible host before Start or Restart, and block those actions locally when no valid target host exists yet, so hostless managed servers no longer bounce off the lifecycle endpoint with HTTP 409 Managed server has no assigned host..
  • Stack the Server Manager host cards vertically instead of wrapping them across the row, so local and remote agents stay readable as one-card-per-line entries instead of getting clipped side by side.
  • Resolve assigned host references in the server list and detail panel back to the best available agent name instead of always echoing the raw host id, so host placement reads like real machines wherever the launcher already knows the host metadata.
  • Cache the Server Manager's loaded networks, hosts, managed servers, templates, plans, selected detail, and local agent status in the launcher's startup snapshot, so Creator reopens with the last known server-management state immediately and then keeps it fresh through the existing automatic tab refresh.

[2026.04.22] - Prune stale launcher dev artifacts

Fixed

  • Prune stale hashed Cargo artifact generations from the launcher's target/debug cache before each native dev restart, so repeated local launcher builds no longer let deps, .fingerprint, build, and incremental balloon into tens of gigabytes over time.
  • Reduce launcher dev builds to line-table debug info, so the remaining local Cargo artifacts stay materially smaller without throwing away useful backtraces during normal debugging.

[2026.04.22] - Unify profile mod search and install

Added

  • Add one combined profile mod search that filters installed mods and loads compatible catalog hits in the same view, so players can install, disable, or remove mods without bouncing between the profile tab and Discover.

[2026.04.22] - Align profile detail tab spacing

Changed

  • Stretch the Mods / Einstellungen tab bar across the full profile detail content width, so the tab row no longer leaves an awkward empty gap on the right after the hero cards.

[2026.04.22] - Remove redundant profile mods strip

Changed

  • Remove the standalone Mods summary strip from the profile detail hero, so the detail view no longer shows a redundant full-width Mods 10 bar above the actual profile information.

[2026.04.22] - Add opt-in launcher launch performance reporting

Added

  • Add a disabled-by-default launcher setting to share profile launch timings, including a local payload preview and a queue-clear action, so users can opt in explicitly before any performance telemetry leaves the machine.

Changed

  • Capture structured per-step launch preparation timings, runtime/platform context, and resolved mod ids inside launcher-core and queue them asynchronously for best-effort delivery, so slow profile boots can be analyzed without blocking launches or sending logs, credentials, chats, world content, or filesystem paths.
  • Keep unsent launcher performance reports in a capped local JSONL queue with retry backoff and last-sample storage, so failed sends can be retried later and the launcher can show exactly what would be submitted.

Added

  • Add uebliche-launcher://connect?server=...&name=...&code=... deeplinks, so public server pages can open the launcher with a target join host and optional profile share in one handoff.

Changed

  • Import a shared profile automatically before launch when a Connect deeplink includes a share code, and queue Quick Play against the requested server afterwards, so uebliche.gg/<slug> can install and join from one click instead of forcing a separate manual import step.

[2026.04.20] - Align launcher download versions

Fixed

  • Prefer the current launcher channel release metadata whenever that release already ships a matching platform artifact, so the docs download header, per-platform cards, and generated download links no longer drift onto different versions.

[2026.04.20] - Normalize launcher self-update release identity

Fixed

  • Treat bare launcher build tags like b022922899109ec as the same shipped release as full version labels like 2026.4.20-b022922899109ec, so the self-update checker no longer offers a false update when the local build already matches the published launcher artifact.

[2026.04.18] - Repair cross-platform launcher release bundling

Fixed

  • Copy the full embedded sidecar runtime trees into macOS, Linux, and Windows launcher bundles, so release archives no longer drop companion libraries and voice/LLM helper payloads when a platform package is assembled.
  • Install ALSA development metadata into the generated Linux cross-build sysroots and treat alsa.pc as required completeness data, so launcher release builds no longer stop on alsa-sys when the public Linux targets are packaged from macOS.

[2026.04.18] - Richer discover project details

Changed

  • Keep selected discover items in a wide side-by-side browser workspace, so the result list now stays on the left while the matching project or seed details open on the right instead of covering the page with a separate dialog.
  • Render embedded project-description HTML links and images in the launcher discover detail view, so Modrinth-style rich bodies now show linked text and inline media instead of raw tags.
  • Route project-detail links through a leave-launcher confirmation before opening the browser, so external websites are no longer opened without an explicit warning.
  • Replace plain homepage/issues/source metadata rows with icon buttons and show a dedicated GitHub badge for source links when the repository host is GitHub, so project links scan faster in the detail dialog.

[2026.04.18] - Remove schematics from play navigation

Changed

  • Remove the standalone Schematics sub-tab from Play, so the launcher no longer exposes a separate schematic list in the main game navigation and now falls back to Singleplayer when older saved UI state still points there.

[2026.04.18] - Fallback runtime release channel

Fixed

  • Fall back between the legacy hardened runtime release channel and the canonical release channel during launcher runtime resolution, so managed Java downloads no longer fail just because runtime artifacts were only published on one of the two channel names.
  • Include the requested javaVersion in missing-runtime release errors and keep the stored runtime channel from local install metadata, so runtime diagnostics now point at the real missing matrix entry and report the actual source channel instead of a guessed one.

[2026.04.17] - Remove troubleshooting admin panel from settings

Changed

  • Run the native launcher dev entrypoints through a built-in hot-reload watcher, so dev.sh and dev.bat now restart the app automatically after source changes and bring the window back without manual relaunches.
  • Remove the internal troubleshooting setup/runtime/model management card from the normal launcher settings page, so local assistant install and status controls now stay in the troubleshooting flow and debug menu instead of cluttering product settings.
  • Hide the troubleshooting setup block once the bundled runtime and local support model are both ready, so the page only shows setup cards when local troubleshooting actually needs attention.
  • Rebuild the profile detail page into a clearer snapshot layout with a stronger hero area, compact system and launch columns, and a cleaner overview hub, so profile state, runtime context, and local assets are easier to scan before launching.
  • Align the quick actions on the profile detail page with trailing icons, so edit, export, share, and troubleshooting actions read faster and feel more deliberate.
  • Normalize the gap between the System and Launch cards on the profile detail page to the same spacing rhythm used above and below, so the top layout feels evenly aligned instead of slightly cramped in the center.
  • Normalize the spacing between profile detail tabs like Overview, Mods, and Shaderpacks, so the tab row now uses one consistent gap instead of relying on uneven implicit layout spacing.
  • Remove the technical System card from the profile detail page, so the top section focuses on actionable launch controls instead of repeating Minecraft, runtime, security, and lock metadata.
  • Remove profile-local Resourcepacks and Shaderpacks from the profile detail page, so that view now focuses on profile-bound mods and settings while packs stay part of the global launcher library instead of looking profile-owned.
  • Move the profile launch controls into the top-right area of the hero card, so account, quick play, social start, and the main launch action now sit next to the primary profile actions instead of living in a separate card further down the page.
  • Flatten the launch controls inside the profile hero so the top-right start area now renders without an extra nested box, which keeps the header tighter and avoids a second card look inside the same section.
  • Collapse the profile hero action row into a single dropdown menu, so edit, export, share, and crash analysis no longer compete for horizontal space in the header.
  • Reduce the profile hero metrics to a single mods counter, so playtime, last active, and duplicate settings counts no longer clutter the top of the profile view.
  • Remove the extra boxed action frame around the profile list play controls, so the launch button now sits directly in the card instead of looking nested inside another panel.
  • Keep only one visible mods counter on the profile detail page, so the same 9 Mods value no longer repeats across the hero, launch block, and overview hub.
  • Show selected local profile details next to the profile list on wide layouts, so choosing a profile no longer replaces the list and instead opens a side-by-side browser/detail workspace.
  • Keep the profile split view interactive while launch preparation is running by giving the list and detail panes their own scroll/input regions, so selecting another profile no longer gets blocked by the detail pane layout.
  • Tighten the profile list card density in the split view, so the left browser column no longer wastes height with oversized previews, copy, and action widths.
  • Keep public shared profiles inside the same side-by-side browser/detail workspace as local profiles, so selecting Public items no longer jumps into a separate full-page detail flow.
  • Rename the local profile mode to Yours, so the browser tabs now distinguish personal profiles from public shared profiles in more user-facing language.
  • Let clicking an already selected profile card clear the selection again while keeping double-click as the direct launch gesture, so the split browser now supports quick open-close toggling without sacrificing the fast start shortcut.
  • Fold the former Overview content into the top profile info card and drop the extra overview tab, so the most relevant snapshot and library details now stay in one header section instead of living behind a separate panel.
  • Keep the profile browser workspace card pinned above the split list column, so the Profile durchsuchen header no longer scrolls away with the profile cards on wide layouts.
  • Align the profile list launch button to the top-right corner of each card, so the primary Starten action now sits on a cleaner shared header line instead of drifting lower in the action column.
  • Keep local profile cards in the split browser column in a horizontal list layout at narrower widths, so Starten also stays top-right when the detail pane is open on the right.
  • Move the profile search field into the upper Profile durchsuchen workspace card, so the left result list now scrolls independently without duplicating search UI inside the list panel.
  • Make the full profile card body selectable again while excluding only the real action buttons, so choosing a profile now works from the whole card area instead of feeling limited to the text block.
  • Let a secondary click on local profile cards open the same launch dropdown as the small menu trigger, so account selection and extra launch actions can now be reached from a normal right-click gesture on the card itself.
  • Remove the selected-profile pill from the Profile durchsuchen workspace card, so the sticky browser header no longer repeats the active profile name above the actual split detail view.
  • Normalize the gap between the mode tabs, metric pills, and create/import actions in the Profile durchsuchen workspace card, so controls like Yours, Public, Create profile, and Import profile now sit on one consistent spacing rhythm.
  • Add a loader icon badge with the original Fabric, NeoForge, Quilt, and Forge logos to the lower-left corner of profile avatars, so list cards now rely on the real loader branding instead of repeating loader names as text pills.
  • Hide the normal Ready profile status label from the browser cards and profile detail header, so status only appears when a profile is still draft, dirty, or otherwise needs attention.
  • Remove the Launcher bereit status pill from the Profile durchsuchen workspace card, so the sticky browser header no longer spends space on a generic launcher-ready hint.
  • Generate new profile IDs as random UUIDs during profile creation and drop the manual ID field from the create dialog, so new launcher profiles always get an internal random identifier instead of deriving it from the profile name.
  • Scale the dashboard activity heatmap down to the available session-panel width, so the activity strip no longer runs out of the card on narrower launcher windows.
  • Use one explicit fixed gap between the Singleplayer and Server quick-start panels on the dashboard, so both columns now sit on the same spacing rhythm instead of depending on implicit column spacing.
  • Move the quick-start server ping and player count into a fixed right action column above Join, so server cards now keep their live status badges in one stable top-right row with the action anchored beneath them.
  • Soften the quick-start server address styling, so IPs and hostnames read as supporting metadata instead of competing with the server name and live status badges.
  • Apply the launcher's standard relative-time formatter to the quick-start singleplayer cards, so Last played now shows the same human duration style as the rest of the launcher instead of a raw timestamp string.
  • Show server max capacity only when it is actually relevant in the shared player-count formatter, so launcher server cards and lists now keep relaxed counts like 0 / 20 or 400 / 10000 collapsed to 0 and 400 while still surfacing max slots when a server is actually filling up or an invalid -1-style capacity needs a readable fallback.
  • Remove the players suffix from server population badges and replace it with a trailing player icon, so the quick-start dashboard and shared server lists now keep population badges compact without losing the population hint.
  • Hide the default Minecraft port :25565 in visible server-address labels, so launcher server cards and server discovery views now show cleaner hostnames unless a non-standard port actually matters.
  • Carry supported Minecraft version names from server pings and public directory snapshots through the shared launcher server models, so server cards can now show the returned version alongside the cleaned address instead of dropping that information after refreshes or imports.
  • Reuse one shared launcher server meta renderer for dashboard, multiplayer, and public server views, so address cleanup, supported-version badges, MOTDs, and live status pills now stay visually consistent instead of drifting between separate page-specific implementations.
  • Add an explicit gap between ping and playercount in the shared server status row, so those two live badges no longer sit cramped together when both are shown.
  • Replace the profile detail two-column snapshot/library layout with explicit fixed-width panes and a fixed center gap, so Profile-Snapshot and Lokale Bibliothek keep their spacing even at intermediate window widths where the old implicit column layout could visually collapse the gutter.
  • Rework the shared launcher search field with a clearer search icon, stronger input surface, and cleaner clear-action spacing, so profile, discover, and community search boxes now read as obvious input fields instead of blending into surrounding toolbars.
  • Enlarge the loader badge on compact profile avatars, so Fabric, NeoForge, Quilt, and Forge are easier to recognize in the profile list without making the larger hero/profile icons feel oversized.
  • Normalize the spacing between the category tabs on the Discover page, so rows like Mods, Plugins, Resourcepacks, and Shaderpacks now keep one explicit gap instead of depending on uneven implicit layout spacing.
  • Inset discover asset previews slightly inside their frame with a neutral background, so stray edge artifacts from remote icons no longer show up as dark circles or corner blemishes around the image.
  • Replace the Creator page's implicit three-column layout with explicit fixed panel gaps, so Library, Editor, and Preview keep a consistent visible spacing instead of visually collapsing together at some window widths.
  • Add an explicit gap between the Discover loading animation and its text label, so loading states like Entdecken wird geladen ... no longer appear cramped.
  • Replace the profile latest-version * marker with an upward arrow, so tracked profiles now signal a latest-version channel more clearly than a plain asterisk.
  • Turn the profile Settings tab into a real built-in text editor with syntax highlighting, format actions, autocomplete suggestions, and undo/redo controls, so config and options files can now be inspected and edited directly in the launcher instead of only appearing as a passive asset list.
  • Render server MOTDs with Minecraft legacy colors and the vanilla bitmap font in the launcher's server views, so ping responses with § formatting now look much closer to the in-game server list instead of showing plain muted text.
  • Strip Minecraft legacy formatting codes before MOTDs flow into generic discovery cards, so shared server discovery views no longer leak raw § sequences when they cannot use the dedicated MOTD renderer.
  • Rework the profile RAM editor into a cleaner two-part layout with clearer min/max sections, stronger value alignment, and a calmer recommendation band, so memory tuning no longer reads like a raw debug form.
  • Replace the profile archive checkbox with an explicit activate/unarchive action, so archive state changes now read as a deliberate command instead of a generic form toggle.
  • Let the shared profile file browser stretch to the full available content width, so sections like Settings no longer collapse into a narrower left-aligned card while the right side stays empty.
  • Stop showing the managed runtime mode in the profile detail view, so internal launcher runtime behavior no longer appears as if it were a user-facing per-profile option.
  • Fold the profile snapshot strip into the hero card, so playtime, last active, and mod count stay visible without introducing a second standalone bar underneath the header.
  • Make social launch injection always-on and remove the toggle from profile launch controls, so players no longer see an optional checkbox for a built-in part of the launcher start flow.
  • Increase the spacing between profile snapshot metrics in the hero, so values like playtime, last active, and mod count no longer sit too tightly next to each other.

Fixed

  • Give the wide profile split view explicit pane heights, bounded inner scroll regions, and its own scroll handling instead of nesting inside the page scroller, so the detail pane no longer collapses into a black clipped block after selecting a local profile.
  • Keep compact profile cards clickable inside the split browser column, so selecting one profile no longer makes the remaining cards in the left list stop responding.
  • Accept legacy security_mode_override = "monitor" values from older local profile manifests and map them to protect, so existing profiles no longer fail launch preparation after the security-mode cleanup.
  • Resolve relative local custom-mod file entries against the profile instance/mods directory and cross-check installed Fabric jars during launcher-managed dependency injection, so profile background download checks no longer misreport missing local jars or falsely claim fabric-api is unresolved when the jar is already present.
  • Stop writing background personal-server ping failures into the launcher event log, so unreachable saved servers no longer flood the UI log with automatic connection errors during normal startup refreshes.
  • Treat enabled file-backed profile mods as already present when launcher-managed system mods resolve their dependencies, even if legacy source metadata is missing, so auto-injected mods like connect no longer falsely complain that fabric-api is missing when the profile already ships the jar.
  • Track pending profile-detail requests explicitly and retry the selected profile detail while the page is open, so the launcher profile page no longer gets stuck on the generic "native data pending" screen after a lost or delayed background detail load.
  • Prune stale manifest-less profile folders during profile enumeration and recover by reloading the profile list after a failed detail request, so deleted or half-cleaned local profile leftovers no longer leave the profile page stuck on a ghost entry.
  • Treat playtime bootstrap profile reads as best-effort during launcher startup, so a temporarily unreadable profile.toml or legacy stats file no longer aborts the entire native launcher with a fatal core-start error.
  • Treat missing cape-selection records from the social API as an empty optional state instead of a hard HTTP failure, so accounts without an active cape no longer trigger a red launcher error toast on startup.

[2026.04.17] - Fix local AI chat recipe resolution

Fixed

  • Parse shaped vanilla recipes with string ingredient refs from cached Minecraft recipe JSON, so local knowledge packs no longer drop crafting grids like Werkbank, Truhe, Ofen, or Lore.
  • Ignore non-string entries in bundled Minecraft language files, so local knowledge-pack rebuilds no longer fail on assets/minecraft/lang/deprecated.json.
  • Resolve common informal recipe topics through locale-aware wiki search and suffix matching before the final chat turn, so exact recipe questions no longer fall back to recipe: null just because the raw question text is phrased conversationally.
  • Extract the text field from malformed local chat JSON blobs when possible, so the AI page no longer renders an entire broken JSON payload as the assistant message when llama-server truncates the response.
  • Resolve recipe questions dynamically through the Minecraft Wiki APIs with locale-aware search, English page normalization, and live template parsing, so queries like Werkbank, Bett, and typoed Minecard now pick up current wiki recipe layouts instead of relying on hardcoded recipe content.

[2026.04.17] - Harden launcher runtime and trim deploy paths

Changed

  • Switch the launcher runtime pipeline to hardened-only resolution, warm up the managed Java matrix 8,16,17,21,25 during startup maintenance, and keep profile launch resolution pinned to the hardened runtime track.
  • Reduce launcher security modes to protect and strict, so launcher manifests, profile overrides, and runtime/security payloads now accept only the current product modes.
  • Update runtime debug output, FairPlay runtime evidence, and troubleshooting/security payloads to emit only hardened runtime states, so launcher readiness no longer advertises a deprecated standard path.
  • Pin the runtime deploy actions in app/launcher/uebliche.dev to the hardened release channel and the canonical Java matrix 8,16,17,21,25, so launcher runtime publishing now follows one deploy path by default.
  • Prune stale managed runtime installs and runtime temp artifacts after a configurable retention window (default 14 days) during launcher maintenance, so superseded JDK downloads and abandoned uebliche-runtime.* cache files no longer accumulate forever.

Removed

  • Remove the deprecated standard runtime branches, monitor security mode, and the duplicate runtime upload-only action from the launcher deploy surface, so the runtime/deploy configuration no longer exposes parallel legacy paths.

Fixed

  • Repair the mc-manifest fixture paths and snapshots, and add explicit rejection tests for deprecated monitor and standard payloads so removed legacy values now fail fast under test coverage.

[2026.04.17] - Fix large launcher LLM artifact deploys

Fixed

  • Fall back to the configured publish object store for oversized launcher-support-llm uploads in uebliche.dev, so large GGUF model releases no longer fail at the Versions API edge with HTTP 413 before the signed release can be published.

[2026.04.17] - Add creator tab for shared texture packs

Added

  • Add a new primary Creator tab to the native launcher with a dedicated Texture Packs workspace, so texture-pack editing no longer has to live inside the generic discovery or profile flows.

Changed

  • Reuse the shared global resource-pack library as the source of truth for creator-managed packs, so saved packs stay visible in the normal launcher asset flows instead of creating a second pack system.
  • Add validation, ZIP export, and profile-sync actions to the texture-pack workflow, so creators can check pack.mcmeta, safe asset paths, and PNG files before shipping or mirroring a pack into local profiles.

[2026.04.17] - Move AI chat into the main sidebar

Changed

  • Move Ask Ullm out of the small footer icon row and into the main launcher sidebar directly below Feedback, so the AI chat is now opened from a full-width navigation button like the other primary sections.
  • Remove the passive readiness strip from the top of the AI page and cap the Ask Ullm chat card to the height of the avatar panel, so the right column no longer expands into an oversized empty box or pushes the page into extra scrolling.

[2026.04.17] - Render Modrinth project details from Markdown

Fixed

  • Load the full Modrinth project body into Discover detail windows and render it as Markdown, so mod details now show the upstream description instead of only the short summary and metadata.
  • Replace the oversized version list in Discover mod details with a compact per-profile install status, so the window now shows where a mod is already present, where it can be installed, and where it can only be queued until a compatible version exists.

[2026.04.17] - Add shared launcher scene previews for worlds, schematics, and seeds

Added

  • Add a shared scene camera, painter, and level-volume pipeline in the native launcher, so world chunks, seed preview tiles, and future schematic previews can reuse one 3D viewport stack instead of separate renderers.
  • Add local schematic import/list/load primitives for .schem and .litematic, so dropped schematics now land in a dedicated launcher library path and can be reopened without a fresh file picker.
  • Add a streamed local world-volume loader that resolves chunk sections around the current focus, so the launcher can build a real block-window preview instead of only relying on exported 2D world overview images.

Changed

  • Replace the Discover seed isometric preview renderer with the shared scene container, so camera presets, drag, pan, and zoom now follow the same viewport model as other launcher 3D previews.
  • Render a live 3D chunk-window preview in the world detail overview, so local worlds now open with a native block scene directly inside the launcher page.
  • Lock the AI agent avatar to a fixed camera policy on the shared scene model, so the support NPC no longer rotates, zooms, or auto-showcases away from its intended framing.

[2026.04.17] - Fix Microsoft device-code account linking

Fixed

  • Keep the Microsoft device-code sign-in flow polling on authorization_pending responses, so adding a Microsoft account now completes automatically after the browser login instead of aborting before the account is linked.

[2026.04.17] - Add local vanilla knowledge pack and shared launcher chat corpus

Added

  • Add a launcher-shell knowledge exporter that derives exact vanilla recipes, process facts, and DE/EN labels from cached Minecraft data, so the AI chat and the fine-tuning pipeline can both consume the same local source of truth instead of hand-written recipe fallbacks.
  • Add generated Minecraft chat dataset tooling and JSONL combiner scripts, so the shared launcher-support-llm release path can now build a broad DE/EN chat corpus and merge it with the troubleshooting corpus before QLoRA.
  • Add a local Minecraft chat smoke example for the launcher shell, so the current managed GGUF can be exercised quickly against the native llama-server path while iterating on prompts and data.

Changed

  • Feed authoritative local vanilla knowledge context into the on-device Minecraft chat prompt, so exact recipe and process questions now have a structured factual input path even before the next fine-tuned GGUF is published.
  • Extend the signed launcher-support-llm release metadata and the uebliche.dev deploy action with chatDatasetVersion, knowledgePackVersion, and chatSchemaVersion, so model lineage for the shared chat/troubleshooting release is visible in the product artifact itself.
  • Upgrade the end-to-end local LLM pipeline to export the knowledge pack, generate the broad chat corpus, combine train/validation sets, and run both troubleshooting and Minecraft chat golden-case gates before staging a GGUF release.
  • Stop hardcoding dedicated German and English recipe-label fields in the launcher knowledge pack, so recipe matching and model context now resolve localized names from the cached client.jar language data and namespace refs instead of fixed *_de/*_en structs.
  • Add an Apple-Silicon LoRA fallback path plus a local Python bootstrap helper for the launcher LLM training flow, so the shared launcher-support-llm dataset can now be trained and evaluated on Macs even when CUDA and bitsandbytes are unavailable.

[2026.04.17] - Add local agent voice stage and support NPC

Added

  • Add a fixed Agent Stage to the launcher AI page with a local Minecraft-style support NPC, so the assistant now has a persistent 3D presence instead of only text chat.
  • Add local microphone capture, STT transcription, TTS synthesis, playback timing, and mouth-frame mapping in the launcher shell, so one tap can now run a full offline voice turn through the existing on-device LLM.

Changed

  • Extend the existing skin viewer with support-stage backdrops and new agent animation states for listening, thinking, speaking, confirm, and error, so the support NPC can animate directly on the native egui renderer without a second 3D engine.
  • Load the support NPC skin from the official public Minecraft player profile for Ullm instead of a hardcoded local fallback, so the AI page avatar now follows the real player skin while still reusing local mouth animation overlays.
  • Rename the launcher AI surface to Ask Ullm and align the chat CTA, page copy, and avatar label with that identity, so the local assistant reads like a named in-product character instead of a generic AI page.
  • Replace managed STT/TTS asset resolution with embedded voice/ bundle discovery, localized missing-bundle copy, and no-op voice install hooks, so the launcher no longer tries to resolve launcher-support-stt or launcher-support-tts through managed asset APIs.
  • Stage bundled whisper-cli, piper, and embedded voice/ model files alongside llama-server in dev and release packaging paths, so local voice builds can ship the complete offline voice stack directly inside the launcher bundle.
  • Fall back to built-in macOS speech for local TTS, auto-stage known local Whisper models into the dev bundle, and stop surfacing passive voice setup pills in the AI page, so local launcher runs no longer idle on embedded-voice warnings before a user even starts talking.

[2026.04.17] - Hide redundant local troubleshooting install actions

Fixed

  • Hide the local troubleshooting install action once the managed model is already present and up to date, so settings, troubleshooting, and the hidden debug menu no longer keep showing an Install local troubleshooting button after a successful setup.
  • Retry local llama-server diagnosis requests with the legacy top-level json_schema payload when older server builds reject response_format, and surface the real HTTP error message from the server body when a request still fails.
  • Reduce the Minecraft AI overlay height and compact its input area, so the chat window now stays visible even in shorter launcher windows.
  • Limit local Minecraft chat generations and give them a shorter hard timeout, so the AI page no longer sits indefinitely on Antwort wird erzeugt when a local answer stalls.
  • Stage the dev llama-server as a symlink to the working bundled runtime instead of a copied binary, so the local AI page and troubleshooting use the same functioning sidecar on macOS dev builds.
  • Auto-continue local Minecraft chat replies when llama-server stops on the token limit and keep the chat view pinned to the newest message, so answers no longer look cut off at the end of the page.
  • Remove the runtime hardcoded Minecraft recipe fallback again and switch the AI chat to schema-constrained model answers, so recipe cards now only appear when the local LLM itself emits a structured recipe.
  • Add dedicated Minecraft chat pilot datasets, a chat answer schema, and chat golden-case evals for vanilla recipes and typo handling, so the shared launcher GGUF can be fine-tuned and regression-tested for normal player questions instead of only crash diagnosis.

Changed

  • Shorten the troubleshooting setup card copy and remove long local paths and release strings from the runtime, support-model, and redacted-bundle summaries, so the setup state reads as compact status information instead of verbose internal detail.
  • Add a new bottom-left launcher button for a local Minecraft AI overlay chat, so the managed on-device model can now answer direct Minecraft, Java, mods, and launcher questions outside the crash-diagnosis flow.
  • Add a notification tester to the hidden debug menu with dedicated buttons for status toasts, error toasts, download-state cards, and grouped download summaries, so the bottom-right notification stack can now be regression-tested directly inside the launcher.
  • Turn the local Minecraft AI chat into a full launcher page instead of a floating overlay window, so the conversation stays usable on smaller launcher heights and behaves like the rest of the app navigation.
  • Render built-in crafting answers in the local Minecraft AI chat as visual recipe cards with crafting grids, result slots, and locally resolved vanilla Minecraft textures from the cached client JAR, so obvious recipe questions now look like Minecraft instead of plain text blocks.
  • Switch the crafting recipe cards from generic launcher panels to cropped vanilla inventory and crafting-table GUI textures with real slot placement, so built-in recipe answers now look like the actual Minecraft crafting screen.
  • Let the AI chat page consume the full remaining page height and keep the composer pinned at the bottom, so the conversation no longer sits in a short box with unused white space below it.
  • Make the AI chat section itself stretch to the full remaining content area instead of shrink-wrapping around its inner form block, so the page no longer leaves a dead gap below the chat card.
  • Compact the AI chat composer further and let Enter send the current prompt while Shift+Enter keeps adding a newline, so the full-height chat view leaves more room for messages and behaves like a normal messenger input.

[2026.04.17] - Add runtime matrix tester to the hidden debug menu

Added

  • Add an Uebliche Runtime tester section to the hidden launcher debug menu, so operators can now inspect every managed Java runtime track against the Versions API and see whether each standard or hardened JDK install is present locally.

Changed

  • Let the debug runtime tester optionally force-install or refresh all managed runtime tracks from the same panel, so automatic runtime maintenance can now be smoke-tested for Java 8, 16, 17, and 21 without leaving the launcher UI.

[2026.04.17] - Always stage bundled llama-server for local launcher runs

Changed

  • Stage the embedded llama-server runtime into local debug launcher builds automatically and broaden dev runtime discovery to existing staged release bundles, so the troubleshooting assistant no longer reports a missing bundled runtime during normal local launcher runs.

[2026.04.17] - Add hidden launcher debug menu

Added

  • Add a version-click debug menu in the launcher sidebar, so operators can open hidden smoke-test tools directly from the current build number without exposing a permanent navigation entry.

Changed

  • Add bundled troubleshooting debug actions for status refresh, local model install or removal, log access, and direct LLM smoke runs against the currently selected profile, so local troubleshooting can now be exercised end to end from the UI.

[2026.04.17] - Add launcher support model release gates

Added

  • Add pilot train/validation fixtures, a golden-case regression set, GGUF export helpers, and an end-to-end run_qlora_release.sh pipeline so the first launcher-specific troubleshooting model can be trained, evaluated, quantized, and staged reproducibly.
  • Add a launcher-local troubleshooting smoke path that can run directly against a local GGUF override, so model validation no longer depends on publishing a release to launcher-support-llm first.

Changed

  • Extend the local LLM docs and script guidance with concrete release-gate commands for schema validation, golden-case behavior checks, GGUF export, and local launcher E2E before publish.

[2026.04.17] - Stage signed launcher support model releases

Added

  • Add a dedicated scripts/build-launcher-support-llm.sh release helper plus a matching uebliche.dev deploy action, so the managed local troubleshooting GGUF can now be staged, signed, and published to service/launcher-support-llm without ad-hoc manual API payloads.

Changed

  • Teach the uebliche.dev version deploy path to merge per-artifact metadata sidecars into uploaded release artifacts, so launcher support model releases can publish signatureFormat, signatureKeyId, base-model lineage, and other GGUF metadata alongside the uploaded file.

[2026.04.17] - Bundle llama-server and harden local model trust

Changed

  • Bundle llama-server directly into native launcher releases and treat it as embedded runtime state in the UI, so local troubleshooting no longer downloads or removes a separate runtime service artifact.
  • Verify launcher-support-llm downloads with both sha256 and an Ed25519 signature over the lowercase SHA-256 digest string, so managed local model installs now fail closed when release metadata or bytes are tampered with.
  • Limit local troubleshooting install, update, and remove actions to the managed GGUF model only, while still showing the bundled runtime path and version separately in settings and the troubleshooting modal.

[2026.04.17] - Manage local troubleshooting assets through Public Versions API

Changed

  • Replace the launcher's free local troubleshooting model catalog with one managed on-device assistant, so the product UI now installs and updates a single supported GGUF release instead of exposing multiple built-in model choices.
  • Resolve both the local llama-server runtime and the troubleshooting model through the Public Versions API, store them under the launcher's managed runtime/model paths, and show separate runtime versus assistant release state in settings and the troubleshooting modal.

Removed

  • Remove the normal-user path for free-form local troubleshooting model selection and direct built-in GGUF catalog choices, so local troubleshooting is now a managed product asset instead of an ad-hoc model picker.

[2026.04.16] - Add local launcher troubleshooting LLM path

Added

  • Add a local troubleshooting backend for the native launcher that can run GGUF models through llama-server, so crash diagnosis no longer depends only on remote Codex sign-in and MCP wiring.
  • Add a reproducible launcher LLM scaffold with JSON schemas, sample JSONL cases, QLoRA training scripts, adapter merge tooling, and a smoke-eval helper, so the local troubleshooting model can be fine-tuned and validated inside the launcher repo.

Changed

  • Replace the built-in local GGUF catalog with compact troubleshooting defaults centered on Qwen 2.5 1.5B, Llama 3.2 1B, and SmolLM2 1.7B, so the local path fits the launcher's on-device size budget better.
  • Generalize launcher troubleshooting copy to cover both Codex and local models, while keeping the same redacted diagnostics preview and setup flow in the native UI.

[2026.04.16] - Preserve updater artifact file names

Fixed

  • Save launcher updates under their real artifact file names instead of the generic /download endpoint name, so clicking Install update now launches the actual installer or archive instead of a file literally named download.

[2026.04.16] - Stabilize download toast layout

Fixed

  • Keep the download notification toast at a stable compact height while progress updates stream in, so the bottom corner card no longer grows taller over time during one running download.

[2026.04.16] - Simplify launcher settings sections

Removed

  • Remove the dedicated appearance card from launcher settings now that the native UI always follows the system theme without any local controls.

Changed

  • Refocus the settings page copy on launcher updates, storage, and Minecraft options sync so the remaining sections describe only actionable areas.

[2026.04.15] - Fix rebuilt launcher update detection

Fixed

  • Stop the native launcher updater from treating two same-day builds with the same commit hash as the same release when their build timestamps differ, so rebuilt launcher releases like 2026.4.15-b02210918bbe290 to 2026.4.15-b15570918bbe290 are now offered correctly.

[2026.04.15] - Align launcher uebliche.dev deploy metadata

Fixed

  • Make the launcher release helper reuse the uebliche.dev build tag when it is provided, so packaged artifact names now stay in sync with the version metadata that uebliche.net receives during deploys.
  • Let the Deploy launcher action ask uebliche.dev to generate platform update manifests on the runner side, so the launcher deploy path no longer depends on release.sh uploading its own manifest sidecars.

[2026.04.15] - Fix macOS launcher release bundling

Fixed

  • Replace the macOS Info.plist heredoc in release.sh with direct file writes so cross-platform launcher deploys no longer hang in the Apple bundle preparation step before the darwin artifacts are packaged and published.

[2026.04.15] - Keep manual mod toggles enabled

Fixed

  • Stop launcher background profile builds from silently flipping manually re-enabled mods back to disabled when the current build cannot resolve a compatible artifact yet, so the profile manifest now preserves the user's toggle choice instead of overwriting it a few seconds later.

[2026.04.15] - Speed up profile detail switching

Changed

  • Reuse cached profile detail and asset payloads when switching back to an already opened profile and refresh them in the background, so the native launcher no longer blanks the profile detail page on every revisit.
  • Cache runtime-state detection for a short window across profile detail loads, so moving between profiles with the same security/runtime requirements avoids repeating the same local runtime scan on every click.

[2026.04.15] - Derive profile playtime from launcher sessions

Changed

  • Make launcher sessions the only write path for launcher playtime, so local profile stats stop writing separate profile.stats.json totals and the profile browser now reads one derived session-backed index instead of a second live system.
  • Track local launcher sessions for offline and unsupported accounts as well, while keeping remote playtime sync limited to Microsoft-backed accounts so device-crossing totals stay cloud-backed without losing local profile playtime UX.
  • Seed the new local profile playtime index once from legacy profile stats and persist a stable profileSyncId in profile manifests, so existing profile totals survive the cleanup and future cloud profile sync has a durable join key.

[2026.04.14] - Sync launcher playtime across devices

Added

  • Add authenticated launcher session journaling with offline upload retry, so Microsoft-backed launcher playtime now survives disconnects and syncs to the Public API once the client is back online.
  • Add a native launcher dashboard activity heatmap with launcher total, ingame total, and pending local time, so the selected account now shows a GitHub-style weekly play history at a glance.

Changed

  • Keep launcher sessions as the primary source for the new global playtime summary and use the existing ingame playtimeDaily data only as a secondary breakdown, so the new dashboard cards avoid double-counting across systems.

[2026.04.14] - Respect launcher profile list width

Fixed

  • Make shared launcher entity cards respect their actual local container width so nested lists stop measuring against the wrong viewport, while local profile browser rows keep using the full available content width.
  • Stop the toolbar's recent-profile chips from inflating with the available header space by clamping the switcher to fixed compact chip and dropdown widths and only showing two recent profiles before folding the rest into Weitere.
  • Pull the local profile browser's Starten action block into a narrower right-aligned column, so full-width list cards keep the controls flush with the right edge without the old oversized button box.

[2026.04.14] - Auto-install JDK 21 runtime

Fixed

  • Make the launcher's automatic Uebliche Runtime maintenance explicitly resolve and install the Java 21 build, so a fresh mandatory runtime setup no longer skips the required JDK 21 download.

[2026.04.14] - Compact download notification stack

Fixed

  • Keep the launcher's bottom-right download notifications compact by showing one detailed download card plus a short overflow summary, instead of letting parallel transfers stack upward indefinitely.

[2026.04.14] - Align updater actions in settings

Changed

  • Keep the Updater action buttons right-aligned beside the update metadata in launcher settings, instead of dropping the action row underneath the status block.

[2026.04.14] - Widen launcher profile cards

Changed

  • Let the native launcher profile cards use the full available row width again, and move each profile's default account into the right action column below Starten, including the player's skin head.

[2026.04.14] - Restore launcher page scrolling

Fixed

  • Restore vertical scrolling on the launcher's shared Play page for both Singleplayer and Multiplayer, keep separate scroll positions per sub-tab, and bring back the missing top-level page scroll on Feedback.

[2026.04.14] - Hide runtime internals in profile details

Changed

  • Replace the launcher profile Java copy with neutral automatic-management wording, and remove the runtime, Java, and raw profile lock rows from profile details so the UI no longer exposes internal runtime or lock identifiers.
  • Reword the launcher's sidebar kicker lines to action-oriented copy such as discovering more, grinding quests, and personalizing skins, while keeping the main tab labels simple.
  • Keep the selected skin stable on the Skins page while the cloud library refreshes in the background, so the preview no longer snaps back to the first entry a few seconds after choosing another skin.
  • Shrink the header's recent-profile switcher down to its real content width and tighten the chip sizes, so the profile row no longer keeps expanding into an oversized wide block.

[2026.04.14] - Add daily ad quest card

Added

  • Add a dedicated Daily Quest card above sponsored server quests that opens the browser-based rewarded-ad hub, polls ad-session status, and resumes an active session after reload until the daily flow resolves.

Changed

  • Back launcher quest summary reads from GET /v1/quests/state, extend quest payloads with system_ad metadata, and refresh the normal quest wallet plus sidebar QP only after the Public API confirms a rewarded ad-session completion.

[2026.04.14] - Stretch launcher header full width

Changed

  • Render the native launcher's top header as a full-width bar across the whole window, while keeping the sidebar and page content layout below intact so the shell reads as one continuous frame.
  • Anchor the header's profile chips to the right edge of the toolbar again, so the title block stays left-aligned while recent profiles stack flush with the window chrome.
  • Keep the launcher rail visually full-height by stopping the header separator at the content area, so the sidebar reads as one continuous column from top to bottom again.
  • Remove the toolbar's extra right inset, so the profile chips sit truly right-aligned instead of looking recessed from the window edge.
  • Restore the launcher's previous type scale by dropping the temporary global UI zoom, so text matches the earlier April 13, 2026 appearance again.
  • Keep the signed-in account name in the top-left sidebar header on one line and give that rail more room, so long player names no longer collapse into ellipses or forced wraps.
  • Enlarge the sidebar profile avatar and top-align it with the account name block, so the image starts on the same visual baseline as the first text row.
  • Increase the sidebar text scale for navigation, account details, popup entries, and footer labels, so the left rail reads closer to the larger avatar and profile chrome again.
  • Normalize the sidebar avatar padding to the same inset on the top, left, and bottom edges, so the profile image no longer looks vertically offset inside its card.
  • Put the sidebar rank back on the left and keep QP on the same row flush right, while preserving the avatar's equal outer inset inside the account switcher.
  • Split the sidebar account header's rank and QP onto separate rows, so the left rail no longer crams both values into the same line.
  • Replace the sidebar account header's QP text badge with a compact quest-point icon, while keeping the value right-aligned on the same metadata row.
  • Pin the sidebar rank to the left edge and the quest-point block to the right edge of the same metadata row, so the account header reads as two cleanly opposed columns again.
  • Enlarge the sidebar navigation glyphs and shift the text block accordingly, so the left rail icons read stronger without colliding with the larger labels.
  • Increase the sidebar icon footprint again to a larger rail glyph size, so the navigation symbols read more prominently at a glance.
  • Build the toolbar row from the right edge outward, so the header's profile chips stay hard-aligned to the far right even as the title block or window width changes.
  • Remove the toolbar header's remaining left inset, so the page title starts flush with the content edge instead of floating with extra empty space on its left.
  • Remove the toolbar row's implicit widget spacing, so the header title no longer keeps a leftover gutter on its left beyond the explicitly chosen profile gap.
  • Switch the header row to explicit left and right rects, so the title locks to the content edge even if nested layout spacing would otherwise reintroduce a left gutter.
  • Normalize the toolbar inset to the same value on all four sides, so the header content keeps one consistent edge distance instead of mixing separate top, bottom, left, and right padding.
  • Raise the top-left account switcher to the same overall height as the header bar, so the sidebar entry aligns vertically with the toolbar instead of ending early.
  • Widen the launcher sidebar again, so the larger account avatar regains balanced inset spacing instead of feeling cramped against the rail edge.
  • Match the toolbar's inner content height to the same 70px outer shell as the top-left account switcher, so both top bars now finish at the same exact height.
  • Drop the sidebar account switcher's dropdown chevron onto the lower metadata row, so the toggle icon sits visually centered in the bottom half of the profile button instead of floating mid-card.
  • Clamp launcher profile names to each chip's real inner text width, so long profile labels now ellipsize inside the header buttons instead of spilling past their borders.
  • Remove the dedicated Screenshots entry from the launcher sidebar, so the left navigation stays focused on the primary workspaces instead of exposing the capture library as a main rail destination.
  • Compress the Minecraft Options Sync block in settings by merging its status and action rows and shortening the JSON viewers, so the section takes noticeably less vertical space without hiding sync details.
  • Right-align the Updater action buttons in settings, so the download and check controls line up with the card edge instead of floating from the left.
  • Add a consistent gap between metadata keys and values across shared UI helpers, so settings, world details, profile panels, and similar info rows no longer read as visually stuck together.
  • Keep the Quests page on the last successful summary and campaign list while background refreshes are running, and only show Quests werden geladen during a true first load with no existing quest content.
  • Enlarge the sidebar navigation title text again, so the primary labels in the left rail read more prominently against the already larger icons and profile chrome.
  • Vertically center the combined two-line sidebar label block inside each nav button, so the top and bottom text now keep matching padding instead of sitting visibly high in the card.
  • Replace the sidebar Profile glyph with a cleaner bust-style silhouette, so the launcher rail reads less like a placeholder stick figure and more like a finished profile icon.

[2026.04.14] - Merge play tabs and add JoinMe

Changed

  • Merge the launcher's old Worlds and Servers navigation entries into one Play workspace with dedicated Singleplayer and Multiplayer tabs, so world browsing and personal server management now live under one shared shell.
  • Keep public community servers inside Discover, and reroute quest and public-profile server focus back into Discover > Servers instead of opening the personal multiplayer workspace.

Added

  • Add a JoinMe panel above the multiplayer server desk that surfaces online friends with active multiplayer presence, current server context, direct join actions, and chat fallbacks.
  • Extend launcher social presence with structured multiplayer join targets, so the launcher and Public API can publish and return server address plus optional server name for friend activity.

[2026.04.14] - Focus existing launcher instance on restart

Fixed

  • Reuse and focus the already running native launcher window on a second start, including restoring minimized windows and forwarding import handoffs there instead of surfacing a duplicate-instance error dialog.

[2026.04.14] - Add seed render submissions

Added

  • Accept renderCoordinates in published seed templates, keep a deterministic preview-bundle target even before outputs exist, and expose an admin seed-render queue so automated workers can pick up submitted seeds, render gallery shots plus preview bundles, and attach the finished assets later without republishing the whole world.

[2026.04.14] - Add launcher seed discovery

Added

  • Add a dedicated Seeds category to Discover with seed cards, a detail window, gallery browsing, a prepared 3D terrain preview, and direct Create compatible world actions separate from published world-copy imports.
  • Project public seed templates from published worlds into the native launcher flow, automatically creating a matching profile, installing required mods, materializing the seed world locally, and optionally quick-playing straight into the generated save.

[2026.04.14] - Stabilize launcher quest sidebar

Changed

  • Move the quest-point counter into the account switcher's rank row, align it flush right, and keep the previous quest summary plus quest list visible during refreshes so reloading no longer flashes empty quest states in the launcher.
  • Restore the native launcher's classic stacked sidebar labels with the section eyebrow above the page title, while keeping the quest-point counter in the account header and truncating long account names so the older rail style stays readable.
  • Stretch the sidebar's internal layout to the real panel width again, so the restored classic rail no longer leaves a dead dark strip between navigation content and the main page.
  • Tighten the actual side-panel width back down to the classic rail footprint, so the launcher no longer reserves an extra dark gutter beside the restored sidebar.
  • Match the sidebar frame and inactive navigation cards to the same rail surface, so any remaining reserved rail space no longer reads as a black vertical bar next to the launcher content.
  • Let unused sidebar panel space fall back to the page background instead of painting it as a dark rail, so only the actual navigation column stays visually dark when the classic sidebar layout is active.
  • Restore a stable classic sidebar width and switch the stacked nav titles to short sidebar-specific labels, so the old two-line navigation stays readable instead of collapsing into a clipped dark strip.
  • Replace the launcher's sidebar shell with an explicit fixed rail plus content column and stop painting a fake internal gutter, so the classic navigation no longer leaves a visible vertical bar beside the main page.
  • Put the sidebar logs shortcut back to the right of the system options row and restore calmer page plus toolbar padding, so the footer layout and header spacing match the older launcher chrome again.
  • Restyle the sidebar icon set with clearer badge backplates and stronger linework, so the launcher navigation reads cleaner without changing the classic stacked label layout.
  • Drop the experimental sidebar icon backplates again and return to flatter launcher glyphs, so the navigation keeps the older quieter visual character.
  • Rework the Discover search header with a clearer full-width query field, visible search state, and explicit reset/apply actions, so browsing no longer feels like a cramped one-shot form.
  • Widen the launcher sidebar rail and relax the account-header truncation, so the classic navigation and profile meta have noticeably more breathing room.
  • Split the logs controls into a responsive search plus filter layout, so the diagnostics toolbar no longer clips against the right edge when the classic sidebar is wider.
  • Raise and center the launcher top toolbar title block again, so page headers no longer look clipped against the top frame when the classic sidebar layout is active.
  • Let the signed-in account name in the sidebar header wrap instead of truncating it, so longer player names stay fully readable in the classic rail.

[2026.04.14] - Add launcher quests workspace

Changed

  • Add a dedicated Quests page to the native launcher, wire the visible quest feed into its own navigation entry, and surface a live quest-point counter directly under the account switcher so sponsored progress is visible without opening the server browser first.

[2026.04.14] - Track sponsored quests from server focus

Changed

  • Add explicit track and untrack controls to the public-server quest section, persist the selected quest in the Public API, and surface the tracked state directly on visible quest cards so the Connect client bridge has one canonical quest to resume on join.

[2026.04.14] - Surface sponsored server quests

Changed

  • Show active sponsored quests for public servers in Discover cards and the public-server focus panel, including reward-point and audience badges so regional and language targeting is visible before joining.

[2026.04.14] - Filter Discover by install target

Changed

  • Add a top-level Discover target selector that keeps profile and managed-server browsing separate, and refetch compatible catalog results for the chosen target instead of mixing profile-only and server-only entries in the same view.
  • Trim repeated install-target controls and fallback hints from Discover result cards, so the global scope bar drives the page once and entry actions stay compact.

[2026.04.14] - Harden skin viewer rendering

Fixed

  • Flip horizontal drag rotation in the launcher skin viewer and use per-frame pointer motion, so dragging left or right now turns the 3D preview in the expected direction.
  • Flip the skin viewer's vertical drag direction, so dragging up or down tilts the preview the expected way.
  • Render clothing and other overlay layers at full opacity, so body parts no longer shine through the preview because of viewer-side alpha tinting.
  • Subdivide projected skin faces and sample atlas texels from their centers, so joint overlaps and transparent edge transitions flicker far less in the 3D preview.
  • Hide raw cape IDs in the launcher cape browser and preview details, so cape cards only show player-facing names instead of technical identifiers.
  • Allow stronger mouse-wheel zoom and shift-drag camera panning in the skin viewer, so close inspection no longer depends on rotation alone.
  • Remove active and inactive cape state labels from the cape browser and preview details, so the cape UI relies on selection styling instead of duplicated status text.
  • Stack cape card actions cleanly and restyle cape previews with a lighter frame plus a larger default cape-viewer model, so cape browsing no longer clips buttons or sits on a harsh dark background.
  • Render Elytra with cape texture on body-mounted wing faces instead of a detached placeholder polygon, so the preview now shows textured wings anchored to the player's back.

[2026.04.14] - Simplify profile browser cards

Changed

  • Remove the profile-browser click hint, the redundant active badge, and the repeated loader/version line, so profile rows stay denser and rely on selection styling plus recent activity instead of duplicate labels.
  • Mark track-based Minecraft versions with * in launcher profile surfaces, so profiles that always follow the latest release or snapshot stay visually distinct from pinned versions.

[2026.04.14] - Remove local-only skin library fallback

Changed

  • Treat launcher skin builder projects as account-backed cloud entries instead of keeping a separate legacy-local library section, so saved projects follow the logged-in account across launchers.
  • Stop duplicating builder skins into local-only cache entries and create the duplicate directly in the cloud collection, so the library no longer reintroduces unsynced local skin state.

[2026.04.14] - Clarify runtime distribution source

Changed

  • Clarify launcher runtime documentation and legacy notes so the current runtime source of truth is the Public Versions API plus S3 artifacts, not the removed Git-backed runtime repository.

Changed

  • Replace the profile RAM text inputs with native min/max sliders and mark the recommended window based on the machine's detected system memory, so profile tuning no longer feels like guesswork.

[2026.04.14] - Force the launcher onto Uebliche Java

Changed

  • Route every launcher Java start through the managed Uebliche Runtime and stop honoring profile-level Java overrides or Mojang runtime fallbacks, so the launcher can no longer switch to foreign Java installations.

Fixed

  • Stop profile builds and pre-download flows from materializing Mojang Java runtimes, so Java provisioning no longer bypasses the launcher-managed runtime pipeline in the background.

[2026.04.14] - Surface download progress in launcher toasts

Added

  • Show active launcher downloads directly in the bottom-right notification stack with a live progress bar, transfer status, and speed, so on-demand runtime installs no longer happen without visible feedback.

[2026.04.13] - Correct the fly viewer pose

Fixed

  • Retune the skin viewer Fly pose into a compact glide and lock the torso-bottom UV mapping with a renderer test, so the preview no longer looks broken when it exposes the underside.

[2026.04.13] - Correct the swim viewer pose

Fixed

  • Make head, arms, and legs inherit torso pitch in the skin viewer and retune the swim pose, so the preview now reads as a forward swim stroke instead of a stiff body with detached limbs.

[2026.04.13] - Recenter the sidebar version label

Fixed

  • Keep the launcher sidebar build number centered on its own footer row, even when an update marker is visible, so the version label no longer shifts sideways.

[2026.04.13] - Neutralize the viewer attack pose

Fixed

  • Rework the skin viewer Attack pose into a diagonal strike with less arm extension, so the preview no longer reads like a salute-like straight-arm gesture.

[2026.04.13] - Correct the sneak viewer pose

Fixed

  • Rebalance the skin viewer Sneak pose with a forward weight shift and a smaller head counter-tilt, so the crouch preview no longer reads like the player is leaning backward.

[2026.04.13] - Fix skin viewer head-arm overlap

Fixed

  • Sort skin preview geometry per triangle instead of per full face, so the 3D viewer no longer lets the head clip through an arm from shallow overlap angles.

[2026.04.13] - Remove the friend avatar status dot

Fixed

  • Stop rendering the extra online-status dot inside launcher friend rows, so the friends list no longer shows a stray circle overlapping the avatar area.

[2026.04.13] - Merge Mojang and Uebliche capes

Changed

  • Rebuild the launcher Capes tab as a mixed-source browser with Mojang and Uebliche filters, search, preview cards, and one normalized active cape selection model instead of the previous Mojang-only preview grid.
  • Persist normalized cape selections in the local launcher skin cache and migrate legacy cape_url entries automatically, so older local data survives the new source-aware model without manual cleanup.

Added

  • Add public uebliche cape browsing, upload-term acceptance, and direct activation flows to the native launcher, including the same preview catalog inside the skin builder with separate Preview only and Set active cape actions that do not write cape ids into saved skin projects.

[2026.04.13] - Keep cape previews proportional

Fixed

  • Preserve the original aspect ratio of cape card previews and builder cape previews, so cape thumbnails are letterboxed inside their cards instead of being stretched across the available width.

[2026.04.13] - Finish cloud-synced skin rollout

Changed

  • Split the Skins library into Cloud and Legacy local, keep Microsoft account skins out of the legacy-only list, and only allow activate/submit/withdraw actions on cloud-backed skins so the rollout matches the new product rules.
  • Copy approved community skins into the signed-in user's cloud gallery from Discover, count those explicit copy/open actions as downloads, and refresh the selected library entry/status immediately after the cloud write completes.

Added

  • Auto-migrate builder-native local skins into the cloud once per signed-in account, preserve unsupported legacy skins as local-only entries, and surface the new migration/copy states directly in the launcher UI.

[2026.04.13] - Publish Uebliche runtimes per Java line

Fixed

  • Restore the local launcher startup after the cloud-first skin library rollout by shipping the missing legacy local skin-library translations, so the native app no longer panics on the Skins page during boot.
  • Map the Skins-page cape preview with a cape-specific face layout, so the visible outer panel and the body-facing inner panel no longer render flipped.
  • Add a compact animation picker to the Skins viewer and animate walk, jump, sneak, attack, sit, swim, and fly poses in the native preview, so skins can now be checked in motion instead of only in the static idle pose.
  • Anchor the animated skin viewer head, arms, and legs to the torso pivots instead of leaving them on static world positions, so sneak/swim/fly-style poses no longer tear the torso apart.
  • Replace the Cape tab text list with a wrapped preview grid, so each cape can now be picked directly from a visual card instead of only from IDs and status text.

Changed

  • Resolve and install service/runtime artifacts per requested Java major version, so launcher-managed Uebliche runtimes can keep Java 8, 16, 21, and 25 builds side by side instead of overwriting one shared install path.
  • Expand the runtime release build/deploy pipeline to publish Java-matrix artifacts under one release, tagging each runtime archive with its Java line so the launcher can ask the Public API for the matching runtime instead of guessing from a single target-only release.
  • Drop the old Storage-backed update-*.json fallback for launcher-managed Connect and runtime updates, so current launcher builds now depend only on the Public Versions resolve and download endpoints instead of legacy API or S3-style manifest paths.
  • Resolve missing runtime archives through current vendor defaults when Adoptium has gaps, so java8 and java16 can now build for macos-arm64, java6 can ship where an x64 archive still exists, and unsupported combos fail fast unless an explicit per-combo archive override is configured.

[2026.04.13] - Cloud-sync launcher skins

Changed

  • Move the launcher skin library to a cloud-first flow, keep the local skins.json only as a cache/fallback mirror, and activate the selected launcher skin through the profile API instead of the old Mojang-account apply action.
  • Remove the visible PNG import and selected-account base-skin bootstrapping flows from the launcher skin builder, so new skins are authored from launcher parts instead of imported external skins.
  • Add Skins and Skin Parts sections to Discover, so approved community launcher skins and approved builder parts are now browsable from the same discovery surface.

Added

  • Store cloud builder skins through new profile/public skin-builder skin endpoints, including immutable runtime manifests and discover submission/withdraw actions.
  • Extend launcher community skin parts with animated layer frames plus part-wide fps/loop metadata, and play those animations in the market editor and builder preview.
  • Allow opening approved community skins from Discover directly as a new builder draft, so community submissions can be reused without leaving the launcher.

Fixed

  • Let public skin and skin-part discovery requests run without requiring a logged-in Microsoft account inside the launcher core, so the new Discover sections do not fail for signed-out users.

[2026.04.13] - Remove the launcher icon background card

Fixed

  • Regenerate the native launcher app icons with a transparent background instead of the old opaque white card, so the macOS app icon and in-app window icon no longer show a white square behind the brand mark.

[2026.04.13] - Refine the skin viewer pivot and cape depth

Fixed

  • Center the Skins preview around the player body, keep manual drag rotation under user control, and cull hidden model faces so the viewer no longer snaps back unexpectedly or renders the cape through the body.
  • Offset the cape slightly behind the torso while keeping it a proper one-pixel-thick cuboid, so cape previews read as a clean rectangular sheet instead of a distorted overlay.
  • Stop drawing the old ghost cape fallback when no real cape texture is available, so skins without a loaded cape no longer show a translucent sheet bleeding through the torso.
  • Hinge the cape from the upper back with a slight backward tilt instead of leaving it as a near-vertical slab, so the preview matches Minecraft proportions more closely and avoids torso overlap in front views.

[2026.04.13] - Fix cape viewer rendering

Fixed

  • Render the Skins page cape preview as a proper textured 3D cape volume with the correct Minecraft cape UV layout and depth ordering, so the cape no longer appears flat or wrongly painted across the player model.

[2026.04.13] - Restore launcher window placement

Fixed

  • Remember the native launcher window position, size, and maximized/fullscreen state in the startup cache and restore that placement on the next launch, so the app opens where it was last used instead of always falling back to the default frame.

[2026.04.13] - Auto-download enabled profile mods

Fixed

  • Materialize enabled profile mods into instance/mods during the launcher's auto-build pass, so toggled or updated mods no longer stay stuck as not downloaded until the next full Minecraft launch.
  • Refresh the selected profile detail and asset views after that auto-build finishes, so the launcher UI immediately reflects when missing mod files have been downloaded.

[2026.04.13] - Surface pending launcher updates earlier

Changed

  • Show an outdated badge next to the launcher version in the sidebar as soon as a newer launcher build is detected, so stale installs are visible without opening the settings page first.

Fixed

  • Check for launcher updates automatically during startup and install pending updates when the launcher is closed, so update rollouts no longer depend on opening Settings and clicking the installer action first.
  • Keep the launcher closed after a close-triggered silent Windows update instead of immediately starting the fresh build again.
  • Tighten the Minecraft Options Sync section in Settings with denser status rows and shorter local/cloud previews, so the sync controls fit more cleanly without pushing the rest of Settings down.
  • Show live updater check feedback in Settings and remember when the launcher last checked for updates, so the updater state is understandable even when no new version is available.
  • Detect when an installed Uebliche Runtime is too old for the selected Minecraft Java requirement, fall back to the matching Mojang runtime for non-strict launches, and fail early with a clear message instead of letting Java exit with a bare code 1.
  • Regenerate the launcher app icons from the transparent branding SVG at 1024px and ship a multi-size Windows .ico, so the native app icon stays sharp instead of relying on the older lower-resolution bitmap export.

[2026.04.13] - Stretch content cards

Changed

  • Stretch top-level launcher content cards to the full page width in the shared settings and summary layouts, and do the same on the Screenshots page so panels like Auswahlwerkzeug, the selected screenshot view, and Letzte Aufnahmen no longer float at their content width.
  • Keep screenshot thumbnails and the selected screenshot preview aspect-correct inside those wider panels, so the screenshots themselves no longer get stretched when the surrounding content cards use the full width.
  • Reduce the default skin-viewer camera scale and re-center the unfocused 3D preview, so the Skins page shows the full player model again instead of clipping almost everything above the feet.

[2026.04.13] - Run Windows updater silently

Fixed

  • Start Windows launcher updates from Settings in silent installer mode, close the running launcher right after the installer has been kicked off, and relaunch the updated app automatically when setup finishes instead of showing the full NSIS wizard.

[2026.04.13] - Speed up launcher shutdown

Fixed

  • Short-circuit the launcher close path and stop waiting on the UI runtime shutdown, so clicking the native close button dismisses the launcher noticeably faster instead of finishing a full frame and blocking on background tasks first.

[2026.04.13] - Fix task manager launcher name

Fixed

  • Embed Windows launcher version metadata with the branded product name, so Task Manager and related system dialogs show Uebliche Launcher instead of the internal launcher-ui crate name.

[2026.04.13] - Shrink launcher baseline size

Changed

  • Lower the native launcher default and minimum window sizes and apply a slightly smaller global UI zoom, so the app fits more comfortably on smaller screens without changing page-specific behavior.

[2026.04.13] - Remove discover all tab

Changed

  • Drop the combined Alle tab from Discover and default the page to Mods, while surfacing Plugins as its own first-class category so each discover feed stays directly reachable without the old aggregate view.

[2026.04.13] - Wrap screenshot rows

Fixed

  • Break the screenshot-card strips on the Screenshots page into multiple rows based on the available viewport width, so Letzte Aufnahmen and trash items no longer run off the right edge on narrower launcher windows.

[2026.04.13] - Limit launcher to one running instance

Fixed

  • Prevent the native launcher from opening a second window while another launcher process is already active, and show a localized startup dialog instead so parallel launcher instances cannot drift apart in state anymore.
  • Forward import-package, share-code, and uebliche-launcher:// startup requests to the already running launcher instance instead of dropping them when the second process is denied.

[2026.04.13] - Fix slim skin preview arms

Fixed

  • Render slim launcher skin previews with the correct 3-pixel arm UV layout and arm anchor positions, so Alex-style skins no longer show broad-arm gaps or detached shoulders in the 3D viewer.

[2026.04.13] - Restore news page scrolling

Fixed

  • Wrap the launcher news page in the standard main-content scroll container and size the news panels against the visible viewport, so the News tab can be scrolled again even when the launcher window is shorter than the combined header and card layout.

[2026.04.13] - Fix launcher settings update checks

Fixed

  • Respect the public versions API update signal in the launcher settings while still suppressing same-build false positives, so Check for updates no longer misses real launcher releases just because the release record version and binary version use different legacy formats.

[2026.04.13] - Treat Am-I-Secure as a normal profile mod

Changed

  • Remove the dedicated profile launch toggle for Am-I-Secure and rely on the regular installed profile mod entry instead, so protected profiles use the same mod management flow as other launcher extensions.

[2026.04.13] - Use umlauts in Windows installer copy

Fixed

  • Render the German Windows installer labels with real umlauts again, so shortcut options and finish-page copy no longer fall back to ae, oe, and ue transliterations.

Fixed

  • Register the uebliche-launcher:// URL protocol during Windows installer runs so hosted import links can open the installed launcher directly after setup.
  • Repair the same Windows URL-protocol registration when the shipped launcher starts, so existing installations can recover the missing deeplink handler without a full reinstall.
  • Stop running UeblicheLauncher.exe processes automatically before Windows install and uninstall steps so launcher updates can replace the binary without manual Task Manager cleanup.

[2026.04.13] - Align launcher release versions

Fixed

  • Use the same timestamped version string for launcher binaries, installers, and published version records, so the native app version no longer drifts from the tracked release label.
  • Restore Cargo.lock after release builds so local launcher worktrees no longer end up with a different checked-in package version than apps/launcher-ui/Cargo.toml.

[2026.04.13] - Embed Windows launcher exe icon

Fixed

  • Embed the launcher icon directly into UeblicheLauncher.exe, so the Windows taskbar and the executable itself no longer fall back to the generic app icon.

[2026.04.13] - Hide Windows background shell popups

Fixed

  • Start recurring Windows background helper commands without opening transient console windows, so switching launcher pages or leaving the app idle no longer flashes multiple cmd popups.

[2026.04.13] - Hide Windows launcher console

Fixed

  • Build the native Windows launcher as a GUI application instead of a console process so starting UeblicheLauncher.exe no longer opens an extra cmd window.
  • Keep the Windows installer finish-page Launch Uebliche Launcher now checkbox enabled by default so Setup starts the launcher immediately unless users opt out.

[2026.04.13] - Add installer shortcut options

Added

  • Add an explicit component-selection step to the Windows installer so users can choose whether Setup should create desktop and Start Menu shortcuts instead of always writing both automatically.
  • Add a finish page to the Windows installer with a direct Launch Uebliche Launcher now option after Setup completes.
  • Reuse the launcher executable icon for the Windows installer, uninstaller, and installed-apps entry so Setup no longer shows the generic NSIS branding.

[2026.04.13] - Unblock local runtime auto-install

Fixed

  • Let the local debug launcher fall back to sha256-verified runtime installs when no explicit runtime public keys were configured at all, so hardened runtime auto-install no longer blocks local launcher runs just because UEBLICHE_RUNTIME_PUBKEYS_B64 was left empty.
  • Accept the legacy single-key UEBLICHE_RUNTIME_REPO_PUBKEY_B64 override alongside the newer comma-separated runtime key env vars, so older local signing setups still plug into strict runtime signature verification.

[2026.04.13] - Surface world backup status

Added

  • Show per-world backup state directly in the native launcher library and detail view, including whether a world is already backed up, which trigger last ran, which version was uploaded, and whether rollback snapshots exist.

Changed

  • Keep launcher world backup metadata alongside the local world identity and update it during backup and in-place restore flows, so rollback timestamps and backup version references stay visible without opening the remote version history first.

[2026.04.13] - Bound launcher session caches

Fixed

  • Prune stale remote preview image payloads and orphaned world-version detail requests during long-running native launcher sessions, so launcher memory no longer keeps growing from abandoned image and world-detail caches.
  • Ignore late async skin, cape, and world refresh results once their backing account, profile, or world has already disappeared, so removed entities cannot repopulate session state after the UI has moved on.

[2026.04.13] - Stabilize profile launch account dropdown

Fixed

  • Rebuild the Profiles launch account picker around the same account-switcher layout and a foreground dropdown overlay, while retinting the menu to the lighter profile workspace colors and keeping profile-card clicks suppressed while that menu is open, so starting a profile with another account works consistently in both the profile list and detail views.
  • Stop the profile-card click target from covering the right-hand action rail, so the Start split button in the profile list can actually receive clicks instead of being shadowed by the card-open interaction.
  • Skip launcher-managed custom mods like map during the generic profile build resolve step, so profiles that rely on later launch-time system-mod injection no longer fail early with no versions available for mod map.

Changed

  • Drop the redundant Open button from profile list cards, because a single click on the card already opens the profile hub and the action rail should stay focused on launching and logs.
  • Drop the duplicate Start split button from the profile-detail header, because the dedicated launch panel already owns account selection, quick-play settings, and the actual launch action.

[2026.04.13] - Auto-maintain signed runtime installs

Changed

  • Start a silent Uebliche Runtime maintenance job as soon as the native launcher boots, so profiles that require the hardened runtime can pull it in before the first actual game launch instead of blocking at launch time.
  • Forward explicit UEBLICHE_RUNTIME_PUBKEYS_B64 values through the launcher run/build/deploy actions in uebliche.dev, so signed runtime releases can be trusted consistently while building and shipping launcher binaries.
  • Stop publishing legacy launcher update-*.json files during launcher deploys, because the shipped launcher now resolves releases directly through the public versions API instead of reading S3 manifests.

[2026.04.13] - Restore Windows installer packaging

Changed

  • Build a real Windows NSIS installer alongside the portable ZIP again, and prefer that installer for the standard windows-x86_64 launcher release while keeping the portable artifact on its own optional windows-x86_64-portable track.

Fixed

  • Stop copying stale WebView2Loader.dll files into the portable Windows launcher ZIP when the native launcher binary does not import that DLL anymore.

Changed

  • Highlight public servers in the native launcher only while their featured flag or configured feature window is active, and sort the explorer using that effective live state instead of a static flag.
  • Carry featured server emphasis into the public profile browser and discover profile cards so event-promoted server profiles surface more clearly alongside the featured launcher server list.

[2026.04.12] - Surface discover profile import progress

Fixed

  • Show an immediate Discover status message as soon as a modpack or public shared profile import starts, so the Import profile action no longer feels dead while the launcher is still converting the profile in the background.

[2026.04.12] - Smooth discover load-more rendering

Fixed

  • Stop the native launcher Discover lists from rebuilding and recloning full result sets on every frame after repeated Load more, so longer modpack, mod, server, and world feeds stay responsive while browsing.
  • Normalize public profile search keys once per filter pass instead of once per entry, so mixed public-profile feeds no longer add avoidable CPU work while rendering the discover page.
  • Show native launcher Discover section counts from summed endpoint totals instead of only the locally preloaded rows, so badges for mods and modpacks reflect the real result size behind the current query, and worlds can do the same once the updated public API is running.

[2026.04.12] - Import modpacks as launcher profiles

Added

  • Let native launcher Discover -> Profiles import Modrinth and CurseForge modpacks straight into new local launcher profiles, so packs no longer stop at the details browser and can be converted into runnable profiles in one step.
  • Convert bundled override files and local mod jars during modpack import, so pack-specific configs, resources, and embedded addons land in the created profile instead of being dropped.

[2026.04.12] - Inline launcher profile editor

Changed

  • Render the native launcher Edit profile flow inline inside the selected profile workspace instead of opening a detached overlay window, so editing now stays in the same content column and matches the rest of the launcher detail layout.

[2026.04.12] - Simplify launcher skin selection

Changed

  • Let native launcher skin-library rows switch the selection on a simple click, so the dedicated View button is no longer needed for browsing entries.

[2026.04.12] - Keep launcher server status cached

Fixed

  • Keep cached launcher server ping, MOTD, and player counters visible across page switches and directory refreshes, so server cards no longer drop their status pills while fresh data is still loading.
  • Merge refreshed launcher server status into the existing row state instead of blanking missing fields first, so re-pings now only overwrite values that actually changed.

[2026.04.12] - Restore launcher skin viewer textures

Fixed

  • Rebuild missing full skin textures for older local builder skins before drawing or applying them, so the native launcher library preview can open the 3D viewer again instead of getting stuck on No skin texture.

[2026.04.12] - Unify launcher search chrome

Changed

  • Rebuild the native launcher search inputs around one shared search field with a consistent badge, framed input, and inline clear action, so Profiles, Discover, Mods, Logs, Chat, Feedback, and skin-part browsing all read like one launcher-wide pattern instead of page-local variants.
  • Wire Enter and inline clear interactions through the shared launcher search field, so submit-driven pages like Discover and Mods keep their explicit refresh flow while local filters reset in the same compact way across the rest of the launcher.

[2026.04.12] - Backfill launcher profile icons

Fixed

  • Materialize a generated fallback icon for launcher profiles whenever one is missing, so newly created, imported, existing, and reset profiles no longer surface a null icon path.

[2026.04.12] - Tighten launcher friends list

Changed

  • Compress native launcher friend rows into a calmer two-line layout with smaller avatars, lighter status markers, and one compact group-toggle action, so the social rail shows more friends at once instead of feeling button-heavy.

[2026.04.12] - Cache launcher account skins

Changed

  • Persist native launcher account skin previews in the local startup cache and rebuild avatar head sources from them on restore, so Microsoft account skins are already available when the launcher opens instead of waiting for a fresh preview fetch every start.

[2026.04.12] - Stretch launcher friends rail

Changed

  • Let the native launcher social friends rail fill the full available content height in the wide desktop layout, so the left list panel no longer ends early while the rest of the social workspace still has free vertical space.

[2026.04.12] - Cache launcher friend avatars

Fixed

  • Reuse cached Minecraft head textures for native launcher friends and render those heads directly in the friends rail, so the social list no longer falls back to plain initials after the first load.

[2026.04.12] - Refine troubleshooting modal

Changed

  • Rebuild the native launcher troubleshooting window around a calmer hero header, clearer setup state cards, and a darker diagnostics preview panel, so crash-analysis prep feels structured instead of stacked into one long generic form.
  • Tighten the troubleshooting action row with readiness-aware buttons for analysis, setup refresh, login, and MCP connect or disconnect, so blocked Codex steps are easier to understand before anything is sent.
  • Present Codex progress and result sections in distinct tinted panels, so summaries, probable causes, fixes, and evidence are easier to scan during and after launcher crash analysis.

[2026.04.12] - Calm launcher status toasts

Fixed

  • Stop native launcher status toasts from opening the full-message hover tooltip for ordinary truncated updates, so short-lived notifications no longer cover the workspace with a second oversized bubble while hovering them.

[2026.04.12] - Refresh launcher chat like Discord

Changed

  • Rework the native launcher Chat workspace into a denser Discord-like layout with avatar-led DM and group rows, a clearer channel header, and a grouped message timeline instead of one isolated card per message.
  • Move native launcher chat composing into one docked compose panel with inline attachments, a collapsible poll editor, and a multiline message box, so sharing files, screenshots, polls, and text feels closer to one continuous chat flow.

[2026.04.12] - Make discover loading animation blocky

Changed

  • Replace the native launcher Discover workspace's round spinner rows with a block-based loading animation, so catalog, profile-feed, world, and detail loading states match the launcher's chunkier visual language.

Fixed

  • Open the native launcher Microsoft device-code browser action with the documented verification_uri only, so the account-link flow no longer tries to auto-inject the OTC code into an unsupported Microsoft URL variant.
  • Combine the native launcher Microsoft device-code CTA into one action that opens the browser and copies the code, so the sign-in flow no longer splits the two required steps across separate buttons.
  • Start polling the native launcher Microsoft device-code sign-in automatically as soon as the code is issued, so the account flow no longer depends on a separate manual verification step.

[2026.04.12] - Rebalance launcher dashboard news rail

Changed

  • Rebalance the native launcher dashboard news hero into a 75/25 split, so the latest article keeps most of the header width while older entries move into a denser right-hand news list.
  • Rebuild the native launcher News workspace into a split feed with a selectable article rail and a dedicated reading pane, so browsing several posts no longer means scrolling through one long stack of oversized cards.
  • Format launcher news timestamps with the shared human-readable date helper, so news cards no longer expose raw RFC3339 strings like 2026-02-04T23:00:00+00:00.
  • Hide the redundant published status pill on launcher news cards, so released posts only surface the useful metadata instead of repeating their default state.
  • Tone down the dashboard screenshot filename into a small muted label with hover text, so the showcase keeps focus on the image instead of a large raw PNG filename.
  • Preserve line breaks and spacing when the launcher parses server MOTDs, so multi-line server messages no longer collapse into one run-on line in the quick-start cards and server views.
  • Use real German umlauts in the launcher feedback UI labels, so headings and filter labels render as Rückmeldungen, Einträge, Bestätigt, and Gelöst instead of ASCII fallbacks.

[2026.04.12] - Unify launcher layout rails

Changed

  • Route the native launcher Profiles, Discover, and Servers workspaces through one shared viewport-width helper, so cards and section frames all respect the same visible content width instead of page-local width guesses.
  • Extend shared launcher entity cards with configurable copy-width and action-rail constraints, so broad desktop windows keep text blocks visually tied to the right-hand actions instead of stretching into oversized gaps.

Fixed

  • Move native launcher Discover catalog and community-server rows onto the shared entity-card rail, so install, details, import, and quick-play actions stay pinned to a stable trailing column instead of drifting or clipping.
  • Align native launcher Discover profile-feed cards with the same wide trailing action rail used by resourcepacks and the other catalog rows, so mixed sections no longer jump between narrow and wide button columns.
  • Reuse the shared popup-trigger painter for the native launcher profile start split button, so the account dropdown follows the same popup semantics as the working Worlds overflow menus.

[2026.04.12] - Hide launcher server order badges

Changed

  • Remove the visible #1, #2, ... order badges from native launcher saved-server cards, so the list stays cleaner while drag-and-drop still defines the actual order.

[2026.04.12] - Deduplicate launcher toast hover hints

Fixed

  • Disable the extra native launcher toast elision tooltip in the bottom-right notification stack, so hovering a truncated notification now shows only one hover hint instead of two overlapping copies.

[2026.04.12] - Compact launcher server cards

Changed

  • Shrink the native launcher Servers cards into a denser row layout with one compact launch button and icon-only favorite, edit, and remove actions, so more saved servers stay visible in the workspace at once.
  • Replace the saved-server move-up and move-down controls with a drag handle plus drop indicator, so the personal server order can be rearranged directly by drag and drop inside the launcher list.

[2026.04.12] - Add profile account defaults

Added

  • Let native launcher profiles store their own default account, so a profile can consistently launch with a preferred identity instead of always inheriting the current launcher-wide selection.

Changed

  • Turn the native launcher Starten action on profile cards and profile detail surfaces into a split launch control with an account dropdown, so multi-account setups can switch the launch identity directly from the start action.
  • Show each profile's configured default account directly on local profile cards when more than one account exists, so the preferred launch identity stays visible in the profile browser.
  • Extend the native launcher profile edit dialog with a profile-specific default-account selector, so profile identity preferences can be managed alongside RAM, Java, and archive settings.

Fixed

  • Restore the native launcher profile split-button arrow as its own dedicated account-menu trigger, so the account dropdown stays visible and opens reliably instead of collapsing into a second full-width launch action.

[2026.04.12] - Compact launcher worlds workspace

Changed

  • Replace the visible native launcher Worlds action labels on browser cards and the detail header with denser icon-led mini-buttons plus short labels, so the page keeps the same launch, storage, backup, history, and overflow actions without letting the action column dominate each card.
  • Collapse the native launcher Zuletzt gespielt world card onto the same compact shared-card language as the world library and shrink world preview/action spacing, so the whole Worlds workspace reads as one tighter system instead of mixing one oversized hero row into smaller list cards.
  • Tighten the native launcher Cloud-Speicher card typography and spacing as well, so the world overview stack wastes less vertical room before the actual saves list starts.
  • Keep conflict-resolution and overflow-menu entries textual while only compressing the always-visible world actions, so destructive or infrequent choices stay explicit once the compact action row opens.

[2026.04.12] - Pin discover actions to the card edge

Fixed

  • Reserve dedicated right-hand action columns for native launcher Discover catalog and public-server cards, and stretch the header search bar across its reserved width, so install/search actions stay flush on the trailing edge instead of drifting under the copy.
  • Lower the native launcher Discover action-column fallback threshold, so desktop-width catalog and server cards keep their right-hand action rail instead of collapsing into the stacked mobile layout too early.

[2026.04.12] - Pin saved server actions to the card edge

Fixed

  • Reserve the full native launcher saved-server action column and stretch its action bar to that width, so Direkt starten, reorder, and management buttons stay flush on the right edge instead of floating inward on wider server cards.
  • Clamp the native launcher saved-server workspace to the real scroll viewport width, so card rows stop pushing past the right screen edge when the action column is visible.
  • Clamp native launcher entity cards to the real page viewport before rendering their frames, so profile and other shared card layouts stop leaking past the right window edge when inline action rails are active.
  • Derive the shared launcher page viewport width from the current cursor position to the clipped right edge, so page cards stop double-counting the left inset and no longer overshoot the visible content area.

[2026.04.12] - Refine skin builder preview

Changed

  • Constrain the native launcher skin builder 3D preview card to a smaller viewer frame and scale, so the model no longer dominates the details column while editing parts.
  • Reduce the default native launcher skin preview scale and height as well, so the library and cape preview panels keep the full character visible instead of zooming too far in.
  • Clip the native launcher skin preview mesh to its viewport and hide back equipment in the builder preview, so the 3D model and cape no longer bleed out of the preview card while editing body parts.
  • Center the native launcher builder Basis preview on the full body instead of the upper torso and reduce the builder-only scale further, so the complete base skin stays visible while editing the base slot.
  • Load remote skin textures for the native launcher cape viewer and texture the selected cape in the 3D preview, so the Capes page no longer falls back to an empty viewer or a placeholder cape shape.

Fixed

  • Re-map the native launcher skin builder viewer faces to the correct Minecraft skin slices, so front, back, top, and side textures render on the right cuboid faces instead of appearing mirrored or flipped while rotating the preview.

[2026.04.12] - Align launcher discover and worlds actions

Changed

  • Move the native launcher Discover search controls into the header on wider layouts and right-align the Worlds action rows, so both pages follow the same trailing-edge action pattern as the refreshed server workspace.
  • Reserve the remaining action-row width before rendering launcher page controls, so Servers, Discover, and Worlds buttons now snap to the true right edge instead of only reversing their order inside the row.
  • Remove the redundant Welt card labels plus the Link-Ziel meta line from the native launcher Worlds cards, and move the world actions into a dedicated right-hand action column on wider cards.
  • Drop the extra world-backup CTA hint under unbound world actions, so the Worlds cards keep the action area cleaner and less repetitive.
  • Cap the copy width of native Worlds cards before the action column, so the buttons stay visually tied to the world content instead of drifting farther away on very wide windows.
  • Push the native Worlds action column against the true trailing edge of each card even when the content width is capped, so the buttons stay fully right-aligned instead of floating inward.
  • Route launcher timestamps through one shared formatter, so fresh entries now read as relative times like vor 5 min while older ones fall back to a short date and time instead of exposing raw RFC3339 strings.
  • Size native entity cards from the real remaining UI width instead of the broader clip rect, so Worlds cards stop growing past the page content area on wider windows.
  • Size the native Profiles browser and list panels from the real remaining UI width as well, so profile cards stop drifting past the content column on wider windows.
  • Size the native Discover cards from the real remaining UI width too, so the discover panels stop stretching past the page column on wider windows.

[2026.04.12] - Align launcher server actions

Changed

  • Right-align the native launcher Servers action rows in the main workspace, saved-server cards, public server views, and server editor, so server controls sit consistently on the trailing edge instead of drifting through each panel.
  • Move Add server and Discover server into the My servers header row and keep them right-aligned beside the section title, so the main server actions stay anchored to the saved-server workspace they affect.

[2026.04.12] - Make launcher feedback workspace easier to scan

Changed

  • Rework the native launcher Feedback page into a calmer two-part workspace with a dedicated compose card, a structured browser panel, and richer feedback cards that surface status, severity, labels, and context at a glance.

Fixed

  • Add native launcher feedback search plus status/type filters, so longer personal feedback histories stay easy to narrow down instead of turning into one unstructured list.

[2026.04.12] - Refine launcher social chat workspace

Changed

  • Rework the native launcher Friends and Chat area into a left-hand friends/groups rail plus a right-hand active conversation panel, and show the selected direct chat with the partner's profile image in the header.
  • Compact the native social workspace spacing and move the add-friend control into the friends rail header as a small + action, so the conversation area keeps more room for the active chat.

Fixed

  • Keep only the friends/groups list and the active chat history scrollable in the native social workspace, so requests, actions, attachments, polls, and the composer stay pinned while browsing longer lists.
  • Remember the last selected social conversation in the native launcher startup cache and restore it on the next open when that chat still exists.
  • Prefer the actual social player name when resolving direct-chat profile images, so the selected chat header can load the partner avatar instead of falling back to a combined conversation label.
  • Use the social participant ID for opening direct chats and keep friend-record IDs only for friend management actions, so the Chat action opens the correct conversation again after stale chats are pruned.

[2026.04.12] - Simplify launcher servers workspace

Changed

  • Remove the oversized native launcher Servers hero block, keep the page shell fixed, and move server creation into an Add server dialog so the workspace stays focused on the saved list.

Fixed

  • Make only the saved-server list itself scroll inside the native launcher Servers page, so the surrounding controls stay pinned while longer server libraries remain browsable.
  • Size the saved-server scroll area from the card's real remaining inner height, so the bottom edge of the native launcher Servers page no longer clips list rows or action buttons.
  • Stretch saved-server row cards across the full list width in the native launcher, so entries no longer collapse to their content width.

[2026.04.12] - Expand launcher server list viewport

Fixed

  • Let the native launcher server list grow with the page instead of trapping saved servers inside a tiny nested scroll area, so more server cards stay visible at once on the Servers page.

[2026.04.12] - Aggregate launcher Discord presence across sessions

Added

  • Aggregate Discord Rich Presence across multiple launcher-started Minecraft sessions, so Discord now shows the primary game plus +N additional sessions instead of fighting over one status per process.
  • Start a per-launch local runtime bridge for launcher-managed game sessions, so in-game mods can stream local session presence back to the launcher without exposing raw server addresses to Discord.

Changed

  • Resolve multiplayer Rich Presence labels through launcher-known server names first and otherwise fall back to generic activity labels, so multi-instance presence stays privacy-safe even when several profiles are open at once.
  • Keep the launcher as the single Discord IPC owner while aggregating one social presence update per account, so multiple running profiles no longer overwrite each other with competing direct updates.

Fixed

  • Write a launcher-managed allowed_symlinks.txt into each profile instance when shared-library worlds are linked into saves/, so Minecraft can open those saves in-game without stopping on the symbolic-links warning dialog.
  • Constrain the native profile icon studio to the visible launcher viewport and switch it to a stacked layout on narrower windows, so the dialog no longer clips its title, controls, or footer actions.

[2026.04.12] - Complete native skin builder parity

Added

  • Add an explicit draft flow to the native launcher skin builder with New project, Save, and Save as, so builder work can start from a selected library skin or a blank base without depending on an existing builder entry.
  • Add visual part cards, per-layer color targets, gradient tint controls, and a dedicated layer-order dialog so stacked builder parts can be previewed and adjusted natively without falling back to the old Tauri UI.
  • Add community part status chips, market-side builder handoff, previewable layer editing, and a submit confirmation dialog so native uploads cover the full end-user part workflow.

Changed

  • Split native launcher skin library, builder, and market actions into focused skin modules instead of extending the previous oversized skins/actions.rs entry point.
  • Route native skin builder and market copy through launcher i18n keys for both de and en, and correct older English skin strings that still shipped with German text.

Fixed

  • Stop builder drafts from silently becoming unsaveable when they have no editing_skin_id, and keep multi-select headwear editing focused on the chosen stacked part instead of forcing deselection.
  • Restrict approved community parts to rename/description re-submits in the native editor while still allowing pending and blocked parts to be fully updated and re-uploaded.

[2026.04.12] - Add account context actions in sidebar

Added

  • Add a right-click context menu to the native launcher account switcher in the top-left sidebar so stored accounts can be marked as the launcher default or removed without opening the full accounts page.
  • Add a confirmation dialog before a launcher account is removed, so accidental account deletes require an explicit second step.

[2026.04.12] - Add Discord Rich Presence

Added

  • Add Discord Rich Presence for the native launcher so Discord can show whether the launcher is idle, preparing a profile, or running a play session while the launcher window stays open.

Changed

  • Add a new launcher settings toggle for Discord Rich Presence, keep it enabled by default, and clear the status again as soon as the launcher closes or the toggle is turned off.
  • Limit multiplayer Rich Presence to friendly labels only, so launcher activity never exposes raw server addresses to Discord.

[2026.04.12] - Add .uebliche profile packages and hosted imports

Added

  • Add native launcher export and import support for versioned .uebliche profile packages, including a preview that shows package metadata, bundled servers, and embedded custom mods before anything is written locally.
  • Add an optional export mode that embeds only launcher-local custom mod JARs, so offline or filesystem shares can carry source=custom mods without bundling unrelated instance data.
  • Add a hosted package landing page under /launcher/import so websites can keep a .uebliche URL, try the launcher deeplink first, and still preserve the same import target after installation.

Changed

  • Make .uebliche the documented launcher profile package format while keeping legacy ZIP archives as silent import-only compatibility.
  • Default imported package IDs to generated local targets instead of silently reusing the package source ID, and gate bundled server imports behind explicit user opt-in during preview.
  • Extend the native launcher bootstrap/import flow to accept local package paths, hosted package URLs, and uebliche-launcher://import?... deeplink arguments in the same preview-based import surface.

[2026.04.12] - Add managed server installs to Discover

Added

  • Add a native Plugins category to launcher Discover plus a managed-server target picker, so Paper plugins and server-side mods can be queued without leaving the launcher.

Changed

  • Let Discover switch mod installs between the active profile and a selected managed server, while keeping auto-builds only for real profile mod installs.
  • Load managed server targets from the Public API during Discover refresh and surface dedicated status/error copy for server-side install queueing.

[2026.04.12] - Remove manual profile build button

Changed

  • Trigger launcher profile builds automatically in the background after build-relevant profile changes, so the profile hub no longer depends on a separate manual pre-build step.

Removed

  • Remove the native Run build action from the launcher profile detail page because the launcher now resolves fresh locks on its own.

[2026.04.12] - Add native discover project details

Added

  • Add a native Project details window on the launcher Discover page so mods, resourcepacks, shaderpacks, and catalog modpacks can be inspected without being sent out to provider websites.

Changed

  • Replace the Open in browser action on native Discover catalog cards with an in-launcher details flow that keeps install actions and version metadata inside the launcher UI.

[2026.04.12] - Complete native friends and chat actions

Added

  • Add full native launcher friends actions for request notes, incoming and outgoing request handling, favorite toggles, visibility changes, remove, block, and report directly from the community page.
  • Add native group-chat creation, attachment upload, screenshot attachment, and poll composing and voting so the launcher can use the public social API without falling back to Dash.

Changed

  • Add conversation search and direct-vs-group filtering to the native launcher chat view, and keep active conversation state in sync when direct chats are opened optimistically.
  • Render chat attachments and polls directly inside native launcher message rows so the launcher mirrors the public API payloads used by mobile.

[2026.04.12] - Add maps mod install flow in world detail

Added

  • Add a direct Install maps mod action on the native launcher world-detail map panel when a profile does not have the map mod enabled yet.
  • Add a persistent Enable by default for all profiles toggle for the maps mod so newly created and imported launcher profiles can pick it up automatically.

Changed

  • Keep launcher-managed custom mod entries like map enabled during profile builds so the launcher can inject their artifacts at launch time instead of auto-disabling them as unresolved manifest mods.
  • Inject the workspace or published map mod artifact into launch locks when a profile has the custom map entry enabled, so exported world-overview.png data can show up directly in the launcher world detail flow.

[2026.04.12] - Add options sync viewer and conflict flow

Added

  • Add a native Minecraft options sync section in launcher settings with a local/cloud config viewer for the shared options.txt state.
  • Add a conflict dialog when options sync is re-enabled and the local config differs from the cloud copy, so the user can explicitly choose which side should win.

Changed

  • Keep the shared Minecraft options sync enabled by default in the stored launcher config state, while still allowing it to be turned off globally from settings.
  • Capture options.txt back into the shared launcher config when a launched profile exits, so cross-profile options sync reflects the latest in-game changes.

[2026.04.12] - Add native mod actions on profile detail cards

Added

  • Add native Enable, Disable, and Remove actions directly on launcher profile mod cards so manifest mods can be managed without leaving the profile detail page.

Changed

  • Refresh profile detail and asset summaries immediately after a mod card action completes, so the native profile view reflects manifest changes without a manual reload.

[2026.04.12] - Merge duplicate catalog cards across providers

Changed

  • Collapse matching Discover catalog results from Modrinth and CurseForge into a single launcher card instead of listing the same project twice when both providers return it.
  • Prefer the source with the higher download count as the primary install target for merged catalog cards, while still surfacing the additional provider badges on the same entry.

[2026.04.12] - Surface world settings save errors inline

Changed

  • Show world settings save failures directly inside the native launcher Settings form, so rename and validation problems appear where the user clicked Save instead of only in the transient toast area.
  • Translate common world rename conflicts like duplicate folder names into clearer inline launcher copy instead of exposing raw core error strings.
  • Show Last played on the native world detail page as a relative time like vor 5 min / 2 h ago instead of exposing the raw timestamp string.
  • Let a second click on the Worlds sidebar entry close the open world detail view and return to the world list.

Fixed

  • Defer world display-name writes until rename conflicts have been checked, so failed folder renames no longer leave partial metadata changes behind.
  • Decode Modrinth webp artwork in the native Discover cards again, so project icons render instead of falling back to letter placeholders.

[2026.04.12] - Add profile icon studio

Added

  • Add an Icon section to the native launcher profile editor with Studio, Upload, and Remove actions plus a live preview for the current profile icon state.
  • Add a curated profile icon studio with Minecraft-inspired backgrounds, frames, motifs, badges, palette presets, and custom color controls so launcher profiles can get a built-in icon without leaving the app.

Changed

  • Save launcher-built profile icons as normalized 256x256 PNG files plus a local icon.builder.json recipe so generated icons can be reopened and edited later.
  • Normalize uploaded PNG and JPEG profile icons to square PNG output and carry icon PNGs plus builder recipes through launcher profile export, import, and share flows.

[2026.04.11] - Add world detail hub and trim flow

Added

  • Open a dedicated world detail hub from the native Worlds page with separate Overview, History, Map, and Settings sections instead of keeping everything on one card list.
  • Show exported world-overview.png maps directly in the launcher and add an interactive keep-box editor that snaps to chunk boundaries for trim selection.

Changed

  • Route local world backup, share, and publish flows through the new trim-aware world pipeline so outbound exports use the current keep selection by default without mutating the original save first.
  • Move world version history into the detail hub so remote versions, restore actions, and sharing work from one focused surface instead of an inline card expander.
  • Expose safe world basics like rename, difficulty, commands, and selected gamerules from native launcher settings while leaving deeper level data read-only in v1.

[2026.04.11] - Add Codex launch troubleshooting

Added

  • Offer a native Mit Codex analysieren flow after failed launches and from the profile detail or logs pages, so crashes and abnormal exits can be diagnosed without leaving the launcher.
  • Add a dedicated Codex troubleshooting setup area in native launcher settings with model selection, reasoning control, MCP registration, and an auto-offer toggle for failed launches.

Changed

  • Build a redacted launcher diagnostics bundle with profile summary, exit status, latest.log, and the newest crash report excerpt before any Codex request is sent, and keep the preview copyable inside the troubleshooting sheet.
  • Restrict the launch-troubleshooting Codex integration to a read-only MCP scope backed by launcher-cli mcp-server --scope troubleshooting, so the v1 assistant can inspect diagnostics but cannot mutate launcher profiles or settings.

[2026.04.11] - Add screenshot trash and batch tools

Added

  • Keep deleted launcher screenshots in a dedicated trash for 30 days, so accidental deletes can be restored before they are removed permanently.
  • Add batch selection on the native launcher screenshot page with Shift range selection plus Ctrl/Cmd toggles, so multiple screenshots can be tagged, trashed, restored, or deleted in one action.

[2026.04.11] - Centralize launcher worlds across profiles

Changed

  • Move launcher-managed singleplayer worlds into a shared library/worlds store and link them back into each profile instance so every launcher profile can access the same central world inventory.
  • Import dropped worlds and public world copies straight into the shared world library instead of keeping separate physical save folders inside one profile only.

Fixed

  • Rewire world restore/import-copy flows to recreate the profile save link after writing a new world payload, so centrally stored worlds stay visible in the owning profile and on the Worlds page.

[2026.04.11] - Add screenshot context menu

Added

  • Add a right-click context menu to screenshot previews in the native launcher so screenshots can be copied to the clipboard or deleted directly from the gallery and dashboard.

Changed

  • Remove the decorative rounded border from rendered screenshot previews so the native gallery shows captures edge-to-edge without the extra ring around the image.

[2026.04.11] - Resume launcher boot from cached data

Added

  • Persist the native launcher's last known profiles, accounts, worlds, servers, screenshots, and community data under the launcher cache so a restart can reopen with populated data before fresh background refreshes complete.

Changed

  • Restore the last active launcher tab plus the selected profile, account, and public server from the cached startup snapshot so the native shell resumes closer to the previous session instead of always rebuilding from an empty UI.

[2026.04.11] - Import dropped worlds, mods, and packs natively

Added

  • Allow dragging local worlds, mod JARs, resource packs, and shader packs onto the native launcher so imports can start from anywhere in the app without opening separate pickers first.
  • Add a native drop review flow that only asks for the target profile on mod imports and only asks for the pack type when a dropped pack could be either a resource pack or a shader pack.
  • Add a global resource-pack and shader-pack library under the launcher root and mirror imported packs into every launcher profile automatically.

Changed

  • Import dropped worlds into the currently active launcher profile as brand-new local saves with unique -import suffixes instead of overwriting existing save folders.
  • Mark mirrored global packs inside the native profile asset browser so shared library content is visible next to profile-local files.

[2026.04.11] - Stream screenshot previews in the native launcher

Changed

  • Move native launcher screenshot decoding off the egui render thread and upload finished textures in small batches, so opening Screenshots no longer blocks while local PNG previews are discovered.
  • Keep screenshot cards and the feature preview responsive with placeholder states while textures stream in, so the page fills progressively instead of hitching on first open.

[2026.04.11] - Read Connect screenshot metadata from PNG files

Changed

  • Read native launcher screenshot context directly from embedded uebliche.connect PNG metadata instead of relying on a sidecar JSON file, and surface capture time plus runtime details in the screenshot detail views.

Fixed

  • Write Connect screenshot metadata back into the captured PNG on the mod side so new launcher screenshots keep their world, server, loader, and Minecraft-version context inside the image file itself.

[2026.04.11] - Make the native logs workspace easier to read

Changed

  • Replace the native launcher Logs workspace's competing multi-pane stream layout with one primary live console plus compact stream selectors, so launcher and core output no longer fight over several tiny scroll areas.
  • Expand the active log viewer and compress the surrounding status chrome, so the page spends most of its height on one practical, readable terminal instead of multiple stacked diagnostic boxes.

Fixed

  • Point the new Logs filter control at the shipped launcher translation catalog again so opening the logs workspace no longer panics in local debug runs.
  • Size the native Logs stream panel from the real remaining workspace height again so the lower part of the console no longer gets clipped when the tab is opened in shorter windows.
  • Render the native Logs message column inside a real wrapped text cell again so long diagnostics stay visible instead of disappearing after the new narrow-width layout pass.
  • Bind the native Logs message column to the actual remaining row width so log text no longer falls out of the window on the right and no longer collapses into repeated core source cells.
  • Hard-wrap long native Logs messages against the visible row width so diagnostics can never extend past the right edge of the launcher window.
  • Let long native Logs lines wrap inside the message column again so diagnostics no longer get cut off at the right edge of narrower windows.
  • Derive the native Logs message column from the fixed row geometry again so the visible text width cannot exceed the console viewport even when egui's horizontal layout reports too much room.
  • Clamp the native Logs header and row rendering to the actual console viewport width so scroll-content sizing can no longer push message text past the right edge of the launcher window.
  • Move native Logs messages onto their own wrapped line below the fixed metadata columns so long diagnostics stay inside the visible console width instead of overflowing to the right.
  • Mirror the native Logs header layout to the new two-line row structure so SEQ/LVL/AGE/SRC stay above their metadata cells and MSG sits above the wrapped message line instead of floating between columns.
  • Store native Logs as timestamped entries and replace the old synthetic age/index columns with a real TIME column, so the log table shows when an entry arrived and no longer wastes space on the internal sequence number.

[2026.04.11] - Redesign the native servers workspace

Changed

  • Rebuild the native launcher Servers page around one stronger hero workspace so own servers, active profile context, quick play, and the Discover handoff now read as one curated flow instead of three unrelated stacked cards.
  • Restyle personal server entries into cleaner list rows with denser metadata, clearer quick-play state, and a more compact action cluster on desktop so the saved-server list scans faster and feels less cluttered.

[2026.04.11] - Refocus the servers tab on personal entries

Changed

  • Reduce the native launcher Servers page to the player's own saved list so editing, ordering, favorites, direct launch, and quick play stay in one dedicated workspace without the public-server explorer mixed in.
  • Add one direct call-to-action from Servers into Discover > Servers and retarget public-profile shortcuts there, so new server discovery now happens on the dedicated Discover surface before targets are imported into the personal list.

[2026.04.11] - Refine launcher sidebar overlines

Changed

  • Replace the native launcher sidebar's repeated Minecraft overline with page-specific context labels for worlds, screenshots, servers, discover, and skins so the navigation reads by task instead of one generic bucket.

[2026.04.11] - Refine German Discover labels

Changed

  • Translate the native launcher Discover entry to Entdecken in German and relabel its section eyebrow from Minecraft to Erkunden so the page reads as discovery instead of a generic game bucket.

[2026.04.11] - Turn the native mods tab into Discover

Changed

  • Replace the native launcher Mods navigation entry with Discover so the sidebar, toolbar, and page header now frame one shared marketplace instead of a mods-only browser.
  • Split Discover into All, Mods, Resourcepacks, Shaderpacks, Profiles, Servers, and Worlds, with All stacking the discovery sections in one place and each full category keeping its own loading state.
  • Swap the old tile icon for a compass glyph so the new Discover tab reads as exploration rather than profile-local asset management.

Added

  • Add direct native install flows from Discover into the active profile for provider mods, resource packs, shader packs, and first-party Uebliche Extensions.
  • Add a combined Profiles feed in Discover that surfaces Modrinth modpacks, CurseForge modpacks, and importable public Uebliche shared profiles in one place.
  • Add public world browsing plus local-copy import from the Uebliche public API so published worlds can land in the selected profile's saves/ directory without rebinding the original cloud identity.
  • Add direct Discover server actions for import, quick play, and jumping into the existing server workspace without leaving the marketplace context first.

[2026.04.11] - Restore mod browser icons

Fixed

  • Pass provider icon URLs through the native launcher Mods browser cards again so Modrinth and CurseForge search results show their project artwork instead of fallback initials.

[2026.04.11] - Keep ModList injection aligned with the mods workspace

Fixed

  • Resolve the first-party ModList system mod from the real mod/mods workspace again so local launcher runs can pick version-matched release artifacts across the supported Minecraft versions instead of falling back to stale cache entries.

[2026.04.11] - Keep mc-wrapper launch plans readable

Fixed

  • Parse the native launcher's camelCase wrapper plan files again so profile starts no longer fail immediately with mc-wrapper: failed to parse plan JSON after launch preparation succeeds.

[2026.04.11] - Route native profile launches through mc-wrapper

Fixed

  • Start native launcher profiles through mc-wrapper again so profile launches inherit the sanitized wrapper environment, can resolve bundled wrapper binaries in dev and app-bundle layouts, and keep the shell and CLI launch path aligned.
  • Allow the native sandbox to read the trusted guard-agent install directory during launch preparation so wrapped starts do not lose access to the optional guard-agent artifact.

[2026.04.11] - Tighten the native logs console layout

Changed

  • Restyle the native launcher Logs page into a denser, darker console view with clearer stream separation for launcher, core, and download activity.
  • Add fixed technical columns for sequence, level, age, source, and message so long log streams scan faster and feel more like an operational terminal.

Fixed

  • Pull the native launcher Logs page back onto the shared launcher card and hero surfaces so the diagnostics view no longer looks detached from the rest of the UI, while keeping the inner log table technical.
  • Move the remaining native Logs page labels and status copy onto launcher translation keys so German and English stay aligned across the hero, stream headers, and download cards.

[2026.04.11] - Turn the mods page into a combined browser

Changed

  • Replace the native Mods page's old profile-manifest view with one combined browser for CurseForge, Modrinth, and Uebliche Extensions.
  • Add one shared search bar plus endless result loading so the launcher can keep pulling more hits from each provider without switching tabs or sources.

[2026.04.11] - Fix German umlauts in launcher copy

Fixed

  • Replace remaining ae/oe/ue fallbacks in the native launcher's German translations with real umlauts for chat, world backup, publish, and shared-profile UI labels.

[2026.04.11] - Restore scrolling on mods page

Fixed

  • Wrap the native Mods page in the same main scroll container as the other launcher sections so long mod lists can be scrolled again instead of getting clipped in place.

[2026.04.11] - Show world transfer progress bars

Changed

  • Replace the old spinner-only loading state on world backup, sync, and restore actions with a real progress bar that tracks uploaded or downloaded bytes and file counts directly on the Welten cards.
  • Mirror the same transfer progress inside the expanded world version panel so long-running cloud transfers stay legible while browsing version history.

[2026.04.11] - Simplify world action cards

Changed

  • Move native world-card actions into a compact action bar under the world details so titles and metadata stay readable even for worlds with cloud backup features enabled.
  • Keep only the primary actions directly visible on world cards, move sync, share, and publish actions into a More menu, and remove the direct Ordner action from the cards.
  • Render explicit conflict-resolution actions in their own compact section instead of mixing them into the default world action row.

[2026.04.11] - Localize native launcher world strings

Changed

  • Move the native Welten backup and sync workflow onto translation keys so the world screen, binding dialog, version history, loading states, and success or error toasts no longer hardcode UI copy in Rust.
  • Translate the remaining direct-chat and shared-profile status strings in the native launcher and keep log output separate from localized UI messaging.

[2026.04.11] - Show Uebliche role label in launcher sidebar

Changed

  • Replace the native launcher sidebar's Microsoft account subtitle with the signed-in Uebliche role label, falling back to Free, Premium, or the resolved supporter tier label when no assigned non-default role applies.

[2026.04.11] - Show world cloud storage usage

Added

  • Show a dedicated Cloud-Speicher card on the Welten page so signed-in launcher users can see how much of their Uebliche Cloud world-backup quota is already used.
  • Show visible loading feedback for world uploads and downloads on the Welten page so backup, sync-push, sync-pull, and restore actions no longer look idle while remote transfer is running.

Changed

  • Refresh the world cloud usage summary together with account-bound launcher sections and world list reloads so the storage bar stays current after backup and sync actions.

[2026.04.11] - Narrow world backups to cloud and local storage

Changed

  • Reduce launcher world backup targets to Uebliche Cloud and Local so the native UI and CLI no longer expose direct S3 or WebDAV setup paths.
  • Require an explicit world backup binding before running backup, sync, restore, share, or publish operations instead of silently defaulting unbound worlds to the API backend.
  • Add a native world storage dialog with Uebliche Cloud and folder-picked Local bindings plus compact version details in the Welten history view.

Fixed

  • Treat persisted legacy S3 and WebDAV world bindings as unbound when loading world identities so old configs no longer route through unsupported storage backends.
  • Show the full three-way conflict resolution surface in the native launcher, including destructive remote in-place restore confirmation with rollback-snapshot messaging.

[2026.04.11] - Stop false world sync status errors

Fixed

  • Skip automatic sync-status refreshes for purely local worlds without a stored sync identity so the Welten page no longer shows a false world is not bound to a sync backend error toast on load.

[2026.04.11] - Finish world backup workflows

Added

  • Ship versioned world backup and restore flows across the launcher core, shell, CLI, and native UI, including import-copy and in-place restore modes with rollback snapshots.
  • Add concrete world sync backends for the existing Uebliche public API plus direct Local, S3, and WebDAV targets behind the new sync-agent.
  • Expose a full worlds CLI command group for listing worlds, browsing versions, backing up, restoring, syncing, binding backends, resolving conflicts, sharing, and publishing.

Changed

  • Expand launcher world summaries with backend, remote-state, pending-change, conflict, share, publication, and scheduler metadata so the native UI can render operational sync state directly.
  • Upgrade the native launcher Welten page from a read-only browser to an actionable workflow with backup, sync, restore, share, publish, version history, and conflict resolution controls.
  • Enable auto-push scheduling for API-bound worlds after the first successful manual backup and use world watcher refresh events to keep synced world cards current.

Fixed

  • Detect and block divergent local-vs-remote world histories instead of silently overwriting one side, and persist the conflict so it can be resolved explicitly.
  • Verify downloaded world file hashes before swap and keep the original world untouched for copy restores while preserving a rollback snapshot for in-place restores.

[2026.04.11] - Fix automatic profile card grid

Fixed

  • Rebuild the native profile card layout as a real row-based auto grid so local and public profile cards now snap into consistent columns instead of relying on a loose wrap layout.

[2026.04.10] - Show asset icons in profile libraries

Changed

  • Display the existing native icons for mod, resourcepack, and shaderpack entries in the profile asset browsers instead of rendering those lists as text-only rows.

[2026.04.10] - Unify launcher list entry styling

Changed

  • Move the native launcher list-entry shell onto one shared visual component so profiles, public profiles, worlds, screenshots, and public server rows now use the same frame, spacing, and selected-state treatment.

[2026.04.10] - Turn profile browser into card grids

Changed

  • Render local and public launcher profiles as responsive card grids instead of a full-width row list so the profile browser uses horizontal space much more efficiently.

[2026.04.10] - Tighten profile browser header layout

Changed

  • Collapse the native profile browser top area into one denser workspace header so mode switch, counts, quick actions, and status use the available width more efficiently instead of stacking across multiple mostly empty bars.

[2026.04.10] - Add public profile browser

Added

  • Add a native Öffentlich mode to the launcher profile browser that aggregates shared profiles from the public server directory, supports search by profile/code/server/tag, and imports public profile shares directly into the local profile workspace.

[2026.04.10] - Add native profile management workflows

Added

  • Add native Create profile, Import profile, Edit profile, and Share profile flows directly to the profile browser and detail view, including ZIP import, share-code import, profile sharing, RAM/Java editing, and archive toggles.

[2026.04.10] - Stop false translation panics on profile values

Fixed

  • Restrict the native launcher missing-translation panic check to real launcher key namespaces so runtime values like Minecraft versions no longer crash the app when opening Profile.

[2026.04.10] - Stop old launcher processes before dev start

Fixed

  • Kill any existing UeblicheLauncher process before dev.sh starts a fresh local instance so old native launcher windows do not survive across restarts.

[2026.04.10] - Clamp launcher notifications harder

Fixed

  • Limit the native launcher toast stack to two compact cards plus a small overflow hint and merge near-identical notifications more aggressively so the bottom-right box no longer grows excessively.

[2026.04.10] - Calm down the logs page

Changed

  • Reduce the native launcher logs page to a quieter summary, slimmer download cards, and calmer stream panels instead of stacking multiple colorful diagnostics blocks at the top.

[2026.04.10] - Remove dashboard quick navigation

Changed

  • Remove the native launcher start-page button row for Start, Profile, Welten, Screenshots, Server, Community, and System so the dashboard opens directly into the news hero.

Fixed

  • Remove the extra gap between News and Einstellungen in the native launcher sidebar so the bottom stack sits flush again.

[2026.04.10] - Restart the local launcher cleanly

Fixed

  • Stop stale native launcher app instances before dev.sh starts the local launcher so the visible window now reflects the current debug build instead of an older bundled app.

Fixed

  • Rebuild the native launcher sidebar as a single vertical stack so News, Einstellungen, and the version row are anchored by a real remaining-space spacer instead of a split footer layout.

Fixed

  • Stack the native launcher sidebar footer consistently from the bottom as Version, Einstellungen, then News, with the remaining space staying above that footer block.

[2026.04.10] - Complete launcher translation coverage

Fixed

  • Add the missing native launcher page and settings subtitle keys to both translation catalogs and fail fast in debug builds when a launcher translation key is missing.

Fixed

  • Tighten the native launcher sidebar footer so the version row stays visible again and the empty gap below Einstellungen disappears.

[2026.04.10] - Remove launcher translation legacy fallback

Changed

  • Drop the native launcher legacy translation fallback entirely, move the remaining UI literals onto real translation keys, and resolve launcher text only through the JSON catalogs.

[2026.04.10] - Move launcher translations into files

Changed

  • Store the native launcher translation catalogs in embedded assets/i18n/de.json and assets/i18n/en.json files instead of hard-coding the translation tables in Rust.

[2026.04.10] - Keep sidebar version visible

Fixed

  • Reserve a dedicated footer area for News, Einstellungen, the log shortcut, and the launcher version so the version string no longer disappears when the non-scrollable sidebar gets tight vertically.

[2026.04.10] - Introduce launcher translation keys

Changed

  • Move the native launcher shell, sidebar, shared page headers, settings chrome, and skin sub-tabs onto canonical translation keys, while keeping the older source-string translation table as a compatibility fallback during the migration.

[2026.04.10] - Restore worlds page scrolling

Fixed

  • Route the native Welten page back through the shared main-content scroll container so long world libraries can scroll again instead of clipping inside the window.

[2026.04.10] - Extend launcher UI translation coverage

Changed

  • Route the remaining native launcher page text through the shared i18n layer across Profile, Server, Welten, Community, Skins, and dashboard sections so counts, placeholders, pills, and helper copy now switch cleanly with the system language.

[2026.04.10] - Keep account switch notifications compact

Fixed

  • Stop stacking duplicate status toasts during account switching and clamp launcher status notifications to a shorter preview so the bottom-left notification box stays compact.

[2026.04.10] - Remove large stat cards from launcher pages

Changed

  • Replace the large number-heavy stat cards across Profile, Welten, Server, and Logs with compact summary strips that keep the same information without wasting vertical space.

[2026.04.10] - Refine worlds page layout

Changed

  • Rework the native Worlds page into a calmer library with top metrics, a focused latest-world card, richer world metadata, and direct actions for launch and folder access.

Fixed

  • Always launch a world from its own profile on the shared Worlds page instead of reusing an unrelated selected profile.

[2026.04.10] - Use IBM Plex Sans JP in launcher UI

Changed

  • Apply IBM Plex Sans JP across the native launcher shell so navigation, headers, buttons, and page content use one calmer type system with proper umlaut support.

[2026.04.10] - Follow system UI language

Added

  • Detect the launcher system language automatically and switch the native shell, navigation, and primary page chrome between German and English.

[2026.04.10] - Polish logs page layout

Changed

  • Refine the native Logs page with a calmer hero, cleaner transfer cards, and slimmer live stream rows that read more like diagnostics than stacked tiles.

[2026.04.10] - Restore logs page scrolling

Fixed

  • Restore vertical page scrolling on Logs, while keeping the inner live log streams independently scrollable.

[2026.04.10] - Disable sidebar scrolling

Changed

  • Keep the native launcher sidebar fixed instead of turning it into a second scroll surface inside the window.

[2026.04.10] - Remove duplicate logs entry

Changed

  • Remove the top-level native Logs entry from the main sidebar stack, so diagnostics stay reachable only through the dedicated bottom shortcut instead of appearing twice in the navigation.

[2026.04.10] - Trim settings metadata

Changed

  • Remove the native Launcher-Oberfläche: Native row from Einstellungen, so the system settings card no longer repeats an obvious implementation detail that adds no real user value.

[2026.04.10] - Truncate header profile names with dots

Changed

  • Truncate native header profile chip names with a trailing ... instead of the middle-cut ellipsis style, so long profile labels stay easier to parse at a glance in the toolbar.

[2026.04.10] - Split bottom settings control

Changed

  • Split the native bottom Einstellungen control into a wide settings target plus a square Logs shortcut on the right, so utility navigation keeps a direct diagnostics entry without taking another full-width row in the sidebar.

[2026.04.10] - Enlarge sidebar icons

Changed

  • Increase the native sidebar navigation icon size and rebalance the text offset, so launcher destinations read more clearly at a glance instead of looking underweighted beside the labels.

[2026.04.10] - Soften sidebar borders

Changed

  • Replace the heavy full-box sidebar outlines with quieter separators and subtler active borders, so the native rail no longer shows harsh doubled strokes between stacked navigation items and the top account block.

[2026.04.10] - Keep start page split at min width

Changed

  • Keep the native Start page in its side-by-side split layout even at the launcher minimum window width, so news, launch, screenshot, and quick-start sections no longer collapse into one long vertical stack when the shell gets tighter.

[2026.04.10] - Refine profile browser copy

Changed

  • Rework the native Profile browser cards with clearer hierarchy, direct Öffnen and Starten actions, and calmer activity/status metadata, so the page reads less like a raw list and more like a finished launcher hub.
  • Normalize profile and mod search input for umlauts and ß, so native browser filters now match names and labels more naturally whether users type ü or ue.

[2026.04.10] - Add screenshots workspace

Added

  • Add a native Screenshots page that pulls recent in-game captures across launcher profiles into one visual browser with preview, context, file actions, and fast folder access.

Changed

  • Add a rotating screenshot slideshow to native Start, so the launcher home now surfaces recent in-game moments directly beside news, launch, and quick-start sections instead of burying captures in profile folders.

[2026.04.10] - Put settings at the bottom

Changed

  • Swap native News and Einstellungen in the bottom sidebar cluster, so Einstellungen is now the lowest navigation target in the rail.

[2026.04.10] - Neutralize sidebar button accents

Changed

  • Remove the per-section accent colors from native sidebar buttons, so active and hovered navigation entries now use one shared neutral highlight instead of mixing violet, yellow, green, and blue markers across the rail.

[2026.04.10] - Tighten launcher notifications

Changed

  • Clamp native launcher toast messages to compact single-preview text with hover access to the full message, so long status or error strings no longer blow the bottom notification box into an oversized card.

[2026.04.10] - Square off sidebar buttons

Changed

  • Remove the rounded corners from native sidebar navigation buttons and the top account switcher, so the whole sidebar now reads with harder, flush-edged blocks instead of softened pills.

[2026.04.10] - Limit bottom sidebar items

Changed

  • Keep only native News and Einstellungen anchored to the bottom of the sidebar, and move Server back into the upper main stack so the remaining navigation reads in a more natural launcher, Minecraft, and social order.

[2026.04.10] - Keep only one page title

Changed

  • Put the real native page title back into the top toolbar and drop the repeated large title from shared in-page headers, so views like Feedback, News, Profile, and Einstellungen keep only one clear title instead of a double heading stack.

[2026.04.10] - Stretch top sidebar switcher

Changed

  • Remove the extra top padding around the native sidebar account switcher and match its inner height to the regular sidebar card height, so the top account block now sits flush against the rail and reads like one bündiger part of the navigation stack.

[2026.04.10] - Swap news and server positions

Changed

  • Swap the native sidebar positions of News and Server, so News now sits in the main navigation stack while Server moves into the lower utility cluster above Einstellungen.

[2026.04.10] - Remove duplicate shell titles

Changed

  • Change the native top toolbar to show broader workspace labels like Play, Community, and System, so pages such as Profile, Logs, and Einstellungen no longer repeat the same title both in the shell header and again in the page content.

[2026.04.10] - Render news copy as Markdown

Changed

  • Render native News feed entries with Markdown-aware summary and body blocks, so links, lists, headings, quotes, and inline code no longer collapse into plain text on the community timeline.
  • Render native Start page news cards from the same Markdown pipeline, so the featured story and follow-up cards keep their formatting instead of showing raw Markdown syntax in launcher home.

[2026.04.10] - Tighten logs workspace

Changed

  • Reduce the native Logs hero and summary area into a tighter diagnostics deck with smaller preview cards, so the page no longer opens with an oversized banner that overpowers the rest of the launcher shell.
  • Replace the stacked full-width logs summary stats with compact cards and a two-column mid-width layout, so normal launcher window sizes fit the top diagnostics much more naturally before the actual streams begin.

Changed

  • Center the native launcher version label in the sidebar footer, so the small build string no longer sticks to the left edge under Einstellungen.
  • Slim the native sidebar version row into a tighter fixed-height footer, so the build label no longer burns an oversized block of vertical space below Einstellungen.
  • Move the native News entry into the bottom sidebar cluster above Einstellungen, so timeline navigation now stays aligned with the other utility destinations instead of floating in the main nav stack.

[2026.04.10] - Simplify toolbar heading

Changed

  • Remove the repeated native Launcher word from the top toolbar title, so the header now shows the active section name directly instead of reading like Launcher Überblick.

[2026.04.10] - Compact social workspace

Changed

  • Rebalance the native Freunde / Chat page into a denser friends-to-chat split, so wide launcher windows now give more room to active conversations instead of wasting half the page on oversized columns.
  • Replace bulky request, friend, conversation, and message cards with tighter rows and inline actions, so the social workspace shows more useful state per screen without turning into one tall stack of padded boxes.

[2026.04.10] - Tighten sidebar button stack

Changed

  • Remove the extra gaps between native sidebar navigation buttons, so the full launcher nav now reads as one flush stack instead of separated card rows.
  • Drop the native sidebar's left and right inner padding, so navigation buttons now sit flush against the panel edges instead of floating inside an inset column.
  • Remove the standalone native Konten navigation entry from the sidebar, while keeping account management in the account switcher menu instead of duplicating it in the main nav.
  • Match the native account switcher dropdown to the same visible width as the sidebar account card, so the menu no longer expands wider than its trigger.
  • Anchor the native Settings entry and launcher version to the bottom edge of the sidebar, so utility actions stay consistently aligned away from the main navigation stack.

[2026.04.10] - Make launcher shell denser

Changed

  • Tighten the native launcher theme, cards, buttons, and section headers with smaller spacing and typography, so the app fits more useful content into the same window without looking crammed.
  • Narrow the native sidebar and lower the launcher default and minimum window sizes, so the overall shell feels less oversized while the newer responsive pages still hold together on smaller widths.

[2026.04.10] - Refine launcher logs workspace

Changed

  • Rebuild the native Logs top area into a clearer live-console hero with responsive summary cards, so launcher sessions, stream health, and transfer pressure read like one finished diagnostics surface instead of a flat stack of panels.
  • Restyle download cards and both log streams with calmer emphasis, latest-activity callouts, and less noisy row treatments, so the diagnostics window stays easier to scan during long build, start, and download sessions.

[2026.04.10] - Polish launcher profile and mod browsers

Changed

  • Add search-driven, lazy-loaded native Profile and Mod Browser lists, so large launcher manifests now reveal more cards as you scroll instead of dumping the full set at once.
  • Rework native profile cards and profile-detail browser sections for tighter widths, so opening, launching, and scanning mod status stays readable when the launcher content area gets narrower.
  • Surface clearer status chips for mod policy, blocked/unknown counts, disabled entries, and local findings, so risky or unresolved mods stand out without digging through one flat manifest list.

[2026.04.10] - Make launcher home layout responsive

Changed

  • Let the native Start page reflow its hero, launch strip, and quick-start panels against the available content width, so dashboard cards now stack and wrap on narrower windows instead of pushing off the right edge of the screen.
  • Collapse world and server quick-start rows into compact vertical cards on tight widths, so preview icons, metadata, and CTA buttons stay visible without horizontal clipping.

[2026.04.10] - Clean up launcher profile toasts

Changed

  • Restyle the native bottom-right launcher toasts with a clearer left-aligned status header and calmer spacing, so profile start/build notifications no longer look like raw debug cards floating over the UI.
  • Replace profile UUIDs in native start/build toasts with human-readable profile names, and stop showing profile IDs in the new profile browser/detail surface where they do not help normal launcher use.

[2026.04.10] - Open profile hub on single click

Changed

  • Turn single-click profile selection into a native profile hub open action, so clicking a profile card or header chip now jumps straight into a dedicated detail page with overview, mods, resourcepacks, shaderpacks, and settings browsers instead of only updating a side detail panel.
  • Load native profile asset summaries through the launcher shell, so the new profile detail page can list local resourcepacks, shaderpacks, and relevant config/options files beside the existing mod browser and launch controls.

[2026.04.10] - Launch profiles on double click

Changed

  • Start native launcher profiles directly on double click from both the Profile page cards and the top-right recent-profile chips, so choosing a profile and launching it no longer has to be split across two separate clicks.

[2026.04.10] - Center labels in stretched native buttons

Changed

  • Center text inside stretched native launcher buttons, so dropdown footer actions like Profile verwalten and other full-width CTA rows no longer look left-biased inside their cards.
  • Stretch the Konten verwalten and Profile verwalten popup footer buttons to the full dropdown width, so the centered label treatment is also visible in the account and profile switchers instead of only on naturally wide buttons.

[2026.04.10] - Rebuild native server workspace

Changed

  • Turn the native Server page into a clearer workspace with a top summary strip, a dedicated personal server desk, and a larger community explorer area, so saved servers and public discovery no longer compete inside one flat list layout.
  • Promote the selected public server into a focused detail panel with launch, import, favorite, shared-profile, link, and 24h-status actions, so community metadata stays visible instead of getting buried beside the server list.
  • Streamline the native server editor with proper clear and community-reload actions, and keep the community list lighter during rendering so the redesigned page stays more responsive while browsing many servers.

[2026.04.10] - Add recent profiles to launcher header

Changed

  • Show the three most recently played launcher profiles directly in the top-right native header with icon and name, and move the remaining profiles into a dropdown so active profile switching no longer depends on the left sidebar alone.
  • Persist native launcher play sessions back into profile stats on exit, so header recency reflects current Rust-launcher usage instead of drifting behind older Tauri-era data.

[2026.04.10] - Stretch launcher hero frame to full width

Changed

  • Expand the native Start hero/news container to the full available main-content width, so the top dashboard box no longer looks inset or narrower than the page beneath it.

[2026.04.10] - Remove preview chrome from launcher icons

Changed

  • Render real world and server preview images without the extra native badge background and stroke, so launcher save icons and server icons keep their raw artwork instead of picking up unwanted overlay shapes from the UI chrome.

[2026.04.10] - Rebuild launcher home around news and quick starts

Changed

  • Turn the native Start page into a news-led frontpage with one large latest-story card plus smaller follow-up cards beside it, so launcher home now feels closer to a real live homepage instead of a generic dashboard split.
  • Move singleplayer worlds and server shortcuts into scrollable quick-start sections further down the same home screen, so recent worlds and join targets stay reachable without leaving the launcher frontpage.
  • Render the saved or public server preview/icon in the home quick-start server cards as well, so the frontpage server list keeps the same visual recognition cues as the dedicated server view.
  • Load the native Welten view and home quick-start worlds across all launcher profiles instead of binding them to the currently selected profile, so singleplayer saves read like one shared library instead of a per-profile silo.

[2026.04.10] - Refine native logs diagnostics layout

Changed

  • Rework the native Logs page into a denser diagnostics surface with a live overview header, clearer stream health summaries, and calmer transfer cards, so launcher downloads and runtime signals read like one finished console instead of separate utility blocks.
  • Restyle the native launcher and core stream panels with stronger signal chips, quieter row treatments, and latest-activity snapshots, so long log sessions stay easier to scan for errors, warnings, transfers, and start events.

[2026.04.10] - Show native launcher server icons

Changed

  • Render saved and public server icons in the native Server view again, so launcher server cards and the selected public-server detail use the existing preview/icon metadata instead of falling back to text-only rows.

[2026.04.10] - Remove sidebar section titles

Changed

  • Remove the small section headings above the native launcher sidebar navigation buttons, so the left rail stays visually quieter and more compact while keeping the button groups separated by spacing alone.

[2026.04.10] - Add world cloud backup foundations

Added

  • Add launcher-managed world cloud identities, manual cloud backup actions, and cloud version history wiring for the Welten view, so local worlds can start syncing incremental file manifests into the new world-backup API flow.
  • Add canonical data/uebliche/maps/world-overview.png plus world-overview.json outputs for singleplayer logout and dedicated-server shutdown, so launcher world cards can reuse a stable preview file instead of depending only on icon.png.

Changed

  • Remove the launcher Tauri/web shell from the active workspace, native bootstrap, and local dev entrypoints, so the launcher now runs and ships only through the Rust-native UI path.
  • Rename the native launcher app package and workspace path from ui-performance to launcher-ui, so scripts, docs, and cargo targets use the actual product-facing name consistently.
  • Prefer the canonical maps overview image over icon.png when the launcher lists local worlds, so saved-world previews follow the new maps-export path before falling back to legacy icons.

Removed

  • Delete the remaining legacy apps/ui-tauri and crates/ui-tauri-internals source trees plus the unused pnpm/Tauri helper scripts, so the launcher repo no longer carries a second dormant desktop UI stack beside the native Rust app.

[2026.04.10] - Lower native launcher memory pressure

Changed

  • Stream large launcher runtime, library, mod, and asset downloads straight into temp files before validation, so the native launcher no longer buffers whole artifacts in RAM while preparing a launch.
  • Trim finished native download cards after a short TTL and cap the in-memory transfer list, so long Rust-only launcher sessions stop accumulating stale download rows.
  • Stop cloning large friends/chat/news/skin-library collections every frame in key native views, so the Rust UI creates far less transient heap churn while those tabs stay open.
  • Evict stale native egui texture caches for profile icons, account heads, world previews, and skin previews/viewers after a short idle window plus hard entry caps, so old image surfaces no longer stay resident across long launcher sessions.
  • Normalize the visible native sidebar cards to one shared height, so the account switcher and every navigation entry align on a consistent vertical rhythm instead of mixing short and tall blocks.

[2026.04.10] - Restore native world preview icons

Changed

  • Render saved world icon.png thumbnails in the native Welten cards again, so Rust launcher worlds show the same preview image cue as the older UI instead of falling back to text-only rows.
  • Sync unique worlds across all profile instances by default via directory links, so singleplayer saves no longer have to be linked profile-by-profile before they appear everywhere.
  • Wrap the native right-hand main content in a vertical page scroll for tabs that previously had no root scrolling, so longer Server, Profile, Skins, Dashboard, and Settings layouts no longer get clipped at the bottom.
  • Simplify the native launcher palette to calmer slate and neutral surface tones with muted state colors, so the Rust UI reads less loud and less color-heavy across sidebar, cards, logs, and content panes.
  • Remove the duplicate account badge from the top-right native header, so the toolbar stays quieter instead of repeating the active account name above the main content.
  • Set the native launcher app icon from the shared launcher branding asset, so the Rust app no longer shows the generic default eframe icon in the dock and app switcher.

[2026.04.10] - Add native skins workspace with 3D preview

Added

  • Add a dedicated native Skins tab with Library, Capes, Builder, and Market, so launcher skins no longer live inside the old mixed News / Skins page.
  • Add a native Minecraft-style 3D skin preview that runs directly inside the Rust launcher, supports orbit/zoom, front/back views, and back equipment modes for cape/elytra previews without falling back to the web shell.
  • Add a shared native skin store at launcher_root()/settings/skins.json with one-time import from the legacy ~/.uebliche_launcher/skins.json, so existing saved skin projects and previews survive the move into the Rust launcher.

Changed

  • Bridge cape loading, skin apply, builder upload terms, and community part create/update flows through launcher-shell, so the native launcher can cover the old Tauri skin workflows without web-only commands.
  • Split the native skin area into dedicated Rust modules for library, capes, builder, market, texture composition, and 3D viewing, so the launcher keeps the newer modular app structure instead of pushing skin work into one giant screen file.
  • Reduce the Timeline page to news-only content, so skin editing and community parts live in the dedicated Skins workspace instead of sharing the feed surface.
  • Rename the native launcher executable/process away from the old ...performance suffix, so macOS no longer shows the Rust launcher as a temporary technical shell name in the app switcher and menu bar.
  • Enforce a fixed native launcher minimum window size, so the blocky desktop layout no longer collapses into cramped rails and clipped content when the window is resized too far down.

[2026.04.09] - Make the native launcher UI the primary product path

Added

  • Bundle a native eframe/egui launcher UI alongside the legacy Tauri shell, so the launcher can stay in a Rust-only flow without losing launcher coverage.
  • Add a local shell-mode config that keeps the launcher pinned to the native launcher UI across restarts and updates.

Changed

  • Route launcher startup through a native bootstrap that can hand off preserved view context instead of assuming the web UI is always the only entry point.
  • Make the native launcher UI the default launcher mode, auto-persist it on first start, and stop routing normal startup through the old shell chooser.
  • Surface launcher UI status inside settings while keeping the native Rust app as the primary launcher entry point.
  • Show cached Minecraft head previews in the native accounts view, so Microsoft accounts are easier to recognize and select without relying on raw IDs alone.
  • Replace the old fallback launcher sections with native tabs for mods, worlds, friends/chat, feedback, and timeline/skins, so those areas stay inside the Rust UI instead of bouncing back to the legacy shell.
  • Restyle the native launcher chrome with a dedicated warm theme, darker navigation rail, stronger cards, and a cleaner dashboard/header layout, so the launcher no longer feels like raw default egui.
  • Rebuild the native launcher sidebar with grouped navigation, a cleaner brand block, lighter active states, and calmer status surfaces, so the app reads more like a polished launcher and less like stacked debug panels.
  • Slim down the sidebar header to a flatter launcher label with compact meta rows, so the navigation no longer burns a large branded block before the actual tabs.
  • Remove the remaining visible Standard-UI switches from launcher settings/profile detail, let the native UI handle launcher updates itself, and align the visible product copy around a single launcher instead of a separate "Performance" shell.
  • Tighten the native launcher layout with clearer hero sections, denser content cards, calmer toolbar/sidebar chrome, and darker dedicated log panels, so the Rust UI feels visually coherent across Dashboard, Profiles, Accounts, Logs, and Settings instead of like separate debug screens.
  • Use real German umlauts in the native launcher copy instead of ASCII-style ae/oe/ue spellings, so buttons, status text, chooser copy, and error messages read like normal UI text.
  • Bring Mods, Worlds, Friends/Chat, Feedback, Timeline, and Server pages onto the same card-based layout language as Dashboard, Profiles, and Accounts, so the native launcher no longer mixes polished product screens with raw utility panels.
  • Introduce a semantic Light/Dark design system for the native launcher shell, follow the operating system theme automatically without a manual launcher switch, and align toolbar, sidebar, settings, logs, and the major native tabs to the same warm card-and-surface language instead of a one-off light palette.
  • Let the native friends view open or create direct chat conversations from friend cards and update chat previews immediately after sending, so chat works even when no conversation existed yet.
  • Remove manual refresh buttons from the native launcher surfaces and refresh dashboard, profiles, accounts, social, feedback, worlds, timeline, servers, and settings automatically, so the UI stays current without explicit reload actions.
  • Add real profile icons to the native profile list/detail view and replace the sidebar text badges with drawn navigation glyphs, so the Rust UI no longer looks iconless next to the old launcher shell.
  • Remove the remaining page/theme pills from the native top bar, so the launcher header stays visually quiet instead of repeating state labels that are already obvious from context.
  • Move transient native launcher errors and status updates out of the sidebar into toast popups at the bottom right, so warnings no longer push a large red block into the navigation rail.
  • Remove the leftover Rust-only and Desktop-Standard pills from the dashboard hero, so the native launcher no longer shows obsolete shell-path labels in the main product surface.
  • Restore the native server page with Tauri-level actions for favorites, editing, reordering, automatic ping/status updates, public server imports, public favorites, and shared-profile launch flows, so server management no longer falls back to a stripped-down quick-play list.
  • Rebuild the native logs tab with summary cards, clearer live download status, and richer dark stream panels with severity chips, so diagnostics feel like a finished launcher surface instead of two plain text dumps.
  • Shift the native launcher theme toward a blockier, more Minecraft-like visual language with earthier palettes, squarer cards, chunkier borders, and more rigid navigation/buttons, so the UI feels closer to in-game materials than to a soft generic desktop shell.
  • Push the native launcher shell and dashboard closer to a real Minecraft launcher composition with a darker top rail, stronger account slab, tab-like home navigation, a large hero banner, and a prominent green play block instead of a generic app overview grid.
  • Re-align the native sidebar buttons around a fixed left icon slot, harder rectangular blocks, and a shared text axis, so the launcher rail reads more like a Minecraft launcher menu instead of mixed utility cards.
  • Turn the native account slab in the top-left rail into a real account switcher popup, so active launcher accounts can be changed directly from the sidebar instead of only on the dedicated accounts page.

[2026.04.09] - Restore profile mod action icons

Fixed

  • Use explicit foreground colors for the profile mod action buttons, so the enable/disable and delete icons stay visible in the macOS launcher webview instead of rendering as empty tinted squares.

[2026.04.08] - Resolve launcher system mods by Minecraft version

Changed

  • Switch launcher-managed connect and social update checks to the public versions resolve/download API with explicit minecraftVersion filtering, so injected system mods can resolve the right artifact per active game line instead of sharing one loader-only release pointer.
  • Prefer versioned legacy connect update manifests during fallback checks, so older manifest-based rollouts can coexist with the new public versions contract while staged releases move to release/<loader>/<minecraftVersion>/.

Fixed

  • Teach the launcher workspace fallback for connect, social, modlist, and am-i-secure to scan versioned staged release directories before build outputs, so local dev launches can inject artifacts produced by the shared multi-version release matrix without manual copying.

[2026.04.08] - Resolve local ModList jars for newer profiles

Fixed

  • Accept workspace-built net.uebliche.modlist-*.jar artifacts in the launcher system-mod fallback, so local profile launches can still inject ModList when no published 26.1.1 release artifact exists yet.
  • Normalize resolved ModList versions from workspace jar names before writing the launch lock, so launcher-managed local injections keep readable version strings instead of leaking raw package prefixes.

[2026.04.08] - Enforce hardened runtimes for protected launches

Changed

  • Split the Uebliche runtime pipeline into standard and hardened channels, and make protected launches resolve, install, and display the hardened runtime instead of silently reusing the generic signed runtime state.
  • Require mc-wrapper for every Protect and Strict launch on all platforms, and block additional JVM instrumentation flags such as --add-opens, --add-exports, attach listeners, flight recorder startup, and custom system-class-loader overrides when the wrapper validates launch arguments.
  • Extend the launcher Fairplay evidence with runtime-hardening, secret-store, developer-credential, SSH, Discord, persistence, clipboard, and desktop-automation fields so downstream tooling can distinguish proven launcher blocking from untouched risk classes.

Fixed

  • Treat missing hardened runtimes as an explicit strict-protection blocker (hardened-runtime) instead of the old generic signed-runtime requirement, so strict readiness now reports the real missing hardening component.
  • Add targeted secret- and persistence-path deny groups for SSH material, developer credential stores, Discord desktop session stores, user startup hooks, and browser-cookie paths to the sandbox and guard-policy layer, so protected launches stop inheriting broad host reads for the most relevant credential surfaces while preserving the previously fixed Java startup path on macOS.

[2026.04.06] - Prevent Java startup crashes in macOS protect mode

Fixed

  • Replace the blanket macOS /Users read deny with targeted denies for sensitive user folders and browser-storage paths, so protected launches keep blocking obvious host data access without crashing the bundled Java runtime before Minecraft logging starts.
  • Force java.io.tmpdir into the profile-owned .tmp directory on macOS launches, so bundled native helpers like libjcocoa.dylib no longer try to extract into the sandbox-blocked system temp root under /var/folders/.../T.

[2026.04.06] - Improve launcher crash prompts and chat copy

Fixed

  • Let the embedded LLM chat bubble content be selected and copied directly, and add an explicit per-message copy action so troubleshooting text can be reused outside the launcher.
  • Format signal-based game exits without the misleading Exit-Code: unbekannt fallback and include recent launcher log context when the instance log stayed empty, so crash prompts sent to the LLM stay actionable after very early native crashes.

[2026.04.06] - Stop sidebar auto snap jitter

Fixed

  • Stop programmatically re-snapping the launcher sidebar scroll position after render and short scroll idle windows, so the icon rail no longer visibly jumps up and down while browsing.

[2026.04.06] - Harden macOS protect launches

Changed

  • Route every macOS Protect and Strict launch through mc-wrapper, reduce inherited wrapper environment variables to an explicit allowlist, and publish measured launcher hardening evidence in fairplay_context.json so follow-up tooling can see the real protection level.

Fixed

  • Tighten the macOS sandbox profile to block external process execution and broad reads outside the launcher and game directories, so Protect no longer reports stronger launcher mitigation than the runtime can actually prove.
  • Stage mc-wrapper and the trusted guard agent into the profile-owned runtime area before launching inside the macOS sandbox, so local dev-sidecar paths under /Users/.../src-tauri/binaries no longer fail immediately with exit code 71 / Operation not permitted.
  • Allow the staged mc-wrapper and its target JVM as the only explicit sandboxed exec paths, and keep the wrapper launch plan inside the profile runtime tree, so protected launches no longer die with Code 71 before Java can start.

[2026.04.06] - Restore Microsoft auth hosts for launches

Fixed

  • Pass the real Microsoft Minecraft access token back into launcher-started game clients until the in-game tokenless bridge covers all authlib session calls, so multiplayer joins no longer fail on follow-up profile and key-pair requests that still require official authentication.
  • Seed official Mojang and Minecraft auth hosts into the launcher Network Guard global allowlist during game start, so stale local block decisions for sessionserver.mojang.com and related endpoints no longer keep valid launches stuck on unauth.

[2026.04.06] - Retry stale launcher join sessions

Fixed

  • Refresh the cached Microsoft Minecraft session once and retry the launcher-side Mojang joinServer authorization when Mojang rejects the first request as unauthorized, so launcher-started multiplayer joins recover from stale cached access tokens instead of failing immediately with unauth.
  • Include the upstream Mojang response body in launcher warnings for failed tokenless join authorization, so follow-up debugging can distinguish stale credentials from broader auth outages.

[2026.04.05] - Keep feedback sub sidebar visible

Fixed

  • Keep the launcher feedback sub sidebar mounted with a stable overview entry, so the secondary navigation no longer disappears on empty feedback lists or while the list is refreshing.
  • Preserve the last successfully loaded feedback list during same-view refresh failures, so temporary backend hiccups no longer blank the sidebar before the next successful reload.

[2026.04.05] - Tighten sidebar top spacing

Fixed

  • Remove the extra macOS window-header clearance from the launcher icon sidebar, so the first navigation icon sits closer to the top instead of leaving a large dead gap above it.

[2026.04.05] - Show pending default account switches

Fixed

  • Switch the launcher account view to the clicked account and show an immediate pending state while changing the default account, so the UI no longer appears idle until the background refresh finishes.
  • Update the launcher account list optimistically when a new default account is chosen, so the star marker and dependent views react right away instead of lagging behind the command.

[2026.04.05] - Add Übliche extensions to Browse

Changed

  • Extend the combined launcher Browse search to include public Übliche extensions alongside Modrinth and CurseForge, with the same merged-source chips and per-source toggles in the filter bar.
  • Add a dedicated launcher-side Übliche catalog client plus direct install flow, so extensions published through the public versions API can be opened, version-resolved, and installed into profiles without a separate provider page.

Fixed

  • Request a fresh Microsoft device-login code automatically when the previous code times out in the launcher account flow, so account linking no longer falls back to a dead "code expired" state that requires a manual restart.
  • Treat expired Microsoft device-code polls as a renewal case instead of a generic link failure, so the account UI keeps the login flow alive while waiting for confirmation.

Changed

  • Turn the launcher browse page into a combined Modrinth + CurseForge search with source toggles in the filter bar instead of keeping Modrinth-only results as the default browse experience.
  • Merge duplicate browse hits across providers into one result card and show the contributing source chips directly on the entry so the same project no longer appears twice in mixed search results.
  • Remove the numeric sidebar counter from the grouped Browse item so the launcher no longer suggests that the group badge is a result count.
  • Move Downloads into the grouped Browse flyout and anchor the whole browse block to the bottom of the launcher sidebar instead of keeping downloads as a separate top-level entry.

[2026.04.05] - Stop profile click detail ping-pong

Fixed

  • Route profile clicks in the launcher profile view through the selected-profile state instead of firing a second immediate detail load, so opening a profile no longer kicks off duplicate detail fetches and UI hangs.

[2026.04.05] - Group browse providers in sidebar

Changed

  • Collapse Modrinth and CurseForge behind a single Browse item in the launcher sidebar and keep both providers available from the built-in group flyout instead of showing two separate top-level buttons.

[2026.04.05] - Delegate Mojang joins without Java tokens

Added

  • Add a tokenless launcher join authorization flow that performs the Mojang joinServer request through the local launcher bridge instead of handing a Minecraft access token to the Java client.

Changed

  • Launch Microsoft Minecraft clients with the placeholder access token 0 and refresh the real session only inside the launcher right before multiplayer joins.
  • Keep singleplayer launch behavior unchanged while blocking token-dependent multiplayer joins when the local launcher bridge is unavailable.

[2026.03.29] - Guard mod browser project refs

Fixed

  • Normalize missing or partial catalog project references before the launcher builds Mod Browser state keys, so malformed provider hits no longer crash the whole Mod Browser with projectId.trim errors.

[2026.03.29] - Refresh downloads sidebar icon

Changed

  • Replace the old boxed downloads glyph in the launcher sidebar with a tray-style download icon so the left navigation reads more clearly and matches the newer downloads view language.

[2026.03.23] - Restore server address privacy toggle

Added

  • Restore a local server-view privacy toggle that masks hostnames and IPs across launcher server lists and detail panes while remembering the choice on the same device.

[2026.03.21] - Finish launcher friends chat

Changed

  • Replace the launcher friends chat selector with a real chat hub layout that includes searchable conversation rows, direct-vs-group filters, inline thread viewing, and quick-start entries for friends without an existing DM.
  • Align launcher social chat sending with the mobile flow by creating direct chats optimistically, updating conversation previews immediately for new messages and poll votes, and keeping direct and group chats on the same composer flow for text, attachments, screenshots, mentions, and polls.

Fixed

  • Scope launcher social chat live streams and cached snapshots per conversation and window subscriber instead of sharing one global stream, so the friends hub and multiple chat popouts can stay open without interrupting each other.

[2026.03.20] - Show blocked mod names before launch

Fixed

  • List the concrete blocked mod names in the launcher launch warning instead of only showing the total count, so users can see which mods would trigger the FairPlay warning before they continue.

[2026.03.19] - Resolve ModList per Minecraft version

Changed

  • Pass the profile Minecraft version into the ModList public versions resolve and download calls so the launcher auto-installs the matching ModList jar for each Fabric, Quilt, or NeoForge profile version.

[2026.03.18] - Remove server IP hide toggle

Changed

  • Remove the redundant server IP hide toggle from the launcher server view so address privacy is controlled through the OBS-based streamer mode flow instead of a separate per-view switch.
  • Switch the launcher server subsidebar to community server entries when the community tab is active instead of keeping the personal server detail list in place.
  • Show the selected community server in the right-hand server detail pane as well, including its public stats and shared profile actions instead of keeping the public tab list-only.
  • Redesign the public server detail pane with clearer metric cards, clickable social links, and a more structured shared-profile section so community server details are easier to scan and use.

[2026.03.17] - Proxy Modrinth catalog traffic

Changed

  • Route launcher Modrinth catalog and metadata requests through the Uebliche public proxy by default instead of talking to api.modrinth.com directly for every unauthenticated request.
  • Keep direct authenticated Modrinth requests available when a user token is explicitly attached, so higher-limit personal access still works without removing the new default proxy path.
  • Add a launcher setting for Modrinth access mode so proxy usage can be switched on or off explicitly and the same choice also applies to profile launches.

Fixed

  • Fall back to direct Modrinth API lookups when the public proxy endpoint is not available yet, so profile launches and catalog metadata resolution do not fail during staggered deployments.

[2026.03.17] - Use Codex setup cards as actions

Changed

  • Move the Codex install, login, and Launcher Tools connect actions into the large setup status cards in launcher settings instead of duplicating them as smaller buttons underneath.
  • Let the Launcher Tools step switch to a disconnect action once Codex is fully connected, so the whole setup flow stays in one consistent control group.

[2026.03.17] - Install ModList by default

Changed

  • Inject the first-party modlist extension automatically for Fabric, Quilt, and NeoForge profile launches so the in-game installed-mod list is available by default.
  • Resolve and cache the matching modlist artifact through the public versions API during launch preparation and download prewarming, with the same launcher-managed system-mod flow used for other first-party extensions.

Added

  • Open a combined Modrinth and CurseForge catalog directly inside profile details when browsing mods, resource packs, or shader packs, so installs stay in the selected profile workflow.
  • Rename profiles directly from the details header with a double-click and from the profile list through a right-click context menu.

Changed

  • Label mixed catalog results by provider inside the embedded browser so Modrinth and CurseForge hits stay distinguishable in one shared search view.
  • Split the profile catalog into the installed-items list on the left and a fixed-height compact search sidebar on the right so browsing no longer replaces the current view.
  • Tighten the embedded catalog result cards with fewer visible chips, shorter descriptions, and denser actions so more results fit into the compact sidebar.

Fixed

  • Keep resource pack and shader pack catalog installs on the asset install path instead of treating them like removable manifest mods in the browser UI.

[2026.03.17] - Sync hosted Network Guard allowlist

Added

  • Show a hosted Network Guard allowlist in launcher settings with sync status, last refresh metadata, and a manual refresh action against the public config feed.

Changed

  • Merge hosted allowlist entries from the official Public API with the existing local per-user allowlist so central defaults and local exceptions apply together.
  • Relabel the local launcher textarea as an additive local allowlist so it is clearly separate from the hosted configuration.

[2026.03.17] - Fix launcher notifications

Fixed

  • Remove the broken outer shadow from launcher desktop notifications and keep the card depth inside the notification box so the transparent popout no longer shows a dark halo around each toast.
  • Keep visible desktop notifications directly interactive again instead of leaving the transparent popout stuck in click-through mode while cards are on screen.

[2026.03.17] - Keep sidebar lists clear of window chrome

Added

  • Add a global Network Guard allowlist in launcher settings so shared domains and IPs can stay permanently allowed across all profiles and strict policy checks.

Fixed

  • Reserve the window-header and profile-dock clearance inside the main sidebar and server sub-sidebar so the first and last entries stay fully visible and scrollable instead of sliding under the window chrome.
  • Snap the left icon sidebar back to whole tiles after scrolling so it no longer gets stuck with half-cut entries at the top or bottom.
  • Keep essential security details in the profile protection tab visible even when global field descriptions are hidden, and show inferred host labels plus capture source details for guard rules when the launcher can resolve them.

[2026.03.17] - Fix Network Guard permission prompts

Changed

  • Attribute Network Guard proxy and socket permission requests to the matching mod when the launcher policy can identify it, and fall back to an unattributed label instead of showing unknown-mod.

Fixed

  • Route Network Guard permission requests into the launcher security notifications again and open the affected profile directly from the notification.
  • Seed new denied permission requests into the profile guard permissions list so they can be reviewed and flipped to allow or block in profile details.

[2026.03.17] - Launch entries from launcher lists

Changed

  • Start profiles, worlds, and personal servers directly from the launcher sidebar list with a double-click while keeping single-click selection unchanged.

[2026.03.16] - Fix launcher download release source

Changed

  • Resolve launcher website downloads from the active public release per channel and target instead of mixing in older platform builds from historical releases.
  • Tell the launcher deploy action to default to the full public platform matrix for release and beta publishes.

Fixed

  • Show missing launcher targets on uebliche.info as unavailable for the active channel instead of advertising stale builds from older releases.
  • Block partial public launcher releases in uebliche.dev before they can publish a mixed platform matrix to the versions API.

[2026.03.16] - Add embedded Codex CLI provider

Added

  • Add codex_cli as a second launcher AI provider so the embedded chat can reuse the official Codex CLI login and run launcher troubleshooting through the launcher MCP tools.
  • Add Codex setup controls in launcher settings and chat for CLI detection, ChatGPT login, launcher-tool registration, and provider switching without breaking the existing LocalAI/Ollama/custom-endpoint flow.
  • Add a dedicated Tauri Codex bridge with status, login, MCP registration, and non-interactive codex exec --json support plus Rust unit tests for login parsing, JSON event parsing, and idempotent MCP setup planning.

Changed

  • Keep launcher chat history and memory flow intact while routing Codex sessions through the official CLI with read-only sandboxing, no approval escalation, disabled shell/web-search tools, and launcher-only MCP guidance.
  • Let users pick the embedded Codex model from the official Codex model list and keep the reasoning controls aligned with the selected model in launcher settings and the chat overlay.
  • Let users start a profile directly by double-clicking its row in the list view while keeping compare mode and inline row actions from firing accidental launches.

Fixed

  • Use a codex exec argument set that stays compatible with current Codex CLI builds like codex-cli 0.91.0, so embedded Codex runs no longer fail on unsupported approval flags.
  • Isolate embedded Codex runs in their own CODEX_HOME and empty workspace so the launcher flow no longer inherits global Codex MCP servers, sessions, skills, or repository context.
  • Speak actual Codex-compatible MCP JSON-RPC from launcher-cli mcp-server, so embedded Codex can finally reach launcher tools like profile listing instead of failing during MCP initialization.
  • Package the shared social client runtime into the injected Fabric mod jar so launcher profile starts no longer crash with exit code 255 from missing VoiceLiveStreamClient classes.

[2026.03.16] - Add Social launch toggles

Added

  • Add a global launcher setting that turns automatic social mod injection for Minecraft launches on or off.
  • Add per-profile Social overrides in the profile details panel so each profile can inherit, force-enable, or disable the Social mod independently.

Changed

  • Resolve and cache the social Fabric or NeoForge jar through the public versions API during launch preparation so the launcher can inject the matching artifact automatically when Social is enabled.

Fixed

  • Show the main launch button in profile details again so profiles can be started directly from the details view.
  • Auto-resolve required Fabric dependencies for launcher-injected system mods like connect, social, and am-i-secure so launches no longer fail just because fabric-api is missing.

[2026.03.16] - Fix server metadata mapping

Fixed

  • Match launcher server metadata by canonical host and port so servers on the same host no longer show each other's MOTD, ping, player counts, or directory details.
  • Preserve public server social links in the launcher core so the server details view can render the right external links again.
  • Show player and ping stats directly in the launcher server list so the sidebar stays informative without opening each entry.

[2026.03.15] - Refine cloud style conflict modal

Changed

  • Rework the cloud style conflict modal into wider side-by-side comparison cards with a compact preview, concise facts, and a flatter palette layout that uses the available modal width instead of stacking into narrow columns.

[2026.03.15] - Add Am I Secure launch action

Added

  • Add a profile action menu entry that launches the selected profile with the local am-i-secure mod injected for that run.

Changed

  • Resolve am-i-secure from the local workspace, cache the matching Fabric or NeoForge jar, and fail the explicit launch action when no compatible artifact is available.

[2026.03.15] - Harden launcher protection and strict FairPlay gates

Added

  • Add a launcher protection guide and a security runbook for strict FairPlay rollouts and incident response.
  • Add per-profile security mode overrides (inherit, monitor, protect, strict) to the profile details panel.
  • Add a security panel that shows cached network policy, local guard rules, and per-mod capabilities.
  • Add signed trusted guard-agent delivery through the public versions API plus a deploy action and build script for guard-agent artifacts.
  • Add the first-party uebliche-guard-agent Java module with launcher-forwarded guard events and per-instance guard-events.jsonl audit logs.
  • Add cached static jar analysis for suspicious mod capabilities such as network APIs, process execution, native loading, and Java agent packaging.

Changed

  • Force ranked/FairPlay launches into strict mode and fail closed unless runtime, wrapper, guard agent, and network enforcement are ready.
  • Include strict protection metadata in FairPlay readiness, FairPlay context files, and attestation requests.
  • Extend Network Guard events and logging with prompt state, direction, and mod identity metadata.
  • Extend server-side mod policy resolution with strict protection requirements, network policy, and per-mod capabilities.
  • Require signed artifacts for both service/runtime and service/guard-agent releases in the public versions API.
  • Treat the trusted guard agent as a verified local install instead of a production environment path override.
  • Build the trusted guard agent from this repository by default instead of requiring an externally supplied jar for release packaging.

Fixed

  • Ignore local guard overrides while the effective launch mode is strict.
  • Reject ranked attestation when strict protection or the trusted guard path is missing.
  • Promote unresolved suspicious mods to local risk findings instead of leaving them as neutral unknown entries when static analysis flags dangerous capabilities.

[2026.03.15] - Productize Uebliche runtime delivery

Added

  • Add a public runtime guide, security guide, and release runbook for the launcher-managed Uebliche runtime.
  • Add per-profile Uebliche runtime overrides so profiles can inherit, prefer, or avoid the runtime until FairPlay requires it.
  • Add Linux runtime deploy targets for linux-x64 and linux-arm64.

Changed

  • Resolve the Uebliche runtime only through the public versions API and verify runtime archives with Ed25519 signatures plus sha256.
  • Show runtime override, effective mode, runtime state, and install or repair actions in profile details.
  • Gate FairPlay runtime auto-install and background runtime maintenance on actual runtime demand instead of running them unconditionally.
  • Build and deploy signed runtime.tar.zst artifacts directly instead of maintaining a separate runtime index and manifest path.

Fixed

  • Treat legacy or incomplete local runtime installs as corrupt unless they contain verified runtime metadata.
  • Reject runtime artifacts that fail signature verification, tar extraction hardening, or Java sanity checks before they can be reused.

[2026.03.15] - Add CurseForge catalog and browser installs

Added

  • Add a dedicated CurseForge page to the launcher mod catalog so mods, resource packs, and shader packs can be browsed next to Modrinth with the same card/detail flow.
  • Add CurseForge access settings so the launcher can use the Uebliche proxy by default or switch to a locally stored user API key.
  • Add a native embedded CurseForge browser window for website-only or browser-required installs and downloads.

Changed

  • Route CurseForge installs through provider-aware launcher commands so direct downloads install natively while restricted files automatically switch into the embedded browser flow.
  • Persist CurseForge metadata for installed resource packs and shader packs so the launcher can keep provider, project, file, and website context next to the asset file.
  • Include CurseForge mods and assets in launcher update checks, while keeping browser-only files marked for manual browser updates instead of attempting silent auto-installs.

Fixed

  • Keep installed CurseForge mods keyed by their real project id instead of a Modrinth-style slug so install, remove, and installed-state detection stay consistent.
  • Build CurseForge browser/download URLs from the real project slug so browser-required installs land on the correct website download page.

[2026.03.15] - Persist screenshot world context

Added

  • Persist Connect-provided screenshot context next to captured files so the gallery can keep world and server metadata across reloads.

Changed

  • Show stored world/server context in the profile screenshot gallery and lightbox instead of a permanent unknown placeholder.
  • Explain screenshot metadata in terms of active Connect context rather than a separate metadata mod.

[2026.03.15] - Refine launcher shell separation

Changed

  • Rework the launcher shell into clearer Discord-inspired zones with a darker icon rail, a distinct workspace/sidebar column, and a stronger split between navigation, content, and friends.
  • Keep the active view visible as a dedicated header bar inside the main content area instead of hiding it behind the window title bar.
  • Restyle the header controls and account dock so the launcher reads more like a structured workspace than a single flat surface.
  • Rebuild the Feedback page so the workspace subsidebar holds your created feedback entries, the selected detail keeps its context on the left, and the right sidebar stays focused on comments.
  • Remove the dedicated settings button from the launcher sidebar so settings stay reachable from the profile dock instead of occupying their own rail slot.
  • Refresh the workspace subsidebar immediately on page switches instead of leaving the previous section visible until the new view settles.
  • Close the profile details overlay before paint when leaving Profiles, so switching to views like News no longer flashes the old profile panel on top.
  • Make the Timeline render from freshly loaded events immediately instead of waiting through extra idle-processing steps after the data already arrived.

Fixed

  • Stop pruning the timeline file on every read so opening the Timeline no longer pays an extra storage rewrite before the first results appear.
  • Keep timeline and feedback loads pinned to their latest request so fast page switches or feedback selection changes no longer flash stale empty states or old list/comment payloads into view.
  • Keep aborted Modrinth catalog requests from clearing the active loading state, so opening the page no longer flickers between the skeleton cards and the "no results" empty state.
  • Limit the icon-rail background to the actual sidebar width again so the left launcher rail no longer paints a broken oversized slab behind the workspace column.
  • Replace the world-details cheats text with the same / marker used in the worlds list so enabled cheats stay readable without adding a second text label.
  • Match the hardcore skull chip in world details to the slash marker sizing so both status markers read at the same visual weight.
  • Add more gutter for sidebar icons and remove the upward hover nudge so active or hovered icons no longer clip against the shell edge.
  • Snap the launcher rail back to the top when it lands on a tiny scroll offset so the first sidebar icon no longer gets clipped under the top edge.
  • Remove the stacked top offsets in the launcher shell so the left rail and workspace sidebar start closer to the header again.
  • Normalize the sidebar scroll position only on native startup or actual layout changes so page switches keep the current rail position.
  • Snap the visible launcher rail to full item boundaries so the native sidebar no longer leaves half-cut tiles at the viewport edges.
  • Tune the workspace subsidebar background so it sits closer to the main content surface instead of reading like a separate mismatched panel.
  • Make the workspace subsidebar list itself scroll so long sections like servers stay navigable without losing the header controls.
  • Keep subsidebar resize live and in sync so the main content no longer trails behind the drag handle while changing sidebar width.
  • Keep header and rail hover tooltips anchored under UI zoom changes instead of letting them drift off their controls.
  • Reduce the subsidebar-to-content separator stack to a single visible divider instead of three competing lines.
  • Show right-aligned world markers in the subsidebar so enabled cheats use a / badge, hardcore uses a skull, and disabled cheats stay hidden.
  • Update the Modrinth subsidebar search hint per selected category so mods, resource packs, and shaders each explain the right search target.
  • Keep the Servers subsidebar consistent by listing only server names and icons instead of intermittently mixing in address and live-status lines.
  • Prevent option dropdowns like the graphics preset selector from changing the content width when values or menus get longer.
  • Remove the duplicate in-content page header so launcher views now expose their title only once via the workspace subsidebar.
  • Tighten the launcher icon rail so the sidebar background no longer feels oversized around the main navigation.
  • Align the world-list cheats slash and hardcore skull with the title row so both markers sit right-aligned directly behind the world name.
  • Remove the small trailing play arrow from world entries in the launcher subsidebar so the list stays focused on name and world state.
  • Hide disabled cheats in the world details so the panel only calls cheats out when they are actually enabled.

[2026.02.20] - Add encouraging friends empty state

Changed

  • Show an additional encouraging message in the Friends window when the list is still empty.
  • Keep the message visible only when no friends exist (not during loading, errors, or blocked state).

[2026.02.20] - Add compact debug log mode

Added

  • Add a new Debug-Modus toggle in launcher settings (Allgemein) to enable technical log diagnostics.
  • Add a compact live log overlay that appears while debug mode is enabled and lets users open the full logs drawer directly.

Changed

  • Persist debug-mode state locally so the compact diagnostics overlay stays consistent across restarts.

[2026.02.20] - Add cloud style sync conflict flow

Added

  • Add a new Style-Sync zwischen Geraeten toggle in launcher settings to sync launcher style to cloud for Dash and Mobile.
  • Add a conflict modal with side-by-side preview when a different cloud style already exists.

Changed

  • Show cloud-style availability and last update timestamp directly in the appearance settings card.
  • Let users choose between Cloud anwenden and Cloud ueberschreiben when enabling sync against an existing cloud payload.

[2026.02.20] - Add chat poll creation and voting

Changed

  • Render social chat polls directly in Friends chat messages, including per-option vote counts, percentages, and selected state.
  • Add in-chat poll voting actions with immediate message refresh after vote submission.

Added

  • Support creating polls from the composer with slash syntax:
    • /poll Question | Option A | Option B
    • /mpoll Question | Option A | Option B | Option C
  • Extend launcher social chat core models and command bridge with poll payloads and a dedicated poll-vote command.

[2026.02.19] - Add startup autostart background mode

Changed

  • Add a new launcher setting to start the app automatically with the operating system.
  • Default the startup setting to enabled so fresh installs launch automatically after sign-in.
  • Start autostart launches in background/tray mode instead of forcing the main window open.
  • Add an updater setting to automatically install launcher updates while the user is AFK/idle.
  • Only trigger idle auto-install when data saver is inactive, so constrained network sessions stay paused.
  • Move the global narrator toggle from Settings > Allgemein to the Optionen tab in Minecraft options.
  • Add per-profile narrator override in profile details (Vererbt / Aktiv / Deaktiviert) with effective-state preview.

Added

  • Add native autostart bridge commands in the launcher backend and wire them to the settings toggle.
  • Register the Tauri autostart plugin with a dedicated startup flag (--launcher-autostart) for deterministic background launch detection.

Fixed

  • Keep sidebar hover labels aligned with their hovered item when UI scale/zoom is changed.
  • Remove duplicate native/browser hover hints on sidebar navigation items when custom in-app tooltips are active (notably visible on Windows).
  • Remove the embedded chat section from the Friends popout window and keep the layout single-column there.
  • Open a direct chat popout immediately on friend click/context action in Friends views (with inline-chat fallback when popout is unavailable).
  • Parse Friends live-snapshot payloads with nested requests.incoming/outgoing and map them to launcher overview fields, so incoming/outgoing friend requests stay live in the UI.

[2026.02.19] - Move launcher updater flow to Rust

Changed

  • Route launcher update checks through native Tauri Rust commands instead of running updater plugin logic in the UI hook.
  • Route launcher download/install flow through native Rust updater commands and stream progress back to the UI via launcher://updater-progress events.

Fixed

  • Keep update check and install source consistent via the public versions API (/v1/public/versions/resolve + /v1/public/versions/download) to avoid UI-visible updates that cannot be installed in-app.

[2026.02.18] - Mobile activity icon in friends presence

Changed

  • Show a phone activity icon in Friends rows and favorite tiles when a friend is online from mobile without launcher/desktop presence.
  • Keep the existing square activity icon for launcher/desktop/ingame presence, so device context is visible at a glance.

[2026.02.18] - Fix active-interface data saver detection on macOS

Fixed

  • Restrict macOS data-saver detection to the currently active default network interface instead of scanning all saved interfaces.
  • Prevent false positives where Friends and other network-backed features stayed paused even when the active system connection had data saver disabled.

[2026.02.18] - Connect fallback download path compatibility

Fixed

  • Resolve Connect artifact fallback downloads via the versioned object path (/release/<loader>/<version>/<file>.jar) when a manifest does not provide a direct URL.
  • Encode + and spaces in Connect fallback URL path segments to avoid broken fetches for tagged artifact names.

[2026.02.18] - Prevent macOS data saver false positives

Fixed

  • Ignore navigator.connection.saveData in the desktop Tauri runtime so launcher data-saver state no longer flips on false browser signals.
  • Keep desktop data-saver activation tied to the native OS metered/data-saver signal only.

[2026.02.18] - Keep header tooltips anchored to hovered control

Fixed

  • Align header hover tooltips with their hovered icon/button when UI zoom uses transform-based scaling.
  • Compensate tooltip coordinates against root scaling so tooltip position remains stable across zoom modes.

[2026.02.18] - Remove manual data saver toggle from settings

Changed

  • Remove the manual Datensparmodus checkbox from launcher settings.
  • Derive data-saver pause behavior only from automatic OS/network signals (OS data saver and metered connection).

[2026.02.18] - Refine header hover tooltips

Changed

  • Replace native browser title tooltips in the launcher window header with styled in-app tooltips.
  • Add richer hover details for notifications, friends activity, data-saver state, updates, and layout-edit actions.
  • Improve tooltip readability and placement with viewport-aware positioning and non-blocking pointer behavior.

[2026.02.18] - Auto-detect OS data saver mode

Fixed

  • Register and expose the missing Tauri command is_metered_connection_command so UI data-saver detection no longer fails silently.
  • Enable automatic OS-level data-saver detection on all desktop targets in the launcher UI instead of Windows-only checks.
  • Use an explicit OS data saver detected reason in the active data-saver state label.

[2026.02.18] - Auto-maintain Uebliche runtime in background

Changed

  • Start an automatic Uebliche runtime maintenance task on launcher startup when runtime mode is enabled.
  • Run an immediate runtime ensure on app launch and keep runtime versions current with periodic background checks every 6 hours.

[2026.02.18] - Replace server reorder arrows with drag and drop

Changed

  • Remove the up/down arrow controls for server ordering in the personal server list and cards.
  • Add drag-and-drop reordering for personal servers in both list and card view, including a dedicated drag handle in each server action row.
  • Add visual drag feedback (dragging state and before/after drop indicators) for clearer reorder targets.

[2026.02.18] - Polish server list view styling

Changed

  • Redesign the personal server list rows with clearer visual hierarchy, stronger hover/focus states, and improved spacing.
  • Add dedicated list-view styling for public servers, including better alignment for metadata, profile actions, and import controls.
  • Introduce missing server list UI primitives (public-chip, social icon badges, structured meta pills, reorder control container) for a cleaner and more consistent list layout.

[2026.02.18] - Add server IP privacy toggle

Added

  • Add a new checkbox in the Servers view to hide server host/IP addresses.

Changed

  • Obfuscate server addresses in server lists, server cards, public server cards, and server details while the toggle is enabled.
  • Persist the address visibility preference locally, so the choice is kept across launcher restarts.

[2026.02.18] - Emphasize active layout edit in header

Changed

  • Keep the layout reset action locked directly to the right of the Layout bearbeiten pencil in the window header.
  • Strengthen the active visual state of the layout edit button with higher contrast and glow, so edit mode is immediately visible.

[2026.02.18] - Restore FairPlay readiness command

Fixed

  • Re-register the Tauri invoke command fairplay_readiness so profile details can load FairPlay readiness again without Command fairplay_readiness not found.

[2026.02.18] - Show layout reset only in edit mode

Changed

  • Show the window-header layout reset button only while Layout bearbeiten is active.

[2026.02.18] - Group sidebar items by stacking

Added

  • Allow grouping sidebar navigation entries by dropping one item onto another while Layout bearbeiten is active.
  • Add grouped-entry persistence so created sidebar groups survive launcher restarts.

Changed

  • Collapse grouped sidebar entries into one launcher item in normal mode and open a compact member picker on click.
  • Add an Ungroup action for group leaders in edit mode to clear a created group quickly.

[2026.02.18] - Add layout reset action to header

Added

  • Add a dedicated reset button next to the Layout bearbeiten pencil in the window header.

Changed

  • Route layout reset through a confirmation overlay so reset only runs after explicit user confirmation.
  • Reset sidebar order/visibility, home widget order/visibility, sidebar separators, and home widget presentation to defaults in one action.

[2026.02.18] - Improve live drag preview in layout edit mode

Changed

  • Add a floating live preview chip while dragging sidebar navigation entries in Layout bearbeiten.
  • Add a floating live preview card while dragging Home widgets (News, Welten, Server, Support) in Layout bearbeiten.

Fixed

  • Project sidebar and home widget order as a live preview during drag, so the target position is visible before drop.
  • Strengthen drop target highlighting and card hover feedback to make drag targets clearer while reordering.

[2026.02.18] - Add macOS runtime deploy targets

Added

  • Add macos-arm64 and macos-x64 runtime build/deploy support for signed Uebliche runtime artifacts.

Changed

  • Make the runtime deploy action upload paths configurable via runtime OS/arch segments, so non-Windows runtime artifacts can be published without manual S3 copy steps.

Fixed

  • Accept both .zip and .tar.gz JRE archives in the runtime build script (Adoptium macOS binaries are tarballs).
  • Resolve signed runtime index/manifest paths for macOS launcher platforms (mac-os, mac-os-arm64) in launcher-core.

[2026.02.18] - Fix FairPlay policy dropdown arrow

Fixed

  • Remove the native macOS select indicator from launcher selects so the FairPlay Policy-Modus (Profil) dropdown no longer shows a broken double-arrow icon.

[2026.02.17] - Pointer-only reorder for edit mode

Fixed

  • Use pointer-only reorder flow for sidebar navigation in Layout bearbeiten to avoid platform-specific HTML5 drag/drop failures.
  • Use pointer-only reorder flow for landing widgets so card reordering works consistently in desktop WebViews.

Changed

  • Add pointer target metadata and global pointer tracking for robust drop target detection while dragging.

[2026.02.17] - Pointer fallback for layout reorder

Fixed

  • Add pointer-based drag/reorder fallback for sidebar navigation items in Layout bearbeiten, so reorder works even when HTML5 drop events are unreliable in desktop WebViews.
  • Add pointer-based drag/reorder fallback for landing page widgets (News, Welten, Server, Support) in layout edit mode.

Changed

  • Prevent home card navigation while layout edit mode is active to avoid accidental page switches during reorder interactions.

[2026.02.17] - Harden sidebar drag/drop in edit mode

Fixed

  • Keep sidebar drag payload stable until drop is processed, preventing no-op drops in some WebView drag event orders.
  • Make sidebar drop handlers consume events earlier and resolve dragged item more defensively for reliable reorder commits.

Changed

  • Disable sidebar navigation clicks while Layout bearbeiten is active to avoid accidental route changes during drag operations.

[2026.02.17] - Fix sidebar reorder drop index

Fixed

  • Correct sidebar edit-mode reorder index mapping within the same section so dropping items downward no longer snaps back to the old order.
  • Move sidebar drag source handling to the full item container for more reliable drag/drop behavior in layout edit mode.

[2026.02.17] - Restore native HTTP bridge command

Fixed

  • Re-register http_request_command in the Tauri invoke handler so launcher UI calls can use the native Rust HTTP bridge again.
  • Restore native HTTP request execution (method/headers/body/timeout) with HTTPS-only enforcement (except localhost over HTTP), fixing repeated Command http_request_command not found runtime errors.

[2026.02.17] - Compact layout-edit toggle

Changed

  • Make the window-header Layout bearbeiten toggle icon-only (pencil), removing the text label and eye badge.
  • Keep the same tooltip and accessibility label while matching other compact header icon actions.

[2026.02.17] - Move nav and widget menus to layout edit mode

Changed

  • Remove sidebar navigation menu controls from Settings; navigation/menu visibility and ordering are now edited only in Layout bearbeiten.
  • Remove Home landing widget menu controls from Settings; start-page widget visibility and ordering are now edited only in Layout bearbeiten.

[2026.02.17] - Home widget icon controls and resize

Changed

  • Replace Home widget edit controls on the landing page with icon-based width/height controls and the shared list/cards icon switch.
  • Add frame-edge resize handles (right, bottom, and corner) so widget size can be adjusted directly via drag in edit mode.
  • Keep drag reorder stable by suspending widget drag while a resize interaction is active.

[2026.02.17] - Increase UI Kit spacing

Changed

  • Increase spacing between UI Kit cards, rows, labels, and stacked elements so examples are less cramped.
  • Add dedicated responsive UI Kit spacing rules for desktop and mobile breakpoints.

[2026.02.17] - Remove settings reorder arrows

Changed

  • Remove up/down reorder arrow controls from settings rows in Navigation and Startseite.
  • Keep these settings focused on visibility toggles; ordering is handled in layout edit mode.

[2026.02.17] - Layout edit drag/drop and sizing controls

Fixed

  • Make sidebar edit-mode drag/drop robust by resolving drag payload from dataTransfer and keeping drag state stable across browser drag events.
  • Add section-level drop handling in sidebar edit mode so dropping at the end of top/bottom menu sections works reliably.

Changed

  • Replace implicit home widget size toggles with explicit width (1W/2W) and height (S/M/L) controls in layout edit mode.
  • Add explicit layout mode buttons (List/Cards) for home widgets and show active selection state.

[2026.02.17] - Persist launcher window bounds

Fixed

  • Remember launcher window size and position across restarts via the Tauri window-state plugin.
  • Persist window state on explicit app shutdown paths (exit(0) and tray quit) instead of only close events.
  • Restore saved state when recreating the main launcher window instance.

[2026.02.17] - Edit-mode layout overlays

Added

  • Show a compact view-mode overlay in Layout bearbeiten mode on list-heavy pages (Profiles, Worlds, Servers) to switch between list/cards directly in context.

Changed

  • Reuse one shared overlay component for these pages so view-mode editing behavior stays visually and functionally consistent.

[2026.02.17] - Customizable launcher surface

Added

  • Add customizable sidebar navigation settings to show/hide entries and reorder main/secondary menu items.
  • Add customizable home widget settings to enable/disable and reorder News, Worlds, Servers, and Support.

Changed

  • Extend look-and-feel settings with UI density, accent style, card style, and compact mode toggles.
  • Apply the new UI style settings globally via persisted data-ui-* flags so layout spacing and card presentation update immediately.

[2026.02.17] - Inheritable profile switch style

Changed

  • Replace the profile auto-update inherit/enable/disable buttons with a reusable inheritable switch component for profile-level overrides.
  • Show a linked icon in the top-right of the switch when Inherit is active and dim the control slightly to indicate global fallback.
  • Show an unlinked icon when profile override mode is active so Enabled/Disabled is visually distinct from inherited mode.

[2026.02.17] - Zero playtime label

Fixed

  • Show 0 playtime for fresh profiles with no recorded session yet, instead of <1m.

[2026.02.17] - Create profile snapshot toggle visibility

Changed

  • Hide the Show snapshots checkbox in the create-profile wizard when Always latest release or Always latest snapshot is selected, because the toggle has no effect in tracked mode.

[2026.02.17] - Compatible mod fallback install

Changed

  • Profile details now offer a direct Kompatible Version nutzen action for Modrinth mods that are flagged as incompatible with the current Minecraft version.
  • Mod update installs now prefer the currently resolved compatible versionId before using stale cached update metadata.

Fixed

  • When a pinned mod version install fails with a compatibility error, the launcher now automatically resolves and retries with the best compatible version for the profile loader + Minecraft version.

[2026.02.17] - Profile details resilient loading

Changed

  • Open profile details immediately with cached data or a summary snapshot while fresh detail/asset data loads in the background.
  • Refresh profile details and profile assets in parallel to reduce perceived wait time when opening the details panel.

Fixed

  • Add hard timeouts for profile detail and asset requests so the details view no longer hangs indefinitely on stalled backend calls.
  • Guard profile detail requests against stale responses when users switch/close details quickly, preventing missing or overwritten UI state.

[2026.02.17] - Notification quick actions

Changed

  • Open notifications from the bell in a compact dropdown with an explicit empty state (Keine Mitteilungen vorhanden.).
  • Keep notification lists scrollable inside the dropdown so the panel stays small.

Added

  • Add inline friend request actions directly in the notification dropdown:
    • accept via green check
    • decline via red cross
    • block via red lock
  • Add a launcher core/Tauri bridge command to block a user from friend notifications (friends_block_user_command -> /social/friends/blocks).

[2026.02.17] - Dedicated news tab

Added

  • Add a dedicated News tab to the launcher navigation.
  • Add feed search/filter controls in the news tab (fulltext, scope, project, and tag filters).
  • Add a detailed news view with markdown rendering and direct link opening.

Changed

  • Increase launcher news feed fetch size so the dedicated news tab can search across a larger result set.
  • Keep Home news compact by limiting the preview list to the latest entries.

[2026.02.17] - Followable launcher news feeds

Added

  • Home news view: add project feed follow controls (follow/unfollow chips + manual project ID follow input).
  • Add launcher core/API bridge for personalized news feed data and follow updates (list_news_command + set_news_follow_projects_command).

Changed

  • Load news from authenticated /v1/news/feed so launcher users see combined global news plus followed project feeds.
  • Keep compatibility fallback to legacy public news (service:launcher + parents) when personalized feed is unavailable.
  • Reuse feed cache timestamps (sinceMs / lastChangedAtMs) and skip full payload updates when the API reports notModified=true.

[2026.02.17] - Friends polling via core

Changed

  • Move launcher friends live updates to core-driven polling (friends_overview_command) and stop opening a browser WebSocket from the UI layer.
  • Remove the obsolete friends_stream_url_command bridge and corresponding core helper for /social/friends/live.

Fixed

  • Prevent recurring launcher log spam from failed UI WebSocket connections to wss://api.uebliche.net/v1/social/friends/live.

Added

  • Add launcher deep-link support for skin parts migration (?entry=skin-builder-parts and /catalog/skin-builder/parts) to open Accounts > Skins > Community.
  • Add optional launcher query support for direct account view selection (view=accounts, accountsTab, skinsTab).

Changed

  • Allow external services (for example Dash migration bridges) to open the launcher directly in the skin parts community workflow.

[2026.02.14] - Header brand centering

Fixed

  • Window header: align the top-left brand (logo + title) more precisely by normalizing line-height.

[2026.02.14] - Notifications and preview stability

Changed

  • Server management: stop re-pinging on every silent refresh; auto-ping failures are now debug-only (with cooldown) instead of spamming the console.

Fixed

  • Desktop notifications (Windows): do not force the notifications window into permanent click-through mode; clicks work again and the webview controls click-through only when empty.
  • Skins: reduce WebGL context usage by rendering list/grid thumbnails as 2D images and keeping the main 3D preview stable (avoids "Too many active WebGL contexts" and context-loss crashes).

[2026.02.14] - Servers, notifications, and accounts

Changed

  • Server management: move the primary actions (Add server / Refresh public servers) into the top header for a more consistent layout.
  • Microsoft account flow: the main action now starts the device-code flow and immediately copies the code + opens the login URL (one click). The code remains clickable to copy.

Fixed

  • Desktop notifications (Windows): avoid hiding the notifications popout before it emitted the ready handshake, preventing notifications from never showing on some setups.
  • Network Guard: log status events as info (while still keeping a debug copy of all events) so users see activity without enabling debug logs.

[2026.02.14] - Minecraft language (system)

Fixed

  • When "Use system language" is enabled, prefer the likely locale (e.g. de_de for de) instead of picking an arbitrary first match like de_at.

[2026.02.14] - Skin Builder attention animations

Fixed

  • Restore clickable desktop notifications by only enabling click-through when the notifications window is empty (Windows).
  • Add category-specific Skin Builder preview attention animations when switching parts (tops/outerwear/gloves: inspect arms, bottoms/socks/footwear: crouch, head slots: nod) and keep the preview camera framed to the active category.
  • Log the active Network Guard config on launch and include the effective policy flags in the startup status event.

[2026.02.14] - Desktop notifications & Network Guard

Fixed

  • Clamp the desktop notifications popout position to the active monitor so misplaced screen placement settings cannot push notifications off-screen (Windows).
  • Emit a Network Guard status event even when disabled and log every Network Guard event with a debug copy for easier troubleshooting.

[2026.02.14] - One-click Microsoft login

Changed

  • Replace the separate "Copy" + "Open login" actions with a single "Copy & login" button in the Microsoft device-code flow.
  • Make the device code itself clickable (and keyboard accessible) to copy it.

[2026.02.14] - Network Guard logging

Fixed

  • Log Network Guard status, observed destinations, and policy decisions in the launcher debug log (including socket monitor errors).

[2026.02.14] - Desktop notifications (Windows)

Fixed

  • Make the notifications popout show/hide logic resilient so notifications still appear even if optional window APIs fail on Windows.

[2026.02.14] - Desktop notifications (Windows)

Fixed

  • Fix Windows desktop notifications by bootstrapping the hidden notifications window on first use.

[2026.02.14] - German translations

Fixed

  • Use proper umlauts in German UI copy.

[2026.02.14] - Window header spacing

Fixed

  • Normalize window header spacing so controls and action buttons use consistent gaps.

[2026.02.14] - Ollama model catalog

Fixed

  • Avoid fetching Ollama /api/tags on startup (models are now loaded only when you explicitly refresh them).

[2026.02.14] - Log overlay resizing

Changed

  • Replace the log overlay height slider with a draggable top edge (height is persisted).

[2026.02.14] - Apply skins to accounts

Fixed

  • Fix applying skins to accounts by sending the required accountId argument to the core command.

[2026.02.14] - Clothing overlay templates

Fixed

  • Include second-layer (overlay) UV islands in Tops/Bottoms part templates so creators can paint proper 3D depth.
  • Map Outerwear templates to the jacket/sleeves overlay UV islands.

[2026.02.14] - Skin builder color controls

Fixed

  • Hide the part color controls in the skin builder when a selected community part disables custom colors (non-colorable layers).

[2026.02.13] - Skin preview cape picker styling

Fixed

  • Style the cape selection list in the skin preview modal so it matches the rest of the launcher UI.

[2026.02.13] - Clothing templates

Fixed

  • Expand Tops/Outerwear/Bottoms part templates to cover all faces (360 degrees) in the part editor instead of only the front.

[2026.02.13] - Head follow direction

Fixed

  • Correct the vertical axis for head-follow pointer rotation so moving the mouse up looks up (and vice versa).

[2026.02.13] - Native Windows window corners

Fixed

  • Use native Windows window corner rounding for launcher windows instead of CSS border-radius clipping.

[2026.02.13] - Pending part editing

Added

  • Allow creators to fully edit pending/blocked community skin builder parts in the part editor and re-submit them for review.
  • Show pending/blocked status chips for your own community parts in the market list.

[2026.02.13] - Layer order dialog

Changed

  • Make the skin builder layer order modal more compact and show the selected part name(s) per slot.

[2026.02.13] - Head follows pointer

Added

  • Make the main 3D skin preview track the mouse pointer with head rotation for extra life in the builder and accounts preview.

[2026.02.13] - Neutral fallback skins

Fixed

  • Remove purple tint from placeholder/fallback skins in 3D previews.
  • Use a neutral skin-tone base when composing builder skins, so missing parts no longer introduce a purple cast.

[2026.02.13] - Skin builder part offsets

Added

  • Allow community part uploads to define per-part offset bounds (X/Y min/max) for placement adjustments.
  • Allow adjusting a selected part's position in the builder within its offset bounds, persisted in saved builder skins.

[2026.02.13] - Headwear stack focus

Fixed

  • Keep stacked Headwear render order stable while selecting items for editing (no accidental reordering when focusing a part).

[2026.02.13] - Stacked headwear parts

Added

  • Allow selecting multiple Headwear parts at once (stacking) so hats and glasses can be combined.
  • Persist stacked Headwear selections (and their per-part colors) in saved builder skins.

[2026.02.13] - Community part attribution

Added

  • Allow submitting optional attribution (source/inspiration/original artist) when uploading community skin builder parts.

[2026.02.13] - Community part moderation

Added

  • Prompt for community upload rules/terms before submitting skin builder parts.

Changed

  • Submit community skin builder parts for moderation (pending) instead of publishing immediately.

[2026.02.13] - Skin part upload validation

Fixed

  • Validate community part template uploads as 64x64 PNG files (<= 256 KiB) before submitting.
  • Reject invalid skin builder part textures on the Public API (64x64 PNG, <= 256 KiB).

[2026.02.13] - Layered skin builder parts

Added

  • Allow community skin builder parts to use multiple PNG layers, each with its own tint in the builder and part editor.
  • Persist skin builder selections and color overrides when saving skins to the library, so edits can resume later.
  • Add Modrinth-style search term filtering for Worlds, Servers, and Profiles lists.
  • Add a visual editor for desktop notification placement.

Changed

  • Update Patreon links to point to patreon.com/uebliche and streamline the Supporters tab CTA.

[2026.02.13] - Community base parts

Added

  • Allow community skin builder parts in the Base slot, so custom base bodies can be uploaded and selected.

[2026.02.13] - Skin builder layer compositing

Fixed

  • Compose skin builder selections from uploaded PNG textures in a deterministic slot draw order, so parts stack correctly.
  • Remove placeholder builder parts so only real community/custom items are shown.

[2026.02.13] - Modpack import entry

Changed

  • Remove Modpacks from the Modrinth browser project-type tabs to keep that view focused on mods, resource packs, and shaders.

Added

  • Add a dedicated Import Modpack profile archive action to the Profiles import menu so modpack/profile archives are created from the Profiles import flow.

[2026.02.11] - Prism playtime import fix

Fixed

  • Convert Prism/MultiMC totalTimePlayed values from seconds to milliseconds during instance import so imported profile playtime matches the source launcher.

[2026.02.11] - Worlds refresh guard while playing

Fixed

  • Ignore worlds-changed refresh events for profiles that currently have a running game instance, so the Worlds view no longer reloads continuously during gameplay on Windows.

[2026.02.11] - Updater cache busting

Fixed

  • Append a timestamp query parameter to updater manifest fetch URLs so CDN-cached responses do not block fresh update detection.

[2026.02.11] - Updater build-date freshness

Fixed

  • Compare update candidates by manifest build date (pub_date) and release day instead of hash-only suffix ordering.
  • Keep the manual manifest fallback active when plugin checks report no update, so newer same-day builds are still detected.

[2026.02.11] - S3 release cleanup

Added

  • Add scripts/cleanup-s3-releases.js to prune old launcher artifacts from S3 while keeping the newest N versions per channel.
  • Add a Cleanup launcher S3 uebliche.dev action with configurable channels, retention, and apply mode.

[2026.02.10] - Signed in-app updates

Fixed

  • Generate and publish signed updater manifests so in-app updates ("Download & Neustart") work reliably.
  • Improve the updater fallback flow to open manual download URLs via the Tauri-safe external opener.

[2026.02.08] - Focus ring styling

Fixed

  • Replace the default blue input focus ring with an accent-colored focus outline.

[2026.02.08] - Selection colors

Fixed

  • Use the launcher accent color for text selection + caret color instead of the system default blue highlight.

Fixed

  • Ensure third-party library links open reliably in Tauri by routing clicks through the external opener.

[2026.02.08] - Libraries search copy

Fixed

  • Use a dedicated libraries search placeholder instead of reusing the log search string.

[2026.02.08] - Libraries modal refresh

Changed

  • Redesign the third-party libraries overlay with search, versions, and a cleaner compact list.

[2026.02.08] - Global view loading

Fixed

  • Reduce UI hangs while switching tabs by lazily building view props only for the active page and showing a global loading overlay while the new view mounts.

[2026.02.08] - Non-blocking navigation

Fixed

  • Avoid UI stalls when switching tabs by rendering only the active view and scheduling navigation state updates as transitions.

[2026.02.08] - Navigation render freeze fix

Fixed

  • Prevent hidden pages from re-rendering on navigation by freezing their element trees while hidden, avoiding short UI hangs.

[2026.02.08] - Instant tab switching

Fixed

  • Keep page content mounted briefly when switching tabs, then unmount during idle time to avoid navigation jank.

[2026.02.08] - Smooth tab switching

Fixed

  • Avoid short UI freezes when switching tabs by delaying expensive page unmounts to idle time.

[2026.02.08] - Faster navigation

Fixed

  • Defer heavy page mounts to idle time so switching tabs from the sidebar feels instant.

[2026.02.08] - Timeline async compute

Fixed

  • Defer timeline parsing/grouping to idle time so opening the Timeline tab does not freeze the UI on large logs.

[2026.02.08] - Timeline loading overlay

Fixed

  • Show a subtle shimmer overlay while the timeline reloads so loading is visible even when previous data is already present.

[2026.02.08] - Timeline loading skeleton

Fixed

  • Render a timeline skeleton immediately while loading so the Timeline tab does not flash an empty panel.

[2026.02.08] - Timeline performance

Fixed

  • Avoid Timeline UI hangs by reading the timeline log from the end (tail scan) instead of parsing the entire file.
  • Bound mod icon preloading concurrency so large profile sets do not freeze the UI.

[2026.02.08] - Async timeline loading

Fixed

  • Load timeline events/config in background tasks so opening the Timeline page does not block the UI thread on large logs.

[2026.02.08] - Timeline play modes and radar

Added

  • Show an activity radar on the Timeline page to summarize recent activity by category.
  • Capture quick play multiplayer server context in play session timeline events so the launcher can attribute playtime to servers.

Changed

  • Add playtime mode filters (All, Singleplayer, Multiplayer) and a compact server breakdown when viewing multiplayer sessions.
  • Show play mode + server information in Timeline tooltips when available.

Fixed

  • Dedupe repeated mod.installed timeline entries across install flows that report version labels vs version IDs.

[2026.02.08] - Profile delete robustness

Fixed

  • Stop a running Minecraft instance before deleting its profile to avoid leftover profile.lock directories.
  • Dedupe repeated mod timeline entries even when the install flow reports version labels and version IDs in separate steps.

[2026.02.08] - Horizontal timeline view

Changed

  • Replace the timeline stream with a horizontal time axis (event markers + play session bars per profile).

Fixed

  • When a mod icon fails to load, keep the fallback letter visible instead of leaving an empty placeholder.
  • Dedupe repeated mod.* timeline entries more aggressively to avoid spam from multi-step install flows.

[2026.02.08] - Mod install dedupe

Fixed

  • Prevent duplicate Modrinth installs from being triggered multiple times in quick succession.
  • Dedupe repeated mod.* timeline events to avoid duplicate entries.

[2026.02.08] - Profile delete cleanup

Fixed

  • Deleting a profile now reliably removes the full profile directory, including a leftover profile.lock file.

[2026.02.08] - UUID profile imports

Fixed

  • Imported profiles now always get a fresh UUID folder name, avoiding collisions with existing profiles and making imports deterministic.

[2026.02.08] - Refresh playtime after exit

Fixed

  • Refresh profile summaries after a game session ends so playtime updates immediately in the UI.

[2026.02.08] - World timeline events

Added

  • Record world lifecycle and play sessions in the timeline (world.created, world.deleted, world.played).

Fixed

  • Record play sessions with the correct end timestamp after Minecraft exits.

[2026.02.08] - Timeline stream view

Changed

  • Replace the timeline list with a grouped timeline stream and per-day activity bars with category coloring.

[2026.02.08] - Launcher beta build fix

Fixed

  • Fix a Rust type mismatch in the timeline event payload that could break release builds.

[2026.02.08] - Launcher dev port cleanup

Fixed

  • Auto-free the default dev server port (42200) when starting the launcher dev environment, preventing Vite strict-port startup failures after stale runs.

[2026.02.08] - Activity timeline

Added

  • Add a Timeline tab that records launcher activity locally (profiles, mods, accounts, options, play sessions, updates) with filters and retention controls.

[2026.02.08] - External playtime import

Fixed

  • Parse external launcher playtime more robustly during profile import.

[2026.02.08] - Imported profile playtime

Fixed

  • Preserve external launcher playtime when importing profiles.

[2026.02.08] - Bundled UI font

Added

  • Bundle the Inter Variable font so UI typography is consistent across operating systems.

[2026.02.08] - Account setup wizard

Added

  • Route first-run (or post sign-out) users back to the account setup flow until an account is added.

[2026.02.07] - Minecraft language system default

Changed

  • Default "Use system language" for Minecraft language settings to enabled.

Fixed

  • If the language is changed in-game while system language syncing is enabled, automatically disable the system language toggle so the in-game choice is preserved.

[2026.02.07] - Uebliche.dev deploy uploads

Fixed

  • Ensure the Deploy launcher action can upload artifacts via uebliche.dev even when release.sh skips its own S3 upload logic.

[2026.02.07] - Network logs and UI polish

Fixed

  • Keep profile mod icon fallbacks visible until the icon image actually loads.
  • Scope HTTP fetch logs to the Network log tab so the tab is not empty during normal usage.

Changed

  • Increase the FOV slider range to 130 and label 80 as "Normal" and 130 as "Quake Pro" (matching vanilla naming).

[2026.02.07] - Mod icons in profiles

Fixed

  • Cache remote Modrinth (and asset) icons as data URIs so profile mod icons render reliably in the details view.

[2026.02.07] - Network Guard log visibility

Fixed

  • Show Network Guard socket destinations in the Network log tab without requiring "Show debug".

[2026.02.07] - Options sync audio/music

Added

  • Add Options Sync toggles for audio and music so profiles can share sound device and volume settings.

[2026.02.07] - Network Guard log tab

Added

  • Emit Network Guard destination events into the UI log panel under a dedicated tab, including which profile triggered each destination.

[2026.02.07] - Desktop shortcuts (macOS)

Fixed

  • Generate macOS desktop shortcuts as .app applets so launching a profile does not open Terminal.

Changed

  • Update generated Tauri schemas to include deep-link permission entries.

[2026.02.07] - Network Guard (per instance)

Added

  • Add an optional per-instance Network Guard that starts a local HTTP proxy (with HTTPS CONNECT tunneling), monitors outbound destinations (best-effort), and shows a desktop notification once per new destination.

[2026.02.06] - App icon card

Changed

  • Add an opaque background card to the macOS app icon to avoid overly transparent glyphs on light surfaces.

[2026.02.06] - App icon updated

Changed

  • Update the launcher app icon using the shared Uebliche logo.

[2026.02.06] - Sidebar tooltip overlay

Fixed

  • Render the sidebar hover label as an overlay tooltip so it does not widen the sidebar or cause horizontal scrolling.

Added

  • Add the shared Uebliche logo SVG and expose startLogo() / stopLogo() on the header logo element (id="logoSvg").

Changed

  • Sync the launcher branding logo from the monorepo root so the asset stays consistent across projects.

[2026.02.06] - Sidebar fade

Changed

  • Reduce the bottom fade strength in the sidebar scroll mask and disable it when scrolled to the end.

[2026.02.06] - Sidebar top gutter

Fixed

  • Add a small top gutter to the sidebar scroll area so the fade mask cannot clip the first item.

[2026.02.06] - Sidebar header removed

Removed

  • Remove the sidebar header block to keep the navigation compact.

[2026.02.06] - Startup animation removed

Removed

  • Remove the temporary RGB warp startup animation (a logo-based startup experience is planned).

[2026.02.06] - Startup warp respawn

Fixed

  • Fade in both alpha and visible streak length on respawn to remove harsh looping.

[2026.02.06] - Startup warp loop

Fixed

  • Fade new warp streaks in near the center to avoid visible resets, and use dt-based motion for smoother playback.

[2026.02.06] - Startup warp fade

Changed

  • Slow down the startup warp fade-out and make the transition smoother.

[2026.02.06] - Startup warp in dev

Fixed

  • Keep the startup warp animation visible in dev mode (React StrictMode cleanup no longer ends it immediately).

[2026.02.06] - Devtools

Added

  • Enable the webview developer tools in debug builds (set UEBLICHE_DEVTOOLS=0 to disable).

[2026.02.06] - Rounded window corners

Changed

  • Render the launcher windows with rounded corners using transparent windows and CSS clipping.

[2026.02.06] - Startup animation preview

Added

  • Add a preview button for the startup warp animation in settings.

[2026.02.06] - World linking

Added

  • Link a world across profiles using symlinks/junctions so saves stay in sync.

[2026.02.06] - Startup warp animation

Added

  • Add an optional RGB warp startup animation with a settings toggle.

[2026.02.06] - Header drag permission

Fixed

  • Allow window dragging permissions for the custom header on macOS.

[2026.02.06] - Header drag

Fixed

  • Start window dragging directly from the custom header region.

[2026.02.06] - Relaunch module

Fixed

  • Use the Tauri process plugin for relaunch to avoid dev import errors.

[2026.02.06] - Friends popout route

Fixed

  • Open the friends popout using the app route to avoid dev server URL issues.

[2026.02.06] - Update relaunch

Fixed

  • Relaunch the launcher automatically after installing an update.

[2026.02.06] - Header drag region

Fixed

  • Mark the custom header area as draggable for window moves.

[2026.02.06] - Custom header frame

Changed

  • Hide the native window frame to rely on the custom launcher header.

[2026.02.06] - Window header settings

Added

  • Add customizable window header controls with OS-style layouts, density, and colors.

[2026.02.06] - Friends live updates

Changed

  • Switch the friends list to a websocket stream instead of periodic polling.

[2026.02.06] - Accounts add overlay

Changed

  • Refresh the add-account overlay styling for clearer hierarchy and spacing.

[2026.02.06] - Accounts empty banner

Fixed

  • Remove the dark overlay behind the empty accounts banner.

[2026.02.06] - Friends popout controls

Changed

  • Replace the friends popout close button with OS-style window controls.

[2026.02.06] - Portable update manifest

Added

  • Publish a portable Windows update manifest and upload the portable ZIP during launcher deploys.

[2026.02.05] - Portable Windows bundle

Added

  • Add a portable Windows bundle to launcher deploy outputs.

[2026.02.05] - News feed

Added

  • Load launcher news from the public API feed with summary and detail views.

[2026.02.05] - Feedback back button

Fixed

  • Add an outlined back button style for the feedback subpage.

[2026.02.05] - Feedback back button

Fixed

  • Make the feedback back button more visible.

[2026.02.05] - Feedback subpage

Changed

  • Show the feedback form as a dedicated subpage instead of a side module.

[2026.02.05] - Feedback flow

Changed

  • Split the feedback view into a list with a dedicated "New" action and detail panel.

[2026.02.05] - Feedback history

Added

  • Show submitted feedback entries in the launcher feedback view.

[2026.02.05] - Launcher feedback

Added

  • Add an in-app feedback form that submits directly to the public API.

[2026.02.05] - Update manifest path

Fixed

  • Use channel-root update manifest URLs without platform subfolders.

[2026.02.05] - Friends popout close

Fixed

  • Allow the friends popout window to close even when close-to-tray is enabled.

[2026.02.05] - Account cache storage

Fixed

  • Store Uebliche session cache data on disk to avoid Windows credential size limits.
  • Cache skin and cape previews on disk instead of the credential store.

[2026.02.05] - Smarter downloads

Changed

  • Polish the launcher download panel styling for clearer hierarchy and contrast.

Added

  • Show a recommended launcher download button based on detected OS and CPU architecture.

Fixed

  • Improve download button text contrast so labels stay readable.

[2026.02.05] - Tray restore sizing

Fixed

  • Restore a reasonable window size on Windows when reopening from the tray.

[2026.02.05] - Friends popout close

Fixed

  • Allow the friends popout window to close even when close-to-tray is enabled.

[2026.02.04] - Public update manifests

Fixed

  • Generate launcher update manifests during deploys and upload them with public-read ACLs.

[2026.02.04] - Public launcher artifacts

Fixed

  • Upload launcher artifacts with public-read ACLs so update manifests are accessible.

[2026.02.04] - Linux deploy bundles

Fixed

  • Package fallback Linux bundles during deploy builds so cross-compiled artifacts upload correctly.
  • Add Linux aarch64 sysroot symlinks for loader/libgcc to unblock cross-linking.
  • Upload Linux bundle artifacts in the launcher deploy action.

[2026.02.04] - Vite TSX priority

Fixed

  • Prefer TS/TSX modules in the Vite resolver to avoid JS mirror parse errors.

[2026.02.04] - Linux aarch64 sysroot

Fixed

  • Rebuild the linux-aarch64 sysroot from an arm64 base image for reliable cross builds.

[2026.02.04] - Updater manifest path

Fixed

  • Resolve update manifests from the per-platform folder so Windows updates install.

Changed

  • Mark shared community profiles in the launcher with a link icon.

[2026.02.04] - Friends popout window

Fixed

  • Disable maximizing the friends popout window in the launcher.

[2026.02.04] - Community server profiles

Added

  • Add shared community server profiles with recommended picks and one-click launch from the public server list.

[2026.02.01] - Feature checklist

Added

  • Add feature checklist page to track project progress.

[2026.01.30] - Mojang module split

Changed

  • Split the Mojang metadata types and API helpers into smaller modules to keep the launcher core maintainable.

[2026.01.24] - Automatic update checks

Added

  • Trigger launcher update checks automatically on startup and periodically.

Fixed

  • Allow the updater public key to be injected at build time for self-updates.

[2026.01.24] - Launcher deploy storage

Changed

  • Remove launcher deploy S3 storage vars and rely on the shared deploy store config.

[2026.01.24] - Window resize background

Added

  • Sync Minecraft options for the default account through the public API.

Fixed

  • Set the launcher window background color to avoid white flashes during resize.
  • Disable heavy UI effects while resizing to keep the window smoother.

[2026.01.22] - Friend permission errors

Fixed

  • Include missing permission details when launcher API calls return 403 responses.

[2026.01.21] - Updater manifest hashes

Added

  • Add sha256 hashes to launcher update manifests for artifact verification.
  • Generate launcher update manifests in uebliche.dev with optional data-driven fields.

[2026.01.21] - Multiple updates

Added

  • Add aarch64 Linux gcc/g++ wrapper scripts to link against the ARM sysroot.
  • Add a target picker build action for the launcher and remember the last selection.
  • Auto-install missing rustup targets during launcher build/deploy actions.
  • Prompt for target platforms when running the launcher deploy action, remembering the last selection.

Changed

  • Wipe release bundle/output directories before launcher deploy builds so only fresh artifacts upload.
  • Allow launcher deploy uploads to clear the S3 store prefix via the project action config.
  • Prefix launcher deploy uploads with the configured S3 project key (default: launcher).
  • Let the launcher deploy action build locally and rely on Uebliche.dev uploads instead of the AWS CLI.
  • Add optional macOS notarization to the launcher release script when credentials are provided.
  • Remove per-platform launcher build actions in favor of the single target picker build.
  • Remove per-platform deploy actions in favor of the single target picker deploy.
  • Remove hardcoded user sysroot paths from Linux cross-build settings and wrappers.
  • Disable the S3 selection prompt for launcher deploy actions in Uebliche.dev.
  • Stop prompting for S3 storage on launcher deploy actions by relying on default env vars.
  • Simplify launcher downloads to show only latest links per platform without version details.
  • Restrict launcher downloads in docs to release-only links.

Fixed

  • Run launcher deploys with the selected targets instead of forcing a linux-x86_64 build.
  • Prepare Linux sysroots on demand during deploy so target selection stays generic.
  • Decode manifest URL paths when uploading installer artifacts so Windows bundle names with spaces upload correctly.
  • Package macOS .app bundles into .tar.gz during deploy so updater manifests are generated for mac targets.
  • Upload macOS .tar.gz artifacts in launcher deploys so update manifests resolve to existing files.
  • Force Linux aarch64 builds to use the ARM sysroot and pkg-config paths even when x86_64 defaults are set.
  • Skip launcher uploads for Linux cross-builds on non-Linux hosts when no bundle artifacts exist, instead of hard failing.
  • Ensure the Linux x86_64 sysroot loader symlink is created during deploy builds.
  • Include /lib64 in the Linux sysroot and link ld-linux to fix cross-linking on macOS.

[2026.01.20] - Signing listener defaults

Changed

  • Let launcher dev runs fall back to dev.sh defaults when signing listener vars are unset, avoiding wrong working directories.
  • Enable automatic devtools opening when UEBLICHE_DEVTOOLS=1 is set for launcher dev runs.
  • Stabilize Tauri event listeners to avoid repeated listen/unlisten spam in dev tools.
  • Keep close-to-tray and notification-open listeners stable while still honoring live settings.
  • Lower the default UI log limit and cap pending log flushes to reduce runaway memory usage.
  • Fix Tauri build ordering by initializing overlay refs after their state setters.
  • Enable the Tauri updater plugin with update artifacts and channel-specific manifest targets.
  • Ignore local IPC/localhost fetch noise in UI logging to stop dev log spam.
  • Fix updater crate version spec and silence unused window warning in devtools hook.
  • Disable updater artifact generation for local builds to avoid missing private key failures.
  • Add a short Cache-Control TTL to updater manifests to reduce stale update checks.
  • Disable browser caching for launcher update manifests in the docs download widget.
  • Only upload the current installer + manifest in the release scripts to avoid overwriting all S3 artifacts.
  • Cap UI log entries and trim oversized log messages to reduce idle memory growth.

[2026.01.20] - Launcher downloads refresh

Changed

  • Rebuild the launcher download section with a single per-platform download button and channel toggle to remove duplicated controls.

[2026.01.20] - Linux sysroot defaults

Changed

  • Default Linux cross-build pkg-config paths in the launcher release script when a sysroot is present.
  • Run Linux x86_64 deploys via the sysroot prepare step to ensure pkg-config data is available.
  • Build Linux sysroot images with GTK/WebKit dev packages so pkg-config files are available.
  • Include libsoup/javascriptcore/OpenSSL dev packages in Linux sysroots for WebKit builds.
  • Extend default Linux pkg-config search paths to include /usr/lib/pkgconfig.
  • Resolve Linux sysroot paths to absolute paths for cross-build actions.
  • Prefix numeric git hashes in launcher release versions to keep the version semver-compatible.
  • Auto-rebuild Linux sysroots when required pkg-config files are missing.

[2026.01.20] - Windows release from macOS

Changed

  • Allow the launcher release script to target Windows builds from macOS via explicit target selection.
  • Add a cross-platform build toggle to the launcher uebliche.dev actions.
  • Add a dedicated Windows build action to the launcher uebliche.dev config.
  • Add a dedicated Windows deploy action to the launcher uebliche.dev config.
  • Run the Windows build action via the Tauri CLI target flag instead of the macOS DMG wrapper.
  • Use the Tauri CLI directly for Windows deploy builds to avoid the macOS DMG wrapper.
  • Store launcher uploads under project/channel/platform in S3 (e.g. launcher/release/windows-x86_64).
  • Remove the hardcoded S3 store from the launcher uebliche.dev deploy actions.
  • Allow a separate ACL for updater manifests to keep update JSON files readable.
  • Default the launcher update manifest ACL to public-read.
  • Restore the fixed launcher S3 store defaults for deploy actions.
  • Clean up launcher build warnings for devtools and unused variables.
  • Upload update manifests at the channel root while keeping platform-specific asset URLs.
  • Add release/beta channel selection to the launcher downloads component.
  • Style the launcher downloads channel switcher in the docs theme.
  • Limit the launcher update checker to release and beta channels.
  • Add a separate artifact ACL setting so Windows installers upload as public-readable.
  • Add per-OS release/beta download buttons to the launcher downloads section.
  • Add Linux x86_64/aarch64 build + deploy actions for the launcher in Uebliche.dev.
  • Expose Linux cross-build env vars in the launcher Uebliche.dev config.
  • Add a deploy-all-targets action for launcher releases.
  • Auto-prepare Linux cross-build sysroots for launcher builds.

[2026.01.19] - Launcher build deps

Changed

  • Auto-install the ui-tauri pnpm workspace deps when missing during Tauri builds.
  • Start the launcher signing listener by default when running dev.sh.
  • Auto-install ui-tauri deps before Vite dev/build, fixing missing module resolution on Windows.

[2026.01.19] - 2026-01-19

Changed

  • Remove the update feed button from the launcher downloads section.
  • Rewrite the launcher landing page intro copy to be player-focused and promote sandboxed runs as a key feature.
  • Highlight easy profile sharing for friends getting set up fast.
  • Note that shared profiles stay linked so friends receive modpack updates automatically.

[2026.01.16] - 2026-01-16

Changed

  • Load launcher download buttons from update manifests and only list available platforms.
  • Show known platforms when update manifests cannot be loaded.
  • Register the launcher downloads component explicitly in the docs theme.
  • Fall back to the beta update channel if the release feed has no manifests.
  • Read flat update manifests with top-level download URLs.
  • Show friend streak flames (>=2 sessions) with counts in the friends list.

[2026.01.14] - 2026-01-14

Changed

  • Update launcher repository links to the uebliche org.

[2026.01.13] - 2026-01-13

Added

  • Roll out Sentry crash reporting with release-aware metadata and default PII capture.
  • Add a build-and-install script for uebliche.dev launcher builds.

Changed

  • Refresh Microsoft access tokens with a larger safety margin before launching Minecraft.

[2026.01.07] - 2026-01-07

Added

  • Add the docs changelog page for Launcher.