Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 45
env:
VITE_GITTENSORY_API_ORIGIN: https://gittensory-api.aethereal.dev
VITE_GITTENSORY_API_ORIGIN: https://api.loopover.ai
steps:
- name: Checkout
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
Expand Down Expand Up @@ -422,7 +422,7 @@ jobs:
matrix:
shard: [1, 2, 3, 4, 5, 6]
env:
VITE_GITTENSORY_API_ORIGIN: https://gittensory-api.aethereal.dev
VITE_GITTENSORY_API_ORIGIN: https://api.loopover.ai
steps:
- name: Checkout
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-selfhost.yml
Original file line number Diff line number Diff line change
Expand Up @@ -351,7 +351,7 @@ jobs:
docker pull ghcr.io/${REPOSITORY_OWNER_LOWER}/loopover-selfhost:${RELEASE_TAG}
\`\`\`

Multi-arch (linux/amd64 + linux/arm64). See https://gittensory.aethereal.dev/docs/maintainer-self-hosting for setup.
Multi-arch (linux/amd64 + linux/arm64). See https://loopover.ai/docs/maintainer-self-hosting for setup.
Includes the Claude Code / Codex subscription CLIs by default; credentials stay runtime-only.
Sentry release id baked into the image: \`${RELEASE_ID}\`.

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ui-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,5 +36,5 @@ jobs:
# regen (mirrors the same fix in .github/workflows/ci.yml's "UI build" step).
- name: Validate frontend
env:
VITE_GITTENSORY_API_ORIGIN: https://gittensory-api.aethereal.dev
VITE_GITTENSORY_API_ORIGIN: https://api.loopover.ai
run: npm run ui:openapi:check && npm run ui:lint && npm run ui:typecheck && npm run extension:lint && npm run miner-extension:lint && npm run extension:typecheck && npm run miner-extension:typecheck && npm run extension:build && npm run miner-extension:build && npm --workspace @jsonbored/gittensory-ui run build
2 changes: 1 addition & 1 deletion .github/workflows/ui-preview-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ jobs:
}
},
"vars": {
"VITE_GITTENSORY_API_ORIGIN": "https://gittensory-api.aethereal.dev"
"VITE_GITTENSORY_API_ORIGIN": "https://api.loopover.ai"
},
"main": "index.mjs",
"assets": {
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ui-preview.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ jobs:

- name: Build UI
env:
VITE_GITTENSORY_API_ORIGIN: https://gittensory-api.aethereal.dev
VITE_GITTENSORY_API_ORIGIN: https://api.loopover.ai
# Preview-only: enables the synthetic demo session (useSession().signInPreview) so reviewbot can
# screenshot the authenticated /app/* dashboard via ?preview=1 instead of the sign-in wall. The
# production build (ui-deploy.yml) does NOT set this, so the escape hatch is dead-code-eliminated
Expand Down
2 changes: 1 addition & 1 deletion apps/gittensory-ui/public/openapi.json
Original file line number Diff line number Diff line change
Expand Up @@ -17075,7 +17075,7 @@
},
"servers": [
{
"url": "https://gittensory-api.aethereal.dev",
"url": "https://api.loopover.ai",
"description": "Production"
}
]
Expand Down
2 changes: 1 addition & 1 deletion apps/gittensory-ui/public/robots.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
User-agent: *
Allow: /

Sitemap: https://gittensory.aethereal.dev/sitemap.xml
Sitemap: https://loopover.ai/sitemap.xml
70 changes: 35 additions & 35 deletions apps/gittensory-ui/public/sitemap.xml
Original file line number Diff line number Diff line change
@@ -1,38 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url><loc>https://gittensory.aethereal.dev/</loc></url>
<url><loc>https://gittensory.aethereal.dev/miners</loc></url>
<url><loc>https://gittensory.aethereal.dev/maintainers</loc></url>
<url><loc>https://gittensory.aethereal.dev/agents</loc></url>
<url><loc>https://gittensory.aethereal.dev/extension</loc></url>
<url><loc>https://gittensory.aethereal.dev/roadmap</loc></url>
<url><loc>https://gittensory.aethereal.dev/docs</loc></url>
<url><loc>https://gittensory.aethereal.dev/docs/beta-onboarding</loc></url>
<url><loc>https://gittensory.aethereal.dev/docs/quickstart</loc></url>
<url><loc>https://gittensory.aethereal.dev/docs/mcp-clients</loc></url>
<url><loc>https://gittensory.aethereal.dev/docs/miner-workflow</loc></url>
<url><loc>https://gittensory.aethereal.dev/docs/maintainer-workflow</loc></url>
<url><loc>https://gittensory.aethereal.dev/docs/github-app</loc></url>
<url><loc>https://gittensory.aethereal.dev/docs/maintainer-install-trust</loc></url>
<url><loc>https://gittensory.aethereal.dev/docs/maintainer-self-hosting</loc></url>
<url><loc>https://gittensory.aethereal.dev/docs/self-hosting-quickstart</loc></url>
<url><loc>https://gittensory.aethereal.dev/docs/self-hosting-configuration</loc></url>
<url><loc>https://gittensory.aethereal.dev/docs/self-hosting-github-app</loc></url>
<url><loc>https://gittensory.aethereal.dev/docs/self-hosting-ai-providers</loc></url>
<url><loc>https://gittensory.aethereal.dev/docs/self-hosting-rees</loc></url>
<url><loc>https://gittensory.aethereal.dev/docs/self-hosting-rees-analyzers</loc></url>
<url><loc>https://gittensory.aethereal.dev/docs/self-hosting-rag</loc></url>
<url><loc>https://gittensory.aethereal.dev/docs/self-hosting-operations</loc></url>
<url><loc>https://gittensory.aethereal.dev/docs/self-hosting-backup-scaling</loc></url>
<url><loc>https://gittensory.aethereal.dev/docs/self-hosting-releases</loc></url>
<url><loc>https://gittensory.aethereal.dev/docs/self-hosting-security</loc></url>
<url><loc>https://gittensory.aethereal.dev/docs/self-hosting-troubleshooting</loc></url>
<url><loc>https://gittensory.aethereal.dev/docs/branch-analysis</loc></url>
<url><loc>https://gittensory.aethereal.dev/docs/scoreability</loc></url>
<url><loc>https://gittensory.aethereal.dev/docs/upstream-drift</loc></url>
<url><loc>https://gittensory.aethereal.dev/docs/privacy-security</loc></url>
<url><loc>https://gittensory.aethereal.dev/docs/troubleshooting</loc></url>
<url><loc>https://gittensory.aethereal.dev/docs/ai-summaries</loc></url>
<url><loc>https://gittensory.aethereal.dev/api</loc></url>
<url><loc>https://gittensory.aethereal.dev/changelog</loc></url>
<url><loc>https://loopover.ai/</loc></url>
<url><loc>https://loopover.ai/miners</loc></url>
<url><loc>https://loopover.ai/maintainers</loc></url>
<url><loc>https://loopover.ai/agents</loc></url>
<url><loc>https://loopover.ai/extension</loc></url>
<url><loc>https://loopover.ai/roadmap</loc></url>
<url><loc>https://loopover.ai/docs</loc></url>
<url><loc>https://loopover.ai/docs/beta-onboarding</loc></url>
<url><loc>https://loopover.ai/docs/quickstart</loc></url>
<url><loc>https://loopover.ai/docs/mcp-clients</loc></url>
<url><loc>https://loopover.ai/docs/miner-workflow</loc></url>
<url><loc>https://loopover.ai/docs/maintainer-workflow</loc></url>
<url><loc>https://loopover.ai/docs/github-app</loc></url>
<url><loc>https://loopover.ai/docs/maintainer-install-trust</loc></url>
<url><loc>https://loopover.ai/docs/maintainer-self-hosting</loc></url>
<url><loc>https://loopover.ai/docs/self-hosting-quickstart</loc></url>
<url><loc>https://loopover.ai/docs/self-hosting-configuration</loc></url>
<url><loc>https://loopover.ai/docs/self-hosting-github-app</loc></url>
<url><loc>https://loopover.ai/docs/self-hosting-ai-providers</loc></url>
<url><loc>https://loopover.ai/docs/self-hosting-rees</loc></url>
<url><loc>https://loopover.ai/docs/self-hosting-rees-analyzers</loc></url>
<url><loc>https://loopover.ai/docs/self-hosting-rag</loc></url>
<url><loc>https://loopover.ai/docs/self-hosting-operations</loc></url>
<url><loc>https://loopover.ai/docs/self-hosting-backup-scaling</loc></url>
<url><loc>https://loopover.ai/docs/self-hosting-releases</loc></url>
<url><loc>https://loopover.ai/docs/self-hosting-security</loc></url>
<url><loc>https://loopover.ai/docs/self-hosting-troubleshooting</loc></url>
<url><loc>https://loopover.ai/docs/branch-analysis</loc></url>
<url><loc>https://loopover.ai/docs/scoreability</loc></url>
<url><loc>https://loopover.ai/docs/upstream-drift</loc></url>
<url><loc>https://loopover.ai/docs/privacy-security</loc></url>
<url><loc>https://loopover.ai/docs/troubleshooting</loc></url>
<url><loc>https://loopover.ai/docs/ai-summaries</loc></url>
<url><loc>https://loopover.ai/api</loc></url>
<url><loc>https://loopover.ai/changelog</loc></url>
</urlset>
4 changes: 2 additions & 2 deletions apps/gittensory-ui/src/components/site/site-footer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -96,9 +96,9 @@ export function SiteFooter() {
<div className="border-t border-border">
<div className="mx-auto flex max-w-7xl flex-col items-start gap-3 px-4 py-5 text-token-xs text-muted-foreground sm:flex-row sm:items-center sm:justify-between sm:px-6 lg:px-8">
<div className="font-mono">
<span className="text-foreground/70">gittensory.aethereal.dev</span>
<span className="text-foreground/70">loopover.ai</span>
<span className="mx-2 opacity-40">·</span>
<span>api: gittensory-api.aethereal.dev</span>
<span>api: api.loopover.ai</span>
</div>
<div className="flex flex-wrap items-center gap-x-3 gap-y-2">
<a
Expand Down
2 changes: 1 addition & 1 deletion apps/gittensory-ui/src/lib/analytics-proxy.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// First-party endpoint for forwarding cookieless analytics events.
//
// The browser only ever talks to our own origin (gittensory.aethereal.dev):
// The browser only ever talks to our own origin (loopover.ai):
// POST /stats/api/send -> https://tasty.aethereal.dev/api/send
//
// Do not proxy the remote Umami script through this origin. Serving mutable
Expand Down
2 changes: 1 addition & 1 deletion apps/gittensory-ui/src/lib/api/origin.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const DEFAULT_API_ORIGIN = "https://gittensory-api.aethereal.dev";
const DEFAULT_API_ORIGIN = "https://api.loopover.ai";

export function getApiOrigin(): string {
const configured = import.meta.env.VITE_GITTENSORY_API_ORIGIN?.trim();
Expand Down
4 changes: 2 additions & 2 deletions apps/gittensory-ui/src/routes/__root.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -154,8 +154,8 @@ export const Route = createRootRouteWithContext<{ queryClient: QueryClient }>()(
children: JSON.stringify({
"@context": "https://schema.org",
"@type": "Organization",
name: "Gittensory",
url: "https://gittensory.aethereal.dev",
name: "LoopOver",
url: "https://loopover.ai",
description: "Deterministic base-agent layer for Gittensor OSS contribution mining.",
}),
},
Expand Down
2 changes: 1 addition & 1 deletion apps/gittensory-ui/src/routes/agents.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ function AgentsPage() {
<CodeBlock code={`npx -y @jsonbored/gittensory-mcp@latest --stdio`} />
</div>
<div className="mt-2">
<CodeBlock lang="http" code={`https://gittensory-api.aethereal.dev/mcp`} />
<CodeBlock lang="http" code={`https://api.loopover.ai/mcp`} />
</div>
</div>
</Card>
Expand Down
2 changes: 1 addition & 1 deletion apps/gittensory-ui/src/routes/docs.mcp-clients.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ args = ["--stdio"]`}
The Worker also exposes a remote MCP endpoint. Use this when your agent runs in the cloud or
you don't want a local Node process.
</p>
<CodeBlock lang="http" code={`https://gittensory-api.aethereal.dev/mcp`} />
<CodeBlock lang="http" code={`https://api.loopover.ai/mcp`} />

