From b3d2ceb4c8ae320d9250a483f9335b606c27a98c Mon Sep 17 00:00:00 2001 From: Kanad Gupta Date: Fri, 14 Aug 2026 15:45:51 -0700 Subject: [PATCH 1/9] docs(adr): record sparse config subtraction decision (CLI-2155) Adds ADR 0017 pinning the design for the config defaults mapping function ahead of implementation: a pure, parameterized subtract core in @supabase/config, defaults derived from schema annotations, strict deep equality, and the remote-block baseline rule. Also seeds a root CONTEXT.md glossary with the project's config vocabulary. Co-Authored-By: Claude Fable 5 --- CONTEXT.md | 29 ++++++++++ docs/adr/0017-sparse-config-subtraction.md | 63 ++++++++++++++++++++++ docs/adr/README.md | 1 + 3 files changed, 93 insertions(+) create mode 100644 CONTEXT.md create mode 100644 docs/adr/0017-sparse-config-subtraction.md diff --git a/CONTEXT.md b/CONTEXT.md new file mode 100644 index 0000000000..87b556d14e --- /dev/null +++ b/CONTEXT.md @@ -0,0 +1,29 @@ +# Supabase CLI + +The Supabase CLI and its supporting packages, including `@supabase/config` — the schema and tooling for the `config.toml` project configuration file that config-driven development (diff/pull/push) is built on. + +## Language + +### Project configuration + +**Default config**: +The `ProjectConfig` in which every value carries its schema-declared default — what a project means before anyone configures anything. +_Avoid_: defaults reference, base config + +**Sparse config**: +A partial config overlay containing only values that differ from some baseline. Not a valid complete config on its own. +_Avoid_: minimal config, pruned config, massaged config + +**Subtract**: +The directional operation `config − baseline` that produces a sparse config: remove every value deep-equal (order-sensitive) to the baseline's, then drop sections left empty. +_Avoid_: prune, strip, massage + +**Remote block**: +A `[remotes.