Skip to content

Changelog

[2026.05.25] - Harden Connect Stream Auth

Changed

  • Move Connect WebSocket fallback auth from URL query tokens to the uebliche-bearer WebSocket subprotocol.
  • Keep Gateway DNS automation limited to official Connect gateway servers with public-routable IP targets.
  • Reject signed agent update manifests that downgrade the installed bootstrapper state or reuse a version with a different artifact hash.

[2026.05.23] - Define MVP Join Contract

Added

  • Document the canonical Launcher, Public API, Gateway/Connect, and Gameserver join-ticket contract for Uebliche-managed play.
  • Capture required join IDs, ticket TTL and security rules, error cases, and the Hide and Seek handoff path.

[2026.05.21] - Stabilize Standalone Gradle Builds

Fixed

  • Apply the shared mcmeta and Gradle 9.4.0 wrapper wiring so this project can configure from its own mod directory.
  • Keep standalone loader resolution compatible with release-matrix validation for current Minecraft metadata.

[2026.05.10] - Add Platform Command Layer

Changed

  • Route Connect server/proxy commands through the shared Uebliche Platform command API so /connect status and supported /joinme wiring are no longer implemented separately per loader.
  • Keep Fabric, NeoForge, Paper, and Velocity entry points focused on descriptor wiring and Platform bootstrap.
  • Start Connect through generic Platform entry points discovered via ServiceLoader and move shared Connect start/stop/status wiring into loader-free runtime code.
  • Run Velocity managed-network sync and permission-cookie refresh through Platform server/player capabilities instead of Connect-owned Velocity controllers.
  • Generate Connect loader Gradle projects under build/generated/loaders so the repo no longer carries mod/connect/loader-* project directories.
  • Move the remaining Fabric and NeoForge client bridge sources into dedicated Connect client bridge folders while server/proxy startup stays Platform-owned.

Fixed

  • Resolve Connect NeoForge builds from the configured neoforge_version property so the Platform-backed loader can compile against the supported NeoForge runtime.
  • Clean up Connect service executors even when a loader initializes the service while server credentials are still missing.

[2026.05.07] - Add Achievement Reporting Helper

Added

  • Add a Connect SDK achievement client with queued async setProgress, incrementProgress, unlock, and explicit event publishing helpers for server-side integrations.
  • Return achievement event results with idempotency and progress state so game code can react to duplicate or successful reports.

[2026.05.06] - Publish Fabric Version Matrix

Added

  • Build and deploy Connect Fabric releases as a Minecraft-version matrix by default, so one release can publish matching artifacts for every supported 1.21.x and 26.x Fabric version.

Fixed

  • Compile the Fabric bridge across 1.21.x and 26.x API differences for custom payload identifiers, LAN button presses, and command permission checks.
  • Attach Minecraft-version metadata to staged matrix artifacts and upload first-class Minecraft version coverage, so version resolution can pick the correct Fabric jar.

Added

  • Add the connect:social_access wire protocol so servers can request scoped social access through the Launcher account.
  • Let official servers mint friends-read delegation tokens automatically and let Fabric clients approve or remember non-official server requests.

[2026.05.02] - Store Permission Cookies

Added

  • Store Connect permission JWTs as the uebliche:permissions Minecraft cookie from the Velocity plugin so permissions can follow players across server transfers.
  • Refresh Connect permission JWT cookies periodically in the Velocity plugin so long sessions keep current permission claims.
  • Cache valid permission JWTs in the Velocity plugin until they expire so reconnects and server switches can reuse the cookie without waiting for a REST roundtrip.

[2026.04.30] - Add Minigame Join Payload

Added

  • Send launcher-selected Uebliche.games minigame join targets from the Connect client mod to the current server through the connect:minigame_join plugin message.

[2026.04.30] - Keep Velocity plugin builds resolvable

Fixed

  • Build the Connect Velocity plugin with the current Kyori Blossom Gradle plugin release so remote Docker stack builds can resolve the source-template plugin from the Gradle Plugin Portal.

[2026.04.28] - Forward Seen Build Assets To Launcher