<Callout variant="safety">
Local <code>--stdio</code> is the default recommendation. It keeps auth + analysis on your
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@ GITHUB_WEBHOOK_SECRET=<same-secret-configured-on-the-app>`}
<CodeBlock
filename=".env"
code={`ORB_ENROLLMENT_SECRET=<issued-once-by-orb>
ORB_BROKER_URL=https://gittensory-api.aethereal.dev
ORB_BROKER_URL=https://api.loopover.ai
ORB_RELAY_MODE=pull # or omit for push (the default) -- see "Choosing a relay mode" below`}
/>
<p>
Expand Down
4 changes: 2 additions & 2 deletions apps/gittensory-ui/src/routes/docs.troubleshooting.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ gittensory-mcp status
gittensory-mcp whoami`}
/>
<p>Or hit the public API endpoint directly to confirm reachability:</p>
<CodeBlock lang="http" code={`GET https://gittensory-api.aethereal.dev/health`} />
<CodeBlock lang="http" code={`GET https://api.loopover.ai/health`} />

<h2>Self-host Docker observability</h2>
<p>
Expand Down Expand Up @@ -111,7 +111,7 @@ OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4318`}
<p>
<code>/health</code> couldn't be reached at all. This usually means a network problem
between you and the API edge. Try the <strong>Recheck</strong> button in the banner, or run{" "}
<code>curl https://gittensory-api.aethereal.dev/health</code> from your machine to confirm.
<code>curl https://api.loopover.ai/health</code> from your machine to confirm.
</p>
<h3 id="api-timeout">API timing out</h3>
<p>
Expand Down
2 changes: 1 addition & 1 deletion apps/gittensory-ui/src/routes/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -506,7 +506,7 @@ args = ["-y", "@jsonbored/gittensory-mcp@latest", "--stdio"]`,
audience: "Agents",
filename: "endpoint",
lang: "http",
snippet: `https://gittensory-api.aethereal.dev/mcp`,
snippet: `https://api.loopover.ai/mcp`,
},
];

