api: autoPause default is declared in the spec and in a Go constant with no test keeping them in sync

Aberta Para iniciantes
#3,765 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 2 dias

@AdaAibaby já está trabalhando nisso.

Desde 29/10/2026.

  • #3767 de @AdaAibaby — aberto

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
84/100
Tipo de issue
Funcionalidade
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
go, openapi

Direção de pesquisa

Comece por packages/api/internal/api/spec_test.go e pelos testes de contrato existentes mencionados na issue. Leia os schemas NewSandbox e NewSandboxV2 em spec/openapi.yml e, em seguida, localize sandboxtypes.AutoPauseDefault e seu uso em sandbox_create.go. O trabalho estará concluído quando um teste falhar se qualquer valor padrão da spec diferir da constante Go e passar quando eles corresponderem.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Summary

The default timeout action for a sandbox (autoPause when omitted) is declared in two places in this repo with no test keeping them in sync:

  1. OpenAPI spec — spec/openapi.yml, NewSandbox and NewSandboxV2 both declare autoPause: { type: boolean, default: false }. This is documentation only: the generated Go type is *bool with omitempty (api.gen.go), so the spec default is never applied at decode time.
  2. Go constant — sandboxtypes.AutoPauseDefault = false, which is what sandbox_create.go actually applies via DerefOrDefault(body.AutoPause, sandbox.AutoPauseDefault) when the request omits autoPause.

The spec value is the one the SDKs read and document as the default (see e2b-dev/E2B #2057 — both SDKs hardcode "currently kill" against this). If the Go constant ever changes without the spec (or vice versa), the published contract silently lies about what an omitted autoPause does, and the SDKs' documented/validated default drifts from reality — with no signal.

Proposal

Add a contract test (mirroring the existing TestSpecSecuritySchemeHeaderNames / TestTemplateBuildMinimumFreeDiskContract pattern in packages/api/internal/api/spec_test.go) that asserts the spec's declared autoPause default on NewSandbox and NewSandboxV2 equals sandboxtypes.AutoPauseDefault. Makes the spec the single documented source of the default and fails CI on drift.

This is the infra-side half of the drift concern raised in e2b-dev/E2B #2057 (the SDK-side half — single-sourcing the SDK's local assumption — is handled there).

Linguagem predominante
Go
Estrelas
1.8k
Forks
503
Métricas de merge de PRs
Nenhum PR com merge em 30d

Preparar o ambiente

Abrir no Codespaces

Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de e2b-dev/runtime

Todas as issues de e2b-dev/runtime

Issues semelhantes

Mais issues de Go

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.