Repository navigation
chore(repo): sync develop into next - #7199
Conversation
…with effect lint (CLI-2648) (#7144) ## TL;DR brings the `upgrade`, `flags` and `filesystem` modules under the effect lint, with the `output`, `status` and go-compat helpers around them ## whats introduced? - the module files join the allow list, with `upgrade-notice` left to its own follow-up - `pflag-reconcile` reads `SUPABASE_PROFILE`, `SUPABASE_WORKDIR` and the supabase home from `CommandSettings` instead of `process.env`, so `profileFilePath` goes - `git-status` takes the `Path` service, `timestamp.format` goes through `DateTime`, and the `go-struct-output` and `string-slice-flag` errors move to `Data.Error` with the same names and fingerprints - the tests swap `node:fs` and `process.env` for scoped temp dirs and config providers, and the `prompt-yes-no` and `pflag-reconcile` tests move to `it.effect` ## ref - related: CLI-2648
# Conflicts: # .oxlintrc.effect.json # apps/cli/src/command-internal/argv-flag-reconcile.ts # apps/cli/src/command-internal/argv-flag-reconcile.unit.test.ts # apps/cli/src/command-internal/sql-files-glob.unit.test.ts # apps/cli/src/command-internal/struct-output.encoders.ts # apps/cli/src/config/profile-file.ts # apps/cli/src/shared/config/temp-paths.unit.test.ts
Claude resolved the merge of
|
| File | Resolution |
|---|---|
.oxlintrc.effect.json |
Kept develop's string-slice-flag, workdir-project and workdir-validation entries and next's supabase-env entry. Dropped viper-env, command-internal/temp-paths (now under shared/**) and workdir-search.ts, which no longer exist. Changed the stale pflag-reconcile.* and go-struct-output.* entries to next's argv-flag-reconcile.* and struct-output.* so develop's effect-lint coverage follows the renamed files. |
apps/cli/src/command-internal/argv-flag-reconcile.ts |
Uses next's argv* names, with develop's CommandSettings as the source of SUPABASE_WORKDIR, SUPABASE_PROFILE and the Supabase home. Next's version referred to runtimeInfo, which develop had removed, and to profileFilePath, so neither is used any more. |
apps/cli/src/command-internal/argv-flag-reconcile.unit.test.ts |
Develop's tests (mockCommandSettings-based, Effect temp directories, plus the new validateArgvWorkdir tests), renamed to next's resolveArgvProfile and validateArgvWorkdir. The stable PflagWorkdirError tag is still asserted. |
apps/cli/src/command-internal/sql-files-glob.unit.test.ts |
Develop's rewrite onto the Effect FileSystem (tempWorkdir, withWin32Path, withMode) with next's test titles, which drop the Go-parity suffixes. Next's tests were the same cases, so nothing was lost. |
apps/cli/src/command-internal/struct-output.encoders.ts |
Next's TomlEncodeError name and new default message, on develop's Data.Error base with override readonly name. The telemetry fingerprint and name stay GoTomlEncodeError. |
apps/cli/src/config/profile-file.ts |
Took develop's side, which removed profileFilePath and the supabase-home import. Its only caller now reads CommandSettings.supabaseHome. |
apps/cli/src/shared/config/temp-paths.unit.test.ts |
Took next's tests, which use the withWorkdir/seedRef helpers already defined outside the conflict. Kept develop's stricter ^failed to load project ref: check on the error message. |
Decisions for @supabase/cli. Confirm them, or push a change to this branch:
- Where should argv flag reconciliation read SUPABASE_WORKDIR, SUPABASE_PROFILE and the Supabase home: next's
envValueplusprofileFilePath, or develop'sCommandSettings? Chose: Develop'sCommandSettingsfields (workdirEnvValue,profileEnvValue,supabaseHome). Both read the same config provider, but next's version depended on aruntimeInfovariable develop had removed, and theCommandSettingsapproach keeps develop's reconcile tests working. As a result,profileFilePathis dropped fromprofile-file.ts.
Quick checks. pnpm run check:all --continue (exit 1), pnpm run test:unit (exit 1) failed on the merged tree.
Claude's fix. I fixed both failing checks. One argv-flag-reconcile unit test still expected the old Unsupported Config Type profile-load error, so I changed it to the current unsupported config file type wording. I also rewrote the async promptYesNoOutcome tests in prompt-yes-no.unit.test.ts with it.effect so the Effect lint check passes.
Approve to fast-forward next once checks pass (workflow run).
There was a problem hiding this comment.
🤖 AI Review
Both independent reviews completed and reported no findings. Inspection of the changed runtime code, service wiring, and test migrations found no additional actionable issues. Tests were not executed. No next-context.md was present.
Findings
No issues found.
Stats
Claude findings: 0 · Codex findings: 0 · Confirmed: 0 · Refuted: 0 · Uncertain: 0
Models: claude-opus-5-5 + gpt-6.1-sol · Trigger: manual · Workflow run
This review runs once per PR. A maintainer can request another with a /ai-review comment.
supabase-oss
left a comment
There was a problem hiding this comment.
CI is green and the AI review raised nothing the merge introduced, so this approves Claude's resolution of the sync (https://github.com/supabase/cli/actions/runs/38894256522).
Merging
developintonextconflicts. This branch starts at the tip ofdevelop(49e4e80);nextis at31b7b4f.Conflicting files:
.oxlintrc.effect.jsonapps/cli/src/command-internal/argv-flag-reconcile.tsapps/cli/src/command-internal/argv-flag-reconcile.unit.test.tsapps/cli/src/command-internal/sql-files-glob.unit.test.tsapps/cli/src/command-internal/struct-output.encoders.tsapps/cli/src/config/profile-file.tsapps/cli/src/shared/config/temp-paths.unit.test.tsTo resolve:
git fetch origin git switch sync/develop-into-next git merge origin/next # resolve the conflicts, then commit git push origin sync/develop-into-nextApprove to fast-forward
next; do not use the merge button.