Added

  • Send seen banner and head block entities from the Connect client bridge to the Launcher, with local deduplication and optional auto-submit metadata.

[2026.04.26] - Publish Fabric support for Minecraft 1.21.11

Added

  • Publish the Connect Fabric client mod for Minecraft 1.21.11 so Launcher installs can resolve and download the matching artifact from uebliche.net.

Fixed

  • Compile the Fabric client bridge against the 1.21.11 networking, screen, and client-message APIs while keeping the 26.x API path intact.
  • Build Fabric Connect deploys from remapJar and write Minecraft-version metadata beside release jars, so support backfills avoid the sources remap path and register artifacts with the correct version.

[2026.04.26] - Publish complete Fabric launcher bridge artifacts

Fixed

  • Publish Connect Fabric releases from a jar that includes the launcher bridge API classes, so singleplayer share updates no longer crash with a missing ClientJoinTargetBridge.
  • Fail Fabric Connect release staging when the selected jar is missing the launcher bridge API, so incomplete artifacts cannot be deployed silently.

[2026.04.22] - Repair managed-server command websocket handshake

Fixed

  • Build the Agent's managed-server command stream from a real client WebSocket request before adding host metadata headers, so local and remote managed-server hosts no longer send malformed upgrade handshakes that the Public API rejects with sec-websocket-key errors.
  • Back off managed-server command stream reconnects after 429 Too Many Requests instead of warning every few seconds, so temporarily rate-limited hosts stop spamming the local Agent log while they wait to reconnect.
  • Exit duplicate Agent starts quietly when the local admin listener is already bound, so accidental second launches no longer panic on Address already in use.

[2026.04.22] - Add Velocity managed-network topology sync

Added

  • Add shared managed-network topology models in Connect runtime-core plus a Velocity controller that polls the Public API for desired backend aliases, so each Velocity proxy in a proxy group can mirror the same backend table idempotently.
  • Publish agent mesh host metadata and agent-side managed-server mesh forwarder ports through the direct hosting path, so backend runtimes can expose a stable proxy-facing host/port tuple without teaching Velocity about the child process listen port.

Changed

  • Treat Velocity as the canonical managed proxy role inside networked managed-server groups, acknowledge applied topology versions back to the Public API, and remove stale aliases when a backend leaves the desired topology, so proxy-group convergence stays explicit and observable.
  • Keep the first mesh pass on the direct host path and separate relay-session control from gameplay routing, so networked backend routing works today while the dedicated mesh-relay daemon can land behind the new control-plane contracts.

[2026.04.22] - Default Connect hosts to direct managed server hosting

Added

  • Add direct managed-server runtime metadata plus stable local listen-port assignment to the Connect Agent, so native hosts and Docker-service hosts advertise the same canonical hosting model to the Public API.
  • Add agent-managed Connect credentials to managed server bootstrap responses, so direct child-process hosts can publish their own minecraft-tcp route through Connect Gateway without Docker port mapping.

Changed

  • Reframe Docker as an optional Linux packaging mode for the Agent instead of the per-server runtime model, while keeping native hosting as the default path in docs and Dash onboarding.
  • Update the Agent sample config, container image contract, and install guidance around persistent config/server/cache volumes for one-container-many-servers hosting.

[2026.04.22] - Add Windows agent hosting path

Added

  • Add windows-x86_64 packaging for the Connect Agent, including a ZIP archive that bundles uebliche-agent.exe with the bootstrapper for manual installs on Windows gaming PCs.
  • Document a manual Windows bootstrap install path plus Windows-flavoured service command examples for the agent sample config and README.

Changed

  • Stop and restart agent-managed local server processes through a platform-aware runtime path so Windows hosts now use taskkill /T with force escalation instead of the old Unix-only signal flow.

[2026.04.22] - Make public slugs copyable from the LAN screen

Changed

  • Replace the generated public-slug preview in the Fabric Open to LAN dialog with a real text field so hosts can copy the .uebliche.gg address directly before starting the share.
  • Use the actual published join address in the follow-up chat line after opening for friends, so the slug shows up alongside the usual LAN port announcement instead of only living inside the dialog.

