Make the geodro to lerd-env org move self-healing, plus pre-release fixes - #602
Merged
Conversation
ReadFrame allocated make([]byte, plen) straight from the client-declared length, so a single frame announcing a huge size could force a multi-gigabyte allocation, and the new /api/lsp/php endpoint exposes that path to browser-controlled frames. Reject any frame whose declared length is negative or above a 64 MiB ceiling before allocating.
lerd stop now leaves lerd-dns running as install-level plumbing and only lerd quit tears it down, but the lifecycle and command-reference pages still described the old behaviour. Update those, document the tinker output additions and the automatic network-change healing, and note the lerd link init-wizard routing. The podman requirements hint, the dashboard docs entry, and the goreleaser homepage and install one-liner now use the lerd.sh custom domain instead of the old geodro.github.io and raw GitHub URLs.
…ove self-healing Every URL lerd fetches its own assets from, the framework store, release binaries, the changelog, and the prebuilt GHCR base images, now resolves through a single origin package. Each endpoint is served as an ordered list with the current geodro location first and the future lerd-env location as a fallback, so a binary shipped before the org move keeps working and falls through to the new org once it exists. The first time a request succeeds against a lerd-env URL the preference flips to new-first for the rest of the process, so installs migrate on their own with no probe, no timer, and no second release. The store, self-update, changelog, and base-image fetchers all try the list in order, and the installer gains a LERD_REPO override so a future move needs no installer change.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This branch prepares for moving the repos from geodro to a lerd-env org without a flag day. The bulk is a new internal origin package that becomes the single source of truth for every URL lerd fetches its own assets from: the framework store, release binaries, the changelog, and the prebuilt GHCR base images. Each endpoint is served as an ordered list with the current geodro location first and the future lerd-env location as a fallback, so a binary shipped today keeps working and transparently falls through to the new org the moment it exists. The switch is request-driven: the first time a real fetch succeeds against a lerd-env URL the preference flips to new-first for the rest of the process, so installs migrate on their own once geodro is retired, with no probe, no timer, and no second release. A malformed list override falls back to the defaults, so a bad LERD_STORE_BASE_URL can never empty the list and panic. Publish targets stay on geodro because the actual GitHub move has not happened yet, and the installer gains a LERD_REPO override so that step needs no installer change.
Bundled alongside are the pre-release review fixes. ReadFrame now caps an inbound websocket frame's declared payload at 64 MiB before allocating, closing an unbounded-allocation path the new /api/lsp/php endpoint exposes to browser frames. The docs are corrected for the new lerd stop and lerd quit DNS behaviour, the tinker output additions, the automatic network-change healing, and the lerd link init wizard, and the remaining geodro.github.io and raw GitHub doc links now point at lerd.sh.