Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
a6c6cb9
fix(functions): port functions download to native TypeScript (CLI-1963)
Coly010 Aug 5, 2026
265a39a
fix(functions): treat empty --network-id as the generated network (re…
Coly010 Aug 5, 2026
8103233
fix(functions): preserve v-prefixed edge-runtime-version pins (review…
Coly010 Aug 5, 2026
5583c93
fix(functions): request the raw eszip body instead of a negotiated JS…
Coly010 Aug 5, 2026
bc765ee
fix(functions): validate project config before falling back from Dock…
Coly010 Aug 5, 2026
f7b2a4a
fix(functions): skip the named Deno cache volume bind on Bitbucket (r…
Coly010 Aug 5, 2026
51524c6
fix(functions): honor pflag boolean value for --debug in eszip cleanu…
Coly010 Aug 5, 2026
b88cf6a
fix(functions): treat container: as a non-user-defined docker network…
Coly010 Aug 5, 2026
f0d3361
fix(functions): resolve legacy Docker download config from the exact …
Coly010 Aug 5, 2026
143addc
Merge remote-tracking branch 'origin/develop' into columferry/cli-196…
Coly010 Aug 5, 2026
d4530b1
docs(functions): document deno-version-default and network-id env-var…
Coly010 Aug 5, 2026
695afaa
fix(functions): honor the final occurrence of a repeated --network-id…
Coly010 Aug 5, 2026
d556716
fix(functions): surface malformed function-list entries instead of dr…
Coly010 Aug 5, 2026
7834238
docs(functions): document project_id-validation gap for Docker downlo…
Coly010 Aug 5, 2026
8b7dad1
docs(functions): fix SIDE_EFFECTS.md config-read scope for download (…
Coly010 Aug 5, 2026
b856a53
fix(functions): style the Docker-unbundle progress slug in legacy she…
Coly010 Aug 5, 2026
1187874
fix(functions): fail the whole function list on a typed non-string sl…
Coly010 Aug 5, 2026
29f2f28
docs(functions): document project-dotenv registry gap as cross-cuttin…
Coly010 Aug 5, 2026
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 apps/cli/docs/go-cli-porting-status.md
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ leaf-flag parity unaudited," not as a confirmed parity gap.
| -------------------- | --------- | --------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `functions delete` | `partial` | [`../src/next/commands/functions/delete/`](../src/next/commands/functions/delete/delete.command.ts) | Command surface exists in `next/`; flag-parity against Go not yet audited (see section note above). Natively ported in the legacy shell. |
| `functions deploy` | `partial` | [`../src/next/commands/functions/deploy/`](../src/next/commands/functions/deploy/deploy.command.ts) | Command surface exists in `next/`; flag-parity against Go not yet audited (see section note above). Natively ported in the legacy shell. |
| `functions download` | `partial` | [`../src/next/commands/functions/download/`](../src/next/commands/functions/download/download.command.ts) | Command surface exists in `next/`; flag-parity against Go not yet audited (see section note above). Hybrid in the legacy shell: native for `--use-api`, delegates wholesale to Go for the default (`--use-docker`) and `--legacy-bundle` paths — see [Legacy Shell Command Status](#legacy-shell-command-status) below. |
| `functions download` | `partial` | [`../src/next/commands/functions/download/`](../src/next/commands/functions/download/download.command.ts) | Command surface exists in `next/`; flag-parity against Go not yet audited (see section note above). Native for `--use-api` and the default Docker-unbundle path (`--use-docker`, CLI-1963) in both shells; hidden `--legacy-bundle` still delegates to Go — see [Legacy Shell Command Status](#legacy-shell-command-status) below. |
| `functions list` | `partial` | [`../src/next/commands/functions/list/`](../src/next/commands/functions/list/list.command.ts) | Command surface exists in `next/`; flag-parity against Go not yet audited (see section note above). Natively ported in the legacy shell. |
| `functions new` | `partial` | [`../src/next/commands/functions/new/`](../src/next/commands/functions/new/new.command.ts) | Command surface exists in `next/`; flag-parity against Go not yet audited (see section note above). Natively ported in the legacy shell. |
| `functions serve` | `partial` | [`../src/next/commands/functions/dev/`](../src/next/commands/functions/dev/dev.command.ts) | `next/`'s `functions dev` is a TS-native local Functions workflow (`--stack`, `--env-file`, `--no-verify-jwt`) rather than a flag-parity port of Go's `serve` — kept `partial` here pending a decision on whether it counts as this row's counterpart or belongs in [TS-only Commands](#ts-only-commands) instead. Natively ported in the legacy shell. |
Expand Down Expand Up @@ -308,7 +308,7 @@ Legend:
| `gen keys` | `wrapped` | [`../src/legacy/commands/gen/keys/keys.command.ts`](../src/legacy/commands/gen/keys/keys.command.ts) |
| `functions list` | `ported` | [`../src/legacy/commands/functions/list/list.command.ts`](../src/legacy/commands/functions/list/list.command.ts) |
| `functions delete` | `ported` | [`../src/legacy/commands/functions/delete/delete.command.ts`](../src/legacy/commands/functions/delete/delete.command.ts) |
| `functions download` | `ported` | [`../src/legacy/commands/functions/download/download.command.ts`](../src/legacy/commands/functions/download/download.command.ts) — native for `--use-api` (lists, downloads, and extracts via the Management API directly); default (`--use-docker`) and `--legacy-bundle` delegate wholesale to Go |
| `functions download` | `ported` | [`../src/legacy/commands/functions/download/download.command.ts`](../src/legacy/commands/functions/download/download.command.ts) — native for `--use-api` (lists, downloads, and extracts via the Management API directly) and the default Docker-unbundle path (`--use-docker`, CLI-1963); hidden `--legacy-bundle` still delegates to the Go binary (pre-1.120.0 fallback requiring a host Deno-binary install with no precedent elsewhere in this codebase — tracked separately, see CLI-1963) |
| `functions deploy` | `ported` | [`../src/legacy/commands/functions/deploy/deploy.command.ts`](../src/legacy/commands/functions/deploy/deploy.command.ts) |
| `functions new` | `ported` | [`../src/legacy/commands/functions/new/new.command.ts`](../src/legacy/commands/functions/new/new.command.ts) |
| `functions serve` | `ported` | [`../src/legacy/commands/functions/serve/serve.command.ts`](../src/legacy/commands/functions/serve/serve.command.ts) |
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
import { DEFAULT_VERSIONS } from "@supabase/stack/effect";
import { readFile } from "node:fs/promises";
import { join } from "node:path";
import { Effect, Option, Stdio } from "effect";
import { deployFunctions } from "../../../../shared/functions/deploy.ts";
import { resolveEdgeRuntimeVersionPin } from "../../../../shared/functions/functions.shared.ts";
import { legacyAqua, legacyBold } from "../../../shared/legacy-colors.ts";
import { LegacyPlatformApi } from "../../../auth/legacy-platform-api.service.ts";
import { LegacyCliConfig } from "../../../config/legacy-cli-config.service.ts";
Expand All @@ -29,12 +28,8 @@ export const legacyFunctionsDeploy = Effect.fn("legacy.functions.deploy")(functi
const runtimeInfo = yield* RuntimeInfo;
const stdio = yield* Stdio.Stdio;
const rawArgs = yield* stdio.args;
const edgeRuntimeVersion = yield* Effect.tryPromise(() =>
readFile(join(cliConfig.workdir, "supabase", ".temp", "edge-runtime-version"), "utf8"),
).pipe(
Effect.map((version) => version.trim()),
Effect.catch(() => Effect.succeed("")),
Effect.map((version) => version || DEFAULT_VERSIONS["edge-runtime"]),
const edgeRuntimeVersion = yield* resolveEdgeRuntimeVersionPin(
join(cliConfig.workdir, "supabase"),
);
let resolvedProjectRef = Option.none<string>();

Expand Down
Loading