Fixed

  • Switch the new singleplayer friend-share translation placeholders to Minecraft-compatible %s formatting so generated slug and domain values render correctly in the UI and chat instead of showing raw placeholder braces.

[2026.04.22] - Split public slug creation from friend sharing

Changed

  • Add a dedicated Create public slug toggle to the Fabric Open to LAN share flow so hosts can publish a friend session without automatically reserving and persisting a fixed .uebliche.gg slug every time.

Fixed

  • Stop forcing singleplayer friend shares to generate a custom route host when the share dialog only asks for Friends, so LAN hosts can now use the normal gateway address unless they explicitly opt into a public slug.

[2026.04.21] - Add LAN audience toggles and generated friend domains

Added

  • Add LAN and Friends audience toggles to the Fabric Open to LAN screen so singleplayer hosts can decide whether a world stays local, publishes to Connect friends, or both at once.
  • Generate a temporary Minecraft-flavoured *.uebliche.gg host for friend shares from the LAN screen and surface it directly before and after publishing so hosts can hand out one ready-made domain immediately.

Changed

  • Persist the selected singleplayer friend-share route host in the local Connect client config so the gateway route and JoinMe metadata keep using the same generated domain for that published session.
  • Extend public Connect Cloudflare DNS sync to manage SRV records for active Connect route hosts under uebliche.gg, so generated friend-share subdomains stay joinable in Minecraft instead of only resolving in the browser.

[2026.04.21] - Add Open for Friends from the LAN screen

Added

  • Add an Open for Friends action to the Fabric singleplayer LAN screen so hosts can open a world to LAN and publish it to Connect/JoinMe in one step.

Changed

  • Publish the active singleplayer friend-share address through the shared client bridge while JoinMe is running, so other client mods can discover the world as a joinable friend session without scraping Connect internals.

[2026.04.21] - Add managed slug joins and server pages

Added

  • Add managed Connect network slugs that resolve to slug.uebliche.gg, so servers without a verified custom domain can still publish one stable public join address.
  • Add public Connect server pages on uebliche.gg/<slug> with summary, join host, publication metadata, and launcher profile install/join actions, so communities can share one canonical landing page for both Uebliche and vanilla players.

Changed

  • Redirect browser requests from slug.uebliche.gg to the canonical uebliche.gg/<slug> page while keeping the subdomain usable as the actual Minecraft join host.
  • Expose recommended versus required launcher profile state through the public Connect slug payload, so launcher installs and direct-join flows can respect server profile requirements before launch.
  • Prefer the managed slug host as the default Connect routeHost when no verified custom domain exists, and auto-manage wildcard web plus per-slug SRV records through Public API Cloudflare automation, so unmanaged communities can publish one stable slug.uebliche.gg address without manual DNS work.

[2026.04.21] - Add gateway client forwarding and cache-aware status hooks

Added

  • Add forwardingMode and motdCachePolicy to Connect gateway services and route publication so runtimes can explicitly advertise legacy routing, PROXY protocol v2, native Connect forwarding, and shared MOTD cache support.
  • Add cache-aware gateway status observations and richer tunnel open payloads carrying client host/port, requested host/port, and protocol version.
  • Add a Fabric server-side proxy-protocol decoder mixin that consumes the Connect/Gateway header before the first Minecraft packet and rewrites the connection remote address to the real client.

Changed

  • Publish Paper and Velocity minecraft-tcp routes with proxy-protocol-v2 plus shared 10s MOTD caching when their native proxy-protocol settings are enabled.
  • Publish Fabric dedicated and explicit singleplayer-share routes with connect-native forwarding plus shared 10s MOTD caching so status, login, and runtime code see the real client address through the Gateway path.
  • Forward PROXY protocol v2 headers for both proxy-protocol-v2 and connect-native tunnel streams instead of the old text-header path, and register UDP peer metadata for tunneled voice-udp sessions.
  • Warn only once when Paper or Velocity are missing their native proxy-protocol setting, while keeping legacy routing as the fallback.

[2026.04.21] - Consolidate Connect access and publishing

