Changelog
[2026.05.25] - Harden Connect Stream Auth
Changed
- Move Connect WebSocket fallback auth from URL query tokens to the
uebliche-bearerWebSocket 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 statusand supported/joinmewiring 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/loadersso the repo no longer carriesmod/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_versionproperty 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.
[2026.05.03] - Add Social Access Consent
Added
- Add the
connect:social_accesswire 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:permissionsMinecraft 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_joinplugin 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
remapJarand 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-keyerrors. - Back off managed-server command stream reconnects after
429 Too Many Requestsinstead 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-tcproute 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_64packaging for the Connect Agent, including a ZIP archive that bundlesuebliche-agent.exewith 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 /Twith 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 LANdialog with a real text field so hosts can copy the.uebliche.ggaddress 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
%sformatting 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 slugtoggle to the FabricOpen to LANshare flow so hosts can publish a friend session without automatically reserving and persisting a fixed.uebliche.ggslug 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
LANandFriendsaudience toggles to the FabricOpen to LANscreen so singleplayer hosts can decide whether a world stays local, publishes to Connect friends, or both at once. - Generate a temporary Minecraft-flavoured
*.uebliche.gghost 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 Friendsaction 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.ggto the canonicaluebliche.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
routeHostwhen 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 stableslug.uebliche.ggaddress without manual DNS work.
[2026.04.21] - Add gateway client forwarding and cache-aware status hooks
Added
- Add
forwardingModeandmotdCachePolicyto 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-tcproutes withproxy-protocol-v2plus shared10sMOTD caching when their native proxy-protocol settings are enabled. - Publish Fabric dedicated and explicit singleplayer-share routes with
connect-nativeforwarding plus shared10sMOTD 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-v2andconnect-nativetunnel streams instead of the old text-header path, and register UDP peer metadata for tunneledvoice-udpsessions. - 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
serverandnetworktargets, 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/statusand keep network aggregation behind the unified publication model, so Connect listings no longer depend on the old network-onlypublic-serverflow. - 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-tcpplus optionalvoice-udp, backed by a local service registry instead of one static tunnel target. - Add Fabric client singleplayer sharing through
/joinme, using a dedicatedconfig/connect-clientidentity 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 forminecraft-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/PORTas the legacy fallback forminecraft-tcpuntil loader-specific service providers take over. - Publish Velocity gateway routes from the live proxy listener port and register the shared
adminandreconnectConnect 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
/joinmehosting does not leave stale local ports behind. - Localize Paper and Velocity
/connect statusoutput and the Paper/joinmemenu 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
429or 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.questsSDK 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_bridgechannel.
Changed
- Expose quest APIs from the existing
ConnectAPIentry 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
reconnectConnect 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.xthrough 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.2Mojang class names so auto reconnect, launcher join auth, and command wiring work on the unobfuscated release line. - Toggle
joinmedirectly from the command on Fabric26.1.2instead 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-fabricon missing remap mappings for26.xby running unobfuscated Fabric builds without the legacy mapping gate. - Replace the broken
dev.shversion 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 listno 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 Listbutton so the disconnect layout reads top-down again. - Size the
PauseandCancelcontrols as one shared row that matches the width of the vanilla back button. - Clear reconnect button focus after click so
PauseandCanceldo 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_controlclient packet that can suppress auto reconnect for the next kick window.
[2026.04.12] - Register managed server admin extension
Added
- Add a new
adminConnect extension schema with typed actions for moderation, invite/member management, content installs, world transfers, and server lifecycle control.
Changed
- Register the
adminextension 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-sdkJava module withConnectAPI,ConnectApiOptions,ConnectServerReporter, andConnectServerSnapshotfor 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
socialserver plugin as a Connect extension on startup wheneverCONNECT_SERVER_IDandCONNECT_SERVER_SECRETare configured.
Changed
- Ensure the
socialextension 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,velocityand 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-routeownership 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
routeHosttargets so domain-based gateway joins resolve directly to the active Velocity route. - Consume API-provided
routeHosthints from gateway candidates whenCONNECT_GATEWAY_ROUTE_HOSTis 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
/joinmemenu 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-forgetoloader-neoforgeand 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.lockbefore 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 statuscommand for connection diagnostics. - Add automatic server registration with
connect.jsonand network key support.