Skip to content

Commit 47f0313

Browse files
jarrodwattsclaude
andcommitted
fix: update companion app URL from mcp.abs.xyz to cli.abs.xyz
The domain was changed; the old URL redirects with a 308 which the CLI's fetch doesn't follow, causing a 403 on onboarding. Bumps CLI to 0.1.2. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 74ca8ea commit 47f0313

4 files changed

Lines changed: 7 additions & 7 deletions

File tree

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ Instead, AGW CLI generates a local **device authorization key** and registers it
7878
│ │────────────────────────────────────▶┌──────────────┐
7979
│ │ │ Companion │
8080
│ │ 3. User connects AGW, approves │ App │
81-
│ │ signer + selects policy preset │ mcp.abs.xyz │
81+
│ │ signer + selects policy preset │ cli.abs.xyz │
8282
│ │ └──────┬───────┘
8383
│ │ │
8484
│ │ 4. Signed callback token (EdDSA) │
@@ -267,7 +267,7 @@ No. The Privy policy attached to your signer defines hard limits enforced server
267267

268268
### What is the companion app?
269269

270-
The companion app ([mcp.abs.xyz](https://mcp.abs.xyz)) is a hosted web interface where you approve or revoke agent signers. It handles the Privy signer registration flow and sends a cryptographically signed callback token back to the CLI. You only need it during `auth init` and `auth revoke` — normal CLI usage does not require the browser.
270+
The companion app ([cli.abs.xyz](https://cli.abs.xyz)) is a hosted web interface where you approve or revoke agent signers. It handles the Privy signer registration flow and sends a cryptographically signed callback token back to the CLI. You only need it during `auth init` and `auth revoke` — normal CLI usage does not require the browser.
271271

272272
### Can I use AGW CLI without an AI agent?
273273

packages/agw-cli/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@abstract-foundation/agw-cli",
3-
"version": "0.1.1",
3+
"version": "0.1.2",
44
"type": "module",
55
"description": "Agent-first CLI for Abstract Global Wallet workflows",
66
"license": "MIT",

packages/agw-core/src/auth/bootstrap-internals.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ export interface BootstrapLockHandle {
1616
const AUTH_KEY_FILENAME = "privy-auth.key";
1717
const LOOPBACK_HOSTS = new Set(["localhost", "127.0.0.1", "[::1]"]);
1818
const BOOTSTRAP_LOCK_STALE_MS = 30 * 60 * 1000;
19-
const DEFAULT_ONBOARDING_APP_URL = "https://mcp.abs.xyz";
19+
const DEFAULT_ONBOARDING_APP_URL = "https://cli.abs.xyz";
2020

2121
function ensurePrivateDir(dir: string): void {
2222
fs.mkdirSync(dir, { recursive: true, mode: 0o700 });

test/bootstrap.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,7 @@ describe("bootstrap callback/signer bundle flow", () => {
270270
}
271271
});
272272

273-
it("defaults to mcp.abs.xyz when onboarding app URL is not configured", async () => {
273+
it("defaults to cli.abs.xyz when onboarding app URL is not configured", async () => {
274274
// #given
275275
const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), "agw-cli-bootstrap-flow-"));
276276
const previous = process.env.AGW_APP_URL;
@@ -290,7 +290,7 @@ describe("bootstrap callback/signer bundle flow", () => {
290290

291291
openMock.mockImplementation(async (url: string) => {
292292
const launchUrl = new URL(url);
293-
expect(`${launchUrl.origin}${launchUrl.pathname}`).toBe("https://mcp.abs.xyz/session/new");
293+
expect(`${launchUrl.origin}${launchUrl.pathname}`).toBe("https://cli.abs.xyz/session/new");
294294
const authPublicKey = launchUrl.searchParams.get("auth_pubkey")!;
295295
const callbackState = new URL(launchUrl.searchParams.get("callback_url")!).searchParams.get("state")!;
296296
const signerFingerprint = computePublicKeyFingerprint(authPublicKey);
@@ -334,7 +334,7 @@ describe("bootstrap callback/signer bundle flow", () => {
334334
runBootstrapFlow(createLogger(), {
335335
chainId: 11124,
336336
homeDir: tmpDir,
337-
appUrl: "http://mcp.abs.xyz",
337+
appUrl: "http://cli.abs.xyz",
338338
}),
339339
).rejects.toThrow("Refusing insecure app URL over http for non-loopback host");
340340
} finally {

0 commit comments

Comments
 (0)