Added

  • Add canonical Connect server access-policy and invite endpoints plus a shared publication API for server and network targets, so Connect now exposes one collaboration and listing control plane for managed and claimed servers.

Changed

  • Move managed-server whitelist and invite policy storage into generic Connect access and invite documents keyed by serverId, so runtime, Dash, and mobile resolve the same server-collaboration model.
  • Switch publication status pushes to /connect/servers/{serverId}/publication/status and keep network aggregation behind the unified publication model, so Connect listings no longer depend on the old network-only public-server flow.
  • Accept scoped role grants for Connect server collaboration on real Connect server ids, including managed srv-* instances, so role-based delegation finally lines up with the server ids used by Connect itself.

[2026.04.21] - Add service-based gateway routing and singleplayer sharing

Added

  • Add service-based Connect gateway publishing for minecraft-tcp plus optional voice-udp, backed by a local service registry instead of one static tunnel target.
  • Add Fabric client singleplayer sharing through /joinme, using a dedicated config/connect-client identity and JoinMe metadata sourced from the active gateway route.

Changed

  • Publish gateway routes through /connect/servers/{serverId}/gateway-routes/{serviceId} while keeping the legacy single-route endpoint compatible for minecraft-tcp.
  • Resolve incoming tunnel streams and UDP datagrams against the active local service registry so unpublished services are rejected by default.
  • Treat CONNECT_GATEWAY_TARGET_HOST/PORT as the legacy fallback for minecraft-tcp until loader-specific service providers take over.
  • Publish Velocity gateway routes from the live proxy listener port and register the shared admin and reconnect Connect extensions there as well, so proxy deployments no longer depend on the legacy static target fallback.

Fixed

  • Close Connect-opened singleplayer LAN shares again on Fabric disconnect, world unload, failed share startup, and client shutdown so /joinme hosting does not leave stale local ports behind.
  • Localize Paper and Velocity /connect status output and the Paper /joinme menu through the bundled Connect language files instead of hardcoded English strings.
  • Keep the active gateway tunnel alive across transient gateway candidate and route-upsert failures, so Paper test servers stay reachable through the gateway even while the control plane answers with temporary 429 or timeout errors.
  • Abort and rebuild the active gateway control session as soon as a tunnel write fails, and stop buffering Paper tunnel writes, so live player traffic no longer continues on a corrupted reverse-tunnel stream.

[2026.04.14] - Add quest SDK tracked routing

Added

  • Add a new net.uebliche.connect.api.quests SDK surface with tracked-quest resolve, quest event publishing, and a generic join coordinator so JVM plugins can talk to the Public API without hand-rolling HTTP calls.
  • Add a Paper quest join bridge that queries the client's currently tracked quest on player join and lets plugins register native Java routes, command routes, or teleport targets for specific quest campaigns.
  • Add Fabric and NeoForge client quest-bridge payload handling so Connect-enabled clients can answer tracked-quest queries from servers through the shared connect:quest_bridge channel.

Changed

  • Expose quest APIs from the existing ConnectAPI entry point, so external SDK consumers can reach the new quest flow from the same bootstrap object they already use for Connect status publishing.

[2026.04.13] - Register reconnect extension

Added

  • Register a new reconnect Connect extension on Paper, Fabric, and NeoForge with a shared schema, delegated actions, and reconnect capability metadata for Dash, launcher, and mobile.

Fixed

  • Publish Connect extension settings and schemas immediately during registration so newly added extensions expose their typed state without waiting for a separate manual settings update.

[2026.04.13] - Unobfuscated Fabric 26.1 startup

Changed

  • Default local Connect Fabric development to Minecraft 26.1.2, Java 25, and client runs so the reconnect client path starts from the current unobfuscated release line.
  • Resolve Fabric loader and Fabric API versions for 26.x through mcmeta and live metadata instead of pinning Connect to Mojang release-only version checks.
  • Port the Fabric client and server hooks to the official 26.1.2 Mojang class names so auto reconnect, launcher join auth, and command wiring work on the unobfuscated release line.
  • Toggle joinme directly from the command on Fabric 26.1.2 instead of relying on the older inventory menu API path.
  • Add pause/resume and cancel controls to the reconnect status card so players can stop or defer automatic retries without spamming the server-list back path.
  • Probe the server with Minecraft status pings before each reconnect attempt and only reopen the actual connect screen once the target responds again.
  • Remove the raw target address line from the reconnect card so the disconnect UI stays focused on status and controls.

