summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorKit Langton <[email protected]>2026-05-02 20:43:23 -0400
committerGitHub <[email protected]>2026-05-02 20:43:23 -0400
commite709dc34fb795dfa35d49d67673baa7b0f56dac8 (patch)
tree14a42856a89a297a688628c038f16abe01625719
parent9293cddb3a79e505e701ee173f98ebd84473b206 (diff)
downloadopencode-e709dc34fb795dfa35d49d67673baa7b0f56dac8.tar.gz
opencode-e709dc34fb795dfa35d49d67673baa7b0f56dac8.zip
feat: default HTTP API backend to on for dev/beta channels
-rw-r--r--packages/core/src/flag/flag.ts14
1 files changed, 13 insertions, 1 deletions
diff --git a/packages/core/src/flag/flag.ts b/packages/core/src/flag/flag.ts
index a3b8133b6..ed52f90e6 100644
--- a/packages/core/src/flag/flag.ts
+++ b/packages/core/src/flag/flag.ts
@@ -1,4 +1,5 @@
import { Config } from "effect"
+import { InstallationChannel } from "../installation/version"
function truthy(key: string) {
const value = process.env[key]?.toLowerCase()
@@ -10,6 +11,10 @@ function falsy(key: string) {
return value === "false" || value === "0"
}
+// Channels that default to the new effect-httpapi server backend. The legacy
+// hono backend remains the default for stable (`prod`/`latest`) installs.
+const HTTPAPI_DEFAULT_ON_CHANNELS = new Set(["dev", "beta", "local"])
+
function number(key: string) {
const value = process.env[key]
if (!value) return undefined
@@ -81,7 +86,14 @@ export const Flag = {
OPENCODE_STRICT_CONFIG_DEPS: truthy("OPENCODE_STRICT_CONFIG_DEPS"),
OPENCODE_WORKSPACE_ID: process.env["OPENCODE_WORKSPACE_ID"],
- OPENCODE_EXPERIMENTAL_HTTPAPI: truthy("OPENCODE_EXPERIMENTAL_HTTPAPI"),
+ // Defaults to true on dev/beta/local channels so internal users exercise the
+ // new effect-httpapi server backend. Stable (`prod`/`latest`) installs stay
+ // on the legacy hono backend until the rollout is complete. An explicit env
+ // var ("true"/"1" or "false"/"0") always wins, providing an opt-in for
+ // stable users and an escape hatch for dev/beta users.
+ OPENCODE_EXPERIMENTAL_HTTPAPI:
+ truthy("OPENCODE_EXPERIMENTAL_HTTPAPI") ||
+ (!falsy("OPENCODE_EXPERIMENTAL_HTTPAPI") && HTTPAPI_DEFAULT_ON_CHANNELS.has(InstallationChannel)),
OPENCODE_EXPERIMENTAL_WORKSPACES: OPENCODE_EXPERIMENTAL || truthy("OPENCODE_EXPERIMENTAL_WORKSPACES"),
// Evaluated at access time (not module load) because tests, the CLI, and