{
  "slug": "datadog-ci-wasm-symbols-upload-adds-beta-wasm-symbolication-workflow-c1fe2ab06c9f",
  "title": "datadog-ci wasm-symbols upload adds beta WASM symbolication workflow",
  "tools": [
    "datadog-ci"
  ],
  "tags": [
    "agent"
  ],
  "introduced_at": "2026-08-17T09:46:45.000Z",
  "announced_at": "2026-08-17T09:46:45.000Z",
  "effective_at": null,
  "date_basis": "source-publication",
  "status": "unknown",
  "how": {
    "incantation": "When uploading WASM debug information for Browser SDK stack trace symbolication, provide a `.wasm` file or directory and enable the beta command. The command recursively scans directories and skips files without embedded DWARF sections or a `build_id` section.",
    "examples": [
      "DD_BETA_COMMANDS_ENABLED=1 datadog-ci wasm-symbols upload <file-or-directory>",
      "DD_BETA_COMMANDS_ENABLED=1 datadog-ci wasm-symbols upload --dry-run <file-or-directory>"
    ],
    "gotchas": [
      "Version: v5.23.0",
      "Availability: The `wasm-symbols upload` command is in beta and requires `DD_BETA_COMMANDS_ENABLED=1`.",
      "<file-or-directory> (required): File path uploads that file; directory path is scanned recursively for `.wasm` files.",
      "DD_BETA_COMMANDS_ENABLED=1 (required): Enables the beta `wasm-symbols upload` command.",
      "--dry-run: Skips the final upload step while performing other checks.",
      "--max-concurrency: Sets concurrent API uploads; defaults to 20.",
      "--disable-git: Prevents invoking Git and sending repository-related data to Datadog.",
      "--repository-url: Overrides the remote repository URL.",
      "--replace-existing: Replaces existing symbol information with the same build ID; by default, the first-seen file is kept and later files are skipped.",
      "Prerequisite: Set `DD_API_KEY` in the environment.",
      "Prerequisite: Set `DD_BETA_COMMANDS_ENABLED=1` to use the beta command.",
      "Prerequisite: For Datadog EU, set `DD_SITE=datadoghq.eu`; requests default to Datadog US.",
      "Prerequisite: The `.wasm` must contain embedded DWARF debug sections and a `build_id` custom section; files with only `external_debug_info` are skipped.",
      "A directory is scanned recursively for `.wasm` files; a file path uploads only that file.",
      "A `.wasm` file is uploaded only if it carries embedded DWARF debug sections, for example produced by `emcc -g` or `wasm-pack build --dev`.",
      "A file with only an `external_debug_info` section is skipped; the referenced separate debug artifact is not resolved or uploaded.",
      "A `.wasm` file without a `build_id` custom section is skipped.",
      "`--dry-run` omits the final upload step while still performing the other checks.",
      "Requests go to Datadog US by default; set `DD_SITE=datadoghq.eu` to use Datadog EU.",
      "The command requires `DD_API_KEY` in the environment."
    ]
  },
  "why_it_matters": "Upload WebAssembly debug information from a build output directory so Datadog can symbolicate Browser SDK WASM stack traces.",
  "sources": [
    "https://github.com/DataDog/datadog-ci/releases/tag/v5.23.0",
    "https://github.com/DataDog/datadog-ci/pull/2398",
    "https://github.com/DataDog/datadog-ci/blob/v5.23.0/packages/base/src/commands/wasm-symbols/README.md"
  ],
  "rank": 0.9802,
  "judge": {
    "publish": true,
    "judge_model": "codex-cli/gpt-6-luna+typesafe/jev-1.13.0",
    "prompt_version": "extract-v7+enrich-v2+judge-v2x3+jev-publish-v1"
  },
  "review_state": "approved",
  "provenance": {
    "run_id": "wave2a-20261017",
    "verdict_id": "wave2a-20261017:wave2a-20261017-14f8dbf09fed3e59-1:gate",
    "evidence_hash": "6fecf2c8f8d41b2d358b1d07674e2b0c29549cc4270b600887cc488b14996a77"
  },
  "review": {
    "draft_hash": "781c6c9ff1f3a47259c8ac048b095518cd6f8da466e122b253645ec0ab36b0d4",
    "reviewer": "publication-gate",
    "reviewed_at": "2026-10-07T00:00:00.000Z",
    "decision": "wave2a-20261017:gate",
    "reason": "3 of 3 judge runs approved with p_yes >= 0.9 (mean 0.98 >= 0.9; 2 needed) and Jev gave 0.73 (>= 0.6 needed)."
  }
}