Added

  • Show a visible auto-reconnect status block on the disconnect screen with countdown, running attempt info, and the target server while Connect retries a join.

Fixed

  • Stop blocking loader-fabric on missing remap mappings for 26.x by running unobfuscated Fabric builds without the legacy mapping gate.
  • Replace the broken dev.sh version discovery that read Loom plugin versions as Minecraft versions, so local Fabric runs can start again.
  • Reuse the original server-list parent screen for reconnect retries so Back to server list no longer nests one disconnect screen per attempt.
  • Move reconnect reachability probes off the render thread so a powered-off target server no longer freezes and crashes the client during the probe timeout.

Changed

  • Restyle the reconnect status card with a dedicated header, cleaner attempt copy, and a compact text progress bar for retry and timeout phases.
  • Trim the reconnect card down to a compact two-line status with tighter spacing and smaller controls so the disconnect screen stays visually quiet.
  • Make reconnect waiting fully silent on screen by removing the visible countdown and retry counter while Connect polls for the server in the background.
  • Anchor the reconnect status line directly above the vanilla Back to Server List button so the disconnect layout reads top-down again.
  • Size the Pause and Cancel controls as one shared row that matches the width of the vanilla back button.
  • Clear reconnect button focus after click so Pause and Cancel do not stay visibly selected on the disconnect screen.
  • Add defensive reconnect spacing so the status line pushes the button rows down only when the vanilla disconnect reason would otherwise overlap it.
  • Replace the separate reconnect status line with dynamic text on the vanilla top button so the disconnect layout stays simpler and more stable.
  • Restore the vanilla back button label, move reconnect into a quieter dedicated row with a compact pause/resume toggle, and accept a temporary connect:reconnect_control client packet that can suppress auto reconnect for the next kick window.

[2026.04.12] - Register managed server admin extension

Added

  • Add a new admin Connect extension schema with typed actions for moderation, invite/member management, content installs, world transfers, and server lifecycle control.

Changed

  • Register the admin extension on Paper, Fabric, and NeoForge startup alongside the existing Connect surface so managed servers can expose one shared remote-control contract across loaders.

[2026.03.28] - External SDK public status reporting

Added

  • Add the publishable connect-sdk Java module with ConnectAPI, ConnectApiOptions, ConnectServerReporter, and ConnectServerSnapshot for external JVM programs.
  • Add reporter-driven public server status publishing so Connect servers can push MOTD and player stats without launcher-side ping ownership.
  • Add a user-facing Connect architecture page with an end-to-end diagram for Dash, Agent, Public API, Gateway, and launcher/public-server flows.

Changed

  • Aggregate Connect network public-server stats from fresh reporter snapshots and republish them as a shared network listing.
  • Keep Connect-managed public servers out of the legacy ping refresh path so reporter data is no longer overwritten locally.

[2026.03.16] - Social extension registration

Added

  • Register the social server plugin as a Connect extension on startup whenever CONNECT_SERVER_ID and CONNECT_SERVER_SECRET are configured.

Changed

  • Ensure the social extension exists in the Public API catalog when missing so Connect server extension registration no longer depends on a manual Dash/API setup step.

[2026.03.15] - Screenshot context metadata

Added

  • Detect newly captured in-game screenshots in the Connect client bridge and forward their world/server context to the launcher.

Changed

  • Prefer the actual singleplayer save name as the world label when Connect reports client context, falling back to the dimension name only when no save name is available.

[2026.02.18] - Versioned loader release paths

Changed

  • Store Connect loader artifacts under versioned release folders (release/<loader>/<version>/<file>.jar) for S3 deploys.
  • Generate update manifest URLs with the new version segment so launcher downloads map to the same deployed object layout.
  • Default deploy loader selection to fabric,neoforge,paper,velocity and prefer Java 21 on macOS deploy hosts for Paper compatibility.

