Context
This project aims to keep its user-facing surface aligned as a strict subset of google-gemini/gemini-cli, but there is no automated guardrail enforcing that contract.
Proposed change
Create a checked-in manifest file (for example docs/upstream-surface.yaml or testdata/upstream-surface.json) that records a pinned upstream baseline commit and the specific upstream surfaces we want to track.
Keep the first version narrow and deterministic. Recommended scope:
- Top-level CLI subcommands
- Interactive slash commands
- Selected user-facing flags if they are easy to normalize
Then add a Go test that loads the manifest and verifies our local surface stays within that declared contract.
Important constraint:
- This is a local regression/contract guard, not a live upstream change detector
- No network calls or live scraping in CI
- The manifest is updated manually when maintainers intentionally refresh the upstream baseline
Why this matters
This catches accidental drift in the surfaces we care about without introducing flaky CI dependencies or expensive automation.
Relevant files
cmd/gemini-cli/main.go — top-level CLI surface
internal/ui/commands.go — slash command dispatch
Context
This project aims to keep its user-facing surface aligned as a strict subset of
google-gemini/gemini-cli, but there is no automated guardrail enforcing that contract.Proposed change
Create a checked-in manifest file (for example
docs/upstream-surface.yamlortestdata/upstream-surface.json) that records a pinned upstream baseline commit and the specific upstream surfaces we want to track.Keep the first version narrow and deterministic. Recommended scope:
Then add a Go test that loads the manifest and verifies our local surface stays within that declared contract.
Important constraint:
Why this matters
This catches accidental drift in the surfaces we care about without introducing flaky CI dependencies or expensive automation.
Relevant files
cmd/gemini-cli/main.go— top-level CLI surfaceinternal/ui/commands.go— slash command dispatch