fix: [#309] point install endpoint at altimate.sh/install (not altimate.ai/install)

Merged
AN
5mo ago
+41-12

What does this PR do?

Swaps the install endpoint from altimate.ai/install (unreachable — HTML 404 on the marketing-site SPA) to altimate.sh/install (the canonical altimate-code site, where a Next.js route handler now serves the curl install script — see AltimateAI/altimate-code-website#22).

The mismatch broke v0.7.1's standalone install path end-to-end. Two failures, one URL:

  1. curl -fsSL https://altimate.ai/install | bash fetched HTML and tried to bash-execute it (would error out, but with a confusing symptom — not a clear "endpoint missing" message).
  2. altimate upgrade for curl-installed users fetches the install URL via Installation.upgradeCurl() in packages/opencode/src/installation/index.ts:37 to re-run the install script. With the broken URL, every curl-installed user's in-place upgrade silently failed.

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Other: doc + test sweep to keep references in sync

Issue for this PR

Closes #309

How did you verify your code works?

  • bun turbo typecheck --filter=@altimateai/altimate-code — clean
  • bun test --timeout 30000 test/install/ test/installation/ test/branding/ test/skill/release-v0.7.1-* — 420/420 pass
  • bun run script/upstream/analyze.ts --markers --base main --strict — ok no upstream-shared files modified
  • Updated packages/opencode/test/install/upgrade-method.test.ts:88-93 so the assertion now requires altimate.sh/install AND rejects altimate.ai/install (negative assertion catches future regression that reintroduces the broken URL)
  • Updated packages/opencode/test/branding/branding.test.ts:124-130 "references altimate-owned domain" check the same way
  • Updated packages/opencode/test/skill/release-v0.7.1-binary-adversarial.test.ts:284 README curl-install assertion that was pinning the old URL
  • After companion website PR ships + this PR merges + next release: altimate upgrade from a curl-installed binary upgrades in place (manual verification)
  • After companion website PR ships: curl -fsSL https://altimate.sh/install | bash end-to-end smoke (manual verification)

Checklist

  • My code follows the style guidelines of this project
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas (the negative-assertion comments explain why both directions of the test matter)
  • I have made corresponding changes to the documentation (docs/docs/reference/troubleshooting.md)
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective (negative assertions on altimate.ai/install in two test files)
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published: pending — the companion website PR (AltimateAI/altimate-code-website#22) ships the route handler at altimate.sh/install. Merge order: website first, then this.

Files touched

FileChange
install2× altimate.ai/install → altimate.sh/install (--help examples)
README.mdinstall instruction
packages/opencode/src/installation/index.tsfetch("https://altimate.sh/install") in upgradeCurl()
docs/docs/reference/troubleshooting.md3× references in install-path troubleshooting section
packages/opencode/test/install/upgrade-method.test.tsassertion updated + negative assertion against legacy URL
packages/opencode/test/branding/branding.test.tsbrand-domain assertion updated + negative assertion
packages/opencode/test/skill/release-v0.7.1-binary-adversarial.test.tsREADME curl-install assertion updated

Out of scope

  • docs/mkdocs.yml:51 references altimate.ai/discord — that's the Discord invite on the marketing site, not the install path. Left unchanged.

Pairs with

  • AltimateAI/altimate-code-website#22 — adds the app/install/route.ts handler that serves the curl script at altimate.sh/install with proper Content-Type and GA4 download tracking.

🤖 Generated with Claude Code


Summary by cubic

Switch the install endpoint to https://www.altimate.sh/install and add a 15s timeout in upgradeCurl() to prevent hung upgrades. Fixes curl installs and restores altimate upgrade for curl users (issue #309).

  • Bug Fixes
    • upgradeCurl() now fetches from https://www.altimate.sh/install (inside an altimate_change block).
    • Bound the fetch with AbortSignal.timeout(15_000) to fail fast on stalls.
    • Updated examples in install, README.md, and troubleshooting docs to use the www host.
    • Strengthened tests to accept https://(www\.)?altimate.sh/install, reject altimate.ai/install, and verify the timeout is present.

Summary by CodeRabbit

  • Documentation

    • Updated README and troubleshooting docs to point users to the new standalone installer URL and clarified reinstall/workaround steps for missing native modules and Alpine (musl).
  • Chores

    • Aligned installer help text and all install/upgrade references in tests and docs to the new curl installer endpoint.
  • Bug Fixes

    • Installer upgrade now enforces a bounded download timeout to avoid long hangs during fetch.

Review Change Stack