[2026.02.16] - Gateway route orchestration

Added

  • Add Connect-side gateway route orchestration that polls candidate gateways and publishes gateway-route ownership for Minecraft TCP.
  • Add latency probing and optional region preference to select the best available gateway target.
  • Add new Connect gateway route environment controls (CONNECT_GATEWAY_*) for refresh interval, TTL, target endpoint, and probe timeout.

Changed

  • Prefer verified Connect network domains as gateway routeHost targets so domain-based gateway joins resolve directly to the active Velocity route.
  • Consume API-provided routeHost hints from gateway candidates when CONNECT_GATEWAY_ROUTE_HOST is not explicitly set.

[2026.02.06] - Public server publishing

Added

  • Add Connect network publish endpoints for the public server list.

[2026.02.01] - Feature checklist

Added

  • Add feature checklist page to track project progress.

[2026.01.25] - Extension actions

Added

  • Add extension registration and action hooks to the Connect service.
  • Show server aliases in the Connect status command output.
  • Support temporary instances and template IDs for Connect servers.

Changed

  • Scope Connect settings by extension ID so each extension has its own settings payload.
  • Suppress stack traces in public Connect logs and emit concise error details instead.
  • Pass uebliche.dev build tag into Connect Gradle builds for versioning (without loader/mcVersion suffix).

[2026.01.25] - Hub + Velocity updates

Added

  • Publish hub settings schemas to Connect so Dash can render typed fields.

Fixed

  • Remove duplicate "Velocity" label in the startup log message.

[2026.01.23] - JoinMe support

Added

  • Add JoinMe SDK plumbing and API calls for create, heartbeat, and close.
  • Add /joinme menu support for Paper and Fabric servers.

[2026.01.23] - Agent Docker image

Added

  • Document the Docker image run command for the Connect Agent.

[2026.01.23] - Linux-only agent install

Changed

  • Limit Connect agent install docs to Linux targets.

[2026.01.22] - Host onboarding

Added

  • Add single-use network join tokens and host join endpoint for the Connect Agent. (api 07cd76c)
  • Add Dash hosts view with a cloud-init generator for agent installs. (dash 5874a78)

[2026.01.22] - Agent bootstrapper

Added

  • Document the bootstrapper-driven auto-update flow for the Connect Agent. (agent f6654fb)

[2026.01.22] - Agent installer

Added

  • Document the public install scripts for the Connect Agent. (install 2a59b2f)

[2026.01.22] - Agent permission preload

Added

  • Document Connect Agent permission preload and batch permission fetch support. (agent e44fd75)

[2026.01.22] - 2026-01-22

Added

  • Document the local Connect Agent gateway for proxying Connect traffic and host management.

[2026.01.19] - 2026-01-19 - NeoForge loader rename

Changed

  • Rename the NeoForge loader module from loader-forge to loader-neoforge and update entrypoints/packages. (local)

[2026.01.17] - 2026-01-17

Added

  • Add Velocity-only server management actions (list, add, remove registered proxy servers).

Fixed

  • Allow registration to succeed without network credentials (serverId/serverSecret only).
  • Stop Velocity builds from using Minecraft mcVersion as the Velocity API/proxy version.
  • Ensure Velocity runServer writes a config and applies port overrides (velocity_port/port).
  • Populate Velocity plugin metadata (version/authors) from build data.
  • Fix Velocity build evaluation by deferring author collection for template expansion.
  • Log the claim key on startup while it is still valid for claiming.
  • Fetch fresh claim keys for unclaimed servers on startup and log them.

[2026.01.12] - 2026-01-12

Fixed

  • Stop stale Paper run process and remove session.lock before starting the dev server.

Added

  • Allow overriding API base via JVM start options (system properties).

[2026.01.11] - 2026-01-11

Added

  • Add Connect server bridge for dash-triggered actions.
  • Add multi-loader builds for Fabric, NeoForge, Paper, and Velocity.
  • Add permission-aware API integration for remote actions.
  • Add in-game permission checks for connect commands and settings updates.
  • Add /connect status command for connection diagnostics.
  • Add automatic server registration with connect.json and network key support.