cloverleaf-larry/VERSION
Bryan Johnson 6a12c3d0f9 v0.7.4: drop GitHub fallback from auto-update (single-source Gitea)
The v0.7.2 GitHub fallback is now functionally broken: the GitHub mirror
is being made private, so anonymous raw fetches return 401/403.  Rather
than ship a silent-failure path to a dead URL, remove the fallback
entirely.

Changes:
  larry.sh
    - LARRY_BASE_URL_FALLBACK / LARRY_ORIGIN_DEFAULT_GITHUB removed
    - sync_from_manifest_with_fallback and _fetch_with_fallback retained
      by name (call-site compat) but are now single-source wrappers; on
      origin unreachable they warn "auto-update skipped this launch" and
      proceed with locally cached files (no crash)
    - status-line _origin_badge collapses to "" (default) or "custom"
      (user-pinned HTTPS URL); legacy github / fallback badges gone
    - /origin slash command simplified:
        /origin              show effective origin + pin file
        /origin gitea        pin to the default Gitea URL
        /origin auto         clear the pin
        /origin <https-url>  pin to an arbitrary HTTPS mirror
        /origin github       returns a clear error (mirror is private)
    - /help text updated to reflect single-source model
    - LARRY_VERSION 0.7.3 -> 0.7.4

  install-larry.sh
    - LARRY_BASE_URL_FALLBACK removed; single-origin install path
    - fetch() dies with a clear error when origin unreachable:
      "install failed: cannot reach LARRY_BASE_URL=... — verify the URL
       or set LARRY_BASE_URL to a reachable mirror"
    - post-install fallback-warning block removed

  VERSION: 0.7.3 -> 0.7.4

Migration: stale $LARRY_HOME/.origin files containing the legacy keyword
"github" are treated as invalid — Larry warns once at startup and reverts
to the default Gitea origin.  We deliberately do NOT auto-rewrite the
file (so the user can choose) and do NOT translate it to the GitHub raw
URL (which would just 401 on the next fetch).

Verification:
  - bash -n larry.sh / install-larry.sh: pass
  - larry --version: prints 0.7.4
  - LARRY_BASE_URL=https://invalid.example.invalid + stale .last-sync-version:
    logs "warn: ... unreachable, auto-update skipped this launch", no crash
  - /origin auto clears pin file; /origin (no arg) shows current effective
    origin and pin file; /origin <https-url> persisted; /origin github
    returns clear error; /origin gitea re-pins to default
  - stale .origin containing "github" -> startup warn + revert to default

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-27 18:07:53 -07:00

2 lines
6 B
Plaintext