From 873b82fb3b354ca3af20eba6795f92c16c1a11a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Burak=20Emre=20Kabakc=C4=B1?= Date: Mon, 20 Apr 2026 16:37:39 +0100 Subject: [PATCH 1/3] fix: ship app.lobu.ai SPA + retire owletto.com defaults MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The deployed app image was serving the JSON status fallback at the catch-all route in packages/owletto-backend/src/index.ts because dist/index.html was missing. The owletto-web build script (tsc -b && vite build) was failing in CI because the submodule's *.test.ts files import from vitest, which wasn't in devDependencies — typecheck failed with TS2307 across 9 files and the image build aborted. Bump the owletto-web submodule pointer to the fix commit (lobu-ai/owletto-web#1) and refresh bun.lock. Also replace the legacy owletto.com defaults that the rebrand left behind: - Gateway memory MCP base URL fallback - Lobu CLI + Owletto CLI init wizard cloud-mode default - Browser extension manifest host_permissions - User-facing 'Owletto Cloud' label renamed to 'Lobu Cloud' in CLI prompts and docs --- bun.lock | 1 + packages/cli/README.md | 2 +- packages/cli/src/commands/init.ts | 4 ++-- packages/gateway/src/__tests__/file-loader-memory.test.ts | 4 ++-- packages/gateway/src/config/file-loader.ts | 2 +- packages/landing/src/content/docs/guides/agent-settings.md | 2 +- packages/owletto-cli/src/commands/init.ts | 4 ++-- packages/owletto-extension/manifest.json | 2 +- packages/owletto-web | 2 +- 9 files changed, 12 insertions(+), 11 deletions(-) diff --git a/bun.lock b/bun.lock index 3702fdced..b388ec3f4 100644 --- a/bun.lock +++ b/bun.lock @@ -343,6 +343,7 @@ "tailwindcss": "^4.1.17", "typescript": "^5.7.2", "vite": "^6.0.0", + "vitest": "^2.1.8", }, }, "packages/owletto-worker": { diff --git a/packages/cli/README.md b/packages/cli/README.md index ad867255c..5a4a3426f 100644 --- a/packages/cli/README.md +++ b/packages/cli/README.md @@ -23,7 +23,7 @@ Scaffold a new Lobu project with interactive prompts: - **AI provider** selection from the bundled provider registry + API key - **Providers** to enable (from `config/providers.json`) - **Messaging platform** (Telegram, Slack, Discord, or none) -- **Memory** selection (filesystem, Owletto Cloud, Owletto Local, or custom Owletto URL) +- **Memory** selection (filesystem, Lobu Cloud, Owletto Local, or custom Owletto URL) **Generates:** `docker-compose.yml`, `.env`, `Dockerfile.worker`, `lobu.toml`, `IDENTITY.md`, `.gitignore`, `README.md` diff --git a/packages/cli/src/commands/init.ts b/packages/cli/src/commands/init.ts index b752ae4a7..5e0ebfadc 100644 --- a/packages/cli/src/commands/init.ts +++ b/packages/cli/src/commands/init.ts @@ -14,7 +14,7 @@ import { } from "../commands/providers/registry.js"; import { renderTemplate } from "../utils/template.js"; -const DEFAULT_OWLETTO_MCP_URL = "https://owletto.com/mcp"; +const DEFAULT_OWLETTO_MCP_URL = "https://app.lobu.ai/mcp"; const LOCAL_OWLETTO_MCP_URL = "http://owletto:8787/mcp"; export async function initCommand( @@ -234,7 +234,7 @@ export async function initCommand( message: "Memory:", choices: [ { name: "None (filesystem memory)", value: "none" }, - { name: "Owletto Cloud (owletto.com)", value: "owletto-cloud" }, + { name: "Lobu Cloud (app.lobu.ai)", value: "owletto-cloud" }, { name: "Owletto Local (runs alongside gateway)", value: "owletto-local", diff --git a/packages/gateway/src/__tests__/file-loader-memory.test.ts b/packages/gateway/src/__tests__/file-loader-memory.test.ts index 81143cc53..507eac774 100644 --- a/packages/gateway/src/__tests__/file-loader-memory.test.ts +++ b/packages/gateway/src/__tests__/file-loader-memory.test.ts @@ -62,8 +62,8 @@ org: careops const memoryUrl = await applyOwlettoMemoryEnvFromProject(projectDir); - expect(memoryUrl).toBe("https://owletto.com/mcp/careops"); - expect(process.env.MEMORY_URL).toBe("https://owletto.com/mcp/careops"); + expect(memoryUrl).toBe("https://app.lobu.ai/mcp/careops"); + expect(process.env.MEMORY_URL).toBe("https://app.lobu.ai/mcp/careops"); }); test("uses MEMORY_URL as the base endpoint before scoping to the project org", async () => { diff --git a/packages/gateway/src/config/file-loader.ts b/packages/gateway/src/config/file-loader.ts index 46348b0c5..5f3e21f78 100644 --- a/packages/gateway/src/config/file-loader.ts +++ b/packages/gateway/src/config/file-loader.ts @@ -18,7 +18,7 @@ import { parse as parseToml } from "smol-toml"; import { parse as parseYaml } from "yaml"; const logger = createLogger("file-loader"); -const DEFAULT_OWLETTO_MCP_URL = "https://owletto.com/mcp"; +const DEFAULT_OWLETTO_MCP_URL = "https://app.lobu.ai/mcp"; // ── Public Types ────────────────────────────────────────────────────────── diff --git a/packages/landing/src/content/docs/guides/agent-settings.md b/packages/landing/src/content/docs/guides/agent-settings.md index 3344f457e..c8e0fcb1c 100644 --- a/packages/landing/src/content/docs/guides/agent-settings.md +++ b/packages/landing/src/content/docs/guides/agent-settings.md @@ -50,7 +50,7 @@ Memory is pluggable. In file-first projects, the gateway first checks `[memory.o - `data/` - `[memory.owletto]` in `lobu.toml` -For **Owletto Cloud**, Lobu can use the hosted default automatically. For **Owletto Local** and **Custom URL**, `MEMORY_URL` remains the base-endpoint override. +For **Lobu Cloud**, Lobu can use the hosted default automatically. For **Owletto Local** and **Custom URL**, `MEMORY_URL` remains the base-endpoint override. If the preferred plugin isn't installed, the gateway falls back to the other one (or to no memory if neither is installed). diff --git a/packages/owletto-cli/src/commands/init.ts b/packages/owletto-cli/src/commands/init.ts index 6555f8080..3d571db4e 100644 --- a/packages/owletto-cli/src/commands/init.ts +++ b/packages/owletto-cli/src/commands/init.ts @@ -3,7 +3,7 @@ import { defineCommand } from 'citty'; import { healthPing, runInitWizard } from '../lib/init-wizard.ts'; import { normalizeMcpUrl } from '../lib/openclaw-auth.ts'; -const CLOUD_MCP_URL = 'https://owletto.com/mcp'; +const CLOUD_MCP_URL = 'https://app.lobu.ai/mcp'; async function chooseMcpUrl(urlFlag?: string): Promise { if (urlFlag) return normalizeMcpUrl(urlFlag); @@ -11,7 +11,7 @@ async function chooseMcpUrl(urlFlag?: string): Promise { const mode = await p.select({ message: 'Which Owletto MCP endpoint should your agents use?', options: [ - { value: 'cloud', label: 'Owletto Cloud', hint: 'https://owletto.com/mcp' }, + { value: 'cloud', label: 'Lobu Cloud', hint: 'https://app.lobu.ai/mcp' }, { value: 'local', label: 'Local runtime', hint: 'http://localhost:8787/mcp' }, { value: 'custom', label: 'Custom MCP URL', hint: 'enter URL' }, ], diff --git a/packages/owletto-extension/manifest.json b/packages/owletto-extension/manifest.json index a9abcce96..781df4e0f 100644 --- a/packages/owletto-extension/manifest.json +++ b/packages/owletto-extension/manifest.json @@ -16,7 +16,7 @@ ], "host_permissions": [ - "https://owletto.com/*", + "https://app.lobu.ai/*", "https://localhost:5173/*", "http://localhost:5173/*" ], diff --git a/packages/owletto-web b/packages/owletto-web index ed353c668..057105c4e 160000 --- a/packages/owletto-web +++ b/packages/owletto-web @@ -1 +1 @@ -Subproject commit ed353c668311c49b390b9741b7b5514c51ac0c21 +Subproject commit 057105c4ee787291668416669634db34f9bade47 From 92775675486af1167eb2169e80f1722655dd4e7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Burak=20Emre=20Kabakc=C4=B1?= Date: Mon, 20 Apr 2026 16:43:18 +0100 Subject: [PATCH 2/3] chore: bump owletto-web submodule for build-artifact .gitignore Picks up lobu-ai/owletto-web@a24c793 which adds .gitignore for dist/, node_modules/, and tsconfig.tsbuildinfo so the build-test 'Verify no uncommitted changes' check passes. --- packages/owletto-web | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/owletto-web b/packages/owletto-web index 057105c4e..a24c79357 160000 --- a/packages/owletto-web +++ b/packages/owletto-web @@ -1 +1 @@ -Subproject commit 057105c4ee787291668416669634db34f9bade47 +Subproject commit a24c793577ef3e730d0901ee49849aa000858fbc From 45562b39265c59a39197193dbae3baba53b4be2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Burak=20Emre=20Kabakc=C4=B1?= Date: Mon, 20 Apr 2026 16:57:02 +0100 Subject: [PATCH 3/3] chore: bump owletto-web submodule to merged main HEAD Replaces the pre-merge branch SHA with the squashed commit on lobu-ai/owletto-web@main so the lobu repo's main branch points at a stable, reachable commit. --- packages/owletto-web | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/owletto-web b/packages/owletto-web index a24c79357..4e8f63168 160000 --- a/packages/owletto-web +++ b/packages/owletto-web @@ -1 +1 @@ -Subproject commit a24c793577ef3e730d0901ee49849aa000858fbc +Subproject commit 4e8f6316889ee236a3f963c89562e7d0a07ad713