feat(web): downloads page with OS detection + wire account download card #158

Merged
will.anderson merged 1 commits from feat/downloads-page into main 2026-08-16 13:17:59 +00:00
Owner

What

Adds the customer downloads surface. The funnel previously dead-ended at "we'll email you" — there was no downloads page, and the account dashboard download card was hardcoded disabled.

1. New /downloads page (src/downloads.el)

  • Landing-template styled: reuses shared nav() + footer() + page shell (page_open_seo/page_close), matching src/main.el's homepage assembly.
  • Client-side OS detection via navigator.platform — highlights the visitor's platform and updates a detected-OS banner.
  • macOS featured as the shipping build (Apple Silicon .dmg, primary download button).
  • Windows (.msi) and Linux (.deb/.AppImage) linked but marked "Coming soon" — matches current product state: Windows chat isn't enabled and the Linux soul backend isn't finished yet, so they are not presented as fully working. The Windows .msi link is included per spec and may 404 until the Windows build lands.
  • All four installers link the public bucket objects at https://downloads.neurontechnologies.ai/installers/.
  • Route wired in src/main.el (/downloads, indexable, canonical set).

2. Un-break the account download card (src/account.el)

  • Was hardcoded download-btn-disabled / "Shipping within 30 days" / "Download arriving soon".
  • Now links the live macOS installer plus an "All platforms" link to /downloads.

Verification

  • Built locally with the native El toolchain (elb + elc): all 26 modules compile and link.
  • Server renders /downloads → HTTP 200 (~70KB); all four installer URLs, OS-detection script, three platform cards, nav and footer, and correct <title>/canonical present.
  • OS-detection JS logic unit-checked (mac/windows/linux resolve correctly; mobile safely defaults).
  • Inline JS and scoped CSS verified un-mangled by the elc tokenizer (var()-based CSS, single-quoted JS).
  • Account card change confirmed compiled into dist/account.c; old disabled markers removed.

Note: the local mac /account route segfaults at runtime on both this branch and the unmodified baseline — a pre-existing mac-build quirk unrelated to this change (Linux CI serves /account fine). This PR does not touch that route's logic.

Stage only — not deployed to Cloud Run.

## What Adds the customer downloads surface. The funnel previously dead-ended at "we'll email you" — there was no downloads page, and the account dashboard download card was hardcoded disabled. ### 1. New `/downloads` page (`src/downloads.el`) - Landing-template styled: reuses shared `nav()` + `footer()` + page shell (`page_open_seo`/`page_close`), matching `src/main.el`'s homepage assembly. - Client-side OS detection via `navigator.platform` — highlights the visitor's platform and updates a detected-OS banner. - **macOS featured as the shipping build** (Apple Silicon `.dmg`, primary download button). - **Windows (`.msi`) and Linux (`.deb`/`.AppImage`) linked but marked "Coming soon"** — matches current product state: Windows chat isn't enabled and the Linux soul backend isn't finished yet, so they are not presented as fully working. The Windows `.msi` link is included per spec and may 404 until the Windows build lands. - All four installers link the public bucket objects at `https://downloads.neurontechnologies.ai/installers/`. - Route wired in `src/main.el` (`/downloads`, indexable, canonical set). ### 2. Un-break the account download card (`src/account.el`) - Was hardcoded `download-btn-disabled` / "Shipping within 30 days" / "Download arriving soon". - Now links the live macOS installer plus an "All platforms" link to `/downloads`. ## Verification - Built locally with the native El toolchain (`elb` + `elc`): all 26 modules compile and link. - Server renders `/downloads` → HTTP 200 (~70KB); all four installer URLs, OS-detection script, three platform cards, nav and footer, and correct `<title>`/canonical present. - OS-detection JS logic unit-checked (mac/windows/linux resolve correctly; mobile safely defaults). - Inline JS and scoped CSS verified un-mangled by the elc tokenizer (var()-based CSS, single-quoted JS). - Account card change confirmed compiled into `dist/account.c`; old disabled markers removed. Note: the local mac `/account` route segfaults at runtime on **both** this branch and the unmodified baseline — a pre-existing mac-build quirk unrelated to this change (Linux CI serves `/account` fine). This PR does not touch that route's logic. Stage only — not deployed to Cloud Run.
will.anderson added 1 commit 2026-07-14 17:18:50 +00:00
The funnel dead-ended at "we'll email you" — there was no downloads
surface. Add a real /downloads page in the landing template style
(shared nav + footer + page shell) with client-side navigator.platform
OS detection. macOS (Apple Silicon .dmg) is featured as the shipping
build; Windows (.msi) and Linux (.deb/.AppImage) are linked but clearly
marked "coming soon" to match current product state — Windows chat and
the Linux soul backend are not yet ready, so presenting them as fully
working would overpromise.

Also un-break the account dashboard download card, which was hardcoded
disabled ("Shipping within 30 days"). It now links the live macOS
installer plus the full /downloads page.
Author
Owner

GROOMING — 2026-08-03
Status: Downloads page (/downloads, OS detection) + un-breaks the account download card; funnel currently dead-ends with no download surface. macOS .dmg featured as the shipping build; Windows/Linux marked "coming soon". Installer links point at the public downloads bucket.
Next action: Publish the signed macOS DMG to downloads.neurontechnologies.ai/installers/, verify the /downloads and account-card links resolve (not 404), then merge/deploy.
Owner: Will / front-end
Priority: BETA-CRITICAL
Note: grooming brief listed this in the counsel-HELD batch, but this reads as a downloads-page feature gated on the signed DMG being published, not on legal sign-off — flagging for Will to confirm which bucket it belongs in.

**GROOMING — 2026-08-03** **Status:** Downloads page (/downloads, OS detection) + un-breaks the account download card; funnel currently dead-ends with no download surface. macOS .dmg featured as the shipping build; Windows/Linux marked "coming soon". Installer links point at the public downloads bucket. **Next action:** Publish the signed macOS DMG to downloads.neurontechnologies.ai/installers/, verify the /downloads and account-card links resolve (not 404), then merge/deploy. **Owner:** Will / front-end **Priority:** BETA-CRITICAL Note: grooming brief listed this in the counsel-HELD batch, but this reads as a downloads-page feature gated on the signed DMG being published, not on legal sign-off — flagging for Will to confirm which bucket it belongs in.
will.anderson added the BETA-CRITICAL label 2026-08-03 18:59:55 +00:00
will.anderson merged commit bbedb1daba into main 2026-08-16 13:17:58 +00:00
Sign in to join this conversation.