Expand Down
2 changes: 1 addition & 1 deletion apps/gittensory-ui/wrangler.jsonc
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
},
},
"vars": {
"VITE_GITTENSORY_API_ORIGIN": "https://gittensory-api.aethereal.dev",
"VITE_GITTENSORY_API_ORIGIN": "https://api.loopover.ai",
},
"routes": [
{
Expand Down
6 changes: 3 additions & 3 deletions scripts/smoke-production.mjs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const siteOrigin = normalizeOrigin(process.env.GITTENSORY_SITE_ORIGIN ?? "https://gittensory.aethereal.dev");
const apiOrigin = normalizeOrigin(process.env.GITTENSORY_API_ORIGIN ?? "https://gittensory-api.aethereal.dev");
const siteOrigin = normalizeOrigin(process.env.GITTENSORY_SITE_ORIGIN ?? "https://loopover.ai");
const apiOrigin = normalizeOrigin(process.env.GITTENSORY_API_ORIGIN ?? "https://api.loopover.ai");

const siteRoutes = [
"/",
Expand Down Expand Up @@ -27,7 +27,7 @@ async function main() {
for (const route of siteRoutes) checks.push(checkStatus(`${siteOrigin}${route}`, 200, `UI ${route}`));
checks.push(checkStatus(`${siteOrigin}/openapi.json`, 200, "UI OpenAPI artifact", { contentType: /application\/json/i }));
checks.push(checkStatus(`${siteOrigin}/downloads/loopover-extension.zip`, 200, "extension zip", { contentType: /application\/zip/i }));
checks.push(checkText(`${siteOrigin}/robots.txt`, "Sitemap: https://gittensory.aethereal.dev/sitemap.xml", "robots sitemap directive"));
checks.push(checkText(`${siteOrigin}/robots.txt`, "Sitemap: https://loopover.ai/sitemap.xml", "robots sitemap directive"));
checks.push(checkStatus(`${siteOrigin}/sitemap.xml`, 200, "sitemap", { contentType: /application\/xml/i }));
checks.push(checkStatus(`${siteOrigin}/CNAME`, 404, "retired GitHub Pages CNAME"));

Expand Down
2 changes: 1 addition & 1 deletion scripts/smoke-ui-browser.mjs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const siteOrigin = new URL(process.env.GITTENSORY_SITE_ORIGIN ?? "https://gittensory.aethereal.dev").origin;
const siteOrigin = new URL(process.env.GITTENSORY_SITE_ORIGIN ?? "https://loopover.ai").origin;
const routes = ["/", "/app", "/app/workbench", "/app/repos", "/app/runs", "/app/analytics", "/app/operator", "/app/commands", "/app/digest", "/api", "/roadmap", "/changelog", "/extension", "/docs"];

const playwright = await import("playwright").catch(() => null);
Expand Down
2 changes: 1 addition & 1 deletion scripts/write-ui-openapi.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ const target = resolve(root, "apps/gittensory-ui/public/openapi.json");
const checkOnly = process.argv.includes("--check");

const spec = buildOpenApiSpec();
spec.servers = [{ url: "https://gittensory-api.aethereal.dev", description: "Production" }];
spec.servers = [{ url: "https://api.loopover.ai", description: "Production" }];

const current = await readFile(target, "utf8").catch(() => "");
const currentSpec = parseCurrentSpec(current);
Expand Down
3 changes: 2 additions & 1 deletion src/api/routes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4211,7 +4211,7 @@ const APP_COMMANDS = [
] as const;

function authRedirectWithError(env: Env, reason: string): string {
const siteOrigin = env.PUBLIC_SITE_ORIGIN ?? "https://gittensory.aethereal.dev";
const siteOrigin = env.PUBLIC_SITE_ORIGIN ?? "https://loopover.ai";
const url = new URL("/app", siteOrigin);
url.searchParams.set("auth", "error");
url.searchParams.set("reason", reason);
Expand Down Expand Up @@ -5700,6 +5700,7 @@ function requiresApiToken(path: string): boolean {
}

const DEFAULT_CORS_ORIGINS = [
"https://loopover.ai",
"https://gittensory.aethereal.dev",
"http://localhost:3000",
"http://localhost:4173",
Expand Down
4 changes: 2 additions & 2 deletions src/auth/github-oauth.ts
Original file line number Diff line number Diff line change
Expand Up @@ -236,12 +236,12 @@ function githubOAuthCallbackUrl(env: Env, requestUrl: string): string {
}

function normalizeReturnTo(env: Env, value: string | undefined): string {
const siteOrigin = env.PUBLIC_SITE_ORIGIN ?? "https://gittensory.aethereal.dev";
const siteOrigin = env.PUBLIC_SITE_ORIGIN ?? "https://loopover.ai";
const fallback = `${siteOrigin.replace(/\/$/, "")}/app`;
if (!value) return fallback;
try {
const url = new URL(value, siteOrigin);
// siteOrigin already IS "https://gittensory.aethereal.dev" when PUBLIC_SITE_ORIGIN is unset (the fallback
// siteOrigin already IS "https://loopover.ai" when PUBLIC_SITE_ORIGIN is unset (the fallback
// two lines up), so a separate hardcoded entry here was dead weight once a self-hoster sets their own
// PUBLIC_SITE_ORIGIN -- it kept accepting the cloud origin as a valid redirect target even for a self-host
// instance that never uses it (#4615). Rely solely on siteOrigin.
Expand Down
2 changes: 1 addition & 1 deletion src/env.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ declare global {
* engine sources GitHub installation tokens from the central Orb (POST /v1/orb/token) instead of a local App
* key. Cloud never sets it ⇒ inert there. See src/orb/broker-client. (A secret — never commit a real value.) */
ORB_ENROLLMENT_SECRET?: string;
/** Override the Orb broker base URL the self-host client calls (default https://gittensory-api.aethereal.dev);
/** Override the Orb broker base URL the self-host client calls (default https://api.loopover.ai);
* point at a private gittensory deployment if you self-host the broker too. */
ORB_BROKER_URL?: string;
/** The retired review App's own credentials. Optional: that App has been fully deleted — cloud no longer
Expand Down
2 changes: 1 addition & 1 deletion src/github/footer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
/** The LoopOver product site (marketing on-ramp / attribution target) -- the DEFAULT only. A
* self-hoster with `PUBLIC_SITE_ORIGIN` set gets their own domain instead, both here and in
* `gittensoryFooter` below (#4613). */
export const GITTENSORY_SITE_URL = "https://gittensory.aethereal.dev";
export const GITTENSORY_SITE_URL = "https://loopover.ai";

/** Minimal env slice `gittensoryFooter` needs, narrowed from the full `Env` the same way this file's
* `maintainerControlPanelUrl` already narrows its own `env` param inline -- so every file that renders
Expand Down
2 changes: 1 addition & 1 deletion src/github/repo-doc-pr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ export async function openRepoDocPullRequest(env: Env, repoFullName: string, mod
const profile = await extractRepoProfile(env, repoFullName);
if (!profile.present) return { opened: false, reason: profile.reason };
// #4613: a self-hoster's own domain (env.PUBLIC_SITE_ORIGIN) reaches the generated AGENTS.md's
// attribution link instead of gittensory.aethereal.dev -- same fallback `maintainerControlPanelUrl`/
// attribution link instead of loopover.ai -- same fallback `maintainerControlPanelUrl`/
// `gittensoryFooter` already use.
const generatedSection = renderRepoDocContent(profile, env.PUBLIC_SITE_ORIGIN ?? GITTENSORY_SITE_URL);
if (!generatedSection) return { opened: false, reason: "no content rendered from profile" };
Expand Down
2 changes: 1 addition & 1 deletion src/orb/broker-client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import { incr } from "../selfhost/metrics";

/** The Orb's hosted broker base; override (ORB_BROKER_URL) only to point at a private gittensory deployment. */
const DEFAULT_BROKER_URL = "https://gittensory-api.aethereal.dev";
const DEFAULT_BROKER_URL = "https://api.loopover.ai";
// The broker's cold token mint can take many seconds when GitHub is throttling the App; allow headroom so the one
// uncached mint completes and populates the broker-side cache (steady-state cache hits return in well under a second).
const BROKER_TIMEOUT_MS = 25_000;
Expand Down
2 changes: 1 addition & 1 deletion src/review/repo-doc-render.ts
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ function renderCiWorkflowFiles(ciWorkflowFiles: string[]): string {
* is therefore never touched.
*
* `siteUrl` is resolved by the caller from `env.PUBLIC_SITE_ORIGIN ?? GITTENSORY_SITE_URL` (#4613), so a
* self-hoster's own domain reaches the attribution link instead of `gittensory.aethereal.dev`. Threading it as a
* self-hoster's own domain reaches the attribution link instead of `loopover.ai`. Threading it as a
* plain string argument (rather than an `env` slice) keeps this function's purity/determinism contract intact --
* the SAME `(profile, siteUrl)` pair always renders the SAME output, which is all the diff-aware refresh in
* `generated-doc-refresh.ts` needs for its byte-for-byte comparison.
Expand Down
Loading
Loading