From 9324ef0d08e93ff1f292ed42853e8e834d8620d4 Mon Sep 17 00:00:00 2001 From: Dax Date: Wed, 20 May 2026 11:34:56 -0400 Subject: [PATCH 001/192] fix(cli): default console login url (#28474) --- packages/opencode/src/cli/cmd/account.ts | 7 ++++--- packages/opencode/test/cli/account.test.ts | 6 +++++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/packages/opencode/src/cli/cmd/account.ts b/packages/opencode/src/cli/cmd/account.ts index e0755577b617..b9cbf5569cf2 100644 --- a/packages/opencode/src/cli/cmd/account.ts +++ b/packages/opencode/src/cli/cmd/account.ts @@ -15,6 +15,8 @@ const dim = (value: string) => UI.Style.TEXT_DIM + value + UI.Style.TEXT_NORMAL const activeSuffix = (isActive: boolean) => (isActive ? dim(" (active)") : "") +export const defaultConsoleUrl = "https://console.opencode.ai" + export const formatAccountLabel = (account: { email: string; url: string }, isActive: boolean) => `${account.email} ${dim(account.url)}${activeSuffix(isActive)}` @@ -173,18 +175,17 @@ const openEffect = Effect.fn("open")(function* () { }) export const LoginCommand = effectCmd({ - command: "login ", + command: "login [url]", describe: false, instance: false, builder: (yargs) => yargs.positional("url", { describe: "server URL", type: "string", - demandOption: true, }), handler: Effect.fn("Cli.account.login")(function* (args) { UI.empty() - yield* Effect.orDie(loginEffect(args.url)) + yield* Effect.orDie(loginEffect(args.url ?? defaultConsoleUrl)) }), }) diff --git a/packages/opencode/test/cli/account.test.ts b/packages/opencode/test/cli/account.test.ts index d75d7bd255ad..d491b77e17d4 100644 --- a/packages/opencode/test/cli/account.test.ts +++ b/packages/opencode/test/cli/account.test.ts @@ -1,9 +1,13 @@ import { describe, expect, test } from "bun:test" import stripAnsi from "strip-ansi" -import { formatAccountLabel, formatOrgLine } from "../../src/cli/cmd/account" +import { defaultConsoleUrl, formatAccountLabel, formatOrgLine } from "../../src/cli/cmd/account" describe("console account display", () => { + test("uses console.opencode.ai as the default login URL", () => { + expect(defaultConsoleUrl).toBe("https://console.opencode.ai") + }) + test("includes the account url in account labels", () => { expect(stripAnsi(formatAccountLabel({ email: "one@example.com", url: "https://one.example.com" }, false))).toBe( "one@example.com https://one.example.com", From 14e9e5d9d64949372be0bb1c612c3b62da77a289 Mon Sep 17 00:00:00 2001 From: OpeOginni <107570612+OpeOginni@users.noreply.github.com> Date: Wed, 20 May 2026 18:06:13 +0200 Subject: [PATCH 002/192] fix(enterprise): message nav hovercard and active state (#23964) --- .../enterprise/src/routes/share/[shareID].tsx | 6 +++ packages/ui/src/components/message-nav.css | 20 +++++--- packages/ui/src/components/message-nav.tsx | 50 +++++++++++-------- 3 files changed, 48 insertions(+), 28 deletions(-) diff --git a/packages/enterprise/src/routes/share/[shareID].tsx b/packages/enterprise/src/routes/share/[shareID].tsx index 7cfb2bb4a79c..6d83fb459895 100644 --- a/packages/enterprise/src/routes/share/[shareID].tsx +++ b/packages/enterprise/src/routes/share/[shareID].tsx @@ -323,6 +323,12 @@ export default function () { current={activeMessage()} size="compact" onMessageSelect={setActiveMessage} + getLabel={(message) => + data() + .part[message.id]?.find((part) => part.type === "text") + ?.text.trim() + .split("\n")[0] + } /> ( -