Skip to content

Make the geodro to lerd-env org move self-healing, plus pre-release fixes - #602

Merged
geodro merged 3 commits into
mainfrom
chore/org-cutover-lerd-env
Jun 24, 2026
Merged

Make the geodro to lerd-env org move self-healing, plus pre-release fixes#602
geodro merged 3 commits into
mainfrom
chore/org-cutover-lerd-env

Conversation

@geodro

@geodro geodro commented Jun 24, 2026

Copy link
Copy Markdown
Member

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.

geodro added 3 commits June 24, 2026 11:42
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.
@geodro
geodro merged commit e807761 into main Jun 24, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant