Skip to content

chore: Console public domain - #821

Merged
michaelneale merged 4 commits into
mainfrom
console-public-domain
Jun 11, 2026
Merged

chore: Console public domain#821
michaelneale merged 4 commits into
mainfrom
console-public-domain

Conversation

@michaelneale

@michaelneale michaelneale commented Jun 11, 2026

Copy link
Copy Markdown
Collaborator

will merge this when deployed

Summary by CodeRabbit

  • Chores
  • Documentation
    • Added a domain cutover runbook and updated site/funding URLs and custom domain mapping to reflect the new public domain.

Prepares the apex cutover: the console build now targets the API at
public.meshllm.cloud instead of the apex meshllm.cloud, so the console
stops depending on the apex before meshllm.cloud becomes the static site.
The console image build was failing because 9 crates added since the
last copy-list update (mesh-llm-cli, mesh-llm-commands,
mesh-llm-embedded-runtime, mesh-llm-events, mesh-llm-hardware-profile,
mesh-llm-native-runtime, mesh-llm-runtime-install, mesh-llm-sdk,
mesh-llm-tui) were never COPYed into the build context, so cargo could
not resolve the workspace manifest.
Copilot AI review requested due to automatic review settings June 11, 2026 00:35
@coderabbitai

coderabbitai Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

This PR updates the default VITE_API_URL to https://public.meshllm.cloud, expands the Docker Rust build stage to copy additional workspace crates into the build context, and updates site/domain documentation and funding manifest references to meshllm.cloud.

Changes

Deployment Configuration & Site updates

Layer / File(s) Summary
API endpoint configuration
fly/Dockerfile, fly/console/fly.toml
The VITE_API_URL build argument default is updated to https://public.meshllm.cloud in the Dockerfile and in the Fly console fly.toml build args.
Rust builder crate dependencies
fly/Dockerfile
The Rust builder stage now copies additional workspace crates (mesh-llm-cli, mesh-llm-commands, mesh-llm-embedded-runtime, mesh-llm-events, mesh-llm-hardware-profile, mesh-llm-native-runtime, mesh-llm-runtime-install, mesh-llm-sdk, mesh-llm-tui) into the build context before cargo build.
Domain cutover runbook
fly/DOMAIN_CUTOVER.md
Adds a runbook describing the apex flip to GitHub Pages, redirect setup for docs, certificate removal from Fly, verification, rollback, and final Cloudflare DNS state.
README and website domain references
fly/README.md, website/src/.well-known/funding-manifest-urls, website/src/CNAME, website/src/_data/site.js, website/src/funding.json
Replace references to docs.meshllm.cloud/old domains with meshllm.cloud and update funding manifest and site URL values accordingly.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title 'chore: Console public domain' is vague and generic, using 'Console' without clarity about what console change is being made, and 'public domain' which is ambiguous given the broader domain cutover scope. Consider a more descriptive title like 'chore: Update domains for console and marketing site cutover' that better reflects the multi-domain reconfiguration effort across both the console and website.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch console-public-domain

Comment @coderabbitai help to get the list of available commands and usage tips.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the Fly.io console build configuration so the UI targets the public Mesh endpoint by default, and ensures the Docker build includes additional workspace crates needed for the Rust build stage.

Changes:

  • Updated the default VITE_API_URL from https://meshllm.cloud to https://public.meshllm.cloud for both the Docker build and Fly build args.
  • Expanded the Rust builder stage Docker context to include additional crates/mesh-llm-* workspace directories during image build.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
fly/Dockerfile Switches UI default API endpoint to public.meshllm.cloud and copies additional workspace crates into the Rust build stage.
fly/console/fly.toml Updates Fly build arg VITE_API_URL to target https://public.meshllm.cloud.

Repoint the public website's custom domain and canonical URLs from
docs.meshllm.cloud to the apex meshllm.cloud, ahead of the DNS cutover:

- website/src/CNAME -> meshllm.cloud (GitHub Pages custom domain)
- site.js canonical url -> https://meshllm.cloud
- funding.json wellKnown + .well-known/funding-manifest-urls -> apex
- fly/README.md: console is at public.meshllm.cloud, not the apex

docs.meshllm.cloud will become a Cloudflare 301 redirect to
meshllm.cloud/docs/ (see DOMAIN_CUTOVER.md).
Documents the sequenced steps to move the console to public.meshllm.cloud
(done), flip the apex meshllm.cloud to the GitHub Pages marketing site,
redirect docs.meshllm.cloud to meshllm.cloud/docs/ via Cloudflare, and
decommission the apex cert on Fly. Includes verification curls and rollback.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (4)
fly/DOMAIN_CUTOVER.md (4)

137-150: 💤 Low value

Consider adding a rollback procedure for Step 4.

Document how to re-add the apex certificate to Fly if issues are discovered after removal: fly certs add meshllm.cloud -a mesh-llm-console. This would be needed if you need to revert the apex back to the console for any reason.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@fly/DOMAIN_CUTOVER.md` around lines 137 - 150, Add a brief rollback section
to Step 4 that documents how to re-add the apex certificate to Fly if removal
causes issues: instruct rerunning the Fly certs add command (e.g., `fly certs
add meshllm.cloud -a mesh-llm-console`), mention verifying the console
afterwards with the existing status check (`curl -s
https://public.meshllm.cloud/api/status | head -c 120`), and note any quick
checks to confirm DNS/SSL propagation before declaring rollback complete.

45-45: 💤 Low value

Consider adding language identifiers to fenced code blocks.

Several code blocks lack language specifiers, which affects syntax highlighting and markdown linting. Consider adding identifiers:

  • Lines 45, 68, 75, 108: DNS records → ```dns or ```text
  • Line 119: Cloudflare expression → ```javascript or ```text

Also applies to: 68-68, 75-75, 108-108, 119-119

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@fly/DOMAIN_CUTOVER.md` at line 45, Add language identifiers to the fenced
code blocks in DOMAIN_CUTOVER.md: update the DNS record blocks (the fenced
blocks around the DNS example lines referenced) to use ```dns or ```text for
proper highlighting, and annotate the Cloudflare expression block with
```javascript or ```text; locate the DNS record blocks and the Cloudflare
expression block by searching for the fenced code fences near the comments about
DNS records and Cloudflare expression and prepend the appropriate language tag
to each opening ``` fence.

Source: Linters/SAST tools


146-149: ⚡ Quick win

Add verification that the apex domain still serves the marketing site after cert removal.

After removing the apex certificate from Fly, verify that meshllm.cloud continues to serve the GitHub Pages marketing site, not just that public.meshllm.cloud remains functional.

🧪 Enhanced verification commands
 Verify the console is unaffected:
 ```bash
 curl -s https://public.meshllm.cloud/api/status | head -c 120
+
+# Verify apex still serves GitHub Pages
+curl -sI https://meshllm.cloud/ | grep -i 'server\|content-type'
+# Expect: GitHub Pages server, text/html content-type
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@fly/DOMAIN_CUTOVER.md` around lines 146 - 149, Add an extra verification step
to ensure the apex domain still serves the GitHub Pages marketing site after
removing the Fly apex certificate: in addition to the existing curl check for
https://public.meshllm.cloud/api/status, run a header check against
https://meshllm.cloud (e.g., using curl -sI https://meshllm.cloud/ and grepping
for server and content-type) to confirm the response indicates GitHub Pages
(text/html and GitHub Pages server) so the apex is still serving the marketing
site.

101-134: 💤 Low value

Consider adding a rollback procedure for Step 3.

While the redirect rule is low-risk, documenting how to roll back (remove the Cloudflare redirect rule and optionally restore the docs DNS record to point to GitHub Pages) would improve operational completeness.

📋 Suggested rollback section

Add after line 128:

**Rollback:** In Cloudflare Rules → Redirect Rules, disable or delete the `docs.meshllm.cloud` redirect rule. Optionally restore the `docs` DNS record to point to GitHub Pages IPs or CNAME if you want to serve the old docs subdomain directly.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@fly/DOMAIN_CUTOVER.md` around lines 101 - 134, Add a short rollback
subsection to Step 3 documenting how to undo the redirect: instruct operators to
disable or delete the `docs.meshllm.cloud` Redirect Rule in Cloudflare Rules →
Redirect Rules and to optionally restore the `docs` DNS record (CNAME for `docs`
pointing back to GitHub Pages or the original Pages IPs) if they want to serve
the subdomain directly again; include that this is sufficient to revert the 301
behavior and mention restoring the `docs` record is optional.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@fly/DOMAIN_CUTOVER.md`:
- Around line 137-150: Add a brief rollback section to Step 4 that documents how
to re-add the apex certificate to Fly if removal causes issues: instruct
rerunning the Fly certs add command (e.g., `fly certs add meshllm.cloud -a
mesh-llm-console`), mention verifying the console afterwards with the existing
status check (`curl -s https://public.meshllm.cloud/api/status | head -c 120`),
and note any quick checks to confirm DNS/SSL propagation before declaring
rollback complete.
- Line 45: Add language identifiers to the fenced code blocks in
DOMAIN_CUTOVER.md: update the DNS record blocks (the fenced blocks around the
DNS example lines referenced) to use ```dns or ```text for proper highlighting,
and annotate the Cloudflare expression block with ```javascript or ```text;
locate the DNS record blocks and the Cloudflare expression block by searching
for the fenced code fences near the comments about DNS records and Cloudflare
expression and prepend the appropriate language tag to each opening ``` fence.
- Around line 146-149: Add an extra verification step to ensure the apex domain
still serves the GitHub Pages marketing site after removing the Fly apex
certificate: in addition to the existing curl check for
https://public.meshllm.cloud/api/status, run a header check against
https://meshllm.cloud (e.g., using curl -sI https://meshllm.cloud/ and grepping
for server and content-type) to confirm the response indicates GitHub Pages
(text/html and GitHub Pages server) so the apex is still serving the marketing
site.
- Around line 101-134: Add a short rollback subsection to Step 3 documenting how
to undo the redirect: instruct operators to disable or delete the
`docs.meshllm.cloud` Redirect Rule in Cloudflare Rules → Redirect Rules and to
optionally restore the `docs` DNS record (CNAME for `docs` pointing back to
GitHub Pages or the original Pages IPs) if they want to serve the subdomain
directly again; include that this is sufficient to revert the 301 behavior and
mention restoring the `docs` record is optional.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 1cead964-f62a-4ea1-960f-afe2db5d35e5

📥 Commits

Reviewing files that changed from the base of the PR and between 933b49d and 75f4af5.

📒 Files selected for processing (6)
  • fly/DOMAIN_CUTOVER.md
  • fly/README.md
  • website/src/.well-known/funding-manifest-urls
  • website/src/CNAME
  • website/src/_data/site.js
  • website/src/funding.json
✅ Files skipped from review due to trivial changes (5)
  • website/src/.well-known/funding-manifest-urls
  • website/src/CNAME
  • website/src/funding.json
  • website/src/_data/site.js
  • fly/README.md

@michaelneale
michaelneale merged commit f9691ea into main Jun 11, 2026
21 checks passed
@michaelneale
michaelneale deleted the console-public-domain branch June 11, 2026 01:06
michaelneale added a commit that referenced this pull request Jun 11, 2026
* origin/main:
  Salvage safe bits from reverted MoA PR (#820) (#824)
  Revert "Stabilize mesh MoA context and tool loops (#820)" (#823)
  Stabilize mesh MoA context and tool loops (#820)
  chore: flip docs pages to canonical URLs (#822)
  chore: Console public domain (#821)
  Add meshllm.cloud website, catalog viewer, and onboarding docs (#806)

# Conflicts:
#	docs/index.html
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.

2 participants