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

Ouverte Adaptée aux débutants
#3,765 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 2 jours

@AdaAibaby y travaille déjà.

Depuis le 29/10/2026.

  • #3767 par @AdaAibaby — ouverte

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
84/100
Type d'issue
Fonctionnalité
Clarté
Clairement spécifiée
Activité
Active
Stack technique
go, openapi

Piste de recherche

Commencez par packages/api/internal/api/spec_test.go et les tests de contrat existants mentionnés dans l’issue. Lisez les schémas NewSandbox et NewSandboxV2 dans spec/openapi.yml, puis localisez sandboxtypes.AutoPauseDefault et son utilisation dans sandbox_create.go. Le travail est terminé lorsqu’un test échoue si l’une des valeurs par défaut de la spec diffère de la constante Go et réussit lorsqu’elles correspondent.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

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).

Langage dominant
Go
Étoiles
1.8k
Forks
503
Métriques de merge des PR
Aucune PR mergée en 30 j

Préparer son environnement

Ouvrir dans Codespaces

Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de e2b-dev/runtime

Toutes les issues de e2b-dev/runtime

Issues similaires

Plus d'issues